Как проверить, активен ли сетевой фильтр пакетов в Linux

LinuxLinuxBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом практическом занятии (лабораторной работе) вы узнаете, как проверить, активен ли сетевой фильтр пакетов в Linux. Вы изучите традиционные методы с использованием iptables для вывода списка правил брандмауэра и рассмотрите более новый фреймворк nftables, выведя его набор правил. В конце вы проверите настройки фильтра, изучив соответствующие файлы в каталоге /proc/sys/net, и получите полное представление о том, как определить состояние сетевого фильтрации пакетов в системе Linux.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/UserandGroupManagementGroup(["User and Group Management"]) linux(("Linux")) -.-> linux/RemoteAccessandNetworkingGroup(["Remote Access and Networking"]) linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/FileandDirectoryManagementGroup(["File and Directory Management"]) linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/FileandDirectoryManagementGroup -.-> linux/cd("Directory Changing") linux/UserandGroupManagementGroup -.-> linux/sudo("Privilege Granting") linux/RemoteAccessandNetworkingGroup -.-> linux/ifconfig("Network Configuring") linux/RemoteAccessandNetworkingGroup -.-> linux/netstat("Network Monitoring") linux/RemoteAccessandNetworkingGroup -.-> linux/ip("IP Managing") subgraph Lab Skills linux/cat -.-> lab-558739{{"Как проверить, активен ли сетевой фильтр пакетов в Linux"}} linux/cd -.-> lab-558739{{"Как проверить, активен ли сетевой фильтр пакетов в Linux"}} linux/sudo -.-> lab-558739{{"Как проверить, активен ли сетевой фильтр пакетов в Linux"}} linux/ifconfig -.-> lab-558739{{"Как проверить, активен ли сетевой фильтр пакетов в Linux"}} linux/netstat -.-> lab-558739{{"Как проверить, активен ли сетевой фильтр пакетов в Linux"}} linux/ip -.-> lab-558739{{"Как проверить, активен ли сетевой фильтр пакетов в Linux"}} end

Вывод списка правил iptables с помощью команды iptables -L

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

Брандмауэры являются важной частью сетевой безопасности. Они контролируют входящий и исходящий сетевой трафик на основе набора правил. Эти правила определяют, разрешать или блокировать конкретные соединения.

Для вывода списка текущих правил iptables вы будете использовать опцию -L. Эта опция сообщает iptables вывести список правил в указанных цепочках.

Если вы еще не открыли терминал, откройте его. Введите следующую команду и нажмите Enter:

sudo iptables -L

Вам нужно использовать sudo, так как просмотр правил брандмауэра требует административных привилегий.

Вы увидите вывод, похожий на следующий:

Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Этот вывод показывает правила для трех цепочек по умолчанию: INPUT, FORWARD и OUTPUT.

  • INPUT: Контролирует трафик, предназначенный для локальной машины.
  • FORWARD: Контролирует трафик, проходящий через машину (используется для маршрутизации).
  • OUTPUT: Контролирует трафик, исходящий с локальной машины.

policy ACCEPT означает, что по умолчанию трафик разрешен в этих цепочках, если не соответствует какому-либо конкретному правилу.

Если были настроены конкретные правила, они будут перечислены под каждой цепочкой, показывая такие детали, как цель (например, ACCEPT, DROP), протокол (например, tcp, udp), IP-адреса источника и назначения, а также порты.

Пока что конфигурация по умолчанию проста, но вы успешно использовали iptables для просмотра текущих правил.

Нажмите Продолжить, чтобы перейти к следующему шагу.

Проверка nftables с помощью команды nft list ruleset

На этом этапе вы познакомитесь с nftables, преемником iptables. Хотя iptables по-прежнему широко используется, nftables представляет более гибкий и эффективный фреймворк для фильтрации пакетов и сетевого адресного преобразования (NAT - Network Address Translation).

nftables использует командную утилиту nft для управления наборами правил. Набор правил представляет собой коллекцию таблиц, цепочек и правил, которые определяют, как обрабатывается сетевой трафик.

Для просмотра текущего набора правил nftables вы будете использовать команду list ruleset.

Введите следующую команду в терминале и нажмите Enter:

sudo nft list ruleset

Снова требуется использовать sudo, так как просмотр правил брандмауэра требует административных привилегий.

Вы можете увидеть вывод, похожий на следующий, или он может быть пустым, если не настроены никакие правила nftables:

table ip filter {
	chain INPUT {
		type filter hook input priority 0; policy accept;
	}

	chain FORWARD {
		type filter hook forward priority 0; policy accept;
	}

	chain OUTPUT {
		type filter hook output priority 0; policy accept;
	}
}

Этот вывод показывает базовый набор правил nftables с таблицей с именем filter для семейства IP-адресов. Внутри этой таблицы есть три цепочки: INPUT, FORWARD и OUTPUT, аналогично iptables.

  • table ip filter: Определяет таблицу с именем filter для IPv4-трафика.
  • chain INPUT { ... }: Определяет входящую цепочку.
  • type filter hook input priority 0;: Указывает, что это цепочка фильтрации, подключенная к входному сетевому пути с приоритетом 0.
  • policy accept;: Устанавливает политику по умолчанию для этой цепочки на прием трафика.

Если были определены конкретные правила, они будут перечислены внутри блоков цепочек.

Сравнение вывода iptables -L и nft list ruleset может дать вам представление о том, какая система брандмауэра активно управляет правилами на системе, или присутствуют ли обе. На современных системах nftables становится стандартом.

Теперь вы успешно использовали nft для просмотра текущего набора правил nftables.

Нажмите Продолжить, чтобы перейти к следующему этапу.

Проверка настроек фильтрации в /proc/sys/net

На этом этапе вы изучите некоторые настройки сетевой фильтрации на уровне ядра, просмотрев файлы в директории /proc/sys/net. Файловая система /proc представляет собой виртуальную файловую систему, которая предоставляет информацию о процессах и другой системной информации. Директория /proc/sys содержит файлы, которые позволяют вам просматривать и изменять параметры ядра во время выполнения.

В частности, мы рассмотрим настройки, связанные с сетевой фильтрацией и маршрутизацией.

Перейдите в соответствующую директорию с помощью команды cd:

cd /proc/sys/net/ipv4/conf/all/

Директория /proc/sys/net/ipv4/conf/all/ содержит конфигурационные файлы, которые применяются ко всем сетевым интерфейсам.

Теперь давайте посмотрим на содержимое файла, связанного с маршрутизацией. Используйте команду cat для отображения содержимого файла forwarding:

cat forwarding

Вывод, скорее всего, будет либо 0, либо 1:

0
  • 0: Указывает, что IP-маршрутизация отключена. Это означает, что система не будет перенаправлять пакеты между различными сетевыми интерфейсами.
  • 1: Указывает, что IP-маршрутизация включена. Это необходимо для маршрутизаторов или систем, действующих в качестве шлюзов.

Далее, давайте рассмотрим настройку, связанную с фильтрацией входящих пакетов с опцией исходного маршрута. Эта опция иногда может использоваться злоумышленниками. Просмотрите содержимое файла accept_source_route:

cat accept_source_route

Вывод, скорее всего, будет 0:

0
  • 0: Указывает, что система будет игнорировать пакеты с опцией исходного маршрута. Это распространенная мера безопасности.
  • 1: Указывает, что система будет принимать пакеты с опцией исходного маршрута.

Эти файлы в /proc/sys/net предоставляют низкоуровневый взгляд на то, как ядро настроено для обработки сетевого трафика. В то время как iptables и nftables управляют правилами фильтрации, эти параметры ядра контролируют фундаментальное поведение сети, такое как маршрутизация и обработка определенных опций пакетов.

Теперь вы успешно проверили настройки сетевой фильтрации ядра с использованием файловой системы /proc.

Нажмите Продолжить, чтобы завершить лабораторную работу.

Резюме

В этой лабораторной работе вы узнали, как проверить, активен ли сетевой фильтр пакетов в Linux, изучив настройки распространенных инструментов брандмауэра. Вы начали с использования команды iptables -L для вывода текущих правил, настроенных с помощью традиционной утилиты iptables, и поняли, как работают стандартные цепочки (INPUT, FORWARD, OUTPUT) и их политики.

Затем вы познакомились с nftables, современным заменителем iptables, используя команду nft list ruleset для просмотра его конфигурации. Наконец, вы узнали, как проверить настройки фильтра на более низком уровне, проверив соответствующие параметры в директории /proc/sys/net, которая предоставляет доступ к сетевой конфигурации ядра.