Cum configurez un Firewall tip UFW în Ubuntu 18.04

Introducere

UFW, sau Uncomplicated Firewall, este o interfață pentru aplicația iptables care este proiectată pentru a simplifica procesul de configurare a unui firewall. În timp ce iptables este o aplicație solidă și flexibilă, aceasta poate fi dificilă pentru începători, mai ales când aceștia vor să învețe să configureze corect un firewall. Dacă doriți să începeți să vă securizați rețeaua și nu sunteți siguri ce utilitar sa folosiți, UFW poate fi cea mai bună opțiune pentru dvs.

Acest tutorial vă va arăta cum sa configurați un firewall cu UFW în Ubuntu 18.04.

De ce avem nevoie?

Pentru a parcurge acest tutorial, veți avea nevoie de:

UFW este instalat implicit în Ubuntu. Dacă aceasta aplicație a fost de dezinstalată din varii motive o puteți instala rulând comanda sudo apt install ufw.

Pasul 1 — Folosirea IPv6 cu UFW (Opțional)

Acest tutorial este scris pentru IPv4, dar و funcționa la fel de bine și pentru IPv6 atâta vreme cât este activat. Dacă serverul dvs. Ubuntu are IPv6 activat, asigurați-vă că UFW este configurat să suporte și IPv6 în așa fel încât va gestiona și regulile IPv6 în plus față de IPv4. Pentru a face asta, deschideți fișierul de configurare cu editorul  nano sau cu orice alt editor de texte preferat.

$ sudo nano /etc/default/ufw

Asigurați-vă că valoarea opțiunii IPv6 este setată la yes. Ar trebui să arate ceva de genul: fragment /etc/default/ufw

Conținut fișier:

IPV6=yes

Salvați și închideți fișierul. Acum, că UFW este activat, acesta va fi configurat să creeze reguli de firewall atât pentru IPv6 cât și pentru IPv4. Oricum, înainte de activarea UFW, ne vom asigura ca firewall-ul dvs. este configurat să permită conectarea prin SSH. Haideți să începem configurarea politicilor implicite.

Pasul 2 — Configurarea politicilor implicite

Dacă abia sunteți la început cu lucrul cu firewall-ul, primele reguli pe care trebui să le definiți sunt politicile dvs. implicite. Aceste reguli controlează modalitatea de control al traficului care nu se încadrează explicit în nici o altă regulă. Implicit, UFW este configurat să blocheze tot traficul care intră și să permită tot traficul care iese. Asta înseamnă că orice ar încerca să se conecteze la serverul dvs. nu va reuși, în timp ce orice aplicație instalată pe server ar reuși să se conecteze la rețelele externe.

Haideți să configurăm regulile UFW la fel ca în configurația implicită, pentru a fi siguri că puteți urma acest tutorial fără bătăi de cap. Pentru a reveni la setările implicite folosite de UFW, folosiți aceste comenzi:

$ sudo ufw default deny incoming
$ sudo ufw default allow outgoing

Aceste comenzi configurează implicit ca toate pachetele care intră să fie blocate iar cele care ies să fie permise. Acest tip de firewall ar putea fi suficient pentru un computer personal, dar serverele de obicei au nevoie să răspundă la cereri venite de dincolo de placa de rețea a acestuia. Vom analiza acest aspect mai jos.

Pasul 3 — Permiterea conexiunilor SSH

Dacă ați activat firewall-ul acum, va bloca toate conexiunile din afară. Asta înseamnă că trebuie să creăm reguli care permit în mod explicit conexiunile legitime din afară, SSH sau HTTP, de exemplu. Asta dacă vrem ca serverul să răspundă la astfel de tipuri de cerere. Dacă folosiți un server cloud, probabil veți dori să permiteți conexini SSH din exterior pentru a vă putea conecta și gestiona serverul.

Pentru configurarea serverului dvs. să permită conexiuni SSH din afară, rulați această comandă:

$ sudo ufw allow ssh

Asta va crea o regulă care va permite conexiunile prin portul 22, care este portul pe care demonul SSH ascultă implicit. UFW știe ce port să deschidă când dăm comanda allow ssh deoarece este înregistrat ca serviciu în fișierul /etc/services file.

Totuși, putem scrie echivalentul regulii de mai sus prin specificarea portului în loc de numele serviciului. De exemplu, această comandă este identică cu cea de mai sus:

$ sudo ufw allow 22

Dacă ați configurat demonul SSH să utilizeze un port diferit, va trebui să specificați portul cu pricina. De exemplu, dacă serverul dvs. SSH rulează pe portul 2222, puteți folosi comanda de mai jos pentru a permite conexiuni pe acest port:

$ sudo ufw allow 2222

Acum că firewall-ul dvs. este configurat să permită conexiuni SSH din afară, îl putem și activa.

Pasul 4 — Activarea UFW

Pentru a activa UFW, folosiți această comandă:

$ sudo ufw enable

Veți vedea afișat un mesaj de avertizare care spune că această comandă poate întrerupe toate conexiunile SSH existente. Deja am configurat o regulă pentru firewall care permite conexiunile SSH, așa că totul ar trebui să fie în regulă pentru a continua. Răspundeți cu opțiunea y și apăsați ENTER.

Aplicația firewall este acum activată. Rulați comanda sudo ufw status verbose pentru a vedea ce reguli sunt configurate. Restul acestui articol va face referire mai detaliată la modul de utilizare a UFW, mai exact permiterea sau blocarea diferitelor tipuri de conexiuni.

Pasul 5 — Permiterea altor tipuri de conexiuni

În acest moment, ar trebui să permiteți toate celelalte conexiuni de care are nevoie serverul dvs. Conexiunile pe care ar trebui să le permiteți depind de nevoile specifice. Din fericire deja știți cum să configurați reguli care permit conexiuni în funcție de serviciu sau de port; deja am făcut asta pentru serviciul SSH care functioneaza pe portul 22. Puteți face operațiuni asemănătoare și pentru:

  • HTTP pe portul 80, care este protocolul necriptat folosit de serverele web, folosind comanda sudo ufw allow http sau sudo ufw allow 80
  • HTTPS pe portul 443, care este protocolul criptat folosit de serverele web, folosind comanda sudo ufw allow https sau sudo ufw allow 443

Mai există și alte metode prin care putem permite alte conexiuni, în afară de porturile specifice unui serviciu cunoscut.

Intervale de porturi specifice

Puteți specifica intervale de porturi cu ajutorul UFW. Unele aplicații folosesc mai multe porturi, în loc de un singur port.

De exemplu, pentru a permite conexiuni X11, care folosesc porturile 60006007, introduceți aceste comenzi:

$ sudo ufw allow 6000:6007/tcp
$ sudo ufw allow 6000:6007/udp

În momentul în care specificăm intervale de porturi cu UFW, trebuie deasemenea specificat și protocolul (tcp sau udp) la care se va aplica regula. Nu am vorbit despre asta înainte, pentru că în momentul în care nu se specifică protocolul, în mod automat se permit ambele protocoluri, ceea ce este OK în majoritatea cazurilor.

Anumite adrese IP

Atunci când lucrăm cu aplicația UFW, putem de asemenea specifica adrese IP. De exemplu, dacă doriți să permiteți conexiuni de la o anumită adresă IP, cum ar fi o adresă IP de lucru sau de acasă 203.0.113.4, va trebui să folosiți from, și apoi adresa IP efectivă:

$ sudo ufw allow from 203.0.113.4

De asemenea puteți specifica un anumit port la care adresa IP are permisiunea de a se conecta prin adăugarea opțiunii to any port urmată de numărul portului. De exemplu, dacă doriți să permiteți 203.0.113.4 să se conecteze numai la portul 22 (SSH), folosiți această comandă:

$ sudo ufw allow from 203.0.113.4 to any port 22

Subrețele

Dacă doriți să permiteți o subrețea de adrese IP, o puteți face folosind notarea tip CIDR pentru a specifica masca de rețea. De exemplu, dacă doriți să permiteți toate adresele IP din intervalul 203.0.113.1 până la 203.0.113.254 puteți folosi această comandă:

$ sudo ufw allow from 203.0.113.0/24

Tot la fel, puteți specifica portul de destinație la care rețeaua 203.0.113.0/24 are permisiunea să se conecteze. Din nou, vom folosi portul 22 (SSH), pentru exemplificare:

$ sudo ufw allow from 203.0.113.0/24 to any port 22

Conexiuni la o anumită interfață de rețea

Dacă doriți să creați o regulă pentru firewall care se aplică numai la o anumită interfață de rețea, o puteți face prin specificarea opțiunii „allow in on” urmat de numele interfeței de rețea.

Poate veți dori să verificați interfețele dvs. de rețea înainte de a continua. Pentru a face asta folosiți următoarea comandă:

$ ip addr
Mesaj afișat:
 
eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state
. . .
3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default
. . .

Mesajul afișat mai sus indică numele interfețelor de rețea. În general acestea sunt denumite ceva de genul eth0 sau enp3s2.

Așadar, dacă aveți o interfață de rețea denumităeth0, puteți permite traficul HTTP (pe portul 80) prin aceasta, cu ajutorul comenzii:

$ sudo ufw allow in on eth0 to any port 80

Făcând asta veți permite serverului să primească cereri HTTP din internetul public.

Sau, dacă doriți ca serverul dvs. de baze de date MySQL (portul 3306) să permită conexiuni de la o interfață de rețea privată denumită, de exemplu, eth1, ați putea rula această comandă:

$ sudo ufw allow in on eth1 to any port 3306

Aceasta va permite altor servere din rețeaua privată să se conecteze la baze de date MySQL.

Pasul 6 — Blocarea conexiunilor

Dacă nu ați modificat politica implicită pentru conexiunile din afara rețelei, UFW este configurat să le respingă pe toate. În general, aceasta simplifică procesul de creare a unei politici de securitate firewall sigure, prin necesitatea de a crea doar reguli care permit traficul explicit pentru anumite porturi și adrese IP.

În orice caz, uneori va trebui să blocați anumite conexiuni în funcție de sursa adresei IP sau de subrețea, poate din simplul motiv că știți că serverul dvs. este atacat din acea direcție. Mai mult, dacă doriți sa schimbați politica implicită pentru traficul din afara rețelei în așa fel încât să fie permis (allow), (nerecomandat), va trebui să creați reguli de respingere (deny) pentru orice serviciu sau adresă IP pe care doriți să o blocați.

Pentru a configura reguli de blocare (deny), puteți folosi comenzile descrise mai sus, înlocuind allow cu deny.

De exemplu, pentru a bloca conexiunile HTTP, puteți rula această comandă:

$ sudo ufw deny http

Sau dacă doriți să blocați toate conexiunile de la 203.0.113.4 puteți folosi această comandă:

$ sudo ufw deny from 203.0.113.4

Acum haideți să vedem cum putem șterge anumite reguli.

Pasul 7 — Ștergerea regulilor

Să cunoașteți cum să ștergeți reguli de firewall este la fel de important ca și cunoștințele pentru creerea acestora. Există două metode diferite de a specifica care dintre reguli să fie ștearsă: fie prin numărul curent atribuit regulii sau prin regula efectivă (similar cu modul cum acestea au fost create). Vom începe cu metoda ștergerii după numărul curent pentru că este mult mai ușoară.

După numărul regulii

Dacă folosiți numărul curent al regulii pentru a șterge regulile de firwall, primul lucru pr care va trebui să-l faceți este să obțineți o listă a regulilor în vigoare ale firewall-ului dvs. Comanda pentru afișarea stării UFW are o opțiune de afișare a numărului curent lângă fiecare regulă, după cum vom arăta mai jos:

$ sudo ufw status numbered
Numbered Output:Status: active

     To                         Action      From
     --                         ------      ----
[ 1] 22                         ALLOW IN    15.15.15.0/24
[ 2] 80                         ALLOW IN    Anywhere

Dacă vă decideți că doriți să ștergeți regula 2, cea care permite trafic prin potul 80 (conexiuni HTTP), putem specifica asta într-o comandă de ștergere UFW, astfel:

$ sudo ufw delete 2

Aceasta va afișa un mesaj de confirmare apoi va șterge regula 2, care permite conexiuni HTTP. Rețineți că aveți IPv6 activat și va trebui să ștergeți și regula care corespunde IPv6.

După regula actuală (efectivă)

Alternativa la metoda cu numerele curente o reprezintă specificarea regulii actuale (efective) pe care doriți să o ștergeți. De exemplu, dacă doriți să ștergeți regula allow http rule, puteți rula această comandă:

 $ sudo ufw delete allow http

Puteți deasemenea specifica regula prin allow 80, în loc de numele serviciului:

$ sudo ufw delete allow 80

Această metodă va șterge atât regula IPv4 cât și IPv6, dacă aceasta din urmă există.

Pasul 8 — Verificarea statusului (stării) și a regulilor

În orice moment, puteți verifica starea UFW cu această comandă:

$ sudo ufw status verbose

Dacă UFW este dezactivat, de regulă o setare implicită, veți vedea un mesaj afișat ca cel de mai jos:

Mesaj afișat:

OutputStatus: inactive

Dacă UFW este activ, ceea ce ar trebui să se întâmple dacă ați urmat Pasul 3, mesajul afișat va spune că este activ și va lista toate regulile configurate. De exemplu, dacă firewall-ul este configurat să permită conexiunile SSH de oriunde pe (portul 22), mesajul afișat poate arăta ceva de genul:

Mesaj afișat:

OutputStatus: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip

To                         Action      From
--                         ------      ----
22/tcp                     ALLOW IN    Anywhere

Folosiți comanda status dacă doriți să verificați configurația firewall-ului cu UFW.

Pasul 9 — Dezactivarea sau resetarea UFW (opțional)

Dacă vă decideți ca nu mai vreți să folosiți UFW, îl puteți dezactiva cu ajutorul acestei comenzi:

$ sudo ufw disable

Toate regulile pe care le-ați creat cu UFW nu vor mai fi active. Puteți oricând rula comanda sudo ufw enable dacă va fi nevoie să îl reactivați mai târziu.

Dacă aveți deja regulile configurate dar vă decideți să o luați de la capăt, puteți folosi comanda reset:

$ sudo ufw reset

Aceasta va dezactiva și va șterge orice regulă care a fost definită anterior. Rețineți că politicile implicite nu se vor schimba (reveni) la setările originale, dacă le-ați modificat la un moment dat. Astfel aceasta comandă ar trebui să vă dea posibilitatea să o luați de la capăt cu configurarea UFW.

Concluzie

Firewall-ul dvs. este acum configurat să permită, cel puțin, conexiunile SSH. Asigurați-vă că permiteți și alte conexiuni din afara rețelei de care serverul dvs. are nevoie, concomitent cu limitarea acelor conexiuni care nu sunt utile, în așa fel încât serverul să fie funcțional și securizat.

Pentru mai multe configurări standard specifice UFW, vă recomandăm să citiți tutorialul Ghid esențial UFW: Comenzi și reguli de bază pentru firewall.

root

Un entuziast pasionat de tot ceea ce înseamnă Linux și Open Source și un energic promotor. Deschis la orice proiecte bazate pe aceste tehnologii.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

Acest sit folosește Akismet pentru a reduce spamul. Află cum sunt procesate datele comentariilor tale.

Share via
Copy link
Powered by Social Snap