Использует концепт зон для управления входящим трафиком сети, сетевой интерфейс или диапазон входящих адресов (source address) назначается зоне для её активации в фильтрации сетевого трафика, так же поддерживает работу с ipset.
Посмотрим работает ли firewalld:
# systemctl is-active firewalld
active
Выведем список всех зон:
# firewall-cmd --get-zones
block dmz drop external home internal public trusted work
Так же посмотрим активные зоны:
# firewall-cmd --get-active-zones
public
interfaces: eth0
Проверим, какая зона установлена по умолчанию:
# firewall-cmd --get-default-zone
public
Так как по умолчанию установлена зона public, то при добавлении настроек через утилиту firewall-cmd без явного указания этой зоны (--zone=public), все настройки будут производиться в ней.
public
Firewalld проброс порта:
# firewall-cmd --permanent --add-port=8080/tcp
# firewall-cmd --permanent --add-forward-port=port=80:proto=tcp:toport=8080
# firewall-cmd --reload
# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: eth0
sources:
services: dhcpv6-client ssh
ports: 8080/tcp
protocols:
masquerade: no
forward-ports: port=80:proto=tcp:toport=8080:toaddr=
source-ports:
icmp-blocks:
rich rules:
NAT firewalld:
# firewall-cmd --reload
# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: eth0
sources:
services: dhcpv6-client ssh
ports:
protocols:
masquerade: no
forward-ports: port=8080:proto=tcp:toport=80:toaddr=172.31.94.52
source-ports:
icmp-blocks:
rich rules:
# firewall-cmd --add-masquerade
Так же в Firewalld есть возможность создавать direct rules, которые используют название таблиц и цепочек iptables:
В том случае, если firewalld на более новых версиях системы, например 8 и выше, использует в бэкенде nftables, тогда передача правил при помощи direct rules (--direct) не доступна
# firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 0 -p tcp -m tcp --dport=22 -j ACCEPT
# firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 1 -p tcp -m tcp --sport=22 -j ACCEPT
# firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 9 -j DROP
# firewall-cmd --reload
# firewall-cmd --direct --get-all-rules
ipv4 filter OUTPUT 0 -p tcp -m tcp --dport=22 -j ACCEPT
ipv4 filter OUTPUT 1 -p tcp -m tcp --sport=22 -j ACCEPT
ipv4 filter OUTPUT 9 -j DROP
Важно так же проверить другие зоны и их правила, так как напомню, при назначении сетевого интерфейса или источника диапазона адресов какой-то зоне она начинает быть активна и учавствует в фильтрации сетевого трафика или что-то разрешает согласно настроеных правил:
# firewall-cmd --list-all-zones
block
target: %%REJECT%%
icmp-block-inversion: no
interfaces:
sources:
services:
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
dmz
target: default
icmp-block-inversion: no
interfaces:
sources:
services: ssh
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
drop
target: DROP
icmp-block-inversion: no
interfaces:
sources:
services:
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
external
target: default
icmp-block-inversion: no
interfaces:
sources:
services: ssh
ports:
protocols:
masquerade: yes
forward-ports:
source-ports:
icmp-blocks:
rich rules:
home
target: default
icmp-block-inversion: no
interfaces:
sources:
services: dhcpv6-client mdns samba-client ssh
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
internal
target: default
icmp-block-inversion: no
interfaces:
sources:
services: dhcpv6-client mdns samba-client ssh
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
public (active)
target: default
icmp-block-inversion: no
interfaces: eth0
sources:
services: dhcpv6-client ssh
ports:
protocols:
masquerade: no
forward-ports: port=8080:proto=tcp:toport=80:toaddr=172.31.94.52
source-ports:
icmp-blocks:
rich rules:
trusted
target: ACCEPT
icmp-block-inversion: no
interfaces:
sources:
services:
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
work
target: default
icmp-block-inversion: no
interfaces:
sources:
services: dhcpv6-client ssh
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
https://access.redhat.com/solutions/1121463

Комментарии
Отправить комментарий