1

Я пытаюсь выяснить значение правил iptables в Официальном руководстве по настройке Ubuntu Router. Например, *nat . Я не могу найти в Интернете, где есть *nat для iptables .

*nat
-A POSTROUTING -o "$EXTIF" -j MASQUERADE
COMMIT
*filter
:INPUT ACCEPT [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
-A FORWARD -i "$EXTIF" -o "$INTIF" -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT 
-A FORWARD -i "$INTIF" -o "$EXTIF" -j ACCEPT
-A FORWARD -j LOG
COMMIT

1 ответ1

1

Я считаю, что это селектор для имени таблицы. * Используется вместо опции -t для варианта командной строки команды, при этом выбирается таблица. Например, обычно таблица выбирается путем указания -t <tablename> , поэтому в этом случае -t nat , чтобы выбрать таблицу nat :

iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

В качестве примера, который вы предоставили, используется перенаправление ввода из документа here в iptables-restore - обратите внимание на <<EOF ... EOF и так вместо параметра командной строки (-t), вместо этого используются отдельные строки, например:

iptables-restore <<-EOF
*nat
-A POSTROUTING -o "$EXTIF" -j MASQUERADE
COMMIT
EOF

Можно утверждать, что, поскольку -A все еще находится в этом документе, почему -t нет? Я не знаю ответа на этот вопрос, надеюсь, кто-то еще знает.

Аналогично, после редактирования таблицы *nat таблица COMMIT выбирается, обрабатывается таблица *filter и затем редактируется команда COMMIT .

iptables-restore <<-EOF
*filter
:INPUT ACCEPT [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
-A FORWARD -i "$EXTIF" -o "$INTIF" -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT 
-A FORWARD -i "$INTIF" -o "$EXTIF" -j ACCEPT
-A FORWARD -j LOG
COMMIT
EOF

Если вы ищете учебное пособие, вы можете найти этот учебник NAT - преобразование сетевых адресов полезным.

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