Самые основы firewalld

Если сервер подключен к Интернету, он должен быть защищен от несанкционированного доступа. SELinux является одной из частей этой защиты, а брандмауэр - второй частью. Ядро Linux реализует межсетевой экран через фреймворк netfilter. 

Понимание firewalld

Firewalld - это системная служба, которая может настраивать правила брандмауэра с использованием различных интерфейсов. Администраторы могут управлять правилами в среде firewalld, но еще важнее то, что приложения могут запрашивать открытие портов с помощью системы обмена сообщениями DBus, что означает, что правила могут быть добавлены или удалены без каких-либо прямых действий со стороны системного администратора.
Firewalld был разработан как совершенно новое решение для управления брандмауэрами Linux. Он использует службу firewalld для управления конфигурацией брандмауэра netfilter. firewalld несовместим iptables. Никогда не используйте firewalld и iptables в одной системе; они взаимоисключающие.

Зоны в firewalld

Firewalld упрощает управление брандмауэром, работая с зонами. Зона - это набор правил, которые применяются к входящим пакетам, соответствующим конкретному адресу источника или сетевому интерфейсу.

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

Использование зон особенно важно на серверах с несколькими интерфейсами. На таких серверах зоны позволяют администраторам легко назначать определенный набор правил.

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

Firewalld работает с некоторыми зонами по умолчанию.

Block

Входящие сетевые подключения отклоняются сообщением «icmp-host-disabled». Разрешены только сетевые подключения, которые были инициированы в этой системе.

Dmz

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

Drop

Все входящие пакеты отбрасываются и ответа нет.
External

Для использования во внешних сетях с включенным маскированием (Network Address Translation [NAT]), особенно для маршрутизаторов. Только выбранные входящие соединения принимаются.

Home

Для использования с домашними сетями. Большинство компьютеров в одной сети являются доверенными, и принимаются только выбранные входящие соединения.

Internal

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

Public

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

trusted

Все сетевые подключения принимаются.
work

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


Firewalld Services

Вторым ключевым элементом при работе с firewalld является сервис. Обратите внимание, что служба в firewalld отличается от службы в systemd. В firewalld определены некоторые службы по умолчанию, которые позволяют администраторам легко разрешать или запрещать доступ к определенным портам на сервере.

За каждой службой находится файл конфигурации, который объясняет, какие порты UDP или TCP задействованы, и, если требуется, какие модули ядра должны быть загружены. Чтобы получить список всех служб, доступных на вашем компьютере, вы можете использовать команду firewall-cmd --get-services.



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

Сервисные файлы хранятся в каталоге /usr/lib/firewalld/services или /etc/firewalld/services.

Содержимое сервисного файла ftp


Работа с firewalld

Вы узнаете, как настроить брандмауэр с помощью firewalld. Для этого доступны два инструмента: инструмент командной строки firewall-cmd; и firewall-config, который имеет графический интерфейс. Хорошей идеей будет сосредоточить свои усилия на инструменте firewall-cmd. Этот легко доступный инструмент обеспечивает простую настройку. Если вы предпочитаете работать с графическим инструментом firewall-config, то это возможно тоже. Вы можете сделать все с помощью firewall-config, что вы можете сделать с помощью firewall-cmd.

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

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

1. Зайдите под рутом. Введите firewall-cmd --get-default-zone. Команда покажет текущую зону по умолчанию. Вы увидите текущую зону по умолчанию, которая по умолчанию установлена как public.

2. Чтобы увидеть, какие зоны доступны, введите firewall-cmd --get-zone.

3. Теперь покажите сервисы, доступные на вашем сервере, используя firewall-cmd --get-services. Обратите внимание, что параметры firewall-cmd --get показывают, что доступно на вашем сервере.

4. Чтобы увидеть, какие службы доступны в текущей зоне, введите firewall-cmd --list-services. Вы увидите короткий список, содержащий клиент протокола DHCP, а также SSH.

5. Теперь введите firewall-cmd --list-all. Посмотрите на вывод и сравните вывод с результатом firewall-cmd --list-all --zone = public. Обе команды показывают полный обзор текущей конфигурации брандмауэра, как показано ниже. Обратите внимание, что вы видите гораздо больше, чем просто зону и службы, которые настроены в этой зоне; Вы также видите информацию об интерфейсах и более продвинутых предметах.



6. Введите firewall-cmd --add-service = vnc-server, чтобы добавить VNC-сервер в конфигурацию брандмауэра. Проверьте, используя firewall-cmd --list-all.

7. Введите systemctl restart firewalld и повторите firewall-cmd --list-all. Обратите внимание, что службы vnc-server больше нет в списке.

8. Снова добавьте службу vnc-server, но на этот раз сделайте ее постоянной, используя firewall-cmd --add-service = vnc-server --permanent.

9. Введите firewall-cmd --list-all еще раз для проверки. Вы увидите, что VNC-сервер не указан в списке. Службы, которые были добавлены в конфигурацию на диске, не добавляются автоматически в конфигурацию среды выполнения. Введите firewall-cmd --reload, чтобы перезагрузить конфигурацию на диске в runtime конфигурацию.

10. Введите firewall-cmd --addport = 2022 / tcp --permanent, затем firewall-cmd --reload. Проверьте, используя firewall-cmd --list-all. Вы увидите, что порт был добавлен в конфигурацию firewalld.

Некоторые из наиболее важных опций команды firewall-cmd

--get-zones

Список всех доступных зон
--get-default-zone 

Показывает зону, в настоящее время установленную как зона по умолчанию
--set-default-zone=<ZONE> 

Изменяет зону по умолчанию
--get-services

Показывает все доступные сервисы
--list-services

Показывает используемые в данный момент сервисы
--add-service=<service-name> [--zone=<ZONE>]

Добавляет сервис в текущую зону по умолчанию или указанную зону
--remove-service=<service-name>

Удаляет сервис из конфигурации
--list-all [--zone=<ZONE>]

Перечисляет все конфигурации в зоне
--add-port=<port/protocol> [--zone=<ZONE>]

Добавляет порт и протокол
--remove-port=<port/protocol> [--zone=<ZONE>]

Удаляет порт из конфигурации
--add-interface=<INTERFACE> [--zone=<ZONE>]

Добавляет интерфейс в зону по умолчанию или указанную конкретную зону
--remove-interface=<INTERFACE> [--zone=<ZONE>]

Удаляет интерфейс из определенной зоны
--add-source=<ipaddress/netmask> [--zone=<ZONE>]

Добавляет определенный IP-адрес
--remove-source=<ipaddress/netmask> [--zone=<ZONE>]

Удаляет IP-адрес из конфигурации
--permanent

Записывает конфигурацию на диск
--reload

Перезагрузка конфигурации на диске
+ +2 -
Быстрый хостинг на SSD от 60 руб. VPS на NVMe от 355 руб.

 

Установка любых CMS в пару кликов. Сервера в Москве. Саппорт 24/7.

 

Тарифы на хостинг | Тарифы на VPS | Домены от 90 руб.

Добавить комментарий