Portál AbcLinuxu, 13. května 2025 22:14
net/ipv4/ip_forward=1 v /etc/sysctl.conf (cat /proc/sys/net/ipv4/ip_forward 1)
iptables -t nat -A PREROUTING -i eth1 -j ACCEPT -d 192.168.1.0/24
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE -s 192.168.1.0/24
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.1
10.2.0.0/16 dev eth1 proto kernel scope link src 10.2.1.75
default via 10.2.0.1 dev eth1
search ktk.lan
nameserver 217.195.160.1
na PC2 bych pripadne dopsal 192.168.1.1rcpdump
em zjistit, kam až se dostanou pakety, když se pokoušíte "dostat ven".
Divné je dávat do PREROUTING
-j ACCEPT
, pravidlo s MASQUERADE
by IMHO mělo stačit. Jaká máte pravidla pro chain FORWARD
?
rcpdump
-> tcpdump
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 192.168.1.0/24
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
MASQUERADE all -- 192.168.1.0/24 0.0.0.0/0
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
tcpdump
em (tcpdump -ni ethX
), ono je docela náročné si jen podle samotných iptables
pravidel představit, co všechno firewallem projde a co ne.
iptables
, tak tam firewall je -t nat
není firewall v pravém smyslu slova. FORWARD
konkrétně je chain, kterým prochází veškerá komunikace která nesměřuje z nebo na lokální stroj.
Dopingnete se někam dál než na eth1
? Podle toho mála, co zatím víme, bych tipoval, že odchozí pakety jsou OK, ale někde se ztratí příchozí. Jde o to, zda se ztratí ještě před vaším routerem (tj. na eth1
nepřijde žádná odpověď), pak by se zřejmě chybně přepisovaly hlavičky v paketu. Nebo je možné, že odpověď dorazí na eth1
, ale router neví, co s ním dál.
Zkuste pustit na routeru tcpdump -ni eth0 'proto \tcp and port 80'
a stáhnout z notebooku wgetem titulní stránku Seznamu: wget 212.80.76.3
. Pak to samé udělejte i pro eth1
v tcpdump
. Pokud se v obou případech stránka stáhne (wget napíše něco jako `index.html' saved
), je problém v nastavení DNS. Pokud se nestáhne, dejte sem do diskuze prvních třeba 20 řádků z výpisu každého tcpdump
u, podle toho poznáme, kde se pakety ztrácí.
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE -s 192.168.1.0/24
iptables -A FORWARD -i ${IFACE} -s 192.168.0.0/255.255.0.0 -j ACCEPT
iptables -A FORWARD -i ${OFACE} -d 192.168.0.0/255.255.0.0 -j ACCEPT
iptables -t nat -A POSTROUTING -o ${OFACE} -j MASQUERADE
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 192.168.1.0/24
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
MASQUERADE all -- 192.168.1.0/24 0.0.0.0/0
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.