iptables -A добавить одно или несколько правил

iptables -A добавить одно или несколько правил

Сегодня я просматривал страницу руководства iptables и заметил, что описание -A гласит: «Добавить одинили большеправила до конца выбранной цепочки». Означает ли это, что если у меня есть:

iptables -A INPUT {...rule1...}
iptables -A INPUT {...rule2...}

можно ли упростить до одной строки?

iptables -A INPUT {...rule1; rule2...}

Я поискал в Google и не нашел ни одного примера, чтобы кто-то делал это, но если возможно, я бы просто использовал некоторые из моих скриптов.

решение1

В одном вызове можно указать только одно определение правила iptables -A.

Однако если вы используете адрес, например www.example.com, который преобразуется в несколько адресов, то добавляется несколько правил, по одному для каждого адреса.

Например: (используются поддельные IP-адреса...):

$ host www.example.com
www.example.com has address 10.1.2.3
www.example.com has address 10.1.2.4
$ sudo iptables -A INPUT -s www.example.com -j ACCEPT
$ sudo iptables -L INPUT -vn
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
 208K  250M ACCEPT     all  --  *      *       192.168.0.0/16       0.0.0.0/0           
    0     0 ACCEPT     all  --  *      *       10.1.2.3             0.0.0.0/0
    0     0 ACCEPT     all  --  *      *       10.1.2.4             0.0.0.0/0      

Итак, теперь вы вставили более одного правила с помощью одного iptables -Aвызова.

Согласен, что это не совсем очевидно из описания на странице руководства.

решение2

Правило № 1 на вызов iptables. Параметр «Добавить» отличается от параметра «Вставить». «Добавить» означает... новое правило помещается в конец списка правил, а «Вставить» добавляет правило в начало списка.

iptables -I INPUT {Rule1}
iptables -I INPUT {Rule2}

в результате правила будут выглядеть следующим образом:

{Rule2}
{Rule1}

где

iptables -A INPUT {Rule1}
iptables -A INPUT {Rule2}

приведет к

{Rule1}
{Rule2}

Связанный контент