FirewallD — динамически управляемый брандмауэр с поддержкой зон, который определяет уровень доверия сетевых подключений или интерфейсов. Доступен для многих дистрибутивов Linux и выступает в качестве фронтенда для системы фильтрации сетевых пакетов Iptables ядра Linux.
Установка и запуск
В некоторых системах CentOS может не оказаться firewalld. Для его установки вводим:
yum install firewalld
Для автоматического зауска вводим:
systemctl enable firewalld
И для запуска службы:
systemctl start firewalld
Общие команды для управления firewalld
Посмотреть состояние:
firewall-cmd --state
Мягко перечитать правила (применить настройки):
firewall-cmd --reload
Перечитать правила и сбросить текущие подключения:
firewall-cmd --complete-reload
* в официальной документации сказано, что данную команду стоит применять только в случаях проблем с firewalld.
Посмотреть созданные правила:
firewall-cmd --list-all
Остановить службу:
systemctl stop firewalld
Запустить сервис:
systemctl start firewalld
Запретить автозапуск:
systemctl disable firewalld
Разрешить автозапуск:
systemctl enable firewalld
Сохранить текущие правила, сделав их постоянными (permanent):
firewall-cmd --runtime-to-permanent
Чтобы правила применялись, не забываем их перечитывать:
firewall-cmd --reload
Открыть порт 80:
firewall-cmd --permanent --add-port=80/tcp
Удалим правило для открытия 80-о порта:
firewall-cmd --permanent --remove-port=80/tcp
Добавить правило для определенной зоны:
firewall-cmd --permanent --zone=external --add-port=80/tcp
Добавить диапазон портов:
firewall-cmd --permanent --add-port=6500-6700/udp
Добавить несколько правил одной командой:
firewall-cmd --permanent --add-port=80/tcp --add-port=443/tcp
Посмотреть список доступных служб:
firewall-cmd --get-services
Разрешить порт, например, для сервиса ntp:
firewall-cmd --permanent --add-service=ntp
Создать собственную службу:
firewall-cmd --permanent --new-service=name-service
Управление зонами
Посмотреть список всех имеющихся зон:
firewall-cmd --list-all-zones
Посмотреть список используемых зон:
firewall-cmd --get-active-zones
Информация о конкретной зоне:
firewall-cmd --list-all --zone=public
Создать правило для зоны 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
сначала нужно удалить адаптер из текущей зоны.
Пример настройки NAT (шлюза)
Открыть файл:
vi /etc/sysctl.conf
Добавляем в него следующую строку:
net.ipv4.ip_forward=1
Применяем настройку:
sysctl -p /etc/sysctl.conf
Настройка выполняется для двух сетевых интерфейсов — ens32 (внутренний) и ens34 (внешний):
firewall-cmd --direct --permanent --add-rule ipv4 nat POSTROUTING 0 -o ens34 -j MASQUERADE
firewall-cmd --direct --permanent --add-rule ipv4 filter FORWARD 0 -i ens32 -o ens34 -j ACCEPT
firewall-cmd --direct --permanent --add-rule ipv4 filter FORWARD 0 -i ens34 -o ens32 -m state --state RELATED,ESTABLISHED -j ACCEPT
systemctl restart firewalld
Просмотров: 393