Как удалить правило iptables

Основная работа 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. Мы научились удалять все команды из текущей таблицы, из конкретной цепочки правил в указанной таблице, из указанной таблицы, научились удалять команды под указанными номерами и удалять команды с указанным действием над пакетами данных.

3 комментария

  1. Аватар NewsMan 15 февраля, 2020 Ответить
  2. Аватар elise 28 июля, 2020 Ответить

Ответить

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: