iptables në Linux: një udhëzues praktik, i plotë dhe i drejtpërdrejtë

Përditësimi i fundit: 9 nga Septiembre nga 2025
  • Struktura dhe rrjedha: tabelat, zinxhirët dhe si rrjedh trafiku
  • Rregullat dhe Politikat: Komandat, Përputhjet dhe Objektivat Kryesore
  • NAT dhe Publikime: SNAT/MASQUERADE dhe DNAT në Skenarë të Botës Reale
  • Projektim i Sigurt: Zonë e Demilitarizuar Funksionale dhe Praktika të Mira Operative

Firewall iptables në Linux

Nëse menaxhoni shpërndarje Linux për të mbrojtur sigurinë dhe privatësinë tuaj , herët a vonë do t'ju duhet të merreni me iptables. Ky sistem filtrimi paketash është zemra e firewall-it klasik në GNU/Linux , i aftë të vendosë se çfarë trafiku hyn, del ose përcillet midis rrjeteve. I konfiguruar siç duhet, është si të kesh një portier shumë të aftë në hyrjen e rrjetit tënd, i cili zbaton rregullat e tua pa asnjë problem dhe me saktësi kirurgjikale.

Në rreshtat e mëposhtëm, do të gjeni një udhëzues të plotë dhe të përditësuar që mbulon gjërat thelbësore: konceptet e firewall-it , Netfilter, tabelat dhe zinxhirët, rrjedhën e paketave, komandat kryesore, zgjerimet e rregullave dhe objektivat e avancuar , si dhe skenarë praktikë si NAT, ridrejtimet, politikat e parazgjedhura dhe një DMZ funksionale. Gjithçka shpjegohet me një gjuhë të qartë por rigoroze, kështu që mund ta aplikoni menjëherë në infrastrukturën tuaj.

Firewall-et në Kontekst: Nga rojet e klubeve të natës te zona e demilitarizuar

Një firewall është në thelb një filtër midis rrjeteve që zbaton rregulla për të vendosur fatin e secilës paketë. Mendojeni si një roje sigurie në një klub nate me një listë kontrolli : nëse paketa i plotëson kriteret, ajo kalon; nëse jo, ajo refuzohet. Kjo metaforë ndihmon për të kuptuar se ajo që është e rëndësishme është logjika e rregullave dhe rendi në të cilin ato vlerësohen.

Brenda dizajnit të rrjetit, disa topologji janë më të sigurta se të tjerat. DMZ (zona e demilitarizuar) është një rrjet i ndërmjetëm që pret shërbime publike (siç është një faqe interneti ose server FTP), duke i ndarë ato nga rrjeti lokal i korporatës. Pse? Sepse nëse një sulmues do të kompromentonte një server publik, segmentimi i pengon ata të fitojnë akses të drejtpërdrejtë në pjesën tjetër të rrjetit të brendshëm.

Linux si një firewall: Netfilter dhe iptables

Bërthama Linux përfshin Netfilter, një strukturë me grepa për kapjen dhe manipulimin e paketave . Në hapësirën e përdoruesit, iptables është programi që përcakton rregullat që bërthama do të aplikojë në trafik. Kjo ndarje bërthamë/përdorues lejon performancë të lartë me fleksibilitet të madh.

Është e dobishme të bëhet dallimi midis shërbimeve sipas protokollit: iptables (IPv4), ip6tables (IPv6), arptables (ARP) dhe ebtables (korniza Ethernet) . Në kernel, moduli i përbashkët është x_tables, i cili ndan logjikën për përputhjen e zgjerimeve dhe objektivave. Një shënim historik: iptables zëvendësoi ipchains, dhe nftables, nga ana tjetër, pasoi iptables në kernel 3.13 , megjithëse iptables mbetet gjerësisht i përdorur në shumë sisteme.

Për të vepruar, do t'ju duhen të drejta administratori. Ekzekutoni iptables si root (ose me sudo), zakonisht në /usr/sbin/iptables (Debian/derivate) ose /sbin/iptables (Red Hat/derivatet). Dokumentacioni zyrtar është në man iptables dhe në netfilter.org.

shpërndarje linux për serverë
Artikuj të ngjashëm:
Shpërndarjet më të mira Linux për serverët

Struktura e iptables: tabelat, zinxhirët dhe rregullat

Iptables e organizon logjikën e tij në tabela të përbëra nga zinxhirë të mbushur me rregulla . Çdo rregull specifikon kushtet e përputhjes dhe një objektiv që duhet të zbatohet kur paketa përputhet.

  • Filtri i tabelës (si parazgjedhje, filtrim i pastër)
    • INPUT: trafik i drejtuar te vetë makina.
    • PËRPARA: trafiku që kalon nëpër pajisje (rrugëtimi).
    • OUTPUT: trafik i gjeneruar në nivel lokal.
  • Tabela Nat (përkthim adrese; vlerësuar në lidhje të reja)
    • KERSHILLIM: përpara se të vendosni për një rrugë; ideale për DNAT/përcjelljen e porteve.
    • OUTPUTpaketa me origjinë lokale para rrugëzimit.
    • POSTROUTIM: pas rrugëzimit; tipike për SNAT/MASQUERADE.
  • Tabela e mangrovës (rregullime të imëta të kokës: TOS, TTL, shënim, etj.)
    • PARORROUTING, INPUT, FORWARD, OUTPUT, POSTROUTING: i disponueshëm gjatë gjithë rrugës.
  • Tabela e papërpunuar (kontroll i gjurmimit të lidhjes/gjurmim i lidhjes)
    • KERSHILLIM y OUTPUT: për të shënuar trafikun që duhet të anashkalohet nga conntrack.

Kur një paketë arrin në një zinxhir, ajo krahasohet në mënyrë sekuenciale me çdo rregull ; nëse përputhet, objektivi i saj ekzekutohet dhe përshkimi ndalet. Nëse arrin në fund pa përputhur asnjë rregull dhe zinxhiri është i paracaktuar, zbatohet politika e parazgjedhur e zinxhirit për atë zinxhir.

  Udhëzues i plotë për shpërndarjet më të mira të Linux për fillestarët

Rrjedha e paketave: ku kalojnë dhe kur

Të kuptuarit e rrugës së trafikut është çelësi për zbatimin e saktë të rregullave. Një paketë që largohet nga LAN-i juaj për në internet zakonisht përpunohet si më poshtë: së pari PARROUTING (ndoshta DNAT/mangle), pastaj FORWARD (filtrim tranziti) dhe para se të largohet nga pajisja, i nënshtrohet POSTROUTING (SNAT/MASQUERADE nëse është e aplikueshme).

Anasjelltas, nëse destinacioni është vetë firewall-i, rruga do të jetë PREROUTING → INPUT ; nëse buron nga makina lokale, rruga do të jetë OUTPUT → POSTROUTING . Ky kuadër mendor ju kursen dhimbje koke kur diçka nuk shkon siç duhet.

Komandat bazë: renditni, fshini, krijoni dhe politikat e parazgjedhura

Për të kontrolluar gjendjen aktuale, SHBA iptables -L (opsionale -v për detaje dhe -n (për të mos zgjidhur emrat)Gjithashtu mund të krijoni dhe fshini zinxhirë me -N y -X përkatësisht, dhe vendosni politikat e parazgjedhura me -P.

Kur duhet të fillosh nga e para, rregulla të pastra me -F (i skuqur) dhe, nëse është e aplikueshme, numërues. Mos harroni se mund të specifikoni tabela me -t dhe zinxhirë specifikë; për shembull, iptables -F -t nat për NAT-in.

Kur përcaktohen rregullat, opsionet më të zakonshme janë të thjeshta: -A rosë, -I fut, -R zëvendëson dhe -D ErasePastaj shtoni përzgjedhës si -p (protokoll), -s/-d (origjina/destinacioni), -i/-o (ndërfaqe) dhe objektivi me -j (P.sh., PRANO, HIQ OSE REFUZO).

L politikat e parazgjedhura përcaktoni se çfarë ndodh nëse nuk përputhen rregulla. Një skemë tipike e përforcuar në një host do të ishte INPUT DROP, FORWARD DROP, OUTPUT ACCEPT, bllokimi i gjithçkaje hyrëse përveç asaj që lejohet shprehimisht dhe duke lejuar atë që del jashtë.

Zgjerimet e përputhjes (-m): TCP, UDP, ICMP, MAC, stateful dhe multiport

Iptables zgjeron filtrat e tij me module përkatëse duke përdorur -m. TCP lejon akordimin sipas porteve dhe flamujve: --dport/--sport y --syn për hapje lidhjesh të reja, për shembull.

Për UDP, mund të kufizoni edhe portet burimore dhe destinacionore . Një shembull klasik: hapja e portit 80/443 në një server web ose lejimi i pyetjeve DNS dalëse në portin 53/UDP.

Me ICMP-në, --icmp-type ju lejon të dalloni llojet (P.sh., kërkesë-për-jehonën y jehonë-përgjigje për ping-e). Kjo është e dobishme për të lejuar diagnostikimin pa e lënë derën hapur për ICMP të plotë.

Ekziston edhe moduli mac për të filtruar sipas adresës MAC me --mac-sourceE dobishme nëse doni të autorizoni një kompjuter të menaxhuar me një IP dinamik për të dërguar ping në firewall pa u mbështetur në IP.

Dhe, ndoshta më e rëndësishmja në nivelin operativ, modulin state (ose lidhu) me --state NEW, ESTABLISHED, RELATEDKjo lejon që të lejohen përgjigje nga lidhjet e vendosura tashmë, duke zvogëluar në mënyrë drastike numrin e rregullave të kërkuara.

Për të grupuar portet, multiport shton --sports y --dports me lista të ndara me presjeËshtë e përshtatshme të hapësh HTTP, HTTPS dhe SSH në një rregull të vetëm.

Synime përtej ACCEPT/DROP: NAT dhe kompania

Përveç pranimit ose refuzimit, iptables mund të rishkruajnë adresat dhe portet për të lidhur rrjetet private me internetin ose për të reklamuar shërbime të brendshme.

MASKARADA (Në POSTROUTING nga tavolina nat) zëvendëson IP-në burimore me IP-në dalëse të firewall-it, ideale kur IP-ja publike është dinamike (DHCP). Ky është NAT-i tipik dalës për një LAN të tërë.

SNAT (gjithashtu në POSTROUTING) përcakton në mënyrë të qartë IP-në/portën burimore me --to-source. Përdoret kur keni një IP publik statik. dhe doni ta kontrolloni me saktësi përkthimin.

DNAT (Në PREROUTING o OUTPUT) ndryshoni IP-në e destinacionit me --to-destination. Janë "portet e hapura" të famshmeJu merrni trafik në IP-në publike dhe e ridrejtoni atë në një server në DMZ, për shembull një faqe interneti e brendshme në 192.168.1.2.

  systemd 259: Ndryshimet kryesore dhe kërkesat e sistemit

Shembull i thjeshtë: filtrimi i trafikut midis dy rrjeteve

Imagjinoni një makinë që vepron si një router/mur zjarri midis dy nënrrjeteve. Nëse dëshironi që vetëm hosti B të komunikojë me C dhe vetëm nëpërmjet TCP-së, tabela do të jetë filter dhe vargu i saktë është FORWARD, sepse trafiku kalon përmes pajisjeve.

Së pari, do të aplikonit një politikë DROP të parazgjedhur në FORWARD dhe më pas do të autorizonit në mënyrë të qartë trafikun B→C në TCP (dhe, nëse është e aplikueshme, C→B). Ky model "moho si parazgjedhje dhe lejo minimumin e domosdoshëm" është themeli i një qëndrimi të fuqishëm sigurie.

Raste të përditshme në një pasarelë: rregulla tipike

Një portë hyrëse me dy ndërfaqe, për shembull eth1 (LAN) dhe eth0 (WAN), zakonisht duhet të përcjellë paketa nga LAN në internet. Për ta bërë këtë, shton FORWARD -i eth1 -o eth0 -j ACCEPT, Dhe lejon vetëm kthimin mbrapsht ESTABLISHED,RELATED me -m state.

Në vetë firewall-in, këshillohet të autorizohet trafiku hyrës që është një përgjigje ndaj lidhjeve dalëse me INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT, dhe gjithmonë lejoni rikthimin në modalitetin loopback: INPUT -i lo -j ACCEPT.

Për të lejuar kompjuterët LAN të shfletojnë, aplikoni NAT dalës: -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j SNAT --to-source X.Y.Z.W (o MASQUERADE nëse IP-ja është dinamike). Kjo përkthen IP-të private në IP-në tuaj publike.

Një masë bazë përforcuese është bllokimi i paketave hyrëse WAN me IP burimi të papërshtatshme (IP-ja juaj publike, diapazone private 192.168.0.0/24, 127.0.0.0/8, etj.), pasi ato zakonisht tregojnë mashtrim.

Për të ekspozuar shërbimet në firewall (p.sh., SMTP 25, HTTP 80, HTTPS 443 ose SSH 22), mundeni lejoni paketat TCP me flamurin SYN në ato porta destinacioniNëse doni të kufizoni sipas IP-së së destinacionit, shtoni -d te IP-ja e shërbimit.

Shërbimet tipike të infrastrukturës përfshijnë DHCP (trafik nga portet 68 deri në 67) në ndërfaqen LAN dhe DNS nga zgjidhësi autoritar (UDP 53) nëse filtrohet sipas burimit. Këto porta u lejojnë klientëve të marrin adresa IP dhe të zgjidhin emra.

Nëse duhet të bllokoni aksesin, DROP SSH/Telnet hyrës është i thjeshtë; gjithashtu mund të REJECT mesazhet dalëse në IP-të e bllokuara në rrjetin lokal në mënyrë që dërguesi të marrë një njoftim refuzimi.

Instalimi dhe menaxhimi i shërbimit në sistemet Red Hat/CentOS

Në mjediset e trashëguara me CentOS/RHEL 5/6, ishte e mjaftueshme për të instalo me yum -y install iptablesEdhe pse shumë distro të reja sot favorizojnë nftables, iptables është ende i pranishëm në sistemet dhe pajisjet e prodhimit.

Integrimi me Shërbimet SysV lejohet të menaxhojë dhe të ruajë rregullat: service iptables start|stop|restart y service iptables save, duke kursyer në /etc/sysconfig/iptablesPër ta aktivizuar gjatë nisjes: chkconfig iptables on në nivelet 2-5.

Në sistemet moderne, megjithëse mbështjellësit ndryshojnë , ideja vazhdon: përcaktoni rregulla, testoni ato dhe vazhdoni t'i ruani ato në mënyrë që t'i mbijetojnë rinisjeve, qoftë me mjete sistemi apo skripte.

Renditja, fshirja dhe redaktimi i rregullave me saktësi

Për të parë statusin me numrat e rregullave, SHBA iptables -L --line-numbers -n -vNë këtë mënyrë mund të fshini sipas indeksit me -D INPUT 3 ose zëvendësojeni me -R pa ngatërresa.

Nëse keni nevojë për një fshirje selektive, Pastroni vetëm zinxhirin ose dërrasën që prek (-F FORWARD o -F -t natShmangni spastimet globale në distancë pa një "rrjet sigurie" përndryshe mund të humbni aksesin në SSH.

Si praktikë e përgjithshme, së pari vendosni rregulla që lejojnë seancën tuaj SSH , zbatoni ndryshimet gradualisht dhe vendosni një dritare rikthimi (për shembull, një punë cron që rikthen rregullat brenda 5 minutash nëse nuk kryeni commit).

Qëndrueshmëria me iptables-save dhe iptables-restore

Për të ruajtur cilësimet tuaja, iptables-save > /ruta/backup/iptables.rules Gjeneron një skedar të lexueshëm nga makina të të gjitha tabelave. Është ideal për kontrollin e ndryshimeve dhe migrimet.

  Si të instaloni JamesDSP në Linux: udhëzues i plotë dhe cilësime kryesore

Për ta ngarkuar, përdorni iptables-restore < /ruta/backup/iptables.rulesMund të automatizoni rivendosjen e nisjes me systemd, skripte init ose një punë cron. @reboot, duke u siguruar që firewall-i të mbetet aktiv pas një rinisjeje.

Shtojini kësaj praktikat e mira operative: funksionon me privilegjet e duhura, ruani skedarët jashtë /tmp dhe t'i përafroni ato me mjedisin (ndërfaqet dhe nënrrjetet e sakta) për të shmangur surprizat.

DMZ në detaje: një shembull i plotë dhe realist

Supozojmë një firewall Linux të lidhur me një router në modalitetin "njëpërdorues" (pa NAT), me tre ndërfaqe: eth0 (LAN 192.168.1.1/24), eth1 (DMZ 192.168.2.1/24) dhe eth2 (WAN me IP nga DHCP) . DMZ strehon një server web Apache (192.168.2.2) dhe një server FTP (192.168.2.3).

Objektivat e politikës: të publikohet HTTP/HTTPS dhe FTP nga DMZ në internet , të lejohet administrimi i SSH nga LAN në firewall dhe të lejohet LAN të shfletojë (HTTP/HTTPS), të transferojë skedarë nëpërmjet FTP dhe të zgjidhë DNS. Çdo akses tjetër është i mohuar.

Në përgjithësi: në filtro/PËRA lejon tranzitin LAN→WAN me përgjigje, dhe WAN→DMZ vetëm për portat e publikuara me ESTABLISHED,RELATED për përgjigjet. Në nat/PREROUTING, zbaton DNAT për shërbimet e publikimit; në nat/POSTROUTING, SNAT/MASQUERADE për daljen LAN/DMZ.

Shembuj të hapjeve: DNAT 80/443 deri në 192.168.2.2 dhe 21/20 (në varësi të modalitetit) deri në 192.168.2.3 me korresponduesen FORWARD Lejimi i atyre portave. Sigurimi i kanaleve të kontrollit dhe të të dhënave për FTP (aktiv/pasiv) ose kufizimi i diapazonit pasiv dhe pasqyrimi i kësaj në firewall.

Për LAN: lejon daljen në 80, 443, 21 dhe 53 dhe kthimi i saj, duke aplikuar NAT dalëse në POSTROUTINGNë firewall, autorizoni Vetëm SSH hyrëse nga nënrrjeti 192.168.1.0/24 dhe bllokon aksesin e padëshiruar nga WAN.

Mos harroni higjienën: LËRENI në diapazonet e pavlefshme në WAN (privat, loopback, publikun tuaj) dhe regjistroni vetëm atë që ju intereson. Me politika kufizuese të parazgjedhura dhe hapje minimale, ekspozimi juaj reduktohet në minimumin e domosdoshëm.

Praktikat e mira dhe truket operative

Gjithmonë punoni me një plan: dokumentoni se çfarë lejoni dhe pse , verifikoni rrjedhën e pritur me një diagram të thjeshtë dhe zbatoni rregullat në rendin e saktë për të shmangur mbivendosjet.

Përdorni një kombinim të moduleve me një kokë: state/conntrack për përgjigjet, tcp con --syn në hapje, dhe multiport për të grupuarNë këtë mënyrë ju thjeshtoni dhe zvogëloni rrezikun e mospërputhjeve.

Për mjedise me ndryshime të shpeshta, merrni në konsideratë ndarjen e rregullave sipas funksionit: zinxhirë të personalizuar (me -N) thirrje nga INPUT/OUTPUT/FORWARD, në mënyrë që mbajtja ose kthimi mbrapsht i pjesëve të jetë më i pastër.

Kalimi në nftables është duke u zhvilluar në shumë shpërndarje, por nëse platforma/produkti juaj përdor iptables, një kuptim i plotë i këtyre komponentëve do t'ju japë kontroll të plotë . Dhe nëse migroni, do ta kuptoni lehtësisht hartën mendore ekuivalente në nftables.

Me atë që keni mbuluar, tani keni një bazë të fortë për vendosjen dhe mirëmbajtjen e iptables në prodhim: e kuptoni arkitekturën (tabelat, zinxhirët dhe rrjedhën), jeni të aftë në komandat thelbësore, mund të implementoni NAT dhe të publikoni me DNAT/SNAT, dhe dini si të krijoni një DMZ të sigurt . Nga këtu, është çështje përshtatjeje e saj sipas nevojave tuaja specifike, auditimit të rregullt dhe mbajtjes së rregullave tuaja aq të qarta sa modeli i rrjetit tuaj.