iptables Linuxissa: käytännöllinen, kattava ja selkeä opas

Viimeisin päivitys: 9 syyskuu 2025
Kirjoittaja: TecnoDigital
  • Rakenne ja virtaus: taulukot, ketjut ja liikenteen virtaus
  • Säännöt ja käytännöt: Komennot, ottelut ja tärkeimmät tavoitteet
  • NAT ja julkaisu: SNAT/MASQUERADE ja DNAT tosielämän skenaarioissa
  • Turvallinen suunnittelu: Toimiva demilitaroitu vyöhyke ja hyvät käyttötavat

iptables-palomuuri Linuxissa

Jos hallinnoit Linux-jakeluja suojataksesi tietoturvaasi ja yksityisyyttäsi , joudut ennemmin tai myöhemmin käsittelemään iptables-palvelua. Tämä pakettien suodatusjärjestelmä on GNU/Linuxin klassisen palomuurin ydin , joka pystyy päättämään, mikä liikenne tulee sisään, lähtee verkoista tai välitetään verkkojen välillä. Oikein konfiguroituna se on kuin verkon sisäänkäynnillä olisi erittäin ammattitaitoinen ovimies, joka valvoo sääntöjäsi virheettömästi ja kirurgin tarkkuudella.

Seuraavilta riveiltä löydät kattavan ja ajantasaisen oppaan, joka kattaa olennaiset asiat: palomuurin käsitteet , Netfilterin, taulukot ja ketjut, pakettivirran, näppäinkomennot, sääntölaajennukset ja edistyneet kohteet , sekä käytännön skenaarioita, kuten NAT:n, uudelleenohjaukset, oletuskäytännöt ja toimivan DMZ:n. Kaikki selitetään selkeällä mutta täsmällisellä kielellä, joten voit soveltaa sitä infrastruktuuriisi heti.

Palomuurit kontekstissa: Yökerhojen palomuurien käyttäjistä demilitarisoituun vyöhykkeeseen

Palomuuri on pohjimmiltaan verkkojen välinen suodatin, joka soveltaa sääntöjä kunkin paketin kohtalon määrittämiseksi. Ajattele sitä kuin yökerhon portsaria, jolla on tarkistuslista : jos paketti täyttää kriteerit, se läpäisee; jos ei, se käännetään pois. Tämä metafora auttaa ymmärtämään, että tärkeää on sääntöjen logiikka ja järjestys, jossa niitä arvioidaan.

Verkkosuunnittelussa jotkin topologiat ovat turvallisempia kuin toiset. DMZ (demilitarisoitu vyöhyke) on väliverkko, joka isännöi julkisia palveluita (kuten verkkosivustoja tai FTP-palvelimia) ja erottaa ne yrityksen lähiverkosta. Miksi? Koska jos hyökkääjä murtautuu julkiseen palvelimeen, segmentointi estää heitä saamasta suoraa pääsyä muuhun sisäiseen verkkoon.

Linux palomuurina: Netfilter ja iptables

Linux-ydin sisältää Netfilterin, kehyksen, jossa on koukkuja pakettien sieppaamiseen ja käsittelyyn . Käyttäjätilassa iptables on apuohjelma, joka määrittää ytimen liikenteelle soveltamat säännöt. Tämä ytimen ja käyttäjän erottelu mahdollistaa korkean suorituskyvyn ja suuren joustavuuden.

On hyödyllistä erottaa apuohjelmat toisistaan ​​protokollan mukaan: iptables (IPv4), ip6tables (IPv6), arptables (ARP) ja ebtables (Ethernet-kehykset) . Ytimessä yhteinen moduuli on x_tables, joka jakaa logiikan laajennusten ja kohteiden yhteensovittamiseen. Historiallinen huomautus: iptables korvasi ipchains-moduulin, ja nftables puolestaan ​​seurasi iptables-moduulia ytimen versiossa 3.13 , vaikka iptables on edelleen laajalti käytössä monissa järjestelmissä.

Käyttöön tarvitset järjestelmänvalvojan oikeudet. Suorita iptables root-käyttäjänä (tai sudon avulla), yleensä /usr/sbin/iptables (Debian/johdannaiset) tai /sbin/iptables (Red Hat/johdannaiset). Virallinen dokumentaatio on osoitteessa man iptables ja osoitteessa netfilter.org.

Linux-jakelu palvelimille
Aiheeseen liittyvä artikkeli:
Parhaat Linux-jakelut palvelimille

iptables-rakenne: taulukot, ketjut ja säännöt

Iptables järjestää logiikkansa taulukoiksi, jotka koostuvat ketjuista, jotka on täytetty säännöillä . Jokainen sääntö määrittää täsmäysehdot ja kohteen, jota sovelletaan, kun paketti löytää täsmäyksen.

  • Suodata taulukko (oletus, puhdas suodatus)
    • INPUT: itse koneeseen ohjattu liikenne.
    • ETEENPÄIN: laitteen läpi kulkeva liikenne (reititys).
    • LÄHTÖ: paikallisesti generoitu liikenne.
  • Nat-taulukko (osoitteenmuunnos; arvioitu uusilla yhteyksillä)
    • ESITTELYennen reitin päättämistä; ihanteellinen DNAT:lle/porttien edelleenlähetykselle.
    • LÄHTÖ: paikallisesti lähetetyt paketit ennen reititystä.
    • POSTROUTING: reitityksen jälkeen; tyypillistä SNAT/MASQUERADE-menetelmille.
  • Mangrove-pöytä (otsikon hienosäädöt: TOS, TTL, merkinnät jne.)
    • ESIREIITTO, SYÖTTÖ, ETEENPÄIN, LÄHTÖ, JÄLKIREIITTO: saatavilla kautta linjan.
  • Raaka taulukko (yhteyden seurannan ohjaus/yhteyden seuranta)
    • ESITTELY y LÄHTÖ: merkitäksesi liikenteen, jonka conntrackin tulisi ohittaa.

Kun paketti saavuttaa ketjun, sitä verrataan peräkkäin kaikkiin sääntöihin ; jos se vastaa toisiaan, kohde suoritetaan ja läpikulku pysähtyy. Jos paketti saavuttaa lopun ilman, että mikään sääntö vastaa ketjua ja ketju on ennalta määritelty, käytetään kyseisen ketjun oletusketjukäytäntöä.

  Kuinka suojella lapsia verkossa: täydellinen opas perheille

Pakettivirta: minne ne kulkevat ja milloin

Liikennereitin ymmärtäminen on avainasemassa sääntöjen oikean soveltamisen kannalta. Lähiverkostasi Internetiin lähtevä paketti käsitellään tyypillisesti seuraavasti: ensin ESIREIITITYS (mahdollisesti DNAT/mangle), sitten EDELLEENLÄHETYS (siirtosuodatus) ja ennen laitteesta poistumista se läpikäy JÄLKIREIITITYKSEN (SNAT/MASQUERADE, jos sovellettavissa).

Käänteisesti, jos määränpää on itse palomuuri, reitti on muotoa PREROUTING → INPUT ; jos se on peräisin paikallisesta koneesta, reitti on muotoa OUTPUT → JÄLKIRETKI . Tämä mentaalinen viitekehys säästää sinulta päänsärkyä, kun jokin ei täsmää.

Peruskomennot: listaa, tyhjennä, luo ja oletuskäytännöt

Tarkistaaksesi nykyisen tilan, Yhdysvallat iptables -L (valinnainen -v yksityiskohtien ja -n (jotta nimiä ei ratkaista)Voit myös luoda ja poistaa ketjuja käyttämällä -N y -X vastaavasti ja aseta oletuskäytännöt -P.

Kun sinun täytyy aloittaa alusta, puhtaat säännöt -F (huuhtelu) ja tarvittaessa laskurit. Muista, että voit määrittää taulukoita, joissa on -t ja tietyt ketjut; esimerkiksi iptables -F -t nat NATia varten.

Sääntöjä määriteltäessä yleisimmät vaihtoehdot ovat suoraviivaisia: -A ankka, -I lisää, -R korvaa ja -D PoistetaanSitten lisäät valitsimia, kuten -p (protokolla), -s/-d (lähtöpaikka/määränpää), -i/-o (rajapinnat) ja kohde, jossa on -j (esimerkiksi., HYVÄKSY, HYLÄÄ tai HYLÄÄ).

Las oletuskäytännöt määrittele, mitä tapahtuu, jos mikään sääntö ei täsmää. Tyypillinen kovennettu järjestelmä isännässä olisi INPUT DROP, FORWARD DROP, OUTPUT ACCEPT, estämällä kaiken saapuvan paitsi sen, mikä on nimenomaisesti sallittu ja sallii sen, mikä ulos tulee.

Vastaa tunnisteita (-m): TCP, UDP, ICMP, MAC, tilallinen ja moniportti

Iptables laajentaa suodattimiaan vastaavilla moduuleilla käyttämällä -m. TCP-protokolla mahdollistaa virittämisen porttien ja lippujen avulla: --dport/--sport y --syn esimerkiksi uusien liitäntäaukkojen yhteydessä.

UDP:n osalta voit myös rajoittaa lähde- ja kohdeportteja . Klassinen esimerkki: portin 80/443 avaaminen web-palvelimelle tai lähtevien DNS-kyselyiden salliminen portissa 53/UDP.

ICMP:n avulla --icmp-type antaa sinun erottaa tyypit (esimerkiksi., kaiutuspyyntö y kaiku-vastaus ping-kutsuille). Tämä on hyödyllistä diagnostiikan mahdollistamiseksi ilman, että täysi ICMP-tila on käytettävissä.

Siellä on myös moduuli mac suodattaa MAC-osoitteen mukaan kanssa --mac-sourceHyödyllinen, jos haluat valtuuttaa dynaamisen IP-osoitteen omaavan hallitun tietokoneen lähettämään ping-viestin palomuurille ilman, että sinun tarvitsee luottaa IP-osoitteeseen.

Ja ehkäpä tärkeintä operatiivisella tasolla, moduuli state (tai yhteyden seuranta) --state NEW, ESTABLISHED, RELATEDTämä sallii jo muodostetuista yhteyksistä tulevien vastausten sallimisen, mikä vähentää huomattavasti tarvittavien sääntöjen määrää.

Ryhmittele portteja multiport lisää --sports y --dports pilkuilla erotettuina luetteloinaOn kätevää avata HTTP, HTTPS ja SSH yhdellä säännöllä.

ACCEPT/DROP-tavoitteet: NAT ja yritys

Hyväksymisen tai hylkäämisen lisäksi iptables voi kirjoittaa osoitteita ja portteja uudelleen yhdistääkseen yksityisiä verkkoja Internetiin tai mainostaakseen sisäisiä palveluita.

NAAMIAISET (At POSTROUTING pöydältä nat) korvaa lähde-IP:n palomuurin lähtö-IP:llä, mikä on ihanteellista silloin, kun julkinen IP-osoite on dynaaminen (DHCP). Tämä on tyypillinen lähtevä NAT koko lähiverkolle.

SNAT (myös POSTROUTING) asettaa eksplisiittisesti lähteen IP-osoitteen/portin --to-source. Sitä käytetään, kun sinulla on staattinen julkinen IP-osoite. ja haluat hallita käännöstä tarkasti.

DNAT (At PREROUTING o OUTPUT) muuta kohde-IP-osoitetta --to-destination. Se on kuuluisa "avoin satama"Vastaanotat liikennettä julkisella IP-osoitteella ja ohjaat sen demilitarisoidulla vyöhykkeellä olevalle palvelimelle, esimerkiksi sisäiselle verkkosivustolle osoitteessa 192.168.1.2.

  KDE Linux yleiskäyttöisenä jakeluna: tila, keskeiset kohdat ja ekosysteemi

Yksinkertainen esimerkki: liikenteen suodattaminen kahden verkon välillä

Kuvittele kone, joka toimii reitittimenä/palomuurina kahden aliverkon välillä. Jos haluat vain B:n kommunikoivan C:n kanssa ja vain TCP:n kautta, pöytä on filter ja oikea merkkijono on FORWARDkoska liikenne kulkee laitteen läpi.

Ensin sovellettaisiin oletusarvoista DROP-käytäntöä FORWARD-liikenteeseen ja sitten erikseen valtuutettaisiin B→C-liikenne TCP-liikenteeseen (ja tarvittaessa C→B-liikenteeseen). Tämä "estä oletuksena ja salli vähimmäismäärä" -malli on vankan tietoturvatilan perusta.

Arkipäivän tapauksia catwalkilla: tyypilliset säännöt

Esimerkiksi yhdyskäytävä, jossa on kaksi rajapintaa eth1 (lähiverkko) ja eth0 (laajaverkko), yleensä tarvitsee välittää paketteja lähiverkosta Internetiin. Tätä varten se lisää FORWARD -i eth1 -o eth0 -j ACCEPTJa sallii vain taaksepäin ESTABLISHED,RELATED kanssa -m state.

Itse palomuurissa on suositeltavaa valtuuttaa saapuva liikenne, joka on vastaus lähteviin yhteyksiin kanssa INPUT -m state --state ESTABLISHED,RELATED -j ACCEPTja salli aina silmukkatoiminto: INPUT -i lo -j ACCEPT.

Jotta lähiverkon tietokoneet voivat selata, käytä lähtevää NAT-osoitetta: -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j SNAT --to-source X.Y.Z.W (o MASQUERADE (jos IP-osoite on dynaaminen). Tämä muuntaa yksityiset IP-osoitteet julkisiksi IP-osoitteiksi.

Perussuojaustoimenpide on estää saapuvat WAN-paketit, joilla on väärät lähde-IP-osoitteet (oma julkinen IP-osoite, yksityiset IP-osoitteet 192.168.0.0/24, 127.0.0.0/8 jne.), koska ne yleensä viittaavat huijaukseen.

Voit paljastaa palomuurilla olevia palveluita (esim. SMTP 25, HTTP 80, HTTPS 443 tai SSH 22) seuraavasti: salli SYN-lipulla varustetut TCP-paketit näihin kohdeportteihinJos haluat rajata kohde-IP-osoitteen mukaan, lisää -d palvelun IP-osoitteeseen.

Tyypillisiä infrastruktuuripalveluita ovat DHCP (liikenne porteista 68–67) lähiverkkorajapinnassa ja DNS autoritaarisesta resolverista (UDP 53), jos suodatus tapahtuu lähteen mukaan. Näiden porttien avulla asiakkaat voivat hankkia IP-osoitteita ja selvittää nimiä.

Jos sinun on estettävä pääsy, DROP-komennon avulla saapuvat SSH/Telnet-viestit voidaan helposti estää. Voit myös HYLKÄÄ lähtevät viestit paikallisverkon estettyihin IP-osoitteisiin , jolloin lähettäjä saa hylkäysilmoituksen.

Palvelun asentaminen ja hallinta Red Hat/CentOS-järjestelmissä

Vanhoissa CentOS/RHEL 5/6 -ympäristöissä riitti asenna yum -y install iptablesVaikka monet uudet jakelut suosivat nykyään nftablesia, iptables on edelleen läsnä tuotantojärjestelmissä ja -laitteissa.

Integrointi SysV-palvelut sallittu hallita ja ylläpitää sääntöjä: service iptables start|stop|restart y service iptables save, säästäminen /etc/sysconfig/iptablesOta käyttöön käynnistyksen yhteydessä: chkconfig iptables on tasoilla 2–5.

Nykyaikaisissa järjestelmissä, vaikka kääreet muuttuvat , ajatus pysyy samana: määrittele säännöt, testaa ne ja säilytä ne, jotta ne selviävät uudelleenkäynnistyksestä, joko järjestelmätyökaluilla tai skripteillä.

Sääntöjen tarkka listaaminen, poistaminen ja muokkaaminen

Jos haluat nähdä tilan sääntönumeroilla, Yhdysvallat iptables -L --line-numbers -n -vTällä tavoin voit poistaa indeksin mukaan -D INPUT 3 tai korvaa -R ilman hämmennystä.

Jos tarvitset valikoivaa poistoa, Puhdista vain se ketju tai lauta, joka koskettaa (-F FORWARD o -F -t nat). Vältä etäyhteyden kautta tehtäviä globaaleja tarkistuksia ilman "turvaverkkoa", sillä muuten saatat menettää SSH-yhteyden.

Yleisenä käytäntönä kannattaa ensin ottaa käyttöön säännöt, jotka sallivat SSH-istunnon , tehdä muutokset asteittain ja käyttää palautusikkunaa (esimerkiksi cron-tehtävä, joka palauttaa säännöt viidessä minuutissa, jos et vahvista niitä).

Pysyvyys iptables-save- ja iptables-restore-komennoilla

Tallennaaksesi asetukset, iptables-save > /ruta/backup/iptables.rules Luo koneellisesti luettavan vedoksen kaikista taulukoista. Se on ihanteellinen muutostenhallintaan ja migraatioihin.

  Tietokoneen muuntaminen Linux-käyttöjärjestelmäksi USB-asemasta: täydellinen opas

Lataa se käyttämällä iptables-restore < /ruta/backup/iptables.rulesVoit automatisoida käynnistyksen palautuksen systemd:llä, init-skripteillä tai cron-työllä. @rebootvarmistaen, että palomuuri pysyy aktiivisena uudelleenkäynnistyksen jälkeen.

Lisää tähän hyvät toimintatavat: toimii asianmukaisilla oikeuksilla, tallenna tiedostot ulkopuolelle /tmp ja sovita ne ympäristöön (oikeat rajapinnat ja aliverkot) yllätysten välttämiseksi.

Demilitaroitu vyöhyke yksityiskohtaisesti: täydellinen ja realistinen esimerkki

Oletetaan, että Linux-palomuuri on kytketty reitittimeen "yksikäyttäjätilassa" (ilman NAT:ia) ja siinä on kolme rajapintaa: eth0 (LAN 192.168.1.1/24), eth1 (DMZ 192.168.2.1/24) ja eth2 (WAN, jossa IP-osoite on DHCP:n määräämä) . DMZ isännöi Apache-webpalvelinta (192.168.2.2) ja FTP-palvelinta (192.168.2.3).

Käytännön tavoitteet: julkaista HTTP/HTTPS- ja FTP-yhteyksiä demilitaroidulta vyöhykkeeltä Internetiin , sallia SSH-hallinta lähiverkosta palomuurille ja sallia lähiverkon selaaminen (HTTP/HTTPS), tiedostojen siirtäminen FTP:n kautta ja DNS-selailu. Kaikki muu käyttö on estetty.

Yleisesti ottaen: sisään suodatin/EDELLEEN sallii LAN→WAN-siirron vastauksella ja WAN→DMZ vain julkaistuihin portteihin kanssa ESTABLISHED,RELATED vastauksia varten. Sisään nat/PREROUTING, soveltaa DNAT:tä julkaisupalveluihin; nat/JÄLKIRUOTTO, SNAT/MASQUERADE LAN/DMZ-lähtöä varten.

Esimerkkejä aukoista: DNAT 80/443 - 192.168.2.2 ja 21/20 (tilasta riippuen) - 192.168.2.3 vastaavan kanssa FORWARD Salli kyseiset portit. Suojaa FTP:n ohjaus- ja datakanavat (aktiivinen/passiivinen) tai rajoita passiivista aluetta ja ota tämä huomioon palomuurissa.

Lähiverkkoa varten: sallii poistumisen linjoille 80, 443, 21 ja 53 ja sen paluu, soveltaen lähtevää NAT-muunnosta POSTROUTING. Palomuurissa, valtuuta Vain saapuva SSH aliverkosta 192.168.1.0/24 ja estää ei-toivotun pääsyn WAN-verkosta.

Älä unohda hygieniaa: PUDOTA WAN-verkossa virheellisiin alueisiin (yksityinen, loopback, oma julkinen) ja kirjaa vain ne tiedot, joista olet kiinnostunut. Rajoittavien oletuskäytäntöjen ja minimaalisten avausten avulla altistumisesi on minimoitu.

Hyvät käytännöt ja operatiiviset niksit

Työskentele aina suunnitelman mukaisesti: dokumentoi, mitä sallit ja miksi , varmista odotettu virtaus yksinkertaisella kaaviolla ja sovella sääntöjä oikeassa järjestyksessä päällekkäisyyksien välttämiseksi.

Käytä moduulien yhdistelmää pään kanssa: state/conntrack vastauksia varten, tcp con --syn aukoissa, ja multiport ryhmitelläNäin yksinkertaistat ja vähennät epäjohdonmukaisuuksien riskiä.

Ympäristöissä, joissa tapahtuu usein muutoksia, harkitse sääntöjen erottelua funktion mukaan: mukautetut ketjut (jossa -N) kutsut INPUT/OUTPUT/FORWARD-lähteistä, jotta palojen pitäminen tai peruuttaminen on siistimpää.

Siirtyminen nftablesiin on käynnissä monissa jakeluissa, mutta jos alustasi/tuotteesi käyttää iptablesia, näiden komponenttien perusteellinen tuntemus antaa sinulle täyden hallinnan . Ja jos siirryt, saat helposti käsityksen vastaavasta mentaalikartasta nftablesissa.

Käymäsi tiedon perusteella sinulla on nyt vankka perusta iptables-käyttöjärjestelmän käyttöönottoon ja ylläpitoon tuotannossa: ymmärrät arkkitehtuurin (taulukot, ketjut ja työnkulku), hallitset keskeiset komennot, osaat toteuttaa NAT:n ja julkaista DNAT/SNAT:n avulla, ja tiedät, miten suojattu DMZ luodaan . Tästä eteenpäin on kyse sen räätälöimisestä omiin tarpeisiisi, säännöllisestä auditoinnista ja sääntöjen pitämisestä yhtä selkeinä kuin verkkomallisi.