Temmuz 22, 2010

tcptraceroute ile NAT tespiti

Bir sunucunun NAT arkasından olup olmadığı tcptraceroute kullanılarak anlaşılabilir. tcptraceroute uygulaması, geleneksel olarak kullanılan traceroute uygulamasından farklı olarak tcp üzerinden çalışır.

sirket.com adresinin 222 nolu portunda bir servis çalıştığını biliyoruz ve bu servisi bulunduran sunucunun NAT arkasında olup olmadığını öğrenmek istiyoruz. 

# tcptraceroute sirket.com 222 -n
Selected device eth0, address 78.40.yyy.xxx, port 55511 for outgoing packets
Tracing the path to sirket.com (94.121.231.229) on TCP port 222, 30 hops max
 1  77.223.128.13  0.431 ms  0.392 ms  0.398 ms
 2  77.223.128.5  0.416 ms  0.388 ms  0.317 ms
 3  85.29.11.129  162.730 ms  0.709 ms  0.588 ms
 4  85.29.56.89  32.549 ms  204.363 ms  93.025 ms
 5  85.29.56.85  7.004 ms  7.039 ms  7.025 ms
 6  85.29.18.69  6.961 ms  7.009 ms  7.151 ms
 7  85.29.56.222  7.048 ms  7.049 ms  7.073 ms
 8  212.156.45.29  8.223 ms  7.898 ms  8.473 ms
 9  212.156.117.66  8.769 ms  7.716 ms  11.787 ms
10  81.212.208.125  8.088 ms  8.134 ms  7.964 ms
11  81.212.26.129  7.768 ms  7.810 ms  7.737 ms
12  212.156.117.38  14.865 ms  14.991 ms  14.865 ms
13  81.212.209.73  15.555 ms  15.796 ms  15.616 ms
14  81.212.217.45  26.604 ms  26.394 ms  26.948 ms
15  88.255.159.226  25.536 ms  25.486 ms  25.623 ms
16  94.121.231.229  35.515 ms  35.042 ms  35.170 ms
17  94.121.231.229 [open]  36.872 ms  38.588 ms  36.830 ms

Aldığımız çıktıda son iki adımdaki çıktının aynı IP adresine sahip olduğunu görünce, bu sunucunun NAT arkasında olduğu sonucunu çıkarabiliriz.

2 comments:

Ozan dedi ki...

Bunu tuttum, teşekkürler.

Adsız dedi ki...

İşte tam olarak bu yüzden paketleri NAT arkasındaki sunucuya iletirken TTL'ini bir artırıyoruz (bkz: iptables -t mangle ...). Böylece adres çevrimini yapan firewall görünmez hale geliyor.