Просто настраиваемый в простых случаях.
Штатный для RHEL, CentOS, openSUSE, REDOS...
https://www.dmosk.ru/miniinstruktions.php?mini=firewalld-centos


systemctl  enable --now   firewalld
systemctl  stop  firewalld           # выключение firewalld

Для управления используется команда firewall-cmd, когда firewalld погашен, она не работает
firewall-offline-cmd       # работает с "permanent"-конфигом при погашеном firewalld


без ключа --permanent сразу изменяется действующий конфиг "work", но не все команды доступны
с ключем  --permanent                # работа с сохраняемым конфигом

firewall-cmd --reload                # загрузить сохраненный конфиг    (permanent >> work)
firewall-cmd --runtime-to-permanent  # завиксировать текущую настройку (work >> permanent)

firewall-offline-cmd                 # работает с "permanent"-конфигом при погашеном firewalld

firewall-cmd --list-all              # просмотреть конфиги: рабочий
firewall-cmd --list-all --permanent  # и сохраненный


ZONA=(подцепленныe интерфейсы)+(открытыe порты)+(разрешенные source-IP)+(reach-rules)
Зона становится активной если в нее добавлен INTERFACE или SOURCE-IP
Добавление port/service/reach-rule зону НЕ активирует
firewall-cmd --get-active-zones

Доступ к порту:    (source-ip || interface )   &&   ( port || reach-rule )
    source-ip проверяется РАНЬШЕ interface и передает разбор на source-ip-зону



ACCESS с ЛЮБЫХ ip на КОМПЛЕКТ портов
zona: добавить interface,  добавить port
 --permanent --add-interface=eth0 --add-port=777/udp  --add-port=777-790/tcp

ACCESS с КОМПЛЕКТА ip на все порты
zona: НЕ добавлять интерфейс, добавить source-ip, --permanent --set-target=ACCEPT
 --permanent --add-source=192.168.1.0/24 --set-target=ACCEPT

ACCESS с КОМПЛЕКТА ip на КОМПЛЕКТ портов
zona: НЕ добавлять интерфейс, добавить source-ip, добавить port
 --permanent --zone nfs-zone --add-source=192.168.1.0/24 \
      --add-service=nfs --add-service=rpc-bind --add-service=mountd

ACCESS|REJECT|DROP индивидуальный с разных  ip на разные порты
zona: добавить интерфейс, НЕ добавлять port, добавить reach-rule
     (source "address/netmask" + port|service ==> accept|reject|drop)
 --permanent --zone buhgalt --add-interface=wlan0  \
 --add-rich-rule 'rule family=ipv4 source ipset=hackers service name=ssh drop' \
 --add-rich-rule 'rule family=ipv4 source address=10.8.1.0/24 port port=80 protocol=tcp accept'


ZONA=(подцепленныe интерфейсы)+(открытыe порты)+(разрешенные source-IP)+(reach-rules)
firewall-cmd --info-zone=public       # конфиг зоны
firewall-cmd --list-all --zone=public # конфиг зоны
firewall-cmd --get-active-zones       # зоны с интерфейсами
firewall-cmd --get-zones              # список зон

     #  если не указано, к какой зоне применяется команда - то применяется к дефолтной
firewall-cmd --get-default-zone           # изначально дефолтная зона == public
firewall-cmd --set-default-zone=internal

firewall-cmd --permanent --new-zone=region
firewall-cmd --zone=public --add-interface=ens34
firewall-cmd --zone=public --remove-interface=wlan0
firewall-cmd --zone=dmz --add-source=192.168.1.0/24
firewall-cmd --zone=trusted --add-source=ipset:IP-whitelist

firewall-cmd --permanent --zone=trusted --set-target=ACCEPT
firewall-cmd --permanent --zone=region   --set-target=DROP
  # дефолтное правило для зоны ACCEPT|DROP|REJECT|default=reject+accept-icmp



firewall-cmd --list-all                 # просмотреть порты и сервисы: рабочий дефолтной зоны
firewall-cmd --list-all --zone public --permanent  # просмотреть сохраненный конфиг зоны public

firewall-cmd --list-ports                                    # открытые порты
firewall-cmd --list-services                                 # открытые сервисы
firewall-cmd --get-services                                  # все известные сервисы
firewall-cmd --info-service=nfs                              # подробности о сервисе

firewall-cmd  --add-service=iscsi                            # открыть сервис
firewall-cmd  --remove-service=rkn-service                   # закрыть сервис
firewall-cmd  --add-port=777/udp --add-port=8200-8250/tcp    # открыть порты


               ### создать свой сервис и добавить в него порты и source-IP
firewall-cmd --permanent --new-service=rkn-service --set-short="Name RKN-SERVICE"
firewall-cmd --permanent --service=rkn-service --add-port=2200/tcp
firewall-cmd --info-service=name-service


firewall-cmd --add-source=192.168.1.0/24 --permanent --zone web    # добавить в белый список зоны
firewall-cmd --remove-source=192.168.1.0/24 --permanent --zone web # удалить из белого списка зоны

                                     # ограничить доступ по IP
firewall-cmd --add-rich-rule='rule family="ipv4" source address="X.X.X.X/Y" reject'
firewall-cmd --add-rich-rule='rule source ipset=blacklist drop'    # блэклист зоны из ipset
                                     # ограничить доступ к порту/сервису по IP
 --add-rich-rule 'rule family=ipv4 source address=10.9.8.0/24 service name=ssh reject'
 --add-rich-rule 'rule family=ipv4 source address=15.1.1.9/32 port port=22 protocol=tcp accept'


firewall-cmd --get-ipset-types
hash:ip  hash:ip,mark hash:ip,port     hash:ip,port,ip   hash:ip,port,net     hash:mac
hash:net hash:net,iface  hash:net,net  hash:net,port     hash:net,port,net

firewall-cmd --get-ipsets
firewall-cmd --permanent --new-ipset=IPSETNAME --type=hash:net
firewall-cmd --ipset=IPSETNAME  --set-description="IPSet Description" --set-short="Description"
firewall-cmd --delete-ipset=IPSETNAME
firewall-cmd --info-ipset=IPSETNAME

firewall-cmd --ipset=IPSETNAME --add-entry=192.168.1.0/24 --add-entry=10.10.1.0/24
firewall-cmd --ipset=IPSETNAME --add-entries-from-file=/path/to/file.list  # по адресу в строке
firewall-cmd --add-rich-rule='rule source ipset=IPSETNAME drop'   # блэклист дефолтной зоны

firewall-cmd --ipset=ipset --get-entries
firewall-cmd --ipset=ipset --add-entry=entry
firewall-cmd --ipset=ipset --remove-entry=entry
firewall-cmd --ipset=ipset --query-entry=entry


firewall-cmd --direct --permanent --add-rule ipv4 filter FORWARD 0 -i ens32 -o ens33 -j ACCEPT


firewall-cmd --permanent --zone=dmz --add-masquerade


 --zone=external --permanent --add-forward-port=port=25:proto=tcp:toport=825:toaddr=10.1.0.9

Популярность: 3, Last-modified: Sat, 20 Dec 2025 17:57:22 GmT