Aloittelijan opas IPTables (Linux Firewall) -komentoihin


Jos käytät tietokoneita jonkin aikaa, sinun on tunnettava sana palomuuri. Tiedämme, että asiat näyttävät pinnallisesti monimutkaisilta, mutta tämän opetusohjelman avulla aiomme selittää IPTablen perusteet ja peruskomentojen käytön, jotta vaikka olisit verkko-opiskelija tai haluaisit perehtyä sukeltaa verkostoihin, voit hyötyä tästä oppaasta.

Mikä on IPTables?

Palomuurin toimintatapa on melko yksinkertainen. Se luo esteen luotettavien ja epäluotettavien verkkojen välille, jotta järjestelmäsi voi olla turvassa haitallisilta paketeilta.

Mutta miten aiomme päättää, mikä on turvallista ja mikä ei? Oletuksena sinulla on oikeus määrittää palomuurillesi sääntöjä, mutta yksityiskohtaisempaan saapuvien ja lähtevien pakettien valvontaan IPTablet ovat se, mitä tarvitset eniten.

IPTablesia voidaan käyttää henkilökohtaiseen tietojenkäsittelyyn tai niitä voidaan soveltaa myös koko verkkoon. IPTables-työkalun avulla määritämme joukon sääntöjä, joiden avulla voimme valvoa, sallia tai estää saapuvia tai lähteviä verkkopaketteja.

Sen sijaan, että keskittyisimme vain koko teoriaosaan, keskustelemme vain siitä, mikä on tärkeää käytännön maailmassa. Aloitetaan siis ymmärtämällä IPTablesin ydinkäsitteet.

IPTablesin käsitteen ymmärtäminen

Kun puhumme IPT-taulukoista, meidän on ymmärrettävä kolme termiä: taulukot, ketjut ja säännöt. Koska nämä ovat tärkeitä osia, keskustelemme niistä jokaisesta.

Aloitetaan siis taulukoista.

Taulukot IPTablesissa

IPTablesissa on 5 tyyppiä taulukoita, ja jokaiseen sovelletaan erilaisia sääntöjä. Aloitetaan siis yleisimmästä Filer -taulukosta.

  1. Suodatintaulukko – Tämä on oletus- ja päätaulukko käytettäessä IPTables -taulukkoa. Se tarkoittaa, että aina, kun et mainitse mitään tiettyä taulukkoa sääntöjä sovellettaessa, niitä sovelletaan suodatintaulukkoon. Kuten nimestä voi päätellä, Suodatintaulukon tehtävänä on päättää, sallitaanko pakettien päästä määränpäähänsä vai hylätäänkö niiden pyyntö.
  2. NAT (verkko-osoitteiden käännös) – Kuten sen nimestä voi päätellä, tämän taulukon avulla käyttäjät voivat määrittää verkko-osoitteiden käännöksen. Tämän taulukon tehtävänä on määrittää, onko pakettiosoitteen lähdettä ja kohdetta muutettava ja miten sitä tulee muuttaa.
  3. Mangle Table – Tämän taulukon avulla voimme muokata pakettien IP-otsikoita. Voit esimerkiksi säätää TTL:tä joko pidentämään tai oikosulkemaan verkon hyppyjä, joita paketti voi ylläpitää. Vastaavasti myös muita IP-otsikoita voidaan muokata mieltymystesi mukaan.
  4. RAW-taulukko – Tämän taulukon pääasiallinen käyttötarkoitus on yhteyksien seuraaminen, koska se tarjoaa mekanismin pakettien merkitsemiseksi, jotta paketit voidaan tarkastella osana meneillään olevaa istuntoa.
  5. Turvallisuustaulukko – Suojaustaulukon avulla käyttäjät voivat lisätä verkkopaketteihin sisäisiä SELinux-suojauskontekstimerkkejä.

Useimmissa käyttötapauksissa taulukon kahdella viimeisellä tyypillä (RAW ja Turvallisuus) ei ole paljon tekemistä, ja vain kolme ensimmäistä vaihtoehtoa lasketaan päätaulukoiksi. .

Puhutaanpa nyt ketjuista.

Ketjut IPTablesissa

He käyttäytyvät verkon reitin kohdissa, joissa voimme soveltaa sääntöjä. IPTablesissa on viisi erilaista ketjua, ja keskustelemme niistä jokaisesta. Muista, että jokaista ketjutyyppiä ei ole saatavana jokaiselle pöytätyypille.

  1. Esireititys – Tätä ketjua sovelletaan kaikkiin saapuviin paketteihin, kun se on syötetty verkkopinoon, ja tämä ketju käsitellään jo ennen kuin paketin lopullista kohdetta koskeva reitityspäätös on tehty.
  2. Syöteketju – Se on kohta, jossa paketti tulee verkkopinoon.
  3. Eteenpäin ketju – Se on kohta, jossa paketti on välitetty edelleen järjestelmäsi kautta.
  4. Tulosketju – Lähtöketjua käytetään paketissa, kun se on peräisin järjestelmästäsi ja sammuu.
  5. Jälkeinen reititys – Tämä on täysin vastakohta esireititysketjulle, ja sitä sovelletaan edelleen lähetettyihin tai lähteviin paketteihin, kun reitityspäätös on tehty.

Ainoa asia, josta on keskusteltava, on säännöt, ja se on helpoin niistä kolmesta, joista olemme täällä keskustelleet. Täydennetään siis se, mitä teoreettisesta osasta on jäljellä.

Säännöt IPTablesissa

Säännöt ovat vain joukko tai yksittäisiä komentoja, joilla käyttäjät käsittelevät verkkoliikennettä. Kun jokainen ketju alkaa toimia, paketti tarkistetaan määritettyjen sääntöjen mukaan.

Jos yksi sääntö ei täytä ehtoa, se siirtyy seuraavaan ja jos se täyttää ehdon, seuraava sääntö määritetään kohteen arvolla.

Jokaisessa säännössä on kaksi osaa: vastaava komponentti ja kohdekomponentti.

  1. Vastaava komponentti – Ne ovat eri ehtoja sääntöjen määrittämiseksi, jotka voidaan sovittaa yhteen protokollan, IP-osoitteen, portin osoitteen, liitäntöjen ja otsikoiden perusteella.
  2. Kohdekomponentti – Tämä on toiminto, joka käynnistyy, kun ehdot täyttyvät.

Tämä oli selitysosa, ja nyt käsittelemme peruskomentoja, jotka liittyvät IPTablesiin Linuxissa.

IPTables-palomuurin asentaminen Linuxiin

Nykyaikaisissa Linux-jakeluissa, kuten Pop!_OS, IPTables on esiasennettu, mutta jos järjestelmästäsi puuttuu IPTables-paketti, voit asentaa sen helposti annettujen ohjeiden avulla:

Asenna IPTables RHEL-pohjaisiin Linux-jakeluihin, kuten Rocky Linux, AlmaLinux ja CentOS Stream, käyttämällä seuraavaa dnf-komentoa.

sudo dnf install iptables-services

Tärkeää: jos käytät palomuuria, sinun on poistettava se käytöstä ennen asennuksen jatkamista. Pysäyttääksesi palomuurin kokonaan, sinun on käytettävä seuraavia komentoja:

sudo systemctl stop firewalld
sudo systemctl disable firewalld
sudo systemctl mask firewalld

Asenna IPTables Debian-pohjaisiin Linux-jakeluihin käyttämällä seuraavaa apt-komentoa.

sudo apt install iptables

Kun olet asentanut IPTablet, voit ottaa palomuurin käyttöön annetuilla komennoilla:

sudo systemctl enable iptables
sudo systemctl start iptables

Voit seurata IPTable-palvelun tilaa käyttämällä annettua komentoa:

sudo systemctl status iptables

Opi IPTables-komennon perusteet Linuxissa

Kun asennus on valmis, voimme jatkaa IPTables -syntaksin kanssa, jonka avulla voit säätää oletusasetuksia ja määrittää asetukset tarpeidesi mukaan.

IPTablesin perussyntaksi on seuraava:

iptables -t {type of table} -options {chain points} {condition or matching component} {action}

Ymmärretään yllä olevan komennon selitys:

Pöytä

Ensimmäinen osa on -t, jossa voimme valita viidestä käytettävissä olevasta taulukkovaihtoehdosta ja jos poistat komennosta osan -t, se käyttää suodatinta<. -taulukkoa, koska se on oletustaulukkotyyppi.

Ketjun vaihtoehdot

Toinen osa on ketjulle. Täällä voit valita eri ketjupistevaihtoehdoista, ja ne on annettu alla:

  • -A – Lisää uuden säännön ketjun loppuun.
  • -C – Tarkistaa säännön, täyttääkö se ketjun vaatimukset.
  • -D – Antaa käyttäjien poistaa olemassa olevan säännön ketjusta.
  • -F – Tämä poistaa jokaisen käyttäjän määrittelemän säännön.
  • -I – Antaa käyttäjien lisätä uuden säännön määritettyyn paikkaan.
  • -N – Luo kokonaan uuden ketjun.
  • -v – Kun sitä käytetään luettelovaihtoehdon kanssa, se tuo yksityiskohtaista tietoa.
  • -X – Poistaa ketjun.

Vastaava komponentti

Yhteensopivuusvaihtoehdot ovat ehto ketjun vaatimuksen tarkistamiselle. Voit valita useista vaihtoehdoista, ja osa niistä on esitetty alla:

Protocols -p
Source IP -s
Destination IP -d
IN interface -i
OUT interface -o

TCP:lle ne ovat seuraavat:

-sport
-dport
--tcp-flags

Toimintokomponentti

Jos nyt tarkastelemme toimintoosaa, käytettävissä olevat vaihtoehdot riippuvat taulukon tyypistä, kuten NAT, ja mangle-taulukossa on enemmän vaihtoehtoja muihin verrattuna. Toiminnon avulla voit myös kohdistaa tiettyyn taulukkoon tai ketjuun.

Eniten käytetty toiminto on Jump (-j), joka antaa meille useita vaihtoehtoja, kuten:

  • ACCEPT – Sitä käytetään pakettien hyväksymiseen ja läpikulun lopettamiseen.
  • DROP – Sitä käytetään pakettien pudotukseen ja läpikulun lopettamiseen.
  • REJECT – Tämä on melko samanlainen kuin DROP, mutta se lähettää hylätyt paketit lähteeseen.
  • PALAUTUS – Tämä lopettaa paketin kulkemisen aliketjussa ja lähettää tietyn paketin ylimpään ketjuun ilman vaikutusta.

Kun syntaksi on valmis, näytämme sinulle, kuinka voit käyttää IPTablesia mukaan lukien perusasetukset.

Nykyisten IPTables-sääntöjen luettelointi

Jos haluat tarkistaa, mitä palomuurisi läpi kulkee oletusarvoisesti, nykyisten sääntöjen luettelointi on täydellinen tapa. Käytä annettua komentoa luetellaksesi sovelletut säännöt:

sudo iptables -L

Salli/estä verkkoliikenne tietyissä porteissa

Tässä osiossa näytämme, kuinka voit sallia tai estää verkkoliikenteen tietyissä porteissa. Näytämme sinulle joitain tunnettuja portteja, koska haluamme olla niin hyödyllisiä kuin voimme olla.
Jos haluat sallia HTTPS-verkkoliikenteen, meidän on sallittava portti nro 443 käyttämällä annettua komentoa:

sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT

Vastaavasti voit myös poistaa käytöstä HTTP-verkkoliikenteen annetulla komennolla:

sudo iptables -A INPUT -p tcp --dport 80 -j REJECT

Selitys käytetyistä komentovaihtoehdoista:

  • -p:ta käytetään määritetyn protokollan tarkistamiseen ja meidän tapauksessamme se on TCP.
  • --dport käytetään kohdeportin määrittämiseen.
  • -j käytetään toimintojen suorittamiseen (hyväksy tai pudota).

Ohjaa liikennettä IP-osoitteella

Kyllä, voit myös ohjata verkkoliikennettä IP-osoitteesta. Ei vain yhtä tai kahta, vaan hallitse myös IP-osoitteiden valikoimaa, niin näytämme sinulle kuinka.

Jos haluat sallia tietyn IP-osoitteen, käytä annettua komentorakennetta:

sudo iptables -A INPUT -s 69.63.176.13 -j ACCEPT

Samoin, jos haluat pudottaa paketteja tietystä IP-osoitteesta, sinun on käytettävä annettua komentorakennetta:

sudo iptables -A INPUT -s 192.168.0.27 -j DROP

Halutessasi voit myös hallita IP-osoitteiden aluetta käyttämällä annettua komentorakennetta:

sudo iptables -A INPUT -m range --src-range 192.168.0.1-192.168.0.255 -j REJECT

Poista käyttäjän määrittämä sääntö

Joskus saatamme päätyä virheisiin luodessaan sääntöjä, ja paras tapa voittaa nämä virheet on poistaa ne. Määritettyjen sääntöjen poistaminen on helpoin prosessi tässä oppaassa, ja niiden poistamiseksi meidän on ensin lueteltava ne.

Listaa määritetyt säännöt numeroilla käyttämällä annettua komentoa:

sudo iptables -L --line-numbers

Sääntöjen poistamiseksi meidän on noudatettava annettua komentorakennetta:

sudo iptables -D <INPUT/FORWARD/OUTPUT> <Number>

Oletetaan, että haluan poistaa 10. säännön kohdasta INPUT, joten käytän annettua komentoa:

sudo iptables -D INPUT 10

Tarkistaaksemme, olemmeko säännön poistaneet onnistuneesti, meidän on lueteltava säännöt annetulla komennolla:

sudo iptables -L –line-numbers

Kuten näet, olemme onnistuneesti poistaneet 10. säännön.

Tallenna määritetyt IPTables-säännöt

Saatat ihmetellä, miksi meidän on tallennettava säännöt, joissa ne toimivat hyvin niiden soveltamisen jälkeen? Ongelmana on, että kun järjestelmäsi käynnistyy uudelleen, kaikki määritetyt säännöt, joita ei tallenneta, poistetaan, joten se on meille erittäin tärkeää.

Sääntöjen tallentaminen RHEL-pohjaisiin jakeluihin:

sudo /sbin/service iptables save

Sääntöjen tallentaminen Debian-johdannaisiin:

sudo /sbin/iptables–save

Saat lisätietoja IPtable-palomuurisäännöistä tutustumalla yksityiskohtaiseen oppaaseemme osoitteessa:

  • 25 hyödyllistä IPtable-palomuurisääntöä jokaisen Linux-järjestelmänvalvojan tulisi tietää

Tämän oppaan aikana olemme yrittäneet tehdä asioista yksinkertaisia, jotta kaikki voivat hyötyä siitä. Tämä oli IPTablesin perusselitysopas, ja jos sinulla on kysyttävää, voit kysyä niitä kommenteissa.