Это может быть действительно глупый вопрос, но как вы можете открыть порт на нескольких интерфейсах, не определяя интерфейсы? Например, как открыть порт 22 на всех интерфейсах?
На моей машине есть несколько динамических интерфейсов, которые могут быть доступны или недоступны, поэтому я должен установить «общие» правила.
Этот код у меня не работает, но я не могу понять, почему:
# My default policy is to drop the input.
# The other policies are required like that.
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -P FORWARD ACCEPT
$IPTABLES -t nat -P POSTROUTING ACCEPT
$IPTABLES -t nat -P PREROUTING ACCEPT
$IPTABLES -t mangle -P OUTPUT ACCEPT
$IPTABLES -t mangle -P PREROUTING ACCEPT
#Open port 22 on all interfaces ?
$IPTABLES -A INPUT -p tcp --dport 22 -j ACCEPT
Очевидно, что-то не так с последней строкой ... но я не вижу этого?
Изменить: iptables -nvL
root@machine:/etc/rc.d# iptables -nvL
Chain INPUT (policy DROP 22 packets, 1378 bytes)
pkts bytes target prot opt in out source destination
18 1484 ACCEPT all -- * * 192.168.0.0/24 192.168.0.1
0 0 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
4 236 ACCEPT all -- eth0 * 0.0.0.0/0 0.0.0.0/0
0 0 DROP all -- eth1 * 0.0.0.0/0 0.0.0.0/0
0 0 ACCEPT all -- 192.168.0.1 * 0.0.0.0/0 0.0.0.0/0
24 1362 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:53
0 0 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:53
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
0 0 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:80
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:443
0 0 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:443
Chain FORWARD (policy ACCEPT 490 packets, 194K bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 49 packets, 35544 bytes)
pkts bytes target prot opt in out source destination
В соответствии с вашим iptables -nvL
вывод, у вас есть правило отбрасывать весь трафик, входящий в eth1. Вероятно, это ваша проблема.
Правило, которое вы пытаетесь добавить, использует -A INPUT
, поэтому он добавляет правило в конец цепочки. Учитывая, что в вашем -nvL
вывод, которого нет в вашем скрипте, я предполагаю, что у вас есть некоторые другие правила, которые сначала применяются в другом месте.
Решение вот чтобы изменить -A INPUT
к -I INPUT
который добавит правило в начале, перед DROP
правило.