В якому стані 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