Я хочу перенаправить ssh-трафик с порта A 2222 на порт B 22. У меня для перенаправления ipv4 установлено значение 1 на обоих интерфейсах. Тем не менее, это не работает. Что случилось?
Машина A: eth0 192.168.0.150
eth1 217.27.166.110
Машина B: eth0 192.168.0.200
iptables -L
:
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere
ACCEPT tcp -- anywhere anywhere tcp dpt:http
ACCEPT icmp -- anywhere anywhere icmp echo-request
Chain FORWARD (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- anywhere 192.168.0.200 tcp dpt:ssh state NEW,RELATED,ESTABLISHED
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
iptables -L -t nat
:
root@lbpub01:~# iptables -L -tnat
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
DNAT tcp -- anywhere 217.27.166.110 tcp dpt:2222 to:192.168.0.200:22
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- 217.27.166.110 192.168.0.200 tcp dpt:ssh
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Обновить
Мне помогли хорошие ребята из irc @ freenode, так что вот моя работа iptables-save
файл:
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A PREROUTING -p tcp -m tcp -d 217.27.166.110 --dport 2222 -j DNAT --to-destination 192.168.0.200:22
-A POSTROUTING -o eth+ -j MASQUERADE
COMMIT
*mangle
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
COMMIT
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -p tcp --dport http -j ACCEPT
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -j DROP
COMMIT