Knowledgebase Udhëzime të thjeshta për të punuar me shërbimin Profitserver

Konfigurimi i Firewall-it në Linux


Firewall në Linux luan një rol jetik në sigurimin e një sistemi kompjuterik. Ai vepron si një pengesë, duke kontrolluar dhe filtruar trafikun e rrjetit për të mbrojtur sistemin nga aksesi i paautorizuar, sulmet dhe kërcënimet e tjera. Pa një Firewall të konfiguruar siç duhet, serveri mund të jetë i prekshëm ndaj llojeve të ndryshme të sulmeve kibernetike, duke çuar në pasoja të rënda për sigurinë dhe konfidencialitetin e të dhënave.

Në këtë artikull, ne do të shikojmë dy mjete kryesore për konfigurimin e Firewall-it Linux: firewalld dhe iptables. Ne do të bëjmë një analizë krahasuese të veçorive, funksionalitetit dhe avantazheve të tyre. Për më tepër, ne do të ofrojmë udhëzime të hollësishme për konfigurimin dhe përdorimin e secilit prej këtyre mjeteve, si dhe do të diskutojmë praktikat më të mira për sigurimin e sistemit tuaj me një Firewall në platformën Linux. Të gjitha veprimet do të demonstrohen në a server virtual me qasje rrënjësore.

Konfigurimi i murit të zjarrit në Linux

Firewalld (Firewall Daemon) është një program për menaxhimin e murit të zjarrit në sistemet operative Linux. Ai siguron një ndërfaqe përdoruesi për konfigurimin e rregullave të murit të zjarrit, duke lejuar ose bllokuar lidhjet e aplikacioneve të rrjetit. Ai është i para-instaluar si parazgjedhje në shumicën e shpërndarjeve të serverëve. Nëse Firewalld nuk është i instaluar paraprakisht, ai mund të instalohet në mënyrë të pavarur nga depot zyrtare të shpërndarjes.

Për sistemet Red Hat (si RHEL, CentOS, Fedora) instalimi kryhet me komandën:

yum install firewalld

Për Debian/Ubuntu:

apt-get install firewalld

Pas instalimit, mund të niset dhe aktivizohet menjëherë me komandën:

systemctl start firewalld

Tjetra, duhet të shtoni shërbimin në fillim:

systemctl enable firewalld
Shtimi i murit të zjarrit në ngarkimin automatik të Linux

Në këtë pikë, ne rekomandojmë çaktivizimin e ufw, pasi përdorimi i njëkohshëm i këtij mjeti me firewalld ose iptables nuk rekomandohet. Kontrolloni statusin:

systemctl status ufw
Po kontrollon ufw linux

Për ta ndaluar atë, futni komandën:

systemctl stop ufw

Për çaktivizimin e plotë:

ufw disable

Pas këtyre veprimeve, mund të vazhdoni me konfigurimin e murit të zjarrit.

Së pari, është e nevojshme të përcaktohen zonat e besimit. Firewalld përdor konceptin e zonave për të përcaktuar nivelin e besimit për ndërfaqet e rrjetit. Secilës ndërfaqe i caktohet një zonë dhe rregullat e murit të zjarrit zbatohen në bazë të zonës. Lista e të gjitha zonave të disponueshme hapet me komandën:

firewall-cmd --get-zones

Në mënyrë tipike, përdoren 4 zona kryesore:

  1. Publike: Kjo zonë është për rrjetet që ju i konsideroni të pasigurta;
  2. privat: Zbatohet për rrjetet shtëpiake ose lidhje të tjera të besuara të rrjetit;
  3. I brendshëm: Përdoret për rrjete të brendshme, si ato brenda një organizate ose rrjeti korporate;
  4. DMZ: Kjo zonë është vendi ku zakonisht vendosen serverë që duhet të jenë të aksesueshëm nga interneti.

Megjithatë, ky është vetëm një shembull. Ju mund të shtoni zonën tuaj duke përdorur komandën:

firewall-cmd --permanent --new-zone=nameyourzone

Pas shtimit, kërkohet një ringarkim:

firewall-cmd --reload

Për të fshirë një zonë, përdoret një metodë e ngjashme

firewall-cmd --permanent --delete-zone=nameyourzone

Pas përcaktimit të zonave, është e nevojshme të lejohet trafiku për shërbimet dhe portet e nevojshme. Për të lejuar një shërbim të caktuar, përdorni komandën:

firewall-cmd --zone=public --add-service=name

Ku emër është emri i shërbimit. Për shembull, për të lejuar trafikun për Apache:

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

Për të përcaktuar portet e lejueshme, përdorni komandën:

firewall-cmd --zone=public --add-port=number/protocol

Për shembull, porti standard 22 për SSH do të duket kështu:

firewall-cmd --zone=public --add-port=22/tcp

Në këtë fazë, rregullat kryesore janë krijuar tashmë. Më pas, përcaktoni se si do të përpunohet trafiku në varësi të burimit, destinacionit, portit dhe kritereve të tjera. Për të shtuar një rregull (duke përdorur publik zona si shembull):

firewall-cmd --zone=public rule

Për shembull, për të lejuar trafikun hyrës nga çdo burim në portin 80 (HTTP):

firewall-cmd --zone=public --add-port=80/tcp --permanent

Për të hequr një rregull:

firewall-cmd --permanent --remove-rule=rule_specification

Ku sundojnë është lloji i rregullit (p.sh., port, shërbim, rregull i pasur, etj.), dhe rregull_specifikim është specifikimi i vetë rregullit.

Pasi të keni bërë ndryshime në konfigurimin e Firewalld, është e nevojshme t'i ruani dhe t'i zbatoni ato. Për të ruajtur ndryshimet, përdorni komandën:

firewall-cmd --runtime-to-permanent

Për të aplikuar ndryshimet:

firewall-cmd --reload

Pas përfundimit të konfigurimit, mund të verifikoni parametrat e zgjedhur duke hapur listën e të gjitha rregullave:

firewall-cmd --list-all
rregullat e firewalld Linux

Nëse lind ndonjë problem, kontrolloni regjistrat e Firewalld me komandën:

journalctl -u firewalld

Shënim: Ne kemi mbuluar vetëm algoritmin e përgjithshëm për vendosjen e lidhjes. Mjeti ka funksionalitet të gjerë. Për informacion të plotë mbi të gjitha opsionet e disponueshme, mund të përdorni dokumentacioni zyrtar ose hapni ndihmën:

firewall-cmd --help

Konfigurimi i iptables në Linux

Ndryshe nga Firewalld, iptables është një mjet më i vjetër, por ende i përdorur gjerësisht në Linux për menaxhimin e murit të zjarrit. Ai siguron një qasje më të drejtpërdrejtë dhe fleksibël ndaj rregullave të filtrimit të paketave në nivelin e kernelit Linux. Sidoqoftë, iptables kërkon njohuri dhe përvojë më të avancuar në krahasim me Firewalld, duke e bërë atë më pak të aksesueshëm për fillestarët. Kontrolloni versionin e para-instaluar të mjetit me komandën:

iptables -V

Nëse mjeti nuk është i instaluar, do të duhet të instalohet. Komanda për instalim në Ubuntu, Debian:

apt install iptables

Për sistemet Red Hat (p.sh. CentOS, Fedora):

yum install iptables

Komanda për aktivizim pas instalimit:

systemctl start iptables

Për të shtuar në nisje, ekzekutoni:

systemctl enable iptables

Përpara se të filloni konfigurimin iptables, është e rëndësishme të kuptoni se si funksionon. Kjo ndihmohet nga sintaksa e programit. Ajo duket si më poshtë:

iptables -t table action chain additional_parameters

Le të thellohemi më thellë në çdo artikull.

Iptables ka katër tabela kryesore: filtër, nat, mangle dhe i papërpunuar. Secila është krijuar për përpunimin e llojeve të caktuara të paketave dhe ka zinxhirët e vet të rregullave:

  1. filter: Kjo është tabela më e përdorur, që përmban rregullat e filtrimit të paketave. Përdoret për të marrë vendime nëse do të lejohen ose mohohen paketat.
  2. nat: Kjo tabelë përdoret për modifikimin e adresave të rrjetit dhe porteve në pako. Shpesh përdoret për vendosjen e maskave (NAT).
  3. sakatoj: Në këtë tabelë, ju mund të modifikoni titujt e paketave. Përdoret për operacione të specializuara të paketave, të tilla si shënimi.
  4. i gjallë: Kjo tabelë përdoret për konfigurimin e rregullave që zbatohen përpara se të kalojnë përmes sistemit të gjurmimit të lidhjes. Zakonisht përdoret për vendosjen e rregullave që nuk duhet të modifikohen nga sistemi i gjurmimit, si p.sh. hedhja e paketave nga adresa të caktuara.

Çdo tabelë përmban një grup zinxhirësh. Zinxhirët janë një sekuencë rregullash që kontrollohen në mënyrë sekuenciale. Ekzistojnë tre zinxhirë të paracaktuar:

  1. INPUT (në hyrje). Rregullat në këtë zinxhir përcaktojnë se çfarë duhet bërë me paketat hyrëse.
  2. OUTPUT (dalëse). Ky zinxhir zbatohet për të gjitha paketat që kompjuteri juaj dërgon në pajisje ose kompjuterë të tjerë në rrjet.
  3. PËRPARA (përcjellim). Rregullat në këtë zinxhir përcaktojnë se çfarë duhet bërë me paketat e dërguara.

Së fundi, çdo zinxhir posedon një veprim (objektiv). Në praktikë, përdoren 5 veprime kryesore:

  1. PRANONI: Lëreni paketën të kalojë përmes murit të zjarrit.
  2. R DNI: Refuzoni paketën dhe hidheni atë pa asnjë përgjigje.
  3. REFUZOJË: Refuzoni paketën dhe dërgoni dërguesit një mesazh gabimi ICMP.
  4. LOG: Regjistroni paketën në regjistrin e sistemit dhe kryeni një veprim tjetër (p.sh., PRANO ose HIQ).
  5. KTHIMI: Ndalo kontrollin e rregullave në zinxhirin aktual dhe kthehu te zinxhiri i thirrjeve (nëse është e aplikueshme).

Për të filluar konfigurimin, hapni listën e rregullave ekzistuese me komandën:

iptables -L
Konfigurimi i Firewall-it në Linux

Si një udhëzues për konfigurimin e Iptables, le të shohim shembuj praktikë të komandave më të përdorura. Për lehtësi, ne do t'i ndajmë shembujt në 3 grupe, në varësi të zinxhirit specifik.

Zinxhir INPUT:

  1. Lejo trafikun në hyrje nëpërmjet protokollit TCP në portin 80:
iptables -A INPUT -p tcp --dport 80 -j ACCEPT

2. Lejo trafikun në hyrje nëpërmjet protokollit UDP në portën 22:

iptables -A INPUT -p udp --dport 22 -j ACCEPT

3. Blloko trafikun në hyrje nga një adresë IP specifike:

iptables -A INPUT -s 192.168.1.100 -j DROP

Zinxhir OUTPUT:

  1. Lejo trafikun dalës nëpërmjet protokollit TCP në portin 443:
iptables -A OUTPUT -p tcp --dport 443 -j ACCEPT

2. Lejo trafikun dalës nëpërmjet protokollit UDP në portën 80:

iptables -A OUTPUT -p udp --dport 80 -j ACCEPT

3. Blloko trafikun dalës në një port të caktuar (për shembull, 21):

iptables -A OUTPUT -p tcp --dport 21 -j DROP

Zinxhir PËRPARA:

  1. Blloko trafikun e përcjellë nga një gamë specifike adresash IP:
iptables -A FORWARD -s 172.16.0.0/24 -j DROP

2. Blloko përcjelljen e paketave nga një ndërfaqe rrjeti specifike:

iptables -A FORWARD -i eth1 -j DROP

3. Kufizoni numrin e lidhjeve të njëkohshme për një port specifik (në këtë shembull, 10 lidhje në minutë në portën 80):

iptables -A INPUT -p tcp --dport 80 -m limit --limit 10/minute -j ACCEPT

Siç mund ta shihni, në çdo rast të veçantë, përdoret një argument (komandë) shtesë. Për të marrë një listë të plotë të argumenteve të mundshme dhe mbështetje të përgjithshme për funksionalitetin e mjetit, futni:

iptables -h
Lista e komandave të konfigurimit të iptables linux

Për t'u siguruar që cilësimet janë të sakta, rifutni komandën për të parë listën e rregullave:

iptables -L
Kontrollimi i rregullave iptables linux

Për të fshirë një rregull specifik, përdorni komandën:

iptables -D chain rule_number

Për shembull, nëse dëshironi të fshini rregullin numër 1 nga zinxhiri INPUT, komanda do të duket si kjo:

iptables -D INPUT 1

Për të fshirë të gjitha rregullat me një komandë:

iptables -F

Shënim i rëndësishëm: rregullat iptables nuk ruhen automatikisht pas rindezjes së sistemit ose shërbimit. Për të ruajtur rregullat, ato duhet të shtohen në një skedar konfigurimi dhe të rikthehen pas rindezjes. Të iptables-save iptables-restore shërbimet komunale mund të ndihmojnë me këtë. Për të ruajtur rregullat, futni komandën:

iptables-save > /etc/iptables/rules.v4

Kjo ruan rregullat aktuale të iptables në skedarin rules.v4. Për të rivendosur pas rindezjes, futni:

iptables-restore < /etc/iptables/rules.v4

Kjo komandë rikthen rregullat nga skedari rules.v4.

Përfundim

Konfigurimi i Firewall-it në Linux duke përdorur firewalld ose iptables është një aspekt i rëndësishëm për të siguruar sigurinë e serverit. Të dy mjetet ofrojnë mjete të besueshme për menaxhimin e trafikut të rrjetit dhe mbrojtjen e sistemit nga aksesi i paautorizuar dhe sulmet kibernetike. Zgjedhja midis firewalld dhe iptables varet nga nevojat dhe preferencat specifike të përdoruesit, duke marrë parasysh funksionalitetin dhe pikat e forta të tyre të ndryshme.

⮜ Artikulli i mëparshëm Përdoruesit e Linux: Menaxhimi dhe Lejet
Artikulli tjetër ⮞ Diagnostifikimi i ngarkimit të serverit

Na pyesni për VPS

Ne jemi gjithmonë të gatshëm t'u përgjigjemi pyetjeve tuaja në çdo kohë të ditës apo natës.