Cum să începeți cu firewalld pe Linux

Publicat: 2022-07-08
Ecranul laptopului care arată o linie de comandă Linux.
fatmawati achmad zaenuri/Shutterstock.com

Dacă sunteți în căutarea unui firewall modern, puternic pentru Linux, care este ușor de configurat pe linia de comandă sau cu interfața sa GUI, atunci firewalld este probabil ceea ce căutați.

Nevoia de firewall-uri

Conexiunile de rețea au o origine și o destinație. Software-ul de la origine solicită conexiunea, iar software-ul de la destinație o acceptă sau o respinge. Dacă este acceptat, pachetele de date – numite generic trafic de rețea – pot trece în ambele direcții prin conexiune. Acest lucru este valabil indiferent dacă partajați în toată camera din propria casă, vă conectați de la distanță la serviciu de la biroul dvs. de acasă sau utilizați o resursă la distanță, bazată pe cloud.

Ce face de fapt un firewall?
RELATE Ce face de fapt un firewall?

O bună practică de securitate spune că ar trebui să limitați și să controlați conexiunile la computer. Asta fac firewall-urile. Ele filtrează traficul de rețea după adresa IP, port sau protocol și resping conexiunile care nu îndeplinesc un set predefinit de criterii – regulile firewall – pe care le-ați configurat. Sunt ca personalul de securitate la un eveniment exclusivist. Dacă numele tău nu este pe listă, nu intri înăuntru.

Desigur, nu doriți ca regulile dvs. de firewall să fie atât de restrictive încât activitățile dvs. normale să fie reduse. Cu cât este mai simplu să configurați firewall-ul, cu atât aveți mai puține șanse de a stabili din greșeală reguli conflictuale sau draconice. Auzim adesea de la utilizatori care spun că nu folosesc un firewall pentru că este prea complicat de înțeles sau sintaxa comenzii este prea opacă.

firewalld -ul firewall este puternic, dar simplu de configurat, atât pe linia de comandă, cât și prin intermediul aplicației sale GUI dedicate. Sub capotă, firewall-urile Linux se bazează pe netfilter , cadrul de filtrare a rețelei din partea nucleului. Aici, în user-land, avem o varietate de instrumente pentru a interacționa cu netfilter , cum ar fi iptables , ufw firewall-ul necomplicat și firewalld .

În opinia noastră, firewalld oferă cel mai bun echilibru între funcționalitate, granularitate și simplitate.

Instalarea firewalld

Există două părți pentru firewalld . Există firewalld , procesul daemon care oferă funcționalitatea firewall și există firewall-config . Acesta este GUI opțional pentru firewalld . Rețineți că nu există „d” în firewall-config .

Instalarea firewalld pe Ubuntu, Fedora și Manjaro este simplă în toate cazurile, deși fiecare are propria interpretare a ceea ce este preinstalat și a ceea ce este inclus.

Pentru a instala pe Ubuntu, trebuie să instalăm firewalld și firewall-config .

 sudo apt install firewalld 

Instalarea firewalld pe Ubuntu

 sudo apt install firewall-config 

Instalarea firewall-config pe Ubuntu

Pe Fedora, firewalld este deja instalat. Trebuie doar să adăugăm firewall-config .

sudo dnf install firewall-config

Instalarea firewall-config pe Fedora

Pe Manjaro, niciuna dintre componente nu este preinstalată, dar sunt incluse într-un singur pachet, astfel încât să le putem instala pe amândouă cu o singură comandă.

 sudo pacman -Sy firewalld 

Instalarea firewalld și firewall-config cu o singură comandă pe Manjaro

Trebuie să activăm demonul firewalld pentru a-i permite să ruleze de fiecare dată când computerul pornește.

 sudo systemctl enable firewalld 

Activarea firewalld pentru pornirea automată la pornire

Și trebuie să pornim demonul astfel încât să ruleze acum.

 sudo systemctl start firewalld 

Pornirea demonului firewalld

Putem folosi systemctl pentru a verifica dacă firewalld a pornit și rulează fără probleme:

 sudo systemctl status firewalld 

Verificarea stării firewalld cu systemctl

De asemenea, putem folosi firewalld pentru a verifica dacă rulează. Aceasta folosește comanda firewall-cmd cu opțiunea --state . Rețineți că nu există „d” în firewall-cmd :

 sudo firewall-cmd --state 

Verificarea stării firewalld cu comanda firewall-cmd

Acum avem firewall-ul instalat și rulat, putem trece la configurarea lui.

Conceptul de zone

firewalld -ul firewall se bazează pe zone . Zonele sunt colecții de reguli de firewall și o conexiune de rețea asociată. Acest lucru vă permite să personalizați diferite zone - și un set diferit de limitări de securitate - în care puteți opera. De exemplu, este posibil să aveți o zonă definită pentru alergare obișnuită, de zi cu zi, o altă zonă pentru alergare mai sigură și o zonă de blocare completă „nimic în, nimic în afara”.

Pentru a trece dintr-o zonă în alta și efectiv de la un nivel de securitate la altul, vă mutați conexiunea la rețea din zona în care se află, în zona în care doriți să rulați.

Acest lucru face foarte rapidă mutarea unuia dintr-un set definit de reguli de firewall la altul. O altă modalitate de a folosi zonele ar fi să ai laptopul tău să folosească o zonă când ești acasă și alta când ești afară și folosește Wi-Fi public.

firewalld vine cu nouă zone pre-configurate. Acestea pot fi editate și mai multe zone adăugate sau eliminate.

  • drop : Toate pachetele primite sunt abandonate. Traficul de ieșire este permis. Aceasta este cea mai paranoică setare.
  • bloc : Toate pachetele primite sunt abandonate și un mesaj icmp-host-prohibited este trimis către emitent. Traficul de ieșire este permis.
  • de încredere : Toate conexiunile de rețea sunt acceptate și alte sisteme sunt de încredere. Aceasta este setarea cea mai de încredere și ar trebui să fie limitată la medii foarte sigure, cum ar fi rețelele de testare captive sau casa dvs.
  • public : această zonă este destinată utilizării în rețele publice sau în alte rețele în care niciunul dintre celelalte computere nu poate fi de încredere. Sunt acceptate o mică selecție de solicitări de conectare comune și de obicei sigure.
  • extern : Această zonă este pentru utilizare în rețele externe cu masquerading NAT (redirecționare port) activată. Firewall-ul tău acționează ca un router care redirecționează traficul către rețeaua privată, care rămâne accesibilă, dar totuși privată.
  • intern : această zonă este destinată să fie utilizată în rețelele interne atunci când sistemul dumneavoastră acționează ca gateway sau router. Alte sisteme din această rețea sunt în general de încredere.
  • dmz : Această zonă este pentru computerele situate în „zona demilitarizată” în afara apărării perimetrului și cu acces limitat înapoi în rețea.
  • lucru : Această zonă este destinată mașinilor de lucru. Alte computere din această rețea sunt în general de încredere.
  • acasă : Această zonă este pentru aparatele de acasă. Alte computere din această rețea sunt în general de încredere.

Zonele de acasă, de serviciu și interioare sunt foarte similare ca funcție, dar separarea lor în zone diferite vă permite să reglați o zonă după bunul plac, încapsulând un set de reguli pentru un anumit scenariu.

Un bun punct de plecare este să aflați care este zona implicită. Aceasta este zona la care sunt adăugate interfețele de rețea când este instalat firewalld .

 sudo firewall-cmd --get-default-zone 

Găsirea zonei firewalld implicite

Zona noastră implicită este zona publică. Pentru a vedea detaliile de configurare ale unei zone, utilizați opțiunea --list-all . Aceasta listează tot ce a fost adăugat sau activat pentru o zonă.

 sudo firewall-cmd --zone=public --list-all 

Listarea detaliilor zonei publice

Putem vedea că această zonă este asociată cu conexiunea la rețea enp0s3 și permite trafic legat de DHCP, mDNS și SSH. Deoarece la această zonă a fost adăugată cel puțin o interfață, această zonă este activă.

firewalld vă permite să adăugați servicii din care doriți să acceptați trafic către o zonă. Acea zonă permite apoi acest tip de trafic. Acest lucru este mai ușor decât să ne amintim că mDNS, de exemplu, utilizează portul 5353 și protocolul UDP și să adauge manual acele detalii în zonă. Deși poți să faci și asta.

Dacă rulăm comanda anterioară pe un laptop cu conexiune ethernet și card Wi-Fi, vom vedea ceva asemănător, dar cu două interfețe.

 sudo firewall-cmd --zone=public --list-all 

O zonă cu două interfețe în ea

Ambele interfețe de rețea au fost adăugate la zona implicită. Zona are reguli pentru aceleași trei servicii ca și primul exemplu, dar DHCP și SSH au fost adăugate ca servicii denumite, în timp ce mDNS a fost adăugat ca pereche de port și protocol.

Pentru a lista toate zonele, utilizați opțiunea --get-zones .

 sudo firewall-cmd --get-zones 

Listarea tuturor zonelor firewall

Pentru a vedea configurația pentru toate zonele simultan, utilizați opțiunea --list-all-zones . Veți dori să transformați asta în less .

 sudo firewall-cmd --list-all-zones | Mai puțin 

Listarea detaliilor tuturor zonelor

Acest lucru este util deoarece puteți derula lista sau utilizați facilitatea de căutare pentru a căuta numere de port, protocoale și servicii.

Detaliile tuturor zonelor sunt afișate în mai puțin

Pe laptopul nostru, ne vom muta conexiunea Ethernet din zona publică în zona de domiciliu. Putem face asta cu --zone și --change-interface .

 sudo firewall-cmd --zone=home --change-interface=enp3s0 

Adăugarea unei interfețe de rețea în zona de domiciliu

Să aruncăm o privire la zona de acasă și să vedem dacă schimbarea noastră a fost făcută.

 sudo firewall-cmd --zone=home --list-all 

Zona de domiciliu cu o interfață de rețea adăugată

Și are. Conexiunea noastră Ethernet este adăugată în zona de domiciliu.

Totuși, aceasta nu este o schimbare permanentă. Am schimbat configurația de rulare a paravanului de protecție, nu configurația stocată . Dacă repornim sau folosim opțiunea --reload , vom reveni la setările anterioare.

Pentru a face o schimbare permanentă, trebuie să folosim opțiunea corect numită --permanent .

Aceasta înseamnă că putem schimba firewall-ul pentru cerințe unice, fără a modifica configurația stocată a firewall-ului. De asemenea, putem testa modificările înainte de a le trimite la configurație. Pentru a face schimbarea noastră permanentă, formatul pe care ar trebui să-l folosim este:

 sudo firewall-cmd --zone=home --change-interface=enp3s0 --permanent

Dacă faceți unele modificări, dar uitați să utilizați --permanent pe unele dintre ele, puteți scrie setările sesiunii curente de rulare a firewall-ului în configurație folosind opțiunea --runtime-to-permanent .

 sudo firewall-cmd --runtime-to-permanent 

Se reîncarcă configurația firewall

LEGATE: Ce este DHCP (Dynamic Host Configuration Protocol)?

Adăugarea și eliminarea serviciilor

firewalld știe despre o mulțime de servicii. Le puteți lista folosind opțiunea --get-services .

 sudo firewall-cmd --get-services 

Listarea serviciilor firewalld poate face referire după nume

Versiunea noastră de firewalld a enumerat 192 de servicii. Pentru a activa un serviciu într-o zonă, utilizați opțiunea --add-service .

Lista serviciilor recunoscute

Putem adăuga un serviciu într-o zonă folosind opțiunea --add-service .

 sudo firewall-cmd --zone=public --add-service=http 

Adăugarea serviciului HTTP într-o zonă

Numele serviciului trebuie să se potrivească cu intrarea sa din lista de servicii din firewalld .

Pentru a elimina un serviciu, înlocuiți --add-service cu --remove-service

Adăugarea și eliminarea porturi și protocoale

Dacă preferați să alegeți ce porturi și protocoale sunt adăugate, puteți face și asta. Va trebui să știți numărul portului și protocolul pentru tipul de trafic pe care îl adăugați.

Să adăugăm trafic HTTPS în zona publică. Acesta folosește portul 443 și este o formă de trafic TCP.

 sudo firewall-cmd --zone=public --add-port=443/tcp 

Adăugarea unui port și a unui protocol de împerechere la o zonă

Puteți furniza o gamă de porturi furnizând primul și ultimul port cu o cratimă „ - ” între ele, cum ar fi „400-450”.

Pentru a elimina un port înlocuiți --add-port cu --remove-port .

RELATE: Care este diferența dintre TCP și UDP?

Folosind GUI

Apăsați tasta „Super” și începeți să tastați „firewall”. Veți vedea pictograma zid de cărămidă pentru aplicația firewall-config .

Faceți clic pe acea pictogramă pentru a lansa aplicația.

Pentru a adăuga un serviciu la firewalld folosind GUI este la fel de ușor ca și selectarea unei zone din lista de zone și selectarea serviciului din lista de servicii.

Puteți alege să modificați sesiunea de rulare sau configurația permanentă selectând „Runtime” sau „Permanent” din meniul drop-down „Configuration”.

Meniul derulant de configurare

Pentru a face modificări în sesiunea de rulare și pentru a efectua modificări numai după ce le-ați testat, setați meniul „Configurare” la „Timp de rulare”. Faceți modificările dvs. Odată ce ești mulțumit că fac ceea ce vrei, folosește opțiunea de meniu Opțiuni > Runtime to Permanent.

Pentru a adăuga un port și o intrare de protocol într-o zonă, selectați zona din lista de zone și faceți clic pe „Porturi”. Făcând clic pe butonul de adăugare, vă permite să furnizați numărul portului și să alegeți protocolul dintr-un meniu.

Adăugarea unei perechi de port și protocol folosind GUI-ul de configurare a firewall-ului

Pentru a adăuga un protocol, faceți clic pe „Protocoale”, faceți clic pe butonul „Adăugați” și selectați protocolul din meniul pop-up.

Un protocol în zona publică, în GUI-ul firewall-config

Pentru a muta o interfață dintr-o zonă în alta, faceți dublu clic pe interfață din lista „Conexiuni”, apoi selectați zona din meniul pop-up.

Mutarea unei interfețe de rețea dintr-o zonă în alta în GUI-ul de configurare a firewall-ului

Varful icebergului

Există multe altele pe care le puteți face cu firewalld , dar acest lucru este suficient pentru a vă pune în funcțiune. Cu informațiile pe care ți le-am oferit, vei putea crea reguli semnificative în zonele tale.