Основная работа c межсетевым экраном Netfilter с помощью утилиты iptables состоит в удалении неверных или неиспользуемых правил и добавлении в цепочки новых правил. Их выполнение осуществляется последовательно.
В этой статье мы рассмотрим как удалить правило iptables с помощью различных команд, например, по его номеру или по действию, которое оно делает. Если вы не знакомы с командами просмотра правил Netfilter рекомендуем вам прочитать статью как просмотреть правила iptables.
Содержание статьи
Как удалить правило iptables
В рамках статьи нам придётся рассмотреть три варианта команды удаления:
sudo iptables [-t таблица] -D цепочка спецификации_правила
sudo iptables [-t таблица] -D цепочка номер_правила
sudo iptables [-t таблица] -F [цепочка]
Команды для протокола IPv6 будет абсолютно аналогичны:
sudo ip6tables [-t таблица] -D цепочка спецификации_правила
sudo ip6tables [-t таблица] -D цепочка номер_правила
sudo ip6tables [-t таблица] -F [цепочка]
Рассмотрим более подробно все варианты команд и их практическое применение. В данной статье для настройки firewall Netfilter используется операционная система Debian 10.2.
1. Как удалить правило по номеру
Чтобы удалить правило по номеру iptables будет использоваться такая команда:
sudo iptables [-t таблица] -D цепочка номер_правила
Например:
sudo iptables -t filter -D INPUT 2
Данная команда удалит из таблицы filter цепочки INPUT правила с номерами 2. Нумерация правил начинается с 1.

2. Как удалить правило по действию
Удалить правило iptables по выполняемому над пакетами действию можно с помощью следующей команды:
sudo iptables [-t таблица] -D цепочка спецификации_правила
В спецификациях правила необходимо указать IP адрес отправителя или другие параметры правила, однозначно его определяющие (порт, IP адрес назначения, протокол и др.) и выполняемое действие, например, -j ACCEPT.
Например:
sudo iptables -t filter -D INPUT -s 192.168.3.0/24 -j ACCEPT
Данная команда удалит из таблицы filter цепочки INPUT правило с заданным отправителем 192.168.3.0/24 и действием над пакетами DROP.

3. Как удалить все правила из таблицы
Следует заметить, что существует возможность удалить правила текущей таблицы из всех цепочек правил с помощью опции -F (--flush). По умолчанию текущей таблицей является таблица filter. Поэтому, чтобы удалить все правила таблицы по умолчанию надо использовать команду:
sudo iptables -F

Ещё можно указать таблицу из которой вы хотите выполнить удаление правила iptables:
sudo iptables -t таблица -F
Например:
sudo iptables -t nat -F
Данная команда удалит все правила из всех цепочек таблицы nat.

4. Как удалить все правила в цепочке
Для того, чтобы удаление правил iptables из конкретной цепочки в заданной таблице выполняется такой командой:
sudo iptables -t таблица -F цепочка_правил
Например:
sudo iptables -t nat -F PREROUTING
Данная команда удалит все правила из таблицы nat в цепочке PREROUTING.

Выводы
В данной статье мы рассмотрели различные варианты удаления команд или целых блоков команд из цепочек и таблиц межсетевого экрана Netfilter с помощью утилиты iptables. Мы научились удалять все команды из текущей таблицы, из конкретной цепочки правил в указанной таблице, из указанной таблицы, научились удалять команды под указанными номерами и удалять команды с указанным действием над пакетами данных.
Anubis – это максимально легкое open-source решение, созданное специально для защиты небольших веб-ресурсов от бесконечного потока запросов от ботов и AI парсеров. Этот инструмент можно считать "ядерным вариантом", потому что он заставляет ботов выполнять вычисления похожие на майнинг криптовалюты. Но это неплохая альтернатива для тех, кто не может или не хочет использовать Cloudflare. Посмотреть детали





5 звезд однозначно! Спасибо за помощь!
5 звезд
Очень интересная статья
А там не опечатка, где разбирается правило на удаление по действию:
`sudo iptables -t filter -D INPUT -s 192.168.3.0/24 -j ACCEPT`
> Данная команда удалит из таблицы filter цепочки INPUT правило с заданным отправителем 192.168.3.0/24 и действием над пакетами DROP.
Она ведь удалит пакеты с действием ACCEPT, верно?
а как удалить правило по действию (не по номеру) содержащее комментарий (-m comment) но без учёта содержания комментария ?