💾 Archived View for tilde.team › ~rami › redhat_firewalld.gmi captured on 2024-05-10 at 11:37:45. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2023-12-28)
-=-=-=-=-=-=-
רמי
SUBJECT: Firewalld: Настройка и тестирование системного фаэрволла
AUTHOR: Rami Rosenfeld
DATE: 12/09/22; upd. 07/12/23
TIME: 15.00
LANG: ru, en
LICENSE: GNU FDL 1.3
TAGS: gnu, gnome, software, opensource, linux, system, man, manual, bash, privacy, security, rhel, centos, mate, xfce, lxde, spin, de, systemd, systemctl, selinux, firewalld, dnf, rpm
В RedHat (RHEL, Fedora, CentOS) имеется отличный GUI для встроенного фаэрволла (впрочем, его стали удалять в последних релизах ОС), однако многие команды нагляднее и удобнее выполнять прямо из консоли; тем более, что они априорно легки для восприятия и хорошо запоминаются.
Примечание: В случае необходимости, установите GUI для firewalld:
dnf install firewall-config
systemctl status firewalld
firewall-cmd --state
Результат: running
firewall-cmd --get-default-zone
Результат: public
Примечание: "зона" - набор определенных правил и политик безопасности для фаэрволла, включенных по умолчанию.
firewall-cmd --get-active-zones
Результат: public
interfaces: enp3s0 ppp0
Фаэрволл настраивается в двух режимах: runtime (текущий) и permanent (постоянный). На это нужно обращать внимание при консольной настройке. Для изменений постоянного режима используется опция "--permanent".
firewall-cmd --get-zones
Результат:
FedoraServer
FedoraWorkstation
block
dmz
drop
external
home
internal
public
trusted
work
firewall-cmd --permanent --get-zones
Результат: (аналогичен предыдущему)
firewall-cmd --permanent --list-all-zones
Результат (сокращен):
FedoraWorkstation
interfaces:
sources:
services: dhcpv6-client mdns
ports: 1025-65535/udp 1025-65535/tcp
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
block
(...)
dmz
(...)
Примечание: по умолчанию во многих дистрибутивах установлена зона "public", но лучше это перепроверить!
(только при необходимости; рекомендую выбирать зоны из предустановленных)
firewall-cmd --permanent --new-zone=my_zone
Результат: success
firewall-cmd --permanent --list-all-zones
Результат:
my_zone
interfaces:
sources:
services:
ports:
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
public (default)
(...)
firewall-cmd --permanent --delete-zone=my_zone
Результат: success
Общая проверка свойств дефолтной зоны "public" в режиме permanent
firewall-cmd --permanent --list-all
Результат:
public (default)
interfaces:
sources:
services: dhcpv6-client mdns
ports:
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
firewall-cmd --permanent --list-services
Результат: dhcpv6-client mdns
(результаты вывода сокращены)
firewall-cmd --permanent --get-services
Результат: amanda-client amanda-k5-client bacula (...)
Примечание: эта команда работает сразу для двух режимов - runtime и permanent.
firewall-cmd --set-default-zone=FedoraWorkstation
Результат: success
firewall-cmd --reload
Результат: success
firewall-cmd --get-active-zones
Результат: FedoraWorkstation
interfaces: enp3s0 ppp0
firewall-cmd --permanent --list-ports
Результат: 1025-65535/udp 1025-65535/tcp
firewall-cmd --permanent --remove-port=1025-65535/udp && firewall-cmd --permanent --remove-port=1025-65535/tcp
Результат:
success
success
firewall-cmd --permanent --zone=FedoraWorkstation --list-ports
Результат: (код возврата - 0, т.е. системного сообщения нет)
firewall-cmd --remove-port=1025-65535/udp && firewall-cmd --remove-port=1025-65535/tcp
Результат:
success
success
firewall-cmd --list-ports
Результат: (код возврата - 0, т.е. системного сообщения нет)
firewall-cmd --permanent --remove-service=dhcpv6-client
Результат: success
firewall-cmd --remove-service=dhcpv6-client
Результат: success
Примечание: Аналогичными командами удаляем из дефолтной зоны поддержку сервисов ssh, mdns, samba, если они имеются в наличии)
firewall-cmd --reload
Результат: success
firewall-cmd --permanent --list-all
Результат:
FedoraWorkstation (default)
interfaces:
sources:
services:
ports:
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
dnf install firewall-config
firewall-cmd --panic-on
firewall-cmd --panic-off
firewall-cmd --query-panic
Примечание: возвращает 0, если panic mode включен, 1 - если выключен.
firewall-cmd --add-service=http
firewall-cmd --add-port=443/tcp
firewall-cmd --permanent --add-port=443/tcp
firewall-cmd --zone=public --add-service=wireguard --timeout=5m
Результат: success
firewall-cmd --list-services
Результат: wireguard
man firewall-cmd
Подробнее см.:
Firewalld Official Documentation
🄯 Rami Rosenfeld, 2022. GNU FDL 1.3.