Strona 1 z 1

iptables / manipulacja ttl / nat

: 11 gru 2008, 20:08
autor: ssokolow
Potrzebuję udostępnić łącze eth0 (adres nieważny)
na wlan0 (lokalnie 192.168.0.1)

z sieci zewnętrznej eth0 dodatkowo pakiety przychodzące mają ttl=1 więc trzeba go ustawić na wyższy PRZED routowaniem.

robię tak:
(sudo su)
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t mangle -A PREROUTING -i eth0 -j TTL --ttl-set 10
(powyższe ma podbijać ttl przed routingiem wszystkiego co przychodzi na interfejs eth0)
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
(powyższe ma natować wszystko co wychodzi przez eth0 na adres który jest na interfejsie)
iptables -t mangle -A POSTROUTING -j TTL --ttl-set 128
(na wszelki wypadek niech wszystko co wychodzi z routera będzie miało ttl 128)

No niestety "niezbyt działa"
nie wiem jak to sprawdzić - w każdym razie z hosta "lokalnego" - 192.168.0.coś
pinguję 0.1 jak i zewnętrzny adres routera ... - niestety nie pinguję niczego dalej
(np. bramy routera)

czyli problem jest w natowaniu LUB w podbicu ttl'a - (pod windowsem udostępnianie działa dopiero jak mam odpalony ttlfilter) co robię źle ? ew. jak to zdiagnozować jeszcze ;-)

Odp: iptables / manipulacja ttl / nat

: 12 gru 2008, 14:03
autor: genek72
1. Sprawdz czy faktycznie pakiety stają na ruterze obserwując równocześnie interfejsy zewnetrzny i wewnetrzny
w jednym okienku
tcpdump -i eth0 not port 22 host adres (wpisz adres kompa ktory bedzie testowal z zewnatrz)
w drugim okienku
tcpdump -i eth1 not port 22 host adres (wpisz adres kompa na ktory ida pakiety w sieci lokalnej)
2. Nie jestem pewien, ale czy w preroutingu zaakceptowanie reguły przerywa proces analizy tak jak np. na forwardzie? Masz inne reguły prerutingu na pewno. Dopisz to co miałeś ale nie z -A tylko z -I wstawisz swoją regółkę na początek wówczas bo na pierwszy rzut oka jest OK, chyba, że ja też czegoś oczywistego nie dostrzegam.

EDIT:
3. Ustawianie TTLa na wyjściu nie ma sensu - raczej. Chyba, ze w konkretnym celu.

EDIT:
zapomnialem pomiedzy "port 22" i "host" trzeba dodać "i" po angielsku :)
czyli
tcpdump -i eth0 not port 22 and host adres
tcpdump -i eth1 not port 22 and host adres

(not port 22 bo jesli robimy to przez ssh i rownoczesnie nasz komp jest testujacym to zalalibysmy sie wlasna komunikacja, ktora dawalaby nam komunikaty i tak bez konca)

Odp: iptables / manipulacja ttl / nat

: 14 gru 2008, 16:48
autor: ssokolow
spoko spoko rozumiem wszystko... ;-) przetestuję w najbliższym czasie i napiszę odpowiedź ;-) tylko chwilowo nie mam na czym przetestować ;-) bo wszyscy pojechali na święta