Tomato TTL=1
|
foooox |
Dodano 27-01-2012 18:54
|
Power User
Posty: 200
Dołączył: 25/09/2008 13:02
|
Witam.
Chciałbym ustawić na moim Tomato Firmware 1.28.0000 MIPSR2-083V K26 USB BT-VPN TTL=1. Niestety ani opcja TTL Adjust w Tomato ani poniższe skrypty wrzucane do Firewall nie działają.
modprobe ipt_TTL
iptables -t mangle -I POSTROUTING -o br0 -j TTL --ttl-set 1
modprobe ipt_TTL
iptables -t mangle -A POSTROUTING -j TTL --ttl-set 1
iptables -t mangle -A PREROUTING -j TTL --ttl-set 1
Router to RT-N16. Ma ktoś pomysł jak to zrobić?
Wypowiedziałaby się w temacie jakaś tęga głowa z Linuksa jaki skrypcik zaaplikować na Pomidora...
Edytowany przez foooox dnia 27-01-2012 20:24
|
|
|
|
tristan |
Dodano 27-01-2012 21:05
|
Power User
Posty: 315
Dołączył: 11/02/2011 00:17
|
Czym się objawia to niedziałanie? Bo możliwe, że jeśli chcesz zablokować w ten sposób możliwość dzielenia łącza, to ktoś podbija TTL i dlatego "nie działa". Powinna działać opcja Custom i wartość 1.
Był: Asus RT-N16 + Tomato PL v1.28.9054 MIPSR2 116PL K26 USB VPN mod shibby
Jest: Asus RT-AC68U + AsusWRT-Merlin 380.62_1 DualWAN+ Huawei E1820 + 2.5" HDD 500GB Lenovo + Brother HL-1430
|
|
|
|
foooox |
Dodano 27-01-2012 21:17
|
Power User
Posty: 200
Dołączył: 25/09/2008 13:02
|
Za każdym razem pingowanie routera zwraca wartość 64. Komputer podpięty bezpośrednio do routera, nie ważne czy radiowo czy po kablu. Żadna z wyżej wymienionych opcji nie działa. Między innymi Custom i wartość 1.
Połączony z 27 styczeń 2012 23:10:57:
Dodam tylko, że polecenie modprobe ipt_TTL zwraca: module ipt_TTL not found in modules.dep
Połączony z 28 styczeń 2012 09:38:30:
Widzę, że jak shibby nie pomoże, to nikt inny nie pomoże...
To może chociaż ktoś korzysta z innej wersji Tomato na RT-N16, na której ustawienia TTL działają poprawnie?
Edytowany przez foooox dnia 28-01-2012 09:38
|
|
|
|
tristan |
Dodano 28-01-2012 09:51
|
Power User
Posty: 315
Dołączył: 11/02/2011 00:17
|
W starej wersji (tej ze stopki) również jest komunika "module ipt_TTL not found in modules.dep". Jak będę miał chwilę, to spróbuję sprawdzić czy działa regulacja z GUI.
A tak gwoli ścisłości, to z której strony routera próbowałeś pingować? od strony WAN czy LAN? Bo z tego co kojarzę, to obcinanie TTL działa tylko od strony WAN.
Był: Asus RT-N16 + Tomato PL v1.28.9054 MIPSR2 116PL K26 USB VPN mod shibby
Jest: Asus RT-AC68U + AsusWRT-Merlin 380.62_1 DualWAN+ Huawei E1820 + 2.5" HDD 500GB Lenovo + Brother HL-1430
|
|
|
|
foooox |
Dodano 28-01-2012 10:14
|
Power User
Posty: 200
Dołączył: 25/09/2008 13:02
|
Pinguje od strony LAN. Jak miałem starego WRT54GS z Tomato 1.21, to poniższy skrypt działał prawidłowo.
modprobe ipt_TTL
iptables -t mangle -I POSTROUTING -o br0 -j TTL --ttl-set 1
Skrypt ten generował generator skryptów Robsona i miał za zadanie utrudnić dalszy podział łącza przez jakiegoś klienta. |
|
|
|
tristan |
Dodano 28-01-2012 10:36
|
Power User
Posty: 315
Dołączył: 11/02/2011 00:17
|
Spróbuj zapingować od strony WAN. Jeśli pakiety przychodzące na router będą mieć TTL=1 to wystarczy, nie musisz ograniczać pakietów wychodzących. Tylko że to, jak sam napisałeś, tylko utrudnienie, bo wystarczy, że udostępniający podbije TTL (dokładnie w ten sam sposób) i całe zabezpieczenie psu na budę.
Był: Asus RT-N16 + Tomato PL v1.28.9054 MIPSR2 116PL K26 USB VPN mod shibby
Jest: Asus RT-AC68U + AsusWRT-Merlin 380.62_1 DualWAN+ Huawei E1820 + 2.5" HDD 500GB Lenovo + Brother HL-1430
|
|
|
|
foooox |
Dodano 28-01-2012 11:04
|
Power User
Posty: 200
Dołączył: 25/09/2008 13:02
|
Dziwna sprawa. Ustawienie Custom działa, ale tylko do wartości 12. Wtedy według Twoich wskazówek pingowanie np. google.pl z dowolnego komputera w sieci zwraca wartość 11, z kolei pingowanie z GUI Tomato zwraca wartość 12, czyli jest OK. Ale jak ustawie jakąkolwiek wartość poniżej 12 to net nie działa ani pingowanie z komputerów w LAN i GUI Tomato.
Połączony z 28 styczeń 2012 11:17:49:
Mam prośbę. Czy mógłby ktoś sprawdzić na innych wersjach Tomato czy działa Custom ustawione na 2?
Edytowany przez foooox dnia 28-01-2012 11:17
|
|
|
|
tristan |
Dodano 28-01-2012 11:34
|
Power User
Posty: 315
Dołączył: 11/02/2011 00:17
|
Dla TTL=1 do 7 mam komunikat (pingowanie z Windowsa podłączonego do LAN przez WiFi)
Odpowiedź z 84.116.135.234: Limit czasu wygaśnięcia (TTL) upłynął podczas tranzytu.
Odpowiedź z 84.116.135.234: Limit czasu wygaśnięcia (TTL) upłynął podczas tranzytu.
Od TTL=8 i wyżej ping przechodzi i prawidłowo odlicza.
Wersja jak w stopce.
Edit: wygląda na to, ze się zgadza wszystko.
Mam (od strony WAN):
Do testowanego WP.PL mam z PCeta 9 hopów licząc z Tomato i routerem z UPC. Czyli 8 na Asusie to będzie minimalna wartość TTL jaka pozwoli przepuścić ping do WP.PL. Wygląda więc na to, że korekcja TTL dotyczy zarówno połączeń przychodzących jak i wychodzących i ustawienie za niskiej wartości powoduje brak połączenia (bo strony też się nie otwierają, sprawdziłem na szybko dla TTL=5)
Edytowany przez tristan dnia 28-01-2012 11:46
Był: Asus RT-N16 + Tomato PL v1.28.9054 MIPSR2 116PL K26 USB VPN mod shibby
Jest: Asus RT-AC68U + AsusWRT-Merlin 380.62_1 DualWAN+ Huawei E1820 + 2.5" HDD 500GB Lenovo + Brother HL-1430
|
|
|
|
foooox |
Dodano 28-01-2012 11:40
|
Power User
Posty: 200
Dołączył: 25/09/2008 13:02
|
Czyli wygląda na to, że jest jakiś bug w Tomato... Może shibby temu coś zaradzi. |
|
|
|
tristan |
Dodano 28-01-2012 11:49
|
Power User
Posty: 315
Dołączył: 11/02/2011 00:17
|
Patrząc na wykonane ćwiczenie to raczej nie bug tylko bezpiecznik wmontowany na stałe w nowe Tomato, żeby sobie ludzie krzywdy nie porobili zmniejszając za bardzo TTL. Ustawienie niskiej wartości z poziomu GUI wyłącza internet. Gdyby można limitować wyłącznie połączenie przychodzące, obcinając na Tomato do 1 to OK, ale jak widać z poziomu GUI limitowane są oba kierunki.
Edit: przeanalizowałem ( i przeczytałem ze zrozumieniem:) ) jeszcze raz sprawę i to żaden bezpiecznik, tylko mechanizm działa dokładnie tak jak ma działać. Po prostu u kolegi foooox do badanego hosta jest więcej niż 12 hopów, dlatego ping nie odpowiada (na początku myślałem, że brak jest wpływu na ping przy ustaleniu TTL poniżej 12).
@foooox : Tomato ustawia Ci TTL=1 itd, tylko że także dla pakietów wychodzących co kończy ich żywot zaraz za routerem.
Jedyne rozwiązanie to możliwość ograniczenia TTL wyłącznie dla pakietów przychodzących z WAN, a takiego czegoś nie ma. Regulacja TTL odbywa się poza iptables, więc manipulowanie PREROUTING nie jest możliwe, bo brak jest modułu ipt_TTL. Gdyby dało się dorzucić ten moduł, możnaby regulować z poziomu iptales.
Edit2:
Zaciekawiłem się i zacząłem sprawdzać zmiany w iptables we wszystkich tabelach (początkowo przez nieuwagę sprawdzałem tylko filter). Okazuje się, że zmiana z poziomu GUI parametru TTL powoduje dodanie do tabeli mangle (czyli tam gdzie powinno) DWÓCH wpisów, dla pakietów przychodzących i wychodzących:
root@asus:/tmp/etc# iptables -t mangle -L
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
TTL all -- anywhere anywhere TTL set to 12
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
TTL all -- anywhere anywhere TTL set to 12
Czyli jednak robione jest to na poziomie iptables, wbrew temu co nakłamałem:) wcześniej. Wpis w konfiguracji iptables wygląda tak:
root@asus:/tmp/etc# vi iptables
*mangle
:PREROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-I PREROUTING -i vlan2 -j TTL --ttl-set 12
-I POSTROUTING -o vlan2 -j TTL --ttl-set 12
COMMIT
*nat
Czyli, teoretycznie, wystarczyłoby "z palca" wydać polecenie (ograniczając regulację tylko do połaczeń przychodzących):
root@asus:/tmp/etc# iptables -t mangle -I PREROUTING -i vlan2 -j TTL --ttl-set 1
niestety.....efekt jest taki:
iptables: No chain/target/match by that name
Czyli coś jeszcze trzeba dodać do iptables. Szukam, co.
Edytowany przez tristan dnia 28-01-2012 12:30
Był: Asus RT-N16 + Tomato PL v1.28.9054 MIPSR2 116PL K26 USB VPN mod shibby
Jest: Asus RT-AC68U + AsusWRT-Merlin 380.62_1 DualWAN+ Huawei E1820 + 2.5" HDD 500GB Lenovo + Brother HL-1430
|
|
|
|
foooox |
Dodano 28-01-2012 11:57
|
Power User
Posty: 200
Dołączył: 25/09/2008 13:02
|
Możliwe. Ciekaw jestem czy da się jednak jakimś skryptem ustawić wartość TTL=1 dla komputerów w LANie. Tak czy owak Dzięki tristan za pomoc! |
|
|
|
sadamkusz |
Dodano 28-01-2012 12:08
|
User
Posty: 45
Dołączył: 10/09/2011 17:52
|
Jestem bardzo ciekaw rozwiązania ttl dla lan - jeśli istnieje jakiś skrypt do tego bardzo proszę ludzi znających się na rzeczy o przedstawienie tutaj.
Z góry dziękuję. |
|
|
|
foooox |
Dodano 28-01-2012 12:42
|
Power User
Posty: 200
Dołączył: 25/09/2008 13:02
|
Raz jeszcze wielkie dzięki tristan za pomoc, bo ja aż tak zaawansowanym uszyszkodniekiem Linux'a nie jestem. Generalnie chciałbym mieć wszystko poustawiane jak miałem na wysłużonym już WRT54GS. |
|
|
|
tristan |
Dodano 28-01-2012 12:57
|
Power User
Posty: 315
Dołączył: 11/02/2011 00:17
|
No dobra, jest solucja, chociaż nie powiem, żeby to było "poprawne politycznie". Może ktoś z bardziej światłych to potrafi zoptymalizować.
Cały problem, żeby dodać target TTL do pliku /proc/net/ip_tables_targets . Niestety plik jest tylko do odczytu i standardowa próba nie zadziała.
root@asus:/proc# echo TTL >> /proc/net/ip_tables_targets
root@asus:/proc# cat /proc/net/ip_tables_targets
LOG
TRIGGER
MASQUERADE
REJECT
DNAT
SNAT
ERROR
TCPMSS
MARK
MARK
CONNMARK
CLASSIFY
Ale można z poziomu GUI ustawić jakąkolwiek zmianę (np +1) TTL i już nasz upragniony target się pojawia.
root@asus:/proc# cat /proc/net/ip_tables_targets
TTL
LOG
TRIGGER
MASQUERADE
REJECT
DNAT
SNAT
ERROR
TCPMSS
MARK
MARK
CONNMARK
CLASSIFY
Teraz z pełną premedytacją usuwamy manipulację TTL na pakietach wyjściowych i zmieniamy wejściowe tak żeby miały 2.
DWA, nie JEDEN, bo po drodze jest jeszcze NAT. Ustawienie jeden w moim przypadku powoduje brak netu.
root@asus:/proc# iptables -t mangle -D PREROUTING -i vlan2 -j TTL --ttl-inc 1
root@asus:/proc# iptables -t mangle -D POSTROUTING -o vlan2 -j TTL --ttl-inc 1
root@asus:/proc# iptables -t mangle -I PREROUTING -i vlan2 -j TTL --ttl-set 2
I sprawdzamy:
C:\Users\tristan>ping wp.pl
Badanie wp.pl [212.77.100.101] z 32 bajtami danych:
Odpowiedź z 212.77.100.101: bajtów=32 czas=36ms TTL=1
Odpowiedź z 212.77.100.101: bajtów=32 czas=15ms TTL=1
Odpowiedź z 212.77.100.101: bajtów=32 czas=15ms TTL=1
Odpowiedź z 212.77.100.101: bajtów=32 czas=17ms TTL=1
Statystyka badania ping dla 212.77.100.101:
Pakiety: Wysłane = 4, Odebrane = 4, Utracone = 0
(0% straty),
Voila! Niech teraz ktoś mądry wymyśli, jak dodać target TTL bez takich dziwnych machinacji i jesteśmy w domu.
Był: Asus RT-N16 + Tomato PL v1.28.9054 MIPSR2 116PL K26 USB VPN mod shibby
Jest: Asus RT-AC68U + AsusWRT-Merlin 380.62_1 DualWAN+ Huawei E1820 + 2.5" HDD 500GB Lenovo + Brother HL-1430
|
|
|
|
foooox |
Dodano 28-01-2012 13:18
|
Power User
Posty: 200
Dołączył: 25/09/2008 13:02
|
Niestety tristan u mnie nie działa. Chyba, że coś robię źle.
W Advanced ustawiam Adjust TTL+1, czyli uzyskuje dostęp do pliku /proc/net/ip_tables_targets. Później do Firewall Script dodaje:
iptables -t mangle -D PREROUTING -i vlan2 -j TTL --ttl-inc 1
iptables -t mangle -D POSTROUTING -o vlan2 -j TTL --ttl-inc 1
iptables -t mangle -I PREROUTING -i vlan2 -j TTL --ttl-set 2
I lipa... |
|
|
|
tristan |
Dodano 28-01-2012 13:26
|
Power User
Posty: 315
Dołączył: 11/02/2011 00:17
|
Zanim dodasz jako skrypt sprawdź wydając te polecenia ręcznie. Gwoli ścisłości to nadal nie masz dostępu do pliku /proc/net/ip_tables_targets tylko Tomato po ustawieniu w GUI w jakiś nieodkryty jeszcze przeze mnie sposób potrafi sobie ten plik zaktualizować dodając do niego pożądany przez nas target czyli TTL.
Po kolei:
1. dodaj z poziomu GUI TTL+1
2. sprawdź co masz w iptables
iptables -t mangle -L (wklej tutaj)
3. wydaj z palca polecenia
iptables -t mangle -D PREROUTING -i vlan2 -j TTL --ttl-inc 1
iptables -t mangle -D POSTROUTING -o vlan2 -j TTL --ttl-inc 1
iptables -t mangle -I PREROUTING -i vlan2 -j TTL --ttl-set 2
4. sprawdź co masz w iptables
iptables -t mangle -L (wklej tutaj)
Do skryptu firewalla to na końcu, jak wszystko przetestujesz. Zwłaszcza że on się wykonuje w określonych warunkach i samo dopisanie nie spowoduje, że się wykona.
Był: Asus RT-N16 + Tomato PL v1.28.9054 MIPSR2 116PL K26 USB VPN mod shibby
Jest: Asus RT-AC68U + AsusWRT-Merlin 380.62_1 DualWAN+ Huawei E1820 + 2.5" HDD 500GB Lenovo + Brother HL-1430
|
|
|
|
foooox |
Dodano 28-01-2012 14:00
|
Power User
Posty: 200
Dołączył: 25/09/2008 13:02
|
GUI TTL+1
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
TTL all -- anywhere anywhere TTL increment by 1
MARK all -- user1 !192.168.1.0/24 MARK set 0xa
MARK all -- user2 !192.168.1.0/24 MARK set 0xb
MARK all -- user3 !192.168.1.0/24 MARK set 0xc
MARK all -- user4 !192.168.1.0/24 MARK set 0xd
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
TTL all -- anywhere anywhere TTL increment by 1
MARK all -- !192.168.1.0/24 user1 MARK set 0xa
MARK all -- !192.168.1.0/24 user2 MARK set 0xb
MARK all -- !192.168.1.0/24 user3 MARK set 0xc
MARK all -- !192.168.1.0/24 user4 MARK set 0xd
iptables -t mangle -D PREROUTING -i vlan2 -j TTL --ttl-inc 1
iptables -t mangle -D POSTROUTING -o vlan2 -j TTL --ttl-inc 1
iptables -t mangle -I PREROUTING -i vlan2 -j TTL --ttl-set 2
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
TTL all -- anywhere anywhere TTL set to 2
TTL all -- anywhere anywhere TTL set to 2
TTL all -- anywhere anywhere TTL increment by 1
MARK all -- user1 !192.168.1.0/24 MARK set 0xa
MARK all -- user2 !192.168.1.0/24 MARK set 0xb
MARK all -- user3 !192.168.1.0/24 MARK set 0xc
MARK all -- user4 !192.168.1.0/24 MARK set 0xd
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
TTL all -- anywhere anywhere TTL increment by 1
MARK all -- !192.168.1.0/24 user1 MARK set 0xa
MARK all -- !192.168.1.0/24 user2 MARK set 0xb
MARK all -- !192.168.1.0/24 user3 MARK set 0xc
MARK all -- !192.168.1.0/24 user4 MARK set 0xd
I co dalej?
Połączony z 28 styczeń 2012 14:03:29:
TTL=1 nadal niestety nie działa.
Edytowany przez foooox dnia 28-01-2012 14:03
|
|
|
|
tristan |
Dodano 28-01-2012 14:18
|
Power User
Posty: 315
Dołączył: 11/02/2011 00:17
|
Wygląda to trochę inaczej niż na mojej wersji więc możliwe (a wręcz pewne, bo wpisy wykonane przez GUI nie zostały usunięte), że nazwy interfejsów będa inne. Pokaż co masz w /etc/iptables. Interesujące wpisy będą na początku.
A na przyszłość ustaw sobie w sygnaturce wersją Tomato i sprzęt, bo ciężko się przekopać przez cały wątek.
Był: Asus RT-N16 + Tomato PL v1.28.9054 MIPSR2 116PL K26 USB VPN mod shibby
Jest: Asus RT-AC68U + AsusWRT-Merlin 380.62_1 DualWAN+ Huawei E1820 + 2.5" HDD 500GB Lenovo + Brother HL-1430
|
|
|
|
foooox |
Dodano 28-01-2012 14:22
|
Power User
Posty: 200
Dołączył: 25/09/2008 13:02
|
Po /etc/iptables wyskakuje mi Premission Denied.
Połączony z 28 styczeń 2012 14:24:50:
Aha i jak z palca dawałem polecenia:
iptables -t mangle -D PREROUTING -i vlan2 -j TTL --ttl-inc 1
iptables -t mangle -D POSTROUTING -o vlan2 -j TTL --ttl-inc 1
to zwracało mi:
iptables: No chain/target/match by that name
Edytowany przez foooox dnia 28-01-2012 14:24
|
|
|
|
tristan |
Dodano 28-01-2012 14:25
|
Power User
Posty: 315
Dołączył: 11/02/2011 00:17
|
Nie masz go uruchamiać tylko wyświetlić zawartość.
cat /etc/iptables | more
i pokaż co jest na początku (linijki dotyczące TTL)
Był: Asus RT-N16 + Tomato PL v1.28.9054 MIPSR2 116PL K26 USB VPN mod shibby
Jest: Asus RT-AC68U + AsusWRT-Merlin 380.62_1 DualWAN+ Huawei E1820 + 2.5" HDD 500GB Lenovo + Brother HL-1430
|
|
|