Android

Как настроить межсетевой экран с firewalld на centos 7

Firewalld and its zones in Linux in Hindi

Firewalld and its zones in Linux in Hindi

Оглавление:

Anonim

Правильно настроенный межсетевой экран является одним из наиболее важных аспектов общей безопасности системы.

FirewallD - это законченное решение брандмауэра, которое управляет системными правилами iptables и предоставляет интерфейс D-Bus для их работы. Начиная с CentOS 7, FirewallD заменяет iptables как инструмент управления брандмауэром по умолчанию.

В этом руководстве мы покажем вам, как настроить брандмауэр с FirewallD в вашей системе CentOS 7, и объясним вам основные концепции FirewallD.

Предпосылки

Перед началом работы с этим учебным курсом убедитесь, что вы вошли на свой сервер с учетной записью пользователя с привилегиями sudo или с пользователем root. Лучше всего запускать административные команды как пользователь sudo вместо root. Если у вас нет пользователя sudo в вашей системе CentOS, вы можете создать его, следуя этим инструкциям.

Основные концепции Firewalld

FirewallD использует понятия зон и сервисов вместо цепочки и правил iptables. На основе зон и служб, которые вы настраиваете, вы можете контролировать, какой трафик разрешен или запрещен в систему и из нее.

FirewallD можно настроить и управлять с помощью утилиты командной строки firewall-cmd .

Firewalld Zones

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

Ниже приведены зоны, предоставленные FirewallD, упорядоченные в соответствии с уровнем доверия зоны от ненадежного до доверенного:

  • отбросить: все входящие соединения сбрасываются без какого-либо уведомления. Разрешены только исходящие соединения. block: все входящие соединения отклоняются сообщением icmp-host-prohibited для IPv4 и icmp6-adm-prohibited для IPv6n. Разрешены только исходящие соединения. public: для использования в ненадежных общественных местах. Вы не доверяете другим компьютерам в сети, но можете разрешить выбранные входящие подключения. external: для использования во внешних сетях с включенным маскированием NAT, когда ваша система выступает в качестве шлюза или маршрутизатора. Разрешены только выбранные входящие соединения. внутренняя: для использования во внутренних сетях, когда ваша система выступает в качестве шлюза или маршрутизатора. Другие системы в сети, как правило, доверяют. Разрешены только выбранные входящие соединения. dmz: используется для компьютеров, расположенных в демилитаризованной зоне, которые имеют ограниченный доступ к остальной части вашей сети. Разрешены только выбранные входящие соединения. Работа: Используется для работы машин. Другие компьютеры в сети, как правило, являются доверенными. Разрешены только выбранные входящие соединения. home: Используется для домашних машин. Другие компьютеры в сети, как правило, являются доверенными. Разрешены только выбранные входящие соединения. доверенный: все сетевые подключения принимаются. Доверяйте всем компьютерам в сети.

Услуги брандмауэра

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

Firewalld Runtime и постоянные настройки

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

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

По умолчанию при внесении изменений в конфигурацию Firewalld с использованием утилиты firewall-cmd , изменения применяются к конфигурации времени выполнения. Чтобы сделать изменения постоянными, вам нужно использовать параметр --permanent .

Установка и включение FirewallD

  1. Firewalld по умолчанию устанавливается в CentOS 7, но если он не установлен в вашей системе, вы можете установить пакет, набрав:

    sudo yum install firewalld

    Сервис Firewalld по умолчанию отключен. Вы можете проверить состояние брандмауэра с помощью:

    sudo firewall-cmd --state

    Чтобы запустить службу FirewallD и включить ее при загрузке, введите:

    sudo systemctl start firewalld sudo systemctl enable firewalld

Работа с Firewalld Zones

После первого включения службы FirewallD public зона становится зоной по умолчанию. Вы можете просмотреть зону по умолчанию, набрав:

sudo firewall-cmd --get-default-zone

public

Чтобы получить список всех доступных зон, введите:

sudo firewall-cmd --get-zones

block dmz drop external home internal public trusted work

По умолчанию всем сетевым интерфейсам назначена зона по умолчанию. Чтобы проверить, какие зоны используются вашим сетевым интерфейсом (ами), наберите:

sudo firewall-cmd --get-active-zones

public interfaces: eth0 eth1

Вывод выше говорит нам, что оба интерфейса eth0 и eth1 назначены для публичной зоны.

Вы можете распечатать настройки конфигурации зоны с помощью:

sudo firewall-cmd --zone=public --list-all

public (active) target: default icmp-block-inversion: no interfaces: eth0 eth1 sources: services: ssh dhcpv6-client ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:

Из вышеприведенного вывода мы видим, что публичная зона активна и установлена ​​по умолчанию, используемой как интерфейсами eth0 и eth1 . Также разрешены подключения, связанные с DHCP-клиентом и SSH.

sudo firewall-cmd --list-all-zones

Команда выводит огромный список с настройками всех доступных зон.

Изменение зоны интерфейса

Вы можете легко изменить интерфейсную зону, используя опцию --zone в сочетании с --change-interface . Следующая команда назначит интерфейс eth1 рабочей зоне:

sudo firewall-cmd --zone=work --change-interface=eth1

Проверьте изменения, набрав:

sudo firewall-cmd --get-active-zones

work interfaces: eth1 public interfaces: eth0

Изменение зоны по умолчанию

Чтобы изменить зону по умолчанию, используйте параметр --set-default-zone за которым следует имя зоны, которую вы хотите установить по умолчанию.

Например, чтобы изменить зону по умолчанию на домашнюю, вы должны выполнить следующую команду:

sudo firewall-cmd --set-default-zone=home

Проверьте изменения с помощью:

sudo firewall-cmd --get-default-zone

home

Открытие порта или службы

С FirewallD вы можете разрешить трафик для определенных портов на основе предопределенных правил, называемых сервисами.

Чтобы получить список всех доступных по умолчанию сервисов, наберите:

sudo firewall-cmd --get-services

Вы можете найти больше информации о каждой службе, открыв связанный XML-файл в каталоге /usr/lib/firewalld/services . Например, служба HTTP определяется следующим образом:

/usr/lib/firewalld/services/http.xml

WWW (HTTP) HTTP is the protocol used to serve Web pages. If you plan to make your Web server publicly available, enable this option. This option is not required for viewing pages locally or developing Web pages. WWW (HTTP) HTTP is the protocol used to serve Web pages. If you plan to make your Web server publicly available, enable this option. This option is not required for viewing pages locally or developing Web pages.

Чтобы разрешить входящий трафик HTTP (порт 80) для интерфейсов в публичной зоне, только для текущего сеанса (конфигурация времени выполнения) введите:

sudo firewall-cmd --zone=public --add-service=http Если вы --zone зону по умолчанию, вы можете --zone опцию --zone .

Чтобы убедиться, что служба была добавлена ​​успешно, используйте параметр --list-services :

sudo firewall-cmd --zone=public --list-services

ssh dhcpv6-client

sudo firewall-cmd --permanent --zone=public --add-service=http

Используйте --list-services вместе с опцией --permanent для проверки ваших изменений:

sudo firewall-cmd --permanent --zone=public --list-services

ssh dhcpv6-client

Синтаксис для удаления службы такой же, как и при добавлении службы. Просто используйте --remove-service вместо --add-service :

sudo firewall-cmd --zone=public --remove-service=http --permanent

Приведенная выше команда удаляет службу http из постоянной конфигурации публичной зоны.

Что если вы используете приложение, такое как Plex Media Server, для которого нет подходящей службы?

В подобных ситуациях у вас есть два варианта. Вы можете открыть соответствующие порты или определить новую службу FirewallD.

Например, Plex Server прослушивает порт 32400 и использует TCP, чтобы открыть порт в публичной зоне для текущего сеанса, используйте параметр --add-port= :

sudo firewall-cmd --zone=public --add-port=32400/tcp Протоколы могут быть tcp или udp .

Чтобы убедиться, что порт был успешно добавлен, используйте параметр --list-ports :

sudo firewall-cmd --zone=public --list-ports

32400/tcp

Чтобы порт 32400 открытым после перезагрузки, добавьте правило к постоянным настройкам, выполнив ту же команду с использованием параметра --permanent .

Синтаксис для удаления порта такой же, как и при добавлении порта. Просто используйте --remove-port вместо --add-port .

sudo firewall-cmd --zone=public --remove-port=32400/tcp

Создание новой службы FirewallD

Как мы уже упоминали, службы по умолчанию хранятся в каталоге /usr/lib/firewalld/services . Самый простой способ создать новую службу - это скопировать существующий файл службы в каталог /etc/firewalld/services , в котором находятся созданные пользователем службы, и изменить параметры файла.

Например, чтобы создать определение сервиса для Plex Media Server, мы можем использовать файл сервиса SSH:

sudo cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/plexmediaserver.xml

Откройте вновь созданный файл plexmediaserver.xml и измените краткое имя и описание службы в и теги. Самый важный тег, который вам нужно изменить, это тег port , который определяет номер порта и протокол, который вы хотите открыть.

В следующем примере мы открываем порты 1900 UDP и 32400 TCP.

/etc/firewalld/services/plexmediaserver.xml

plexmediaserver Plex is a streaming media server that brings all your video, music and photo collections together and stream them to your devices at anytime and from anywhere. plexmediaserver Plex is a streaming media server that brings all your video, music and photo collections together and stream them to your devices at anytime and from anywhere.

Сохраните файл и перезагрузите службу FirewallD:

sudo firewall-cmd --reload

Теперь вы можете использовать службу plexmediaserver в своих зонах так же, как и любую другую службу.

Порт переадресации с Firewalld

Для пересылки трафика с одного порта на другой порт или адрес сначала включите маскирование для нужной зоны с помощью --add-masquerade . Например, чтобы включить маскирование для типа external зоны:

sudo firewall-cmd --zone=external --add-masquerade

  • Переадресация трафика с одного порта на другой на одном сервере

В следующем примере мы перенаправляем трафик с порта 80 на порт 8080 на том же сервере:

sudo firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toport=8080

  • Переадресация трафика на другой сервер

В следующем примере мы перенаправляем трафик с порта 80 на порт 80 на сервере с IP 10.10.10.2 :

sudo firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toaddr=10.10.10.2

  • Переадресация трафика на другой сервер через другой порт

В следующем примере мы перенаправляем трафик с порта 80 на порт 8080 на сервере с IP 10.10.10.2 :

sudo firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toport=8080:toaddr=10.10.10.2

Создание набора правил с помощью FirewallD

В следующем примере мы покажем, как настроить брандмауэр, если вы используете веб-сервер. Мы предполагаем, что ваш сервер имеет только один интерфейс eth0 , и вы хотите разрешить входящий трафик только через порты SSH, HTTP и

  1. Измените зону по умолчанию на dmz

    Мы будем использовать зону dmz (demilitarized), потому что по умолчанию она разрешает только SSH-трафик. Чтобы изменить зону по умолчанию на dmz и назначить ее интерфейсу eth0 , выполните следующие команды:

    sudo firewall-cmd --set-default-zone=dmz sudo firewall-cmd --zone=dmz --add-interface=eth0

    Откройте порты HTTP и

    Чтобы открыть порты HTTP и HTTPS, добавьте правила постоянного обслуживания в зону dmz:

    sudo firewall-cmd --permanent --zone=dmz --add-service=http sudo firewall-cmd --permanent --zone=dmz --add-service=https

    Чтобы изменения вступили в силу немедленно, перезагрузите брандмауэр:

    sudo firewall-cmd --reload

    Проверьте изменения

    Чтобы проверить параметры конфигурации зоны dmz, введите:

    sudo firewall-cmd --zone=dmz --list-all

    dmz (active) target: default icmp-block-inversion: no interfaces: eth0 sources: services: ssh http https ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:

    Вывод выше говорит нам, что dmz является зоной по умолчанию, применяется к интерфейсу eth0 и порты ssh (22) http (80) и https (443) открыты.

Вывод

Вы узнали, как настроить и управлять службой FirewallD в вашей системе CentOS.

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

FireWalld Firewall Iptables Centos безопасности