Portál AbcLinuxu, 5. května 2025 21:48
iptables -t nat -I PREROUTING 1 -i eth0 -d 84.x.y.z -j DNAT --to-destination 192.168.1.7
by melo zajistit poslani packetu z vnitrni site (eth0) jdoucich na mou vnejsi adresu (84.x.y.z) na dotycny webserver uvnitr (92.168.1.7)
Ale uz nevim, jak udelat, aby tyto packety zaroven mely prelozenou zdrojovou adresu na tu vnejsi ...
Mohl by mi nekdo poradit ten chybejici krok? Dekuji predem.
Řešení dotazu:
Ale uz nevim, jak udelat, aby tyto packety zaroven mely prelozenou zdrojovou adresu na tu vnejsi
S vnější by to nejspíš fungovalo také, ale praktičtější je použít vnitřní. Mělo by to vypadat asi takto:
iptables -t nat -A POSTROUTING -i eth0 -s $INTNR -d 192.168.1.7 -j SNAT --to $INTIP
kde INTNR
je rozsah vnitřní sítě (např. 192.168.1.0/24
) a INTIP
vnitřní adresa toho stroje, na kterém to překládáte (např. 192.168.1.1
). Je to celkem jednoduché, jen je potřeba si uvědomit, že POSTROUTING
se aplikuje až po PREROUTING
, takže v něm už je cílová adresa přeložená.
-t nat -A PREROUTING -d 84.x.y.z -i eth0 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.1.7
-t nat -A POSTROUTING -s 192.168.1.0/255.255.255.128 -d 192.168.1.7 -j SNAT --to-source 84.x.y.z
-A FORWARD -i eth0 -o eth0 -p tcp -m tcp --sport 80 -j ACCEPT
-A FORWARD -i eth0 -o eth0 -p tcp -m tcp --dport 80 -j ACCEPT
-A FORWARD -i eth1 -o eth0 -p tcp -m tcp --dport 80 -j ACCEPT # pristup zvenku
HOST gitserver
User git
IdentityFile ~/.ssh/git.key
kde git.key je soukroma cast klice
Wrtak ma nastaveny firewall takto:
# Gitserver
iptables -t nat -A PREROUTING -i $wan -p tcp -m tcp --dport 1212 -j DNAT --to-destination $gitserver:22 -m comment --comment "1212 -> gitserver"
iptables -A FORWARD -i $wan -d $gitserver -p tcp -m tcp --dport 22 -j ACCEPT -m comment --comment "1212 -> gitserver"
# zevnitr
iptables -t nat -A PREROUTING -d $Wrtak -p tcp -m tcp --dport 1212 -j DNAT --to-destination $gitserver:22 -m comment --comment "(zevnitr)1212 -> gitserver"
iptables -t nat -A POSTROUTING -s $lan/16 -d $gitserver -p tcp -m tcp -j SNAT --to-source $Wrtak -m comment --comment "(zevnitr)1212 -> gitserver"
iptables -A FORWARD -i br-lan1 -o br-lan1 -p tcp -m tcp --dport 22 -j ACCEPT
iptables -A FORWARD -i br-lan1 -o br-lan1 -p tcp -m tcp --sport 22 -j ACCEPT
iptables -A FORWARD -i br-lan1 -o br-lan1 -p tcp -m tcp --dport 1212 -j ACCEPT
iptables -A FORWARD -i br-lan1 -o br-lan1 -p tcp -m tcp --sport 1212 -j ACCEPT
url = ssh://git@gitserver:1212/~/projectname
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.