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

В данной статье мы рассмотрим как посмотреть правила iptables с помощью команды iptables -L, а также основные её опции и параметры. Данная команда выводит в командную оболочку bash в структурированном виде все цепочки правил firewall Netfilter. Информация предоставляется для изучения уже настроенных возможностей межсетевого экрана и последующей их модификации с помощью других команд. Таблицы правил выводятся в текстовом режиме.

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

Как посмотреть правила iptables

В данном случае для демонстрации возможностей iptables используется операционная система Debian 10.2. Для возможности выполнения команды iptables необходимо, чтобы пользователю были предоставлены привилегии суперпользователя с помощью команды sudo. В связи с этим все команды будут выглядеть как sudo iptables [параметры] или sudo ip6tables [параметры] для IPv6.

Примечание: Для того, чтобы пользователю было позволено предоставлять привилегии суперпользователя, этого пользователя надо добавить в файл sudoers с помощью специального редактора visudo. Посмотрим на скриншот с результатом выполнения команды:

iptables -L

Существуют две версии утилиты для настройки брандмауэра Linux: iptables и ip6tables. Iptables используется для протокола IPv4, а ip6tables для протокола IPv6. Соответственно команда вывести все цепочки правил для межсетевого экрана имеет два варианта синтаксиса.

Для протокола IPv4:

sudo iptables -L

Для протокола IPv6:

sudo ip6tables -L

В дальнейшем рассмотрим только вариант для протокола IPv4, вариант для протокола IPv6 использует такой же синтаксис.

Выводимая на экран информация разбита на столбцы и строки. У каждого столбца свое наименование. С помощью дополнительных параметров команды sudo iptables -L можно добавлять дополнительные столбцы в выводимой таблице правил iptables. Рассмотрим название столбцов в стандартном выводе sudo iptables -L:

  • target – выполняемое действие с пакетом при соответствии его данному правилу
  • prot – протокол передачи данных, при котором применяется данное правило
  • opt – дополнительные опции для правила
  • source – IP адрес, подсеть, домен узла источника пакета, попадающего под выполнение данного правила
  • destination – IP адрес, подсеть, домен узла назначения пакета, попадающего под выполнение данного правила

1. Список правил из цепочки

Команда чтобы вывести на экран конкретную цепочку правил выглядит следующим образом:

sudo iptables [-L имя цепочки]

Например просмотр правил iptables из цепочки OUTPUT:

sudo iptables -L OUTPUT

2. Список правил из таблицы

По умолчанию выводится содержимое таблицы фильтрации пакетов filter. Команда вывода содержимого конкретно указанной таблицы выглядит следующим образом:

sudo iptables [-t имя таблицы] [-L имя цепочки]

Например:

sudo iptables -t nat -L OUTPUT

Вот список всех таблиц правил iptables:

  • filter – таблица по умолчанию. Используется для фильтрации пакетов. Содержится в цепочках INPUT, FORWARD, OUTPUT
  • raw – используется редко. Пакет проверяется на соответствие условиям данной таблицы до передачи системе определения состояний (conntrack), например, для того, чтобы не обрабатываться с помощью данной системы (действие NOTRACK). Система определения состояний позволяет фильтровать пакеты на уровне взаимодействия сеансов приложений. То есть фильтрует пакеты по сеансу связи – новый сеанс связи (NEW), уже установленный сеанс связи (ESTABLISHED), дополнительный сеанс связи к уже существующему (RELATED). Данная система позволяет реализовать высокоуровневый межсетевой экран, который вместо работы с пакетами работает с сеансами связи в рамках приложений. Содержится в цепочках PREROUTING и OUTPUT.
  • mangle – содержит правила модификации обрабатываемых IP-пакетов. Например, изменение полей заголовков IP-пакетов, содержащих служебную информацию. Используется редко. Содержится в цепочках PREROUTING, INPUT, FORWARD, OUTPUT,
  • nat – предназначена для подмены адреса отправителя или получателя. Данная таблица применяется только к первому пакету из потока протокола передачи данных по сети, к остальным пакетам потока пакетов выбранное действие применяется далее автоматически. Таблицу используют, например, для трансляции адресов отправителя и получателя, для маскировки адресов отправителя или получателя. Это делается в основном в двух случаях. Первый – когда необходимо организовать доступ к сети Интернет нескольким компьютерам, расположенным за данным компьютером. Второй – когда необходимо спрятать (замаскировать) в целях безопасности отправителя или получателя информации, передаваемой по сети Интернет. Содержится в цепочках PREROUTING, OUTPUT, POSTROUTING.

3. Номера правил в iptables

Следующая команда позволяет нам вывести номера правил iptables, которые потом можно использовать для управления ими на экран:

sudo iptables [-t таблица] [-L имя_цепочки] --line-numbers -n

Например:

sudo iptables -t filter -L --line-numbers -n

4. Просмотр правил со статистикой пакетов

Чтобы посмотреть таблицу правил со счетчиком переданного (полученного) количества байтов (bytes) и пакетов (pkts) используется следующая команда:

sudo iptables [-t таблица] [-L имя цепочки] -n -v

Например:

sudo iptables -t filter -L -n -v

Выводы

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

Ответить

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

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