Назад в блог

Просмотр и удаление правил брандмауэра Iptables

Просмотр и удаление правил брандмауэра Iptables

Iptables — это основной межсетевой экран, который по умолчанию поставляется с большинством дистрибутивов Linux. Он отвечает за обеспечение сетевой безопасности. Он работает путем сравнения пакетов данных с набором правил, предписывая системе принимать, отклонять или перенаправлять соединение в соответствии с правилами. В этом руководстве мы покажем вам, как просматривать и удалять правила, проверять и очищать счетчики пакетов и байтов, а также очищать цепочки. Готовы? Давайте начнем!

Предварительные требования

Прежде чем перейти к руководству, давайте кое-что проясним. Все советы и приемы, продемонстрированные в этом руководстве, выполняются на отдельной виртуальной машине. Рекомендуется сделать так же, так как это исключает любую возможность превратить вашу систему в полный хаос. Только после того, как вы освоите эти процессы, вам следует пытаться применять их в реальных ситуациях.

В этом руководстве мы будем использовать Ubuntu для демонстрации всех шагов. Однако они должны работать аналогичным образом независимо от дистрибутива.

Просмотр правил

Вывод списка правил по спецификации

Сначала давайте проверим все активные правила по спецификации. Выполните следующую команду:

iptables list

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

Вывод списка конкретной цепочки

Давайте попробуем что-то более точное. Вместо вывода всех правил iptables, укажите iptables вывести правила конкретной цепочки. Например, TCP, INPUT, OUTPUT и т. д. Для этого укажите имя цепочки после флага «-S»:

list specific chain

Вывод списка правил в виде таблиц

Табличный вид полезен при сравнении различных правил. Используйте флаг «-L», чтобы указать iptables вывести все активные правила в табличном формате:

list rules as table iptables

Вывод содержит все текущие правила, отсортированные по цепочкам. Как и в предыдущем разделе, вывод списка можно отфильтровать по конкретной цепочке, например INPUT, TCP, OUTPUT и т. д. Для этого укажите цепочку после флага «-L»:

filter by chain

Давайте немного разберем вывод. В нашем случае из-за правил вывод будет выглядеть немного хаотично. Первая строка вывода объявляет имя цепочки (INPUT) с ее политикой по умолчанию (DROP). Следующая строка определяет заголовки столбцов таблицы. Остальное — это правила цепочки. Давайте посмотрим, что означают заголовки:

  • target: если пакет соответствует правилу, этот раздел определяет, какое действие должно быть выполнено. Это может быть прием пакета, сброс, логирование или отправка его в другую цепочку.
  • prot: определяет протокол, например, udp, tcp, icmp или all.
  • opt: этот столбец указывает параметры IP. Используется редко.
  • source: источник пакета (IP-адрес или подсеть). Значение может быть конкретным или anywhere.
  • destination: назначение пакета (IP-адрес или подсеть). Значение может быть конкретным или anywhere.

Если вы заметили, последний столбец не имеет заголовка. Это связано с тем, что он используется для указания параметров правила. Он будет содержать все части правила, которые не поместились в предыдущие поля. Он может содержать что угодно: от портов источника/назначения до состояния соединения пакетов и т. д.

Количество пакетов и совокупный размер

Очистка счетчиков пакетов и байтов

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

В этом примере мы будем использовать цепочку INPUT. На этот раз добавьте флаг «-v», который означает подробный режим:

package and byte counters iptables

Вы заметите, что вывод таблицы теперь включает два дополнительных поля: pkts и bytes.

Сброс счетчиков пакетов и совокупного размера

В некоторых ситуациях вам может потребоваться сбросить счетчики, которые мы демонстрировали ранее. При перезагрузке системы счетчики сбрасываются автоматически. Вы также можете принудительно сбросить их вручную. Мы будем использовать флаг «-Z» для сброса счетчиков пакетов и общего объема данных:

Reset packet counts and aggregate size

Обратите внимание, что эта команда сбросит счетчики всех цепочек. Как и в случае с другими командами, можно сбросить счетчик для конкретных цепочек. Например, следующая команда сбросит счетчики для цепочки INPUT:

reset particular counter

Можно сделать сброс счетчика более точным. Вы можете сбросить счетчик для конкретного правила в определенной цепочке. Для этого добавьте номер правила после имени цепочки:

reset specific rule

Удаление правил

Удаление правил по спецификации

Существует несколько способов удаления правил iptables. Первый способ — удаление по спецификации правила. Для удаления мы будем использовать флаг «-D», за которым следует спецификация правила:

Delete rules by specification

Если вы уже добавляли правила iptables ранее, вы заметите сходство. Единственное, что здесь изменилось, — это флаг «-D» вместо флага «-A».

Удаление правил по цепочке и номеру

Удаление правил по их спецификации требует немного больше усилий, верно? Что если бы мы могли удалять их, не запоминая спецификацию правила? Давайте удалим правила по их цепочке и номеру! По сравнению с первым методом (удаление по спецификации), этот относительно проще, так как вам не нужно иметь под рукой всю спецификацию.

Для этого метода требуются цепочка и номер строки целевого правила. Где взять номер строки? Выполните следующую команду, чтобы определить его:

Delete rules by chain and number - get line number

Вы получите большой вывод со всеми правилами и номерами их строк. Чтобы сузить вывод, укажите имя цепочки после флага «-L»:

Delete rules by chain and number - filter

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

delete iptables rule

Очистка цепочек

Что такое очистка цепочки в случае iptables? Это процесс удаления всех правил в определенной цепочке. Если вам нужно массово удалить правила, вы можете использовать этот метод. Перед очисткой цепочки мы настоятельно рекомендуем сделать резервную копию существующих правил с помощью iptables-save. Это встроенный инструмент iptables, который выведет все текущие цепочки и правила. Вывод можно экспортировать в текстовый файл:

iptables rules export

Очистка одной цепочки

Давайте посмотрим, как очистить цепочку. Используйте флаг «-F», за которым следует целевая цепочка:

flush a single chain

Очистка всех цепочек

Прежде чем очищать все цепочки, убедитесь, что вы понимаете, что делаете. Это действие удалит все правила брандмауэра iptables. Вам следует заранее создать резервную копию правил iptables.

Готовы? Очистите все цепочки iptables, выполнив следующую команду:

flush all changes

Очистка правил, удаление цепочек и разрешение всего трафика

Выполнение шагов, описанных в этом разделе, фактически отключит брандмауэр, разрешив неограниченный сетевой трафик. Как и в предыдущем разделе, перед продолжением мы рекомендуем сделать резервную копию iptables. Сначала мы изменим политику по умолчанию для каждой из встроенных цепочек на ACCEPT. Это необходимо для того, чтобы iptables не заблокировал вам доступ к серверу по SSH:

Flush rules, delete chains and accept all

Теперь очистите таблицы nat и mangle:

 flush nat and mangle tables

 mangle tables

Очистите все цепочки и удалите все пользовательские цепочки:

Flush all the chains

 delete all the non-default chains

Далее давайте проверим результат:

iptables result

Заключение

Iptables — это мощный брандмауэр. Надеемся, это руководство помогло вам узнать, как выводить список и удалять правила брандмауэра iptables. И не забудьте потренироваться перед тем, как применять их в реальных условиях.

Приятной работы!

author

Akshay Nagpal

Автор · CloudSigma

Preslav Dobrev — креативный дизайнер в CloudSigma, сосредоточенный на формировании последовательного корпоративного образа с помощью традиционных и инновационных маркетинговых каналов. Он умело сочетает художественное видение со стратегическим маркетингом, создавая убедительные истории бренда.

Комментарии

Комментариев пока нет. Будьте первым.