В каком состоянии firewalld
systemctl status firewalld
Просмотр всех правил:
iptables -nvL
Список всех активных зон:
firewall-cmd --get-active-zones
public
interfaces: enp1s0
К какой зоне пренадлежит интерфейс:
firewall-cmd --get-zone-of-interface=enp1s0
Результат:
public
Можно узнать, какие интерфейсы принадлежат конкретной зоне:
firewall-cmd --zone=public --list-interfaces
Результат:
enp1s0
Что разрешено, включая не сохраненные правила:
firewall-cmd --list-all
что разрешено постоянно на нашем сервере:
если указано правило с параметром --permanent
то правило отработает только после firewall-cmd --reload
firewall-cmd --permanent --list-all
Результат:
public (default)
interfaces:
sources:
services: ssh dhcpv6-client
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
Доступные сервисы по умолчанию
firewall-cmd --get-services
Просмотреть информацию по определенному сервису
firewall-cmd --info-service=ftp
Результат:
ftp
ports: 21/tcp
protocols:
source-ports:
modules: ftp
destination:
Перезагрузим правила:
firewall-cmd --reload
Добавления сервиса в зону:
#firewall-cmd --permanent --zone=public --add-service=zabbix-agent
firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="10.1.104.55" service name="zabbix-agent" accept'
Для создания сервиса переходим в /usr/lib/firewalld/services/
и создаем пример zabbix-agent.xml
Вот его конфиг:
<service>
<short>Zabbix-agent</short>
<description>Service for Zabbix-agent</description>
<port protocol="tcp" port="10050"/>
</service>
Добавление доступа со всех сетей на порт 622/tcp:
firewall-cmd --permanent --zone=public --add-port=622/tcp
Удаление доступа со всей сети к порту 622:
firewall-cmd --permanent --zone=public --remove-port=622/tcp
Добавление портов для подключения zabbix:
firewall-cmd --permanent --add-port=10050/tcp
firewall-cmd --permanent --add-port=10051/tcp
Добавление диапозона портов 4990-4999/udp
firewall-cmd --zone=public --add-port=4990-4999/udp
Запрет всего входящего трафика с адреса 10.44.1.31
(--permanent
сделает правило постоянным):
firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="10.44.1.31" drop'
Отмена запрета всего входящего трафика с адреса 10.44.1.31
firewall-cmd --permanent --zone=public --remove-rich-rule='rule family="ipv4" source address="10.44.1.31" drop'
Запретить входящий трафик на сервис ssh с 10.44.1.31
firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="10.44.1.31" service name="ssh" drop'
firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="10.44.1.31" service name="ssh" accept'
Добавление разрешающего правила на указаный порт.
firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="10.44.1.31/32" port protocol="tcp" port="8093" accept'
Просмотреть статус firewalld
service firewalld status
firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="10.1.104.19" port protocol="tcp" port="50500-50505" accept'
firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="10.1.104.19" port protocol="udp" port="50500-50505" accept'
firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="10.1.104.19" port protocol="tcp" port="20031" accept'
firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="10.1.104.19" port protocol="udp" port="20031" accept'
Перезапуск firewalld
service firewalld restart
iptables -nvL
sudo firewall-cmd --add-forward-port=port=514:proto=tcp:toport=10514 --permanent
Разрешить доступ на определенные порты
-A INPUT -p tcp -s 10.1.104.19 --dport 50500:50505 -j ACCEPT
-A INPUT -p udp -s 10.1.104.19 --dport 50500:50505 -j ACCEPT
-A INPUT -p tcp -s 10.1.104.19 --dport 20031 -j ACCEPT
-A INPUT -p udp -s 10.1.104.19 --dport 20031 -j ACCEPT
Перезапуск служб:
systemctl restart iptables.service
systemctl status iptables.service
http://fedoraproject.org/wiki/Features/FirewalldRichLanguage