Как настроить firewalld в CentOS

Что такое firewall простыми словами.

Сервисные команды

Посмотреть состояние:

# firewall-cmd --state

Применить настройки:

# firewall-cmd --reload

Посмотреть созданные правила:

# firewall-cmd --list-all

Управление службой

Остановить службу:

# systemctl stop firewalld

Запустить сервис:

# systemctl start firewalld

Запретить автозапуск:

# systemctl disable firewalld

Создание правил

Открыть порт 80:

# firewall-cmd --permanent --add-port=80/tcp

* где ключ --permanent — добавить постоянное правило (будет действовать после перезагрузки).

Разрешить сервис ntp:

# firewall-cmd --permanent --add-service=ntp

Разрешаем службу nginx с условием, что запросы будут с определенных IP-адресов (подсети 192.168.0):

# firewall-cmd --permanent --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="nginx" accept'

rich-rule позволяет создавать правила с условиями.

Удаление правил

Аналогично созданию, но вместо add вводим remove, например --remove-port (удалит порт) или --remove-service (службу).

Удалим правило для открытия 80-о порта:

# firewall-cmd --permanent --remove-port=80/tcp

Управление зонами

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

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

# firewall-cmd --list-all-zones

Посмотреть список используемых зон:

# firewall-cmd --get-active-zones

Создать правило для зоны public:

# firewall-cmd --permanent --zone=public --add-port=80/tcp

Добавить сетевой интерфейс в зону:

# firewall-cmd --permanent --zone=public --remove-interface=ens34

* сначала нужно удалить адаптер из текущей зоны. 

# firewall-cmd --permanent --zone=internal --add-interface=ens34

Masquerade

Включить маскарадинг:

# firewall-cmd --permanent --add-masquerade

* без указания зон, будет включен для public и external.

Возможные проблемы при работе с firewalld

Ошибка command not found (команда не найдена).

Возможные причины: не установлен пакет или не запущена служба.

Выполняем установку пакета firewalld:

# yum install firewalld firewall-config

Запускаем службу:

# systemctl start firewalld

Не применяются правила.

Причина: не введена команда перезапуска правил.

Перечитываем правила:

# firewall-cmd --reload

#Сети #Безопасность #UNIX #Linux #CentOS
Фотография автора
Была ли полезна вам эта инструкция?

Да            Нет