Centos 7 iptables вместо firewalld

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

CentOS 8 поставляется с демоном межсетевого экрана с именем firewalld . Это законченное решение с интерфейсом D-Bus, которое позволяет динамически управлять брандмауэром системы.

В этом руководстве мы поговорим о том, как настроить брандмауэр в CentOS 8 и управлять им. Мы также объясним основные концепции FirewallD.

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

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

FirewallD — это законченное решение межсетевого экрана, которым можно управлять с помощью утилиты командной строки firewall-cmd. Если вам удобнее использовать синтаксис командной строки Iptables, вы можете отключить FirewallD и вернуться к классической настройке iptables.

Из этого туториала Вы узнаете, как отключить службу FirewallD и установить iptables.

Подготовка

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

Отключить FirewallD

Чтобы отключить FirewallD в вашей системе CentOS 7 , выполните следующие действия:

Установить и включить Iptables

Выполните следующие шаги для установки Iptables в системе CentOS 7:

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

Выводы

В этом руководстве вы узнали, как отключить службу FirewallD и установить iptables.

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

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

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

Зоны Firewalld

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

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

Услуги межсетевого экрана

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

Среда выполнения Firewalld и постоянные настройки

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

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

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

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

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

В CentOS 8 iptables заменен на nftables в качестве серверной части межсетевого экрана по умолчанию для демона firewalld.

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

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

Например, служба может содержать определения об открытии портов, пересылке трафика и т. Д.

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

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

Чтобы применить изменения в обоих наборах конфигурации, вы можете использовать один из следующих двух методов:

Открытие портов и исходных IP-адресов

Например, чтобы разрешить весь входящий трафик с 192.168.1.10 в public зоне, запустите:

sudo firewall-cmd —zone=public —add-source=192.168.1.10

Сделайте новое правило постоянным:

sudo firewall-cmd —runtime-to-permanent

Проверьте изменения, используя следующую команду:

sudo firewall-cmd —zone=public —list-sources

sudo firewall-cmd —zone=public —remove-source=192.168.1.10

Открытие исходного порта

Чтобы разрешить весь входящий трафик на данный порт, укажите зону с —zone параметра —zone а порт и протокол — с помощью параметра —add-port .

Например, чтобы открыть порт 8080 в публичной зоне для текущего сеанса, который вы запустили, выполните:

sudo firewall-cmd —zone=public —add-port=8080/tcp

Протокол может быть tcp , udp , sctp или dccp .

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

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

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

sudo firewall-cmd —zone=public —remove-port=8080/tcp

Открытие порта или сервиса

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

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

sudo firewall-cmd —get-services

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

Чтобы разрешить входящий 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 http

Если вы хотите оставить порт 80 открытым после перезагрузки, вам нужно будет ввести ту же команду еще раз, но на этот раз с параметром —permanent :

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

Используйте —list-services вместе с параметром —permanent чтобы проверить свои изменения:

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

Синтаксис удаления службы такой же, как и при добавлении службы. Просто используйте —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 :

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

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

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

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

sudo firewall-cmd —reload

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

Включение FirewallD

В CentOS 8 firewalld установлен и включен по умолчанию. Если по какой-то причине он не установлен в вашей системе, вы можете установить и запустить демон, набрав:

sudo dnf install firewalldsudo systemctl enable firewalld —now

Вы можете проверить статус службы межсетевого экрана с помощью:

sudo firewall-cmd —state

Если брандмауэр включен, то команда должна печатать running . В противном случае вы увидите, что not running .

Работа с зонами Firewalld

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

sudo firewall-cmd —get-default-zone

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

sudo firewall-cmd —get-zones

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

sudo firewall-cmd —get-active-zones

public
interfaces: eth0 eth1

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

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

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

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

Если вы хотите проверить конфигурации всех доступных типов зон:

sudo firewall-cmd —list-all-zones

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

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

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

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

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

work
interfaces: eth1
public
interfaces: eth0

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

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

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

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

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

Если вы не изменили его, зона по умолчанию будет public , и все сетевые интерфейсы назначены этой зоне.

Зона по умолчанию — это зона, которая используется для всего, что явно не назначено другой зоне.

Вы можете увидеть зону по умолчанию, набрав:

Чтобы увидеть активные зоны и назначенные им сетевые интерфейсы:

Выходные данные ниже показывают, что интерфейсы eth0 и eth1 назначены public зоне:

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

Читайте также:  SpaceCore - хостинг для всех Ваших интересов!

Изменение цели зоны

Цель определяет поведение зоны по умолчанию для входящего трафика, который не указан. Для него можно установить один из следующих вариантов: по default , ACCEPT , REJECT и DROP .

Чтобы установить цель зоны, укажите зону с параметром —zone и цель с параметром —set-target .

Например, чтобы изменить цель public зоны на DROP вы должны запустить:

sudo firewall-cmd —zone=public —set-target=DROP

Назначение интерфейса другой зоне

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

Чтобы назначить интерфейс другой зоне, укажите зону с параметром —zone и интерфейс с параметром —change-interface .

Например, следующая команда назначает интерфейс eth1 work зоне:

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

Создание новых зон

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

Порт пересылки с 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

Если вы хотите сделать перманент постоянным, просто добавьте параметр —permanent .

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

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

Услуги Firewalld

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

Чтобы порт 80 —permanent открытым после перезагрузки, выполните ту же команду еще раз с параметром —permanent или выполните:

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

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

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

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

Порты пересылки

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

Перенаправлять трафик с одного порта на другой по IP-адресу

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

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

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

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

Оцените статью
Хостинги