Сетевой фильтр как мы все знаем, это брандмауэр в Linux. Firewalld - динамический демон для управления межсетевыми экранами с поддержкой сетевых зон. В более ранней версии RHEL & CentOS 6 мы использовали iptables как демон для инфраструктуры фильтрации пакетов. В RHEL/CentOS 7/8, Fedora и openSUSE - rong> iptables интерфейс заменяется на Firewalld.
Рекомендуется начать использовать Firewalld вместо iptables так как это может прекратиться в будущем. Однако, iptables по-прежнему поддерживаются и могут быть установлены с ням команда. Мы не можем удержать Firewalld и iptables оба в одной системе, что может привести к конфликту.
В iptables, мы раньше настраивали как ВХОДНЫЕ, ВЫХОДНЫЕ И ПЕРЕДОВЫЕ ЦЕПИ но здесь в Firewalld, концепция использует Зоны. По умолчанию в firewalld доступны разные зоны, о которых пойдет речь в этой статье.
Основная зона, которая нравится общественная зона и частная зона. Чтобы все работало с этими зонами, нам нужно добавить интерфейс с поддержкой указанной зоны, а затем мы можем добавить службы в firewalld.
По умолчанию доступно множество сервисов, одна из лучших функций Firewalld То есть, он поставляется с предопределенными службами, и мы можем взять эти службы в качестве примера, чтобы добавить наши службы, просто скопировав их.
Firewalld отлично работает с IPv4, IPv6, и Мосты Ethernet слишком. У нас может быть отдельная конфигурация времени выполнения и постоянная конфигурация в firewalld.
Давайте начнем с того, как работать с зонами и создавать собственные сервисы, а также о гораздо более увлекательном использовании firewalld.
Операционная система: CentOS Linux, выпуск 7.0.1406 (Core) Айпи адрес: 192.168.0.55. Имя хоста: server1.tecmintlocal.com.
1.Firewalld пакет по умолчанию установлен в RHEL / CentOS 7/8, Fedora и openSUSE. Если нет, вы можете установить его, используя следующие ням команда.
# yum install firewalld -y.
2. После Firewalld пакет установлен, пора проверить, iptables служба запущена или нет, если она запущена, вам необходимо остановить и замаскировать (больше не использовать) службу iptables с помощью следующих команд.
# systemctl status iptables. # systemctl stop iptables. # systemctl mask iptables.
3. Прежде чем приступить к настройке firewalld, я хотел бы обсудить каждую зону. По умолчанию доступно несколько зон. Нам нужно назначить интерфейс зоне. Зона определяет, что зона, которой было доверено или которой было отказано, соответствует уровню интерфейса для установления соединения. Зона может содержать сервисы и порты.
Здесь мы собираемся описать каждую зону, доступную в Firewalld.
Теперь у вас есть лучшее представление о зонах, теперь давайте выясним доступные зоны, зоны по умолчанию и составим список всех зон с помощью следующих команд.
# firewall-cmd --get-зоны.
# firewall-cmd --get-default-zone.
# firewall-cmd --list-все-зоны.
Примечание: Результат выполнения вышеуказанной команды не уместится на одной странице, так как в нем будут перечислены все зоны, такие как блок, dmz, drop, external, home, internal, public, trust и work. Если зоны имеют какие-либо расширенные правила, включенные службы или порты также будут перечислены с соответствующей информацией о зоне.
4. Если вы хотите установить зону по умолчанию как внутреннюю, внешнюю, временную, рабочую или любую другую зону, вы можете использовать следующую команду, чтобы установить зону по умолчанию. Здесь мы используем «внутренний»По умолчанию.
# firewall-cmd --set-default-zone = internal.
5. После настройки зоны проверьте зону по умолчанию, используя следующую команду.
# firewall-cmd --get-default-zone.
6. Здесь наш интерфейс enp0s3, Если нам нужно проверить нашу зону, в которой ограничен интерфейс, мы можем использовать следующую команду.
# firewall-cmd --get-zone-of-interface = enp0s3.
7. Еще одна интересная особенность firewalld - это "icmptype‘Является одним из типов icmp, поддерживаемых firewalld. Чтобы получить список поддерживаемых типов icmp, мы можем использовать следующую команду.
# firewall-cmd --get-icmptypes.
8. Сервисы - это набор правил с портами и опциями, который используется Firewalld. Включенные службы будут автоматически загружены, когда Firewalld сервис запущен и работает.
По умолчанию доступно множество сервисов, чтобы получить список всех доступных сервисов, используйте следующую команду.
# firewall-cmd --get-services.
9. Чтобы получить список всех доступных по умолчанию служб, перейдите в следующий каталог, здесь вы получите список служб.
# cd / usr / lib / firewalld / services /
10. Чтобы создать свой собственный сервис, вам необходимо определить его в следующем месте. Например, здесь я хочу добавить услугу для RTMP порт 1935, сначала сделайте копию любой из служб.
# cd / etc / firewalld / services / # cp /usr/lib/firewalld/services/ssh.xml / etc / firewalld / services /
А затем перейдите в место, где был скопирован наш служебный файл, затем переименуйте файл ‘ssh.xml' к 'rtmp.xml‘Как показано на рисунке ниже.
# cd / etc / firewalld / services /
11. Затем откройте и отредактируйте файл как Заголовок, описание, протокол и номер порта, который нам нужно использовать для службы RTMP, как показано на рисунке ниже.
12. Чтобы эти изменения активировались, перезапустите службу firewalld или перезагрузите настройки.
# firewall-cmd --reload.
13. Чтобы подтвердить, добавлена ли служба или нет, выполните приведенную ниже команду, чтобы получить список доступных служб.
# firewall-cmd --get-services.
14. Здесь мы увидим, как управлять брандмауэром с помощью команда firewall-cmd. Чтобы узнать текущее состояние брандмауэра и всех активных зон, введите следующую команду.
# firewall-cmd --state. # firewall-cmd --get-active-зонах.
15. Чтобы получить публичную зону для интерфейса enp0s3, это интерфейс по умолчанию, который определен в /etc/firewalld/firewalld.conf файл как DefaultZone = общедоступный.
Чтобы перечислить все доступные службы в этой зоне интерфейса по умолчанию.
# firewall-cmd --get-service.
16. В приведенных выше примерах мы видели, как создавать наши собственные сервисы, создавая rtmp сервис, здесь мы увидим, как добавить rtmp обслуживание в зоне.
# firewall-cmd --add-service = rtmp.
17. Чтобы удалить добавленную зону, введите.
# firewall-cmd --zone = public --remove-service = rtmp.
Вышеупомянутый шаг был временным периодом. Чтобы сделать его постоянным, нам нужно запустить следующую команду с опцией -постоянный.
# firewall-cmd --add-service = rtmp --permanent. # firewall-cmd --reload.
18. Определите правила для диапазона сетевых источников и откройте любой из портов. Например, если вы хотите открыть диапазон сети, скажите "192.168.0.0/24‘И порт‘1935‘Используйте следующие команды.
# firewall-cmd --permanent --add-source = 192.168.0.0 / 24. # firewall-cmd --permanent --add-port = 1935 / tcp.
Не забудьте перезагрузить службу firewalld после добавления или удаления любых служб или портов.
# firewall-cmd --reload # firewall-cmd --list-all.
19. Если я хочу разрешить такие службы, как http, https, vnc-server, PostgreSQL, вы должны использовать следующие правила. Сначала добавьте правило и сделайте его постоянным, перезагрузите правила и проверьте статус.
# firewall-cmd --add-rich-rule 'rule family = "ipv4" source address = "192.168.0.0/24" service name = "http" accept' # firewall-cmd --add-rich-rule 'семейство правил = источник "ipv4" address = "192.168.0.0/24" service name = "http" accept '--permanent # firewall-cmd --add-rich-rule' rule family = "ipv4" source address = "192.168.0.0/24" имя службы = "https" принимать' # firewall-cmd --add-rich-rule 'rule family = "ipv4" source address = "192.168.0.0/24" service name = "https" accept' --permanent # firewall-cmd --add-rich-rule 'rule family = "ipv4" source address = "192.168.0.0/24" service name = "vnc-server" принимать' # firewall-cmd --add-rich-rule 'rule family = "ipv4" source address = "192.168.0.0/24" service name = "vnc-server" accept' --permanent # firewall-cmd --add-rich-rule 'rule family = "ipv4" source address = "192.168.0.0/24" service name = "postgresql" принимать' # firewall-cmd --add-rich-rule 'rule family = "ipv4" source address = "192.168.0.0/24" service name = "postgresql" accept' --permanent.
Теперь сетевой диапазон 192.168.0.0/24 могу использовать вышеуказанный сервис с моего сервера. Опция -постоянный может использоваться в каждом правиле, но мы должны определить правило и проверить доступ клиента, после чего мы должны сделать его постоянным.
20. После добавления вышеуказанных правил не забудьте перезагрузить правила брандмауэра и составить список правил, используя:
# firewall-cmd --reload. # firewall-cmd --list-all.
Чтобы узнать больше о Firewalld.
# человек firewalld.
Вот и все, мы увидели, как настроить сетевой фильтр с помощью Firewalld в RHEL / CentOS и Fedora.
Net-filter - это основа для брандмауэра для каждого дистрибутива Linux. Еще в каждом RHEL и CentOS редакции, которые мы использовали iptables но в более новых версиях они представили Firewalld. Firewalld легче понять и использовать. Надеюсь, вам понравилась статья.