Podział łącza przez ominięcie blokady TTL
Napisał: Patryk Krawaczyński
29/11/2009 w Techblog Brak komentarzy. (artykuł nr 199, ilość słów: 232)
W
iele mniejszych i “domowych” ISP blokuje dalszy podział łącza przez użytkowników poprzez ustawienie odpowiednio małej wartości TTL (ang. Time To Live), tak by dochodząc do naszego komputera wynosiła ona 1, co oznacza, że pakiety z naszego komputera / routera nie mogą zostać przekazane dalej.
Prawidłowość ta opiera się na prostej zasadzie działania sieci, w której każdy kolejny router IP na trasie zmniejsza TTL przekazywanego pakietu o jeden. Jeśli router / komputer otrzyma pakiet z TTL równym 1, odrzuci go i usunie z sieci. W celu sprawdzenia, czy blokada taka została zastosowana w naszym wypadku wystarczy użyć polecenia ping, które dostarczy nam informacji o wartości TTL:
ping www.slackware.com
Jeśli zwracanymi wartościami TTL będą 1’dynki – pakiety dochodzące do naszego routera / komputera nie mogą być dalej przesyłane. W celu ominięcia tej blokady należy zwiększyć wartość TTL przychodzących pakietów co najmniej o 1. W tym wypadku wystarczy dodać poniższe linijki do pliku /etc/rc.d/rc.firewall:
iptables -t mangle -A PREROUTING -i eth0 -j TTL --ttl-inc 1 iptables -t mangle -A POSTROUTING -o eth0 -j TTL --ttl-inc 1
Możemy także podnieść TTL na wybranych portach TCP:
iptables -t mangle -A PREROUTING -p TCP --dport 33434:33542 -j TTL --ttl-inc 1
Lub ustawić stałą wartość TTL na 64:
iptables -t mangle -A PREROUTING -i eth0 -j TTL --ttl-set 64
Gdzie eth0 jest interfejsem podłączonym do Internetu.
Więcej informacji: Netfilter extensions HOWTO