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

iptables: удалить все правила по интерфейсу

Есть ли способ удалить все правила iptables, относящиеся к данному интерфейсу? Я не вижу для этого параметра командной строки, может быть, для этого есть сокращенный сценарий bash?

Некоторые возможности, в зависимости от ваших настроек.

Если вы используете довольно простую структуру цепочек и не допускаете вложенности и последствий, используйте iptables-save чтобы сохранить настройки брандмауэра. Удалите все строки с помощью -i $ если или -o $ если, в зависимости от ваших потребностей. Используйте grep или что-то в этом роде. Сохраните этот набор правил, сравните его с вашим первым сохраненным набором правил и, если все в порядке, загрузите его с помощью iptables-восстановление.

В качестве альтернативы - соберите свои правила в цепочки, специфичные для интерфейса. Таким образом вы можете легко перенести или удалить интерфейсы. И вы собираетесь ускорить работу вашего брандмауэра!

iptables -N fw-eth1
iptables -A FORWARD -o eth1 -j fw-eth1
iptables -A fw-eth1 --your-rules-here

Добавьте правило для приема всего трафика на одном интерфейсе: iptables -A INPUT -i eth0 -j ACCEPT ; iptables -A OUTPUT -o eth0 -j ACCEPT Разрешен весь трафик от или к этому интерфейсу.

Чтобы удалить все правила брандмауэра (сомневаюсь, что читаю ваш текст), iptables -P INPUT ACCEPT ; iptables -P OUTPUT ACCEPT ; iptables -P FORWARD ACCEPT ; iptables -X : весь трафик разрешен.