
Görüldügü gibi istemci DNS sunucusuna x.tunnel.dns.example.com adresini sorgulamakta ve sorgunun tunnel.dns.example.com sunucusuna ulaşması ile cevap tekrardan istemciye ulaşmaktadır.
Aşağıda dns.example.com adresi için BIND DNS sunucusu ve iodine yazılımı kullanılarak nasıl DNS tünelleme işleminin gerçekleştirileceğinden bahsedilecektir. DNS tünelleme işlemi için iç ağda recursive sorgulara izin verecek bir DNS sunucusunun olması gerekmektedir. Bu adım dig yada nslookup komutları yardımı ile öğrenilebilir. Dig komutu yardımı ile www.google.com.tr adresi sorgulanmasi için;
# dig @dns_sunucu_ip_adresi www.google.com.tr A +short
Cevap alınması halinde ilgili DNS sunucusu recursive sorgulara cevap verebildiği anlamına gelmektedir.
İstemciden giden sorguların tunnel.dns.example.com DNS sunucusuna ulaşabilmesi için sorguların değişken olarak yapılması gerekmektedir. Bu durum iodined DNS sunucusu üzerindeki trafik dinlenerek bu gözlemlenebilir.
example.com domaininden sorumlu DNS sunucuda aşağıdaki kaydın girilmiş olması gerekmektedir. Bu işlem BIND DNS sunucusu şu şekildedir:
example.com domaininden sorumlu DNS sunucuda aşağıdaki kaydın girilmiş olması gerekmektedir. Bu işlem BIND DNS sunucusu şu şekildedir:
dns.example.com. IN A 8.8.8.8
tunnel.dns.example.com. IN NS dns.example.com.
Kaydın girilmesinin ardından tunnel.dns.example.com alt domainine ait tüm sorgular 8.8.8.8 sunucusuna iletilecektir. DNS kaydının girilmesinin ardından sunucuda iodine kurulu olmalıdır. Bunun için apt-get paket yönetim sistemi kullanılabilir.
# apt-get install iodine
Sunucu servisini çalıstırmak için aşağıdaki komut seti kullanılabilir.# /usr/sbin/iodined -c -f 5.5.5.1 tunnel.dns.example.com
Ekrana çıkan "Enter password: " alanına kullanılmak istenen parola bilgisi kullanılarak sunucu çalıştırılabilir. ps komutu veya netstat komutu ile çalışan iodined süreci görüntülenebilir.# ps -ef | grep "iodined" | grep -v "grep"
root 23785 1 0 11:34 pts/0 00:00:00 /usr/sbin/iodined -c -f 5.5.5.1 tunnel.dns.example.com
# netstat -plntu | grep "53"
udp 0 0 0.0.0.0:53 0.0.0.0:* 23785/iodined
Sunucuyla iletişime geçebilmek için iodine paketinin istemcide yüklü olması gerekmektedir. Bunun için apt-get paket yönetim sistemi kullanılabilir.# apt-get install iodine
İstemci için ön tanmlı ağ geçidi bilgisinin 192.168.1.1 olduğu varsayılırsa eğer bütün trafiğin DNS tüneli içerisinden çıkabilmesi için ön tanımlı ağ geçidi kaldırılmalı ve DNS tünel sunucusu için ve eğer kullanılacak olan DNS sunucusu ayrı bir alt ağda ise bu DNS sunucu için yönlendirme tanımlamalarının girilmesi gerekmektedir. 8.8.8.8 ip adresi ile de iodined DNS sunucusunun çalıştığı IP adresi belirtilmektedir.
# route del default
# route add -host 192.168.2.37 gw 192.168.1.1
# route add -host 8.8.8.8 192.168.1.1
Ardından iodined sunucusu ile iletişim kurulmalıdır. Bunun için aşağıdaki komut seti kullanılabilir. Burada kullanılan 192.168.2.37 iç ağdaki recursive sorgulara cevap veren DNS sunucunun IP adresidir.
# iodine -f 192.168.2.37 tunnel.dns.example.com
Son olarak ön tanımlı ağ geçidi olarak dns tünelleme sunucu IP adresi verilerek tüm trafiğin kurulan tünel üzerinden çıkması sağlanabilir. Bunun için aşağıdaki komut seti çalıştırılmalıdır.
# route add default gw 5.5.5.1
Yazar: Gökhan ALKAN, twitter: @cigalkan
0 comments:
Post a Comment