Ce face firewall-cmd
firewalld este firewall-ul implicit pe Fedora și pe familia Red Hat (RHEL, AlmaLinux, Rocky Linux); firewall-cmd este clientul lui în linie de comandă. Regulile se grupează pe zone (de exemplu public, internal), iar fiecare interfață de rețea aparține unei zone.
Orice modificare fără --permanent se aplică imediat, dar se pierde la repornire. Cu --permanent se scrie în configurație, dar nu se aplică până la --reload. De aceea, de obicei rulezi comanda cu --permanent și apoi --reload.
Opțiuni și argumente
| Opțiune / Parametru | Descriere |
|---|---|
--state |
Arată dacă firewalld rulează. |
--get-active-zones |
Zonele active și interfețele din ele. |
--list-all |
Tot ce este permis în zona implicită (sau în cea dată cu --zone). |
--add-service=NUME |
Deschide un serviciu cunoscut (http, https, ssh). |
--add-port=PORT/tcp |
Deschide un port anume (de exemplu 8080/tcp). |
--remove-service / --remove-port |
Închide din nou serviciul sau portul. |
--permanent |
Scrie regula în configurația permanentă. |
--reload |
Reîncarcă configurația permanentă fără a întrerupe conexiunile existente. |
Exemple
Exemplul 1: Starea firewall-ului și regulile zonei
Pe un server nou sunt permise doar SSH și câteva servicii de bază.
sudo firewall-cmd --state
sudo firewall-cmd --list-all
Ieșire în terminal
running
public (active)
target: default
icmp-block-inversion: no
interfaces: eth0
sources:
services: cockpit dhcpv6-client ssh
ports:
protocols:
forward: yes
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
Exemplul 2: Deschiderea permanentă a HTTP și HTTPS
Fiecare comandă reușită răspunde cu success. Ultima comandă confirmă serviciile din configurația activă.
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
sudo firewall-cmd --list-services
Ieșire în terminal
success
success
success
cockpit dhcpv6-client http https ssh
Exemplul 3: Port temporar pentru un test
Fără --permanent, portul 8080 rămâne deschis doar până la repornire sau la următorul --reload.
sudo firewall-cmd --add-port=8080/tcp
sudo firewall-cmd --list-ports
Ieșire în terminal
success
8080/tcp
Greșeli frecvente
- Adăugarea unei reguli doar cu
--permanentși surprinderea că nu funcționează: lipsește--reload. - Folosirea simultană a
firewalldși a altor unelte (ufw, reguliiptablesscrise manual) pe același server, cu reguli care se contrazic. - Lucrul la regulile SSH printr-o conexiune SSH fără o a doua sesiune deschisă: o greșeală te poate bloca afară.