Acasă
» LINUX
»
Cum se configurează firewall-ul SLES 15 cu firewall-cmd
Cum se configurează firewall-ul SLES 15 cu firewall-cmd
Un serviciu poate rula pe un server SLES 15 și totuși să expire pentru clienții la distanță, deoarece firewall-ul blochează traficul nou de intrare. Soluția constă de obicei în identificarea zonei active firewalld și permiterea doar a serviciului sau portului de care are nevoie aplicația. Instrumentul din linia de comandă SLES pentru această sarcină este firewall-cmd.
Acest ghid respectă Ghidul de securitate și consolidare SLES 15 SP7 de la SUSE și referința comenzii firewalld, verificată la 7 octombrie 2026. Pachetele service pack-uri anterioare și sistemele SLES 12 actualizate pot avea stări diferite sau configurații firewall vechi diferite. Imaginile terminalului prezintă exemple reprezentative, nu rezultate capturate de pe un server real; înlocuiți numele interfețelor, zonele și serviciile cu valorile de pe gazdă.
1. Verificați dacă firewall-ul rulează
SUSE documentează firewalld ca fiind instalat și activat implicit pe SLES 15. YaST îl pornește în mod normal după instalare și plasează interfețele în publiczona implicită. Totuși, verificați mașina în loc să presupuneți că setările implicite nu s-au modificat. Rulați aceste comenzi cu un cont autorizat să utilizeze sudo:
sudo systemctl status firewalld
sudo firewall-cmd --state
Managerul de servicii ar trebui să raporteze că firewalldeste activ și firewall-cmd --statear trebui să raporteze running. Dacă serviciul este instalat, dar oprit, pornește-l și activează-l la pornire:
sudo systemctl enable --now firewalld
Dacă firewall-cmdlipsește, verificați dacă firewalldpachetul este instalat și disponibil în repozitoriile SUSE activate. Nu instalați sau înlocuiți componentele firewall-ului orbește pe un server gestionat.
Terminalul exemplu verifică starea firewalld și afișează un exemplu de zonă publică activă cu interfața eth0.
2. Găsiți zona care protejează interfața serverului
Firewalld grupează regulile în zone , care reprezintă diferite niveluri de încredere. publicZona este utilizată în mod obișnuit pentru rețelele care nu sunt de încredere. Un serviciu deschis într-o zonă nu se deschide automat în fiecare zonă, așadar o regulă corectă în zona greșită poate face aplicația inaccesibilă.
Folosește ieșirea zonei active pentru a găsi zona atașată interfeței care transportă traficul clientului. Numele interfeței ar putea fi eth0, ens160, sau un alt nume. Dacă trebuie să verifici o interfață, rulează:
sudo firewall-cmd --get-zone-of-interface=eth0
Înlocuiți eth0cu interfața reală. O interfață care nu este atribuită explicit unei zone este gestionată de zona implicită. Evitați modificarea accidentală a zonei implicite: acest lucru poate afecta interfețele care depind de aceasta. Pe un server la distanță, identificați zona SSH sau altă zonă de administrare și confirmați regula de acces a acesteia înainte de a reîncărca setările firewall-ului. Păstrați disponibilă o consolă sau o cale de recuperare în afara benzii, dacă există una.
Lista zonelor arată ce interfețe și servicii sunt asociate cu zona publică exemplu înainte de orice modificări.
3. Alegeți un serviciu denumit sau un port specific
Un serviciu firewalld este o definiție denumită care poate include unul sau mai multe porturi și protocoale. De obicei, este mai ușor să permiteți un serviciu cunoscut după nume decât să memorați numărul portului său. Verificați lista de servicii instalate și inspectați o definiție înainte de a o utiliza:
Pentru un server web, httpserviciul predefinit acoperă de obicei portul TCP 80; httpseste serviciul separat pentru traficul web TLS. Documentația SLES prezintă aceeași metodă bazată pe servicii cu exemple precum DHCP. Folosește serviciul real necesar aplicației tale și verifică definiția serviciului local dacă nu ești sigur.
Dacă niciun serviciu predefinit nu se potrivește, deschideți doar portul și protocolul necesare. De exemplu, o aplicație care ascultă pe portul TCP 8443 poate fi permisă cu --add-port=8443/tcp. Deschiderea unui port în firewall nu pornește o aplicație, nu o leagă de rețea și nu o face sigură; confirmați că serviciul în sine este configurat să asculte la adresa dorită.
Testați mai întâi o regulă temporară
Pentru un test scurt, aplicați o regulă configurației runtime. Modificările runtime intră în vigoare imediat, dar se pierd după o reîncărcare a firewall-ului sau o repornire a serviciului, cu excepția cazului în care le salvați și permanent. Firewalld acceptă o regulă limitată în timp, care este utilă atunci când doriți ca un test să expire automat:
Pentru un test unic de port, folosiți --add-port=8443/tcp --timeout=5mîn loc de --add-service=http. Selectați zona care conține de fapt interfața serverului; nu copiați publicdacă gazda dvs. folosește o altă zonă.
Comanda exemplu adaugă serviciul HTTP la configurația permanentă a zonei publice, apoi reîncarcă firewalld pentru a-l aplica.
4. Salvați regula și reîncărcați firewalld
Când sunteți gata să păstrați o regulă, adăugați-o la configurația permanentă. Următorul exemplu permite HTTP în zona publică:
Aceste exemple modifică mai întâi configurația permanentă, apoi o reîncarcă astfel încât noua regulă să devină activă. O reîncărcare înlocuiește, de asemenea, setările de execuție cu configurația permanentă. Prin urmare, orice modificări efectuate exclusiv în alte părți ale sistemului de producție pot fi eliminate. Înainte de a reîncărca un sistem de producție, examinați regulile importante de execuție și cele permanente, în special accesul la administrare la distanță.
Există, de asemenea, un flux de lucru axat pe runtime: testați o regulă în runtime, confirmați că serviciul funcționează, apoi adăugați aceeași regulă cu --permanentși reîncărcați. Evitați utilizarea --runtime-to-permanentca scurtătură, cu excepția cazului în care intenționați să salvați fiecare regulă runtime curentă, inclusiv modificările temporare făcute de alți administratori sau software.
Cum poți verifica dacă schimbarea a funcționat?
Verificați atât regula de execuție activă, cât și regula salvată. Pentru un serviciu HTTP în zona publică, executați:
Interogarea ar trebui să returneze yes, lista de servicii permanente ar trebui să includă http, iar verificarea configurației ar trebui să se finalizeze cu succes. Pentru o regulă de port, utilizați --query-port=8443/tcpși --list-portsîn comenzile echivalente. De asemenea, testați de la un client separat care poate ajunge la server; o interogare locală de firewall confirmă că regula este prezentă, nu că DNS, rutare, firewall-urile din amonte sau listener-ul aplicației sunt corecte.
Comenzile de verificare verifică regula de serviciu activă, lista de servicii salvate și sintaxa de configurare permanentă.
Probleme comune și corecții sigure
Regula este prezentă, dar conexiunile tot expiră: asigurați-vă că a fost adăugată la zona atașată interfeței orientate către client. Apoi verificați dacă aplicația ascultă la adresa și portul așteptate și verificați orice firewall de rețea din amonte.
Regula a funcționat până la o reîncărcare: probabil a fost adăugată doar la runtime. Adăugați-o cu --permanentși reîncărcați, apoi interogați ambele configurații.
Accesul SSH este în pericol: verificați serviciile zonei active și serviciile permanente înainte de reîncărcare. Dacă SSH este necesar și lipsește, adăugați serviciul sshpermanent în zona corectă înainte de reîncărcare. Nu închideți sesiunea curentă la distanță până nu ați testat o a doua conexiune.
Migrați de la o versiune mai veche de SUSE: SLES 15 a înlocuit SuSEfirewall2 cu firewalld. SUSE avertizează că profilurile firewall vechi au o compatibilitate limitată cu versiunile anterioare; consultați ghidul de migrare în loc să presupuneți că fiecare regulă mai veche a fost tradusă.
Regulile par să fie în conflict: firewalld este destinat să gestioneze regulile firewall-ului gazdei. SUSE avertizează împotriva modificării acelorași reguli separat cu instrumente precum iptables, care pot crea confuzie în configurația activă.
Pentru a elimina un serviciu sau un port permanent inutil, utilizați opțiunea potrivită --remove-servicesau --remove-portcu --permanent, apoi reîncărcați și verificați din nou. De exemplu, eliminați HTTP din zona publică cu , sudo firewall-cmd --permanent --zone=public --remove-service=httpurmat de sudo firewall-cmd --reload.
Autoevaluează-te înainte de a termina
firewalldrulează și pornește când serverul pornește.
Ai identificat zona activă pentru interfața care primește trafic.
Doar serviciul sau portul de care are nevoie aplicația este permis în acea zonă.
Administrarea la distanță rămâne permisă înainte și după reîncărcare.
Regula apare în interogările de execuție și cele permanente, iar verificarea configurației trece cu succes.
Un test de conexiune de la o altă gazdă confirmă că aplicația este accesibilă.