Как я могу удалить правило iptables?

Я хотел бы временно добавить следующее правило iptables видеть при разрешении входящего трафика на порте 5000, я смогу соединиться со своим контейнером докера и веб-сервером, работающим в нем:

$ sudo iptables -A INPUT -p tcp --dport 5000 -m state --state NEW -j ACCEPT

Затем если бы эта попытка неудачна, я удалил бы вышеупомянутое правило, но я не знаю, как сделать это.
Я использую iptables-persistent и, как предложено dokku документацией, я не использую ufw.

1
задан 14 February 2020 в 19:17

1 ответ

Добавьте по сравнению со вставкой

Прежде чем я отвечу на вопрос, давайте посмотрим на структуру команды:

iptables -A INPUT 'the rule'

Это означает iptables -Append в конце INPUT объедините следующее правило в цепочку. Другой распространенный способ добавить правило к iptables опцией вставки:

iptables -I INPUT 'the rule'

Это означает iptables -Iвставьте в начале INPUT объедините следующее правило в цепочку. Или когда мы хотим вставить правило в определенном месте, например, перед некоторым существующим правилом, которое является номером 3 в цепочке:

iptables -I INPUT 3 'the rule'


Числа правил

Числа правил играют значительную роль в iptables (ipchain). Как иллюстрация - скажем, у нас есть следующая структура правил:

1. Deny all UDP 
2. Allow UDP on port 456

UDP не должен быть позволен на порте 456, потому что он уже отклонен для всех портов, таким образом, структура должна быть:

1. Allow UDP on port 456
2. Deny all (rest) UDP 

Если Вы хотите считать структуру цепочки INPUT использование:

sudo iptables -S INPUT

Если необходимо получить числа правил, то можно использовать команду:

sudo iptables -L INPUT -n --line-numbers # you can omit '-n'


Ответ

Для удаления некоторого правила из известной цепочки можно использовать команду:

iptables -D CHAIN_NAME 'the rule'

Это означает iptables -Dэлита от CHAIN_NAME следующее правило. Или в Вашем случае команда должна быть:

sudo iptables -D INPUT -p tcp --dport 5000 -m state --state NEW -j ACCEPT

Кроме того, можно удалить правило его числом в цепочке, скажем, это - номер 3:

sudo iptables -D INPUT 3


Как заключение

Я совместно использую мнение что, брандмауэр инструмента Uncomplicated - ufw, это - фронтенд iptables, - иногда может делать вещи намного более сложными, как они actally :)

Вот хорошая статья, при условии DigitalOcean, который описывает то же как этот ответ, но более подробно: Как Перечислить и Удалить Правила Брандмауэра Iptables.

2
ответ дан 20 February 2020 в 22:53

Другие вопросы по тегам:

Похожие вопросы: