iptables na Linuxu: praktičan, cjelovit i jednostavan vodič

Zadnje ažuriranje: 9 od rujna 2025
  • Struktura i tok: tablice, lanci i kako promet teče
  • Pravila i smjernice: Naredbe, mečevi i ključni ciljevi
  • NAT i izdavaštvo: SNAT/MASQUERADE i DNAT u stvarnim scenarijima
  • Siguran dizajn: Funkcionalna DMZ i dobre operativne prakse

iptables vatrozid u Linuxu

Ako upravljate Linux distribucijama kako biste zaštitili svoju sigurnost i privatnost , prije ili kasnije morat ćete se suočiti s iptablesima. Ovaj sustav filtriranja paketa je srce klasičnog vatrozida u GNU/Linuxu , sposoban odlučiti koji promet ulazi, izlazi ili se prosljeđuje između mreža. Pravilno konfiguriran, to je kao da imate visokokvalificiranog vratara na ulazu u vašu mrežu, koji besprijekorno i s kirurškom preciznošću provodi vaša pravila.

U sljedećim retcima pronaći ćete cjelovit i ažuriran vodič koji pokriva osnove: koncepte vatrozida , Netfilter, tablice i lance, tok paketa, ključne naredbe, proširenja pravila i napredne ciljeve , kao i praktične scenarije poput NAT-a, preusmjeravanja, zadanih pravila i funkcionalne DMZ-e. Sve je objašnjeno jasnim, ali rigoroznim jezikom, tako da ga možete odmah primijeniti na svoju infrastrukturu.

Vatrozidi u kontekstu: Od izbacivača iz noćnih klubova do DMZ-a

Vatrozid je u biti filter između mreža koji primjenjuje pravila kako bi odlučio o sudbini svakog paketa. Zamislite to kao izbacivača u noćnom klubu s kontrolnom listom : ako paket zadovoljava kriterije, prolazi; ako ne, odbija se. Ova metafora pomaže shvatiti da je važna logika pravila i redoslijed kojim se procjenjuju.

Unutar mrežnog dizajna, neke topologije su sigurnije od drugih. DMZ (demilitarizirana zona) je posredna mreža koja hostira javne usluge (kao što su web stranica ili FTP poslužitelj), odvajajući ih od korporativne LAN mreže. Zašto? Zato što ako bi napadač kompromitirao javni poslužitelj, segmentacija mu onemogućuje izravan pristup ostatku interne mreže.

Linux kao vatrozid: Netfilter i iptables

Linux kernel uključuje Netfilter, okvir s hookovima za presretanje i manipuliranje paketima . U korisničkom prostoru, iptables je uslužni program koji definira pravila koja će kernel primjenjivati ​​na promet. Ovo odvajanje kernela/korisnika omogućuje visoke performanse uz veliku fleksibilnost.

Korisno je razlikovati uslužne programe prema protokolu: iptables (IPv4), ip6tables (IPv6), arptables (ARP) i ebtables (Ethernet okviri) . U kernelu je zajednički modul x_tables, koji dijeli logiku za usklađivanje ekstenzija i ciljeva. Povijesna napomena: iptables je zamijenio ipchains, a nftables je, pak, naslijedio iptables u kernelu 3.13 , iako se iptables i dalje široko koristi u mnogim sustavima.

Za rad će vam trebati administratorske ovlasti. Pokreni iptables kao root (ili sa sudo), obično u /usr/sbin/iptables (Debian/derivacije) ili /sbin/iptables (Red Hat/derivacije). Službena dokumentacija nalazi se na man iptables i na netfilter.org.

linux distribucije za poslužitelje
Povezani članak:
Najbolje Linux distribucije za poslužitelje

Struktura iptablesa: tablice, lanci i pravila

Iptables organizira svoju logiku u tablice sastavljene od lanaca ispunjenih pravilima . Svako pravilo određuje uvjete podudaranja i cilj koji se primjenjuje kada se paket podudara.

  • Filtriraj tablicu (zadano, čisto filtriranje)
    • INPUT: promet usmjeren prema samom stroju.
    • NAPRIJEDpromet koji prolazi kroz opremu (usmjeravanje).
    • PROIZVODNJAlokalno generirani promet.
  • Nat tablica (prijevod adresa; procijenjen na novim vezama)
    • PREUSMIRANJEprije odabira rute; idealno za DNAT/prosljeđivanje portova.
    • PROIZVODNJAlokalno pokrenuti paketi prije usmjeravanja.
    • POSTROUTIRANJE: nakon usmjeravanja; tipično za SNAT/MASQUERADE.
  • Mangrova stol (fine prilagodbe zaglavlja: TOS, TTL, označavanje itd.)
    • PREDUSMJERAVANJE, ULAZ, PROSLJEĐIVANJE, IZLAZ, POSTUPIRAVANJE: dostupno u cijelosti.
  • Neobrađena tablica (kontrola praćenja veze/conntrack)
    • PREUSMIRANJE y PROIZVODNJA: za označavanje prometa koji bi conntrack trebao preskočiti.

Kada paket dođe do lanca, sekvencijalno se uspoređuje sa svakim pravilom ; ako se podudara, izvršava se njegov cilj i prolaz se zaustavlja. Ako dođe do kraja bez podudaranja s bilo kojim pravilom, a lanac je unaprijed definiran, primjenjuje se zadana politika lanca za taj lanac.

  Sigurnosna kopija za tvrtke: Potpuni vodič za sigurnosne kopije za tvrtke

Tok paketa: kuda prolaze i kada

Razumijevanje putanje prometa ključno je za ispravnu primjenu pravila. Paket koji napušta vašu LAN mrežu prema internetu obično se obrađuje na sljedeći način: prvo PREROUTING (moguće DNAT/mangle), zatim FORWARD (filtriranje tranzita), a prije nego što napusti uređaj, prolazi kroz POSTROUTING (SNAT/MASQUERADE ako je primjenjivo).

Suprotno tome, ako je odredište sam vatrozid, ruta će biti PREROUTING → INPUT ; ako potječe s lokalnog računala, ruta će biti OUTPUT → POSTROUTING . Ovaj mentalni okvir štedi vam glavobolje kada nešto ne štima.

Osnovne naredbe: popis, brisanje, stvaranje i zadane politike

Za reviziju trenutnog stanja, namjene iptables -L (opcionalno -v za detalje i -n (da se ne razrješe imena)Također možete stvarati i brisati lance pomoću -N y -X i postavite zadane politike s -P.

Kada trebaš početi ispočetka, čista pravila s -F (u istoj razini) i, ako je primjenjivo, brojače. Imajte na umu da možete odrediti tablice s -t i specifični lanci; na primjer, iptables -F -t nat za NAT.

Prilikom definiranja pravila, najčešće opcije su jednostavne: -A patka, -I umetnuti, -R zamjenjuje i -D IzbrisaniZatim dodajete selektore poput -p (protokol), -s/-d (porijeklo/odredište), -i/-o (sučelja) i cilj s -j (npr. PRIHVATI, ODBACI ili ODBIJE).

Las zadane politike definirati što se događa ako se nijedno pravilo ne podudara. Tipična ojačana shema na hostu bila bi INPUT DROP, FORWARD DROP, OUTPUT ACCEPT, blokiranje svega dolaznog osim onoga što je izričito dopušteno i dopuštanje onoga što izađe.

Proširenja podudaranja (-m): TCP, UDP, ICMP, MAC, stateful i multiport

Iptables proširuje svoje filtere odgovarajućim modulima koristeći -m. TCP omogućuje podešavanje po portovima i zastavicama.: --dport/--sport y --syn za nove otvore za veze, na primjer.

Za UDP možete ograničiti i izvorne i odredišne ​​portove . Klasičan primjer: otvaranje porta 80/443 za web poslužitelj ili dopuštanje odlaznih DNS upita na portu 53/UDP.

S ICMP-om, --icmp-type omogućuje vam razlikovanje tipova (npr. zahtjev za odjek y echo-odgovor za pingove). Ovo je korisno za omogućavanje dijagnostike bez ostavljanja otvorenih vrata za puni ICMP.

Tu je i modul mac filtrirati po MAC adresi s --mac-sourceKorisno ako želite ovlastiti upravljano računalo s dinamičkom IP adresom da pinga vatrozid bez oslanjanja na IP adresu.

I, možda najvažnije na operativnoj razini, modul state (ili pratiti) s --state NEW, ESTABLISHED, RELATEDTo omogućuje dopuštanje odgovora iz već uspostavljenih veza, drastično smanjujući broj potrebnih pravila.

Za grupiranje portova, multiport dodaje --sports y --dports s popisima odvojenim zarezimaPraktično je otvoriti HTTP, HTTPS i SSH u jednom pravilu.

Ciljevi izvan ACCEPT/DROP: NAT i tvrtka

Osim prihvaćanja ili odbijanja, iptables može prepisivati ​​adrese i portove za povezivanje privatnih mreža s internetom ili za oglašavanje internih usluga.

MAŠKARE (Na POSTROUTING sa stola nat) zamjenjuje izvornu IP adresu izlaznom IP adresom vatrozida, idealno kada Javna IP adresa je dinamična (DHCP). Ovo je tipičan izlazni NAT za cijelu LAN mrežu.

SNAT (također u POSTROUTING) eksplicitno postavlja izvornu IP adresu/port s --to-source. Koristi se kada imate statičku javnu IP adresu i želite precizno kontrolirati prijevod.

DNAT (Na PREROUTING o OUTPUT) promijenite odredišnu IP adresu s --to-destination. To su poznate "otvorene luke"Primate promet na javnoj IP adresi i preusmjeravate ga na poslužitelj u DMZ-u, na primjer internu web stranicu na 192.168.1.2.

  Aktivna obrana i skener ranjivosti za API-je

Jednostavan primjer: filtriranje prometa između dvije mreže

Zamislite stroj koji djeluje kao usmjerivač/vatrozid između dvije podmreže. Ako želite da samo host B komunicira s C i to samo putem TCP-a, stol će biti filter a ispravan niz znakova je FORWARD, jer promet prolazi kroz opremu.

Prvo biste primijenili zadanu DROP politiku na FORWARD , a zatim izričito autorizirali B→C promet na TCP-u (i, ako je primjenjivo, C→B). Ovaj obrazac "odbij prema zadanim postavkama i dopusti samo minimum" temelj je robusne sigurnosne postavke.

Svakodnevni slučajevi na modnoj pisti: tipična pravila

Na primjer, pristupnik s dva sučelja eth1 (LAN) i eth0 (WAN), obično treba proslijediti pakete s LAN-a na internet. Da bi to učinio, dodaje FORWARD -i eth1 -o eth0 -j ACCEPT, I dopušta samo obrnuti hod ESTABLISHED,RELATED s -m state.

U samom vatrozidu preporučljivo je autorizirati dolazni promet koji je odgovor na odlazne veze s INPUT -m state --state ESTABLISHED,RELATED -j ACCEPTi uvijek dopustiti povratnu petlju: INPUT -i lo -j ACCEPT.

Da biste LAN računalima omogućili pregledavanje, primijenite izlazni NAT: -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j SNAT --to-source X.Y.Z.W (o MASQUERADE ako je IP adresa dinamička). Ovo prevodi privatne IP adrese u vašu javnu IP adresu.

Osnovna mjera pojačavanja je blokiranje dolaznih WAN paketa s neispravnim izvornim IP adresama (vaša vlastita javna IP adresa, privatni rasponi 192.168.0.0/24, 127.0.0.0/8 itd.), jer obično ukazuju na lažiranje.

Za izlaganje servisa na vatrozidu (npr. SMTP 25, HTTP 80, HTTPS 443 ili SSH 22), možete dopustiti TCP pakete sa SYN zastavom tim odredišnim portovimaAko želite suziti pretragu po odredišnoj IP adresi, dodajte -d na IP adresu usluge.

Tipične infrastrukturne usluge uključuju DHCP (promet s portova 68 do 67) na LAN sučelju i DNS s autoritativnog resolvera (UDP 53) ako se filtrira prema izvoru. Ovi portovi omogućuju klijentima dobivanje IP adresa i razrješavanje imena.

Ako trebate blokirati pristup, DROP dolazni SSH/Telnet je jednostavan; također možete ODBIJETI odlazne poruke na blokirane IP adrese na lokalnoj mreži tako da pošiljatelj primi obavijest o odbijanju.

Instaliranje i upravljanje servisom na Red Hat/CentOS sustavima

U starijim okruženjima s CentOS/RHEL 5/6, bilo je dovoljno instalirati s yum -y install iptablesIako mnoge nove distribucije danas favoriziraju nftables, iptables je i dalje prisutan u produkcijskim sustavima i uređajima.

Integracija s SysV usluge dopušteno upravljanje i održavanje pravila: service iptables start|stop|restart y service iptables save, štednja u /etc/sysconfig/iptablesZa omogućavanje pri pokretanju: chkconfig iptables on na razinama 2–5.

U modernim sustavima, iako se omotači mijenjaju , ideja ostaje ista: definirati pravila, testirati ih i sačuvati ih tako da prežive ponovna pokretanja, bilo pomoću sistemskih alata ili skripti.

Precizno navođenje, brisanje i uređivanje pravila

Da biste vidjeli status s brojevima pravila, namjene iptables -L --line-numbers -n -vNa ovaj način možete brisati po indeksu s -D INPUT 3 ili zamijeniti s -R bez zabune.

Ako vam je potrebno selektivno brisanje, Čistite samo lanac ili dasku koja dodiruje (-F FORWARD o -F -t nat). Izbjegavajte udaljene globalne preglede bez „sigurnosne mreže“ ili biste mogli izgubiti SSH pristup.

Kao opća praksa, prvo postavite pravila koja dopuštaju vašu SSH sesiju , postupno primjenjivajte promjene i imajte prozor za vraćanje u prethodno stanje (na primjer, cron zadatak koji vraća pravila za 5 minuta ako ne izvršite potvrdu).

Perzistentnost s iptables-save i iptables-restore

Za spremanje postavki, iptables-save > /ruta/backup/iptables.rules Generira strojno čitljivu izvadak svih tablica. Idealno je za kontrolu promjena i migracije.

  Potpuna WSL2 automatizacija sa Zsh i Oh My Zsh na Windowsima

Za punjenje koristite iptables-restore < /ruta/backup/iptables.rulesVraćanje sustava nakon pokretanja možete automatizirati pomoću systemd-a, init skripti ili cron zadatka. @reboot, osiguravajući da vatrozid ostane aktivan nakon ponovnog pokretanja.

Dodajte ovome dobre operativne prakse: radi s odgovarajućim privilegijama, spremite datoteke izvan /tmp i uskladite ih s okolinom (ispravna sučelja i podmreže) kako biste izbjegli iznenađenja.

DMZ detaljno: potpun i realističan primjer

Pretpostavimo Linux vatrozid spojen na usmjerivač u "jednokorisničkom" načinu rada (bez NAT-a), s tri sučelja: eth0 (LAN 192.168.1.1/24), eth1 (DMZ 192.168.2.1/24) i eth2 (WAN s IP-om putem DHCP-a) . DMZ sadrži Apache web poslužitelj (192.168.2.2) i FTP poslužitelj (192.168.2.3).

Ciljevi pravila: objavljivanje HTTP/HTTPS i FTP protokola iz DMZ-a na Internet , omogućavanje SSH administracije iz LAN mreže do vatrozida te omogućavanje pregledavanja (HTTP/HTTPS), prijenosa datoteka putem FTP-a i rješavanja DNS-a na LAN mreži. Svi ostali pristupi su odbijeni.

Općenito govoreći: u filter/NAPRIJED omogućuje LAN→WAN tranzit s odgovorom i WAN→DMZ samo do objavljenih portova s ESTABLISHED,RELATED za odgovore. U nat/PREDUSMJERIVANJE, primjenjuje DNAT za objavljivanje usluga; u nat/POSTROUTING, SNAT/MASQUERADE za LAN/DMZ izlaz.

Primjeri otvora: DNAT 80/443 na 192.168.2.2 i 21/20 (ovisno o načinu rada) na 192.168.2.3 s odgovarajućim FORWARD Dopuštanje tih portova. Osigurajte kontrolne i podatkovne kanale za FTP (aktivni/pasivni) ili ograničite pasivni domet i to odrazite na vatrozidu.

Za LAN: omogućuje izlaz na 80, 443, 21 i 53 i njegov povratak, primjenjujući izlazni NAT u POSTROUTINGU vatrozidu autorizirajte Dolazni SSH samo iz podmreže 192.168.1.0/24 i blokira neželjeni pristup iz WAN-a.

Ne zaboravite higijenu: DROP na nevažeće raspone na WAN-u (privatni, povratna petlja, vaš vlastiti javni) i zapisujte samo ono što vas zanima. S restriktivnim zadanim pravilima i minimalnim otvorima, vaša izloženost je svedena na minimum.

Dobre prakse i operativni trikovi

Uvijek radite s planom: dokumentirajte što dopuštate i zašto , provjerite očekivani tijek jednostavnim dijagramom i primijenite pravila ispravnim redoslijedom kako biste izbjegli preklapanja.

Koristite kombinaciju modula s glavom: stanje/praćenje veze za odgovore, tcp veza --syn u otvorima i multiport grupiratiNa ovaj način pojednostavljujete i smanjujete rizik od nedosljednosti.

Za okruženja s čestim promjenama, razmislite o odvajanju pravila po funkciji: prilagođeni lanci (S -N) pozivi iz INPUT/OUTPUT/FORWARD, tako da je čuvanje ili preokretanje dijelova čišće.

Prijelaz na nftables je u tijeku u mnogim distribucijama, ali ako vaša platforma/proizvod koristi iptables, temeljito razumijevanje ovih komponenti dat će vam potpunu kontrolu . A ako migrirate, lako ćete shvatiti ekvivalentnu mentalnu mapu u nftablesima.

S onim što ste pokrili, sada imate čvrstu osnovu za implementaciju i održavanje iptablesa u produkciji: razumijete arhitekturu (tablice, lance i tok), vješti ste u osnovnim naredbama, možete implementirati NAT i objavljivati ​​s DNAT/SNAT-om i znate kako postaviti sigurnu DMZ . Odavde je stvar prilagođavanja vašim specifičnim potrebama, redovitog provjeravanja i održavanja pravila jasnima poput vašeg mrežnog modela.