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

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

это может быть упрощено до одной строки?

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

Я посмотрел на Google и не могу найти пример того, кто когда-либо делал это, но это будет просто некоторые из моих сценариев, если это возможно.

2 ответа2

2

Вы можете указать только одно определение правила в одном вызове 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. опция "Добавить" отличается от опции "Вставить". Добавить как в ... новое правило доходит до конца списка правил, но Insert добавляет правило в верхнюю часть списка.

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

приведет к следующим правилам:

{Rule2}
{Rule1}

где

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

приведет к

{Rule1}
{Rule2}

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .