Назад | Перейти на главную страницу

Установить общие правила iptables?

Это может быть действительно глупый вопрос, но как вы можете открыть порт на нескольких интерфейсах, не определяя интерфейсы? Например, как открыть порт 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 правило.