Firewall Rocky
Introduction
firewalld - это инструмент управления брандмауэром для операционных систем Linux.
Он предоставляет функции брандмауэра, выступая в качестве интерфейса для платформы netfilter ядра Linux с помощью утилиты nftables userspace (до версии v0.6.0 iptables backend),
выступая в качестве альтернативы программе командной строки nft.
Имя firewalld соответствует соглашению Unix об именовании системных демонов, добавляя букву "d".
firewalld написан на
Python
.
Предполагалось, что он будет перенесен на
C++
, но проект переноса был заброшен в январе 2015 года.
Проверить текущий статус
To проверить статус firewalld execute
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 2024-04-20 00:00:01 EEST; 2h 55min ago 1713618682 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 Apr 20 16:13:22 localhost.localdomain systemd[1]: Starting firewalld - dynamic firewall daemon... Apr 20 16:13:22 localhost.localdomain systemd[1]: Started firewalld - dynamic firewall daemon. Apr 20 16:13:22 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 --remove-service=https
Добавить IP в "белый" список
To добавить один IP address
sudo firewall-cmd --permanent --add-source=192.168.56.101
To добавить всю подсеть 255.255.255.0 выполнить
sudo firewall-cmd --permanent --add-source=192.168.2.0/24
Удалить IP из "белого" списка
To удалить один IP address
sudo firewall-cmd --permanent --remove-source=192.168.2.50
To удалить всю подсеть 255.255.255.0 выполнить
sudo firewall-cmd --permanent --remove-source=192.168.2.50/24
Заблокировать IP
To заблокировать входящие соединения с определённого IP addressа воспользуйтесь rich-rule
sudo firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='192.168.2.50' reject"
Посмотреть все rich-rules
To посмотреть все существующие rich-rules execute
sudo firewall-cmd --list-rich-rules
rule family="ipv4" source address="192.168.56.109" reject
Удалить правило
To удалить существующий rich-rule execute
sudo firewall-cmd --permanent --remove-rich-rule='rule family="ipv4" source address="192.168.56.109" reject'
sudo firewall-cmd --permanent --remove-rich-rule='rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="3306" accept'