Situatie
Daca vreti sa publicati un server web pe un server dintr-o retea privata unde se foloseste NAT, atunci va trebui sa folositi port forwarding.
Solutie
Pasi de urmat
Port forwarding este manipulat de chain-ul PREROUTING al tabelei nat. Ca si in mascaradare, modulul iptables_nat trebuie sa fie incarcat si rutarea sa fie activata ca port forwarding sa functioneze.
In iptables trebuie permisa rutarea cu ajutorul chain-ului FORWARD; aceasta include toate conexiunile NEW inbound din Internet care se potrivesc cu portul pentru port forwarding plus toate pachetele care tin de conexiunea deja ESTABLISHED in ambele directii.
#—————————————————————
# Incarca modulul NAT
#—————————————————————
modprobe iptable_nat
#———————
#Definirea interfetei externe si al IP-ului extern
external_int=”eth0″
external_ip=”Treceti aici adresa IP externa”
#———————
# Activeaza rutarea pachetelor prin modificarea fisierului ip_forward din /proc
#———————
echo 1 > /proc/sys/net/ipv4/ip_forward
#———————
# Permite port forwarding pentru traficul destinat portului 80 de pe firewall
# sa fie redirectionat catre portul 8080 de pe serverul cu adresa IP 192.168.1.200
# – Interfata eth0 este catre internet
# – Interfata eth1 este catre reteaua interna
#———————
iptables -t nat -A PREROUTING -p tcp -i eth0 -d $external_ip \
-dport 80 -sport 1024:65535 -j DNAT -to 192.168.1.200:8080
#———————
# Dupa DNAT, pachetele sunt rutate prin chain-ul FORWARD al tabelei FILTER
#———————
iptables -A FORWARD -p tcp -i eth0 -o eth1 -d 192.168.1.200 \
-dport 8080 -sport 1024:65535 -m state -state NEW -j ACCEPT
iptables -A FORWARD -t filter -o eth0 -m state \
-state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -t filter -i eth0 -m state \
-state ESTABLISHED,RELATED -j ACCEPT
Leave A Comment?