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

Часто бывает, при создании нового правила в сетевом экране Линукс блокируется вся локальная сеть или просто перестает работать интернет. В этом случае крайне необходимо удалить ошибочное правило.

Утилита командной строки iptables служит для конфигурирования брандмауэра Netfilter (фаервол в устройствах с операционной системой Linux).  Если откинуть все лишнее, то данная утилита состоит из 3 частей: таблица, цепочки и правила. Iptables играет чуть ли не главенствующую роль в вопросах сетевой безопасности программного обеспечения Linux.

Удаление

СтенаДля начала посмотрим какие записи в iptables работают.

# iptables -S

Обратите особое внимание на следующее пояснение: символ «#» в приведенном примере означает, что команда должна быть выполнена непосредственно от имени root или через команду sudo (так принято называть суперпользователя из «мира» Linux). В ином случае реализовать задуманную идею на практике не получится. Обязательно соблюдайте это правило для корректности предпринятых мер.

Смотрим записи Очистим все записи фаервола для протокола tcp/ip 4 версии. Для этого будем использовать аргумент "-F".

# iptables -F

Тоже самое будет для протокола 6 версии.

# ip6tables -F

Если интересует удаление правил из другой таблицы (не текущей), тогда пропишите её наименование в середине рассматриваемой команды. Это может выглядеть следующим образом (как пример):

# iptables -t nat -F

Все правила, которые наличествуют в цепочках таблицы «nat» будут удалены.

Хотите удалить правила из определенной цепи в указанной таблице? Найдите наименование цепочки и пропишите его в команде. Давайте рассмотрим на конкретном примере:

# iptables -t nat -F PREROUTING

По номеру в цепочке

Если пользователю известна информация относительно наименования цепочки и номера строки, можно удалить правила iptables альтернативным и не менее тривиальным способом.

Прежде всего необходимо узнать номера цепочек. Для этого будем использовать опцию «line-numbers».

# iptables -L --line-numbers

Узнаем номер записиУзнаем номера для nat.

# iptables -L -t nat --line-numbers

Для удаления необходимо указать аргумент "-D" название цепочки и номер правила.

Для таблицы INPUT.

# iptables -D INPUT номер строки

FORWARD.

# iptables -D FORWARD номер строки

OUTPUT.

# iptables -D OUTPUT номер строки

Чтобы очистить запись из nat таблицы, необходимы добавить опцию "-t nat".

Для примера очистим запись из таблицы nat в цепочке PREROUTING.

# iptables -t nat -D PREROUTING номер строки

По спецификации

Запустите команду iptables с приставкой -D. Эта опция позволит пользователю осуществить задуманное. После приставки нужно указать спецификацию правила. Стандартная команда «iptables -S» позволит удалить правила упомянутым способом.

А теперь давайте рассмотрим на конкретном примере. Предположим, у вас есть потребность убрать правило, которое отвечает за сброс некорректных входящих пакетов. Для этого необходимо ввести следующую команду:

iptables -D INPUT -m conntrack --ctstate INVALID -j DROP

Важно: опция -A в данной команде должна быть исключена по умолчанию, поскольку она задает положение правила в момент его сотворения.

В цепочке fail2ban

Представим такую ситуацию. На сервере Линукс для защиты ssh соединений, был настроен сервис - fail2ban. Он работает по принципу, если пользователь вводит неправильно пароль несколько раз, то сервис создает автоматическое правило в фаерволе, которые блокирует все соединения с ip-адреса источника, то есть IP пользователя.

Таким образом, по истечении времени сам пользователь звонит и говорит, что не может подключиться к серверу по ssh.

Чтобы разрешить подключения по ssh с конкретного IP-адреса, необходимо узнать внешний IP у пользователя.

Затем смотрим список всех правил.

# iptables -L --line-numbers

ДирективаДалее убираем директиву.

# iptables -D f2b-sshd номер строки

Заключение

После прочтения данной статьи вы знаете, за что отвечает утилита iptables, и какие существуют варианты удаления её правил. Для лучшего закрепления материала еще раз напомним пройденное другими словами: утилита iptables – это один из главных инструментов системного администратора. Она применяется для настройки правил фильтрации пакетов, которые установлены на устройстве с операционной системой Linux.

На наглядных примерах мы разобрали несложный процесс удаления правил всеми доступными методами. Внимательно следуя данному руководству, вы сумеете внести все необходимые правки в работу системы вашего устройства. Это не составит особого труда и не займет у вас много времени.

Команда iptables с сопутствующими опциями вносит определенные коррективы в правила. Любые изменения нужно сохранять вручную, чтобы система переключилась на нововведения после очередного перезапуска. Если не следовать данным рекомендациям, устройство будет работать без изменений при последующем сеансе.