Cum să începeți cu firewalld pe Linux
Publicat: 2022-07-08 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.
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
sudo apt install firewall-config
Pe Fedora, firewalld
este deja instalat. Trebuie doar să adăugăm firewall-config
.
sudo dnf install firewall-config
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
Trebuie să activăm demonul firewalld
pentru a-i permite să ruleze de fiecare dată când computerul pornește.
sudo systemctl enable firewalld
Și trebuie să pornim demonul astfel încât să ruleze acum.
sudo systemctl start firewalld
Putem folosi systemctl
pentru a verifica dacă firewalld
a pornit și rulează fără probleme:
sudo systemctl status firewalld
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
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
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
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
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
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
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.
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
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
Ș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
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
Versiunea noastră de firewalld
a enumerat 192 de servicii. Pentru a activa un serviciu într-o zonă, utilizați opțiunea --add-service
.
Putem adăuga un serviciu într-o zonă folosind opțiunea --add-service
.
sudo firewall-cmd --zone=public --add-service=http
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
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”.
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.
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.
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.
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.