Как проверить, активна ли сетевая зона брандмауэра в Linux

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

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

Введение

В этом лабораторном занятии вы узнаете, как проверить, активна ли сетевая зона брандмауэра в Linux с использованием firewalld. Мы начнем с использования команды firewall-cmd --get-active-zones для определения текущих активных зон и сетевых интерфейсов, с которыми они связаны.

После этого мы рассмотрим конфигурационные файлы firewalld, расположенные в каталоге /etc/firewalld, чтобы понять, где определяются правила зон. Наконец, мы проверим базовые правила iptables, чтобы увидеть, как firewalld преобразует конфигурации своих зон в реальные правила фильтрации пакетов. Это лабораторное занятие дает основательное понимание того, как firewalld управляет сетевой безопасностью на вашей системе Linux.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/SystemInformationandMonitoringGroup(["System Information and Monitoring"]) linux(("Linux")) -.-> linux/RemoteAccessandNetworkingGroup(["Remote Access and Networking"]) linux/BasicFileOperationsGroup -.-> linux/ls("Content Listing") linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/SystemInformationandMonitoringGroup -.-> linux/service("Service Managing") linux/RemoteAccessandNetworkingGroup -.-> linux/ifconfig("Network Configuring") linux/RemoteAccessandNetworkingGroup -.-> linux/netstat("Network Monitoring") linux/RemoteAccessandNetworkingGroup -.-> linux/ip("IP Managing") subgraph Lab Skills linux/ls -.-> lab-558734{{"Как проверить, активна ли сетевая зона брандмауэра в Linux"}} linux/cat -.-> lab-558734{{"Как проверить, активна ли сетевая зона брандмауэра в Linux"}} linux/service -.-> lab-558734{{"Как проверить, активна ли сетевая зона брандмауэра в Linux"}} linux/ifconfig -.-> lab-558734{{"Как проверить, активна ли сетевая зона брандмауэра в Linux"}} linux/netstat -.-> lab-558734{{"Как проверить, активна ли сетевая зона брандмауэра в Linux"}} linux/ip -.-> lab-558734{{"Как проверить, активна ли сетевая зона брандмауэра в Linux"}} end

Проверка зон с помощью firewall-cmd --get-active-zones

На этом шаге мы начнем изучать firewalld — динамический инструмент управления брандмауэром в Linux. Брандмауэры являются важными компонентами сетевой безопасности, контролируя, какой трафик может входить и выходить из вашей системы.

firewalld использует концепцию "зон" для управления правилами брандмауэра. Зоны определяют уровень доверия для сетевых соединений. Разные зоны имеют разные правила по умолчанию. Например, зона "public" (публичная) может иметь более строгие правила, чем зона "trusted" (доверенная).

Давайте проверим, какие зоны в настоящее время активны на вашей системе. Мы будем использовать команду firewall-cmd с опцией --get-active-zones.

Откройте терминал, если он еще не открыт. Помните, что вы можете найти значок Xfce Terminal слева на рабочем столе.

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

firewall-cmd --get-active-zones

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

public
  interfaces: eth0

Этот вывод сообщает нам, что в настоящее время активна зона public, и она связана с сетевым интерфейсом eth0. Интерфейс eth0 используется вашей виртуальной машиной для подключения к сети.

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

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

Проверка конфигурации firewalld с помощью cat /etc/firewalld

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

Основной каталог конфигурации для firewalld - это /etc/firewalld. Внутри этого каталога вы найдете подкаталоги для зон, служб и других элементов конфигурации.

Мы можем использовать команду cat для просмотра содержимого файлов. Чтобы посмотреть, что находится внутри каталога /etc/firewalld, мы можем попробовать использовать cat для него, но cat предназначен для файлов, а не для каталогов. Вместо этого давайте выведем список содержимого каталога с помощью команды ls.

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

ls /etc/firewalld/

Вы должны увидеть список каталогов и файлов, что-то вроде этого:

icmptypes  lockdown-whitelist.xml  modules  panic-iface.conf  services  zones

Это показывает структуру конфигурации firewalld. Каталог zones особенно важен, так как он содержит конфигурационные файлы для каждой зоны (например, public.xml, trusted.xml и т.д.).

Давайте посмотрим внутри каталога zones. Введите:

ls /etc/firewalld/zones/

Вы увидите список XML-файлов, по одному для каждой предопределенной зоны:

block.xml  dmz.xml  drop.xml  external.xml  home.xml  internal.xml  public.xml  trusted.xml  work.xml

Эти XML-файлы содержат конкретные правила для каждой зоны. Например, public.xml определяет правила для зоны public, которую мы увидели как активную на предыдущем шаге.

Хотя в этом лабораторном занятии мы не будем углубляться в детали XML-файлов, знание того, где хранится конфигурация, является важной частью понимания firewalld.

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

Просмотр правил iptables с помощью iptables -L

Хотя firewalld является современным способом управления брандмауэрами на многих дистрибутивах Linux, он часто работает путем настройки нижележающей платформы netfilter, которая традиционно управляется командой iptables.

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

Чтобы вывести список текущих правил iptables, мы будем использовать команду iptables с опцией -L. Поскольку просмотр правил брандмауэра требует административных привилегий, нам нужно будет использовать sudo.

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

sudo iptables -L

Вы увидите большой объем вывода! Этот вывод показывает различные цепочки iptables (например, INPUT, FORWARD, OUTPUT) и правила в них. firewalld создает свои собственные цепочки, часто с префиксом FWD, IN_, OUT_ и т.д., для управления трафиком на основе зон и служб.

Вот пример того, что вы можете увидеть (точный вывод может отличаться):

Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere             ctstate RELATED,ESTABLISHED
ACCEPT     all  --  anywhere             anywhere
INPUT_direct  all  --  anywhere             anywhere
INPUT_ZONES_SOURCE  all  --  anywhere             anywhere
INPUT_ZONES  all  --  anywhere             anywhere
...
Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
...
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
...
Chain INPUT_ZONES (1 references)
target     prot opt source               destination
FWD_public  all  --  anywhere             anywhere             [goto] /* zone public */
...

Не беспокойтесь о том, чтобы сразу понять каждую строку этого вывода. Основная идея заключается в том, что firewalld активно управляет этими правилами iptables в фоновом режиме. Команда iptables -L позволяет вам увидеть фактические правила фильтрации пакетов, применяемые ядром.

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

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

Резюме

В этом лабораторном занятии мы начали изучать firewalld для проверки активных зон сетевого брандмауэра в Linux. Мы узнали, что firewalld использует зоны для управления правилами брандмауэра и что команда firewall-cmd --get-active-zones используется для определения, какие зоны в настоящее время активны и связаны с сетевыми интерфейсами. Мы рассмотрели пример, когда зона public была активна на интерфейсе eth0.

Затем мы начали изучать конфигурационные файлы firewalld, отметив, что основной каталог конфигурации - это /etc/firewalld. Мы попытались просмотреть содержимое каталога, понимая, что cat используется для файлов, а не для каталогов, и что вывод списка содержимого каталога является подходящим методом для просмотра конфигурационных файлов для зон, служб и других элементов.