Firewall CentOS

Содержание
Введение
Проверить статус
Текущие настройки firewall
Открыть порт
Заблокировать порт
Разрешить сервис
Заблокировать сервис
Добавить IP в 'белый' список
Удалить IP из 'белого' списка
Заблокировать IP
Посмотреть все rich-rules
Удалить правило
Похожие статьи

Введение

firewalld - это инструмент управления брандмауэром для операционных систем Linux.

Он предоставляет функции брандмауэра, выступая в качестве интерфейса для платформы netfilter ядра Linux с помощью утилиты nftables userspace (до версии v0.6.0 iptables backend), выступая в качестве альтернативы программе командной строки nft.

Имя firewalld соответствует соглашению Unix об именовании системных демонов, добавляя букву "d". firewalld написан на Python .

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

Проверить текущий статус

Чтобы проверить статус firewalld выполните

sudo systemctl status -l firewalld

firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2026-06-18 00:00:01 EEST; 2h 55min ago 1781740025 Docs: man:firewalld(1) Main PID: 783 (firewalld) Tasks: 2 CGroup: /system.slice/firewalld.service └─783 /usr/bin/python2 -Es /usr/sbin/firewalld --nofork --nopid Jun 18 02:49:05 localhost.localdomain systemd[1]: Starting firewalld - dynamic firewall daemon... Jun 18 02:49:05 localhost.localdomain systemd[1]: Started firewalld - dynamic firewall daemon. Jun 18 02:49:05 localhost.localdomain firewalld[783]: WARNING: AllowZoneDrifting is enabled. This is considered an insecure configuration option. It will be removed in a future release. Please consider disabling it now.

Firewall

Список открытых портов

firewall-cmd --list-ports

8443/tcp 3389/tcp 2222/tcp

Список активных зон

firewall-cmd --get-active-zones

public interfaces: enp0s3 enp0s8

Полный список

sudo firewall-cmd --list-all

public (active) target: default icmp-block-inversion: no interfaces: enp0s3 enp0s8 sources: services: dhcpv6-client http https ssh ports: 8443/tcp 3389/tcp 2222/tcp protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:

Открыть порт

sudo firewall-cmd --zone=public --add-port=19999/tcp --permanent

sucess

Затем нужно перезапустить firewall

sudo firewall-cmd --reload

sucess

Проверка

sudo firewall-cmd --list-ports

8443/tcp 3389/tcp 2222/tcp 19999/tcp

Если вам вдруг стало интересно - что за порт 19999 - его использует Locust

Заблокировать порт

sudo firewall-cmd --remove-port=22/tcp --permanent
sudo firewall-cmd --remove-port=53/udp --permanent
sudo firewall-cmd --reload

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

sudo firewall-cmd --add-service=https
sudo firewall-cmd --reload

Заблокировать сервис

sudo firewall-cmd --remove-service=https
sudo firewall-cmd --reload

Добавить IP в "белый" список

Чтобы добавить один IP адрес

sudo firewall-cmd --permanent --add-source=192.168.56.101

Чтобы добавить всю подсеть 255.255.255.0 выполнить

sudo firewall-cmd --permanent --add-source=192.168.2.0/24
sudo firewall-cmd --reload

Удалить IP из "белого" списка

Чтобы удалить один IP адрес

sudo firewall-cmd --permanent --remove-source=192.168.2.50
sudo firewall-cmd --reload

Чтобы удалить всю подсеть 255.255.255.0 выполнить

sudo firewall-cmd --permanent --remove-source=192.168.2.50/24
sudo firewall-cmd --reload

Заблокировать IP

Чтобы заблокировать входящие соединения с определённого IP адреса воспользуйтесь rich-rule

sudo firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='192.168.2.50' reject"
sudo firewall-cmd --reload

Посмотреть все rich-rules

Чтобы посмотреть все существующие rich-rules выполните

sudo firewall-cmd --list-rich-rules

rule family="ipv4" source address="192.168.56.109" reject

Удалить правило

Чтобы удалить существующий rich-rule выполните

sudo firewall-cmd --permanent --remove-rich-rule='rule family="ipv4" source address="192.168.56.109" reject'
sudo firewall-cmd --reload

sudo firewall-cmd --permanent --remove-rich-rule='rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="3306" accept'

Похожие статьи
Настройка сети в CentOS
Создать новый интерфейс
CentOS
Компьютерные сети
ip
hostname
DNS
route: Маршруты/Роутер
Firewall
iptables
netstat
iftop: Мониторинг сети
nethogs: Мониторинг сети
tc: Контроль за трафиком
iperf: Измерение скорости сети
uuidgen: uuid для сетевого интерфейса
SCP: обмен файлами;
SSH: удалённый доступ
Сокеты в C