У меня довольно стандартная установка Ubuntu, и я хочу добавить порт вперед.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
#Redirect 1731 to 8443
-t nat -A PREROUTING -i eth0 -p tcp --dport 1731 -j REDIRECT --to-port 8443
#Allow 443 and 80
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
Однако я продолжаю получать сообщение об ошибке:
iptables: Applying firewall rules: iptables-restore v1.4.7: Line 13 seems to have a -t table option.
Я подтвердил, что на этом устройстве включена пересылка ip:
cat /proc/sys/net/ipv4/ip_forward
1
I'm конечно, это что-то простое в форматировании iptables, которое мне не хватает. Мысли?
Строка, начинающаяся с -t nat
, не должна находиться под таблицей фильтров, как указано в первой строке.
Измените файл следующим образом:
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
#Allow 443 and 80
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
#Redirect 1731 to 8443
-A PREROUTING -i eth0 -p tcp --dport 1731 -j REDIRECT --to-port 8443
COMMIT