Я хотел бы временно добавить следующее правило iptables видеть при разрешении входящего трафика на порте 5000, я смогу соединиться со своим контейнером докера и веб-сервером, работающим в нем:
$ sudo iptables -A INPUT -p tcp --dport 5000 -m state --state NEW -j ACCEPT
Затем если бы эта попытка неудачна, я удалил бы вышеупомянутое правило, но я не знаю, как сделать это.
Я использую iptables-persistent
и, как предложено dokku документацией, я не использую ufw
.
Добавьте по сравнению со вставкой
Прежде чем я отвечу на вопрос, давайте посмотрим на структуру команды:
iptables -A INPUT 'the rule'
Это означает iptables
-A
ppend в конце 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.