Portál AbcLinuxu, 10. května 2025 02:31
iptables -t nat -A PREROUTING -i $vnutorny_iface -d $verejna_ip -p tcp --dport 25 -j DNAT --to 10.0.0.2:25
iptables -t NAT -A PREROUTING -p tcp -d verejna_ip --dport 25 -j DNAT --to-destionation 10.0.0.2 iptables -t nat -A POSTROUTING -p tcp -s vnitrni_sit -d 10.0.0.0.2 --dport 25 -j SNAT --to-source vnitrni_ipverejna_ip je adresa na vnejsim rozhrani, vnitrni_ip na vnitrnim, vnitrni_sit je rozsah vnitrni site
*nat
:PREROUTING ACCEPT [237:21154]
:POSTROUTING ACCEPT [63:5028]
:OUTPUT ACCEPT [63:5028]
-A PREROUTING -i eth0 -p tcp -m tcp --dport 443 -j DNAT --to-destination 10.0.0.3:443
-A PREROUTING -i eth0 -p tcp -m tcp --dport 444 -j DNAT --to-destination 10.0.0.3:444
-A PREROUTING -i eth0 -p tcp -m tcp --dport 25 -j DNAT --to-destination 10.0.0.3:25
-A PREROUTING -i eth0 -p tcp -m tcp --dport 110 -j DNAT --to-destination 10.0.0.3:110
-A PREROUTING -i eth0 -p tcp -m tcp --dport 143 -j DNAT --to-destination 10.0.0.3:143
-A PREROUTING -p tcp -m tcp -i eth1 -d 82.117.133.18 --dport 110 -j DNAT --to-destination 10.0.0.3:110
-A POSTROUTING -p tcp -m tcp -s 10.0.0.0/255.0.0.0 -o eth1 -d 10.0.0.3 --dport 110 -j SNAT --to-source 10.0.0.3:110
-A POSTROUTING -s 10.0.0.0/255.0.0.0 -o eth0 -j SNAT --to-source 82.117.133.18
COMMIT
*filter
:INPUT DROP [30:2365]
:FORWARD ACCEPT [29066:27524742]
:OUTPUT ACCEPT [11730:6985578]
-A INPUT -i lo -j ACCEPT
-A INPUT -i eth1 -j ACCEPT
-A INPUT -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 22 -m state --state NEW -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 80 -m state --state NEW -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 3128 -m state --state NEW -j ACCEPT
-A INPUT -i eth0 -p icmp -j ACCEPT
COMMIT
DNAT
. Server se při odpovědi nebude pokoušet komunikovat přímo s klientem, ale půjde zase přes router, který tím pádem dokáže udělat přemapování zpět.
Mimochodem, v těch pravidlech máte podle mne chybu, v
-A POSTROUTING -p tcp -m tcp -s 10.0.0.0/255.0.0.0 -o eth1 -d 10.0.0.3 --dport 110 -j SNAT --to-source 10.0.0.3:110by mělo být
-o eth0
, ne? Postrouting se aplikuje až po té, co se podle routovací tabulky rozhodlo, kam má paket přijít, a ten se má vrátit na eth0
, do vnitřní sítě.
ip route add $verejna_ip_adresa_mailserveru dev $vnitrni_rozhrani_routeruNa mailserver:
ip addr add $verejna_ip_adresa_mailserveru peer $privatni_ip_adresa_routeru dev eth0 ip route add default via $privatni_ip_adresa_routeru
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.