Есть статичный IP ( static IP настроен на роутере D-link, на нём DMZ указывает на локальную машину 192.168.7.177), получается клиенты вводят внешний IP b идут через (сначала DLINK DMZ статичный IP ) -> на машину: 192.168.7.177
Задача: те кто подключаются на порт:55 машины 192.168.7.177 -> должны попадать на 192.168.7.222: порт 22
вот почему мои iptables не работают:
#!/bin/bash
echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD
iptables -t nat -F
iptables -t nat -A PREROUTING -p tcp --dport 55 -j DNAT --to-destination 192.168.7.222:22
iptables -A FORWARD -d 192.168.7.222 -p tcp --dport 22 -m state --state NEW -j ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.7.0/24 -d 192.168.7.222 -p tcp --dport 22 -j SNAT --to-source 192.168.7.177
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j ACCEPT
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
iptables -A INPUT -p icmp -j ACCEPT
iptables -A OUTPUT -p icmp -j ACCEPT
iptables -A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p tcp -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p udp -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p udp -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
Пользователь решил продолжить мысль 30 Декабря 2009, 15:00:34:
iptables -t filter -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t filter -A FORWARD -p tcp -d 192.168.7.222 --dport 22 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp -d 192.168.7.177 --dport 55 -j DNAT --to-destination 192.168.7.222:22
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
заработало