iptables

Ubuntu Iptables Kako nadzorovati omrežni promet s pomočjo iptables?

Ubuntu Iptables Kako nadzorovati omrežni promet s pomočjo iptables?
“... A uporabniški prostor pripomoček Unix, ki sistemskim skrbnikom omogoča konfiguriranje pravil filtriranja paketov IP, ki jih izvaja modul neto filtra jedra." Iptables delujejo kot požarni zid z uporabo pravil filtriranja paketov, ki temeljijo na različnih merilih, kot so naslov IP, vrata in protokoli.

Ta vodnik bo razpravljal o tem, kako konfigurirati in uporabljati pravila iptables v sistemu Ubuntu za zaščito vašega omrežja. Ne glede na to, ali ste nov uporabnik Linuxa ali prekaljen sistemski skrbnik, boste v tem priročniku na tak ali drugačen način izvedeli nekaj koristnega o iptables.

Iptables so vnaprej nameščeni v Ubuntuju in večini distribucij, ki temeljijo na Debianu. Ubuntu pakira tudi požarni zid GUFW, grafično alternativo, ki jo lahko uporabite za delo z iptables.

OPOMBA: Če želite uporabljati in konfigurirati iptables, boste potrebovali privilegije sudo v vašem sistemu. Več o sudu lahko izveste iz naslednje vadnice.

Zdaj, ko veste, kaj je Iptables, se potopimo naravnost!

Kako uporabljati iptables za upravljanje prometa IPv4?

Če želite uporabljati Iptables za upravljanje omrežja in prometa IPv4, morate razumeti naslednje:

Ukaz Iptables

Iptables ponuja izbor možnosti, ki vam omogočajo, da prilagodite in prilagodite svoja pravila iptables. Pogovorimo se o nekaterih od teh parametrov in si oglejmo, kaj počnejo.

OPOMBA: Konfigurirate lahko nabor pravil, ki upravljajo določeno podmnožico, imenovano verige iptables.

Iptables Parametri

Preden začnemo ustvarjati in konfigurirati pravila iptables, najprej razumemo osnove iptables, kot so splošna sintaksa in privzeti argumenti.

Upoštevajte spodnji ukaz:

sudo iptables -I INPUT -s 192.168.0.24 -j PAD

Zgornji ukaz iptables pove, da ustvarijo pravilo v verigi. Pravilo izbriše vse pakete z naslova IP 192.168.0.24.

Preučimo ukaz, vrstica za vrstico, da ga bolje razumemo.

Iptables ponuja izbor parametrov, s katerimi lahko konfigurirate različna pravila. Različni parametri, s katerimi lahko konfigurirate pravila iptables, vključujejo:

Parameter pravila Iptables Opis
-s-vir Navedite vir, ki je lahko naslov, ime gostitelja ali ime omrežja.
-p-protokol Določa protokol povezave; na primer TCP, UDP itd.
-d-destinacija Določa cilj, ki je lahko naslov, ime omrežja ali ime gostitelja.
-j -skok Nastavi akcijo, ki jo morajo iptables izvesti po iskanju paketa.
-o-out-vmesnik Nastavi vmesnik, prek katerega iptable pošlje paket.
-i -in-interface Nastavi vmesnik, ki se uporablja za vzpostavitev omrežnih paketov.
-c -set-števci Dovoli skrbniku, da nastavi števce bajtov in paketov za določeno pravilo.
-g -goto veriga Parameter določa, da naj se obdelava nadaljuje v uporabniško nastavljeni verigi po vrnitvi.
-f-fragment Pove iptablesu, da pravilo uporabi samo za drugi in naslednje fragmente fragmentiranih paketov.

Možnosti Iptables

Ukaz iptables podpira široko paleto možnosti. Nekateri pogosti vključujejo:

Možnost Opis
-A -priloži Doda pravilo na konec določene verige
-D -izbriši Odstrani pravilo iz navedene verige
-F-izpiranje Odstrani vsa pravila, eno za drugo
-L-seznam Prikaže vsa pravila v navedeni verigi
-Vstavim Vstavi pravilo v določeno verigo (posreduje se kot številka, kadar ni navedena nobena številka; pravilo se doda na vrh)
-C -preverite Poizvedbe za ujemanje pravil; zahteva v določenem pravilu
-v -verbozna Prikaže več podrobnosti pri uporabi s parametrom -L
-N-nova veriga Doda novo uporabniško določeno verigo
-X -izbriši verigo Odstrani določeno uporabniško določeno verigo

Iptables Tabele

Jedro Linuxa ima privzete tabele, v katerih je nabor povezanih pravil. Te privzete tabele imajo nabor privzetih verig, vendar lahko uporabniki pravila prilagodijo tako, da dodajo uporabniško določena pravila.

OPOMBA: Privzete tabele bodo močno odvisne od vaše konfiguracije jedra in nameščenih modulov.

Tu so privzete tabele iptables:

1: Tabele filtrov

Tabela filtrov je privzeta tabela, ki vsebuje verige, ki se uporabljajo za filtriranje omrežnih paketov. Nekatere privzete verige v tej tabeli vključujejo:

Veriga Opis
Vhod Iptables uporabljajo to verigo za vse dohodne pakete v sistem, tj.e., paketi, ki gredo v lokalne vtičnice.
Izhod Iptables uporabljajo izhodno verigo za lokalno generirane pakete, tj.e., paketi, ki gredo iz sistema.
Naprej Ta veriga je tisto, kar Iptables uporabljajo za pakete, usmerjene ali posredovane prek sistema.

2: NAT tabele

NAT ali tabela omrežnih naslovov je usmerjevalna naprava, ki se uporablja za spreminjanje izvornega in ciljnega naslova IP v omrežnem paketu. Glavna uporaba tabele NAT je povezovanje dveh omrežij v zasebnem območju naslovov z javnim omrežjem.

NAT je bil razvit za podporo prikrivanju resničnih naslovov IP, kar omogoča, da zasebni naslovi IP segajo do zunanjega omrežja. To pomaga zaščititi podrobnosti o notranjih omrežjih pred razkritjem v javnih omrežjih.

Tabela NAT se zaposli, ko paket sproži novo povezavo.

Iptables imajo privzeto tabelo za naslavljanje NAT. Ta tabela ima tri glavne verige:

Veriga Opis
PREDSTAVITEV Omogoča spreminjanje informacij o paketu, preden prispejo v verigo INPUT, ki se uporablja za dohodne pakete
IZHOD Rezervirano za lokalno ustvarjene pakete, tj.e., preden pride do omrežnega usmerjanja
POSTROUTING Omogoča spreminjanje odhodnih paketov - Paketi, ki zapustijo verigo OUTPUT

Spodnji diagram prikazuje pregled tega procesa na visoki ravni.

Uporabite spodnji ukaz za ogled tabel usmerjanja NAT.

iptables -t nat -n -v -L

3: Tabele Mangle

Tabela mangle se uporablja predvsem za posebne modifikacije paketov. Preprosto povedano, uporablja se za spreminjanje naslovov IP omrežnega paketa. Sprememba paketov lahko vključuje spreminjanje vrednosti TTL paketa, spreminjanje veljavnih omrežnih skokov za paket itd.

Tabela vsebuje naslednje privzete verige:

Veriga Opis
PREDHODNO Rezervirano za dohodne pakete
POSTROUTING Uporablja se za odhodne pakete
VHOD Uporablja se za pakete, ki prihajajo neposredno v strežnik
IZHOD Uporablja se za lokalne pakete
Naprej Rezervirano za pakete, preusmerjene po sistemu

4: Surove tabele

Glavni namen surove tabele je konfiguriranje izjem za pakete, ki jih sistem za sledenje ne bi smel obravnavati. Neobdelana tabela nastavi na pakete oznako NOTRACK, zaradi česar funkcija conntrack prezre paket.

Conntrack je omrežna funkcija jedra Linuxa, ki omogoča jedru Linuxa, da sledi vsem omrežnim povezavam in jedru omogoča prepoznavanje paketov, ki tvorijo omrežni tok.

Surova miza ima dve glavni verigi:

Veriga Opis
PREDHODNO Rezervirano za pakete, ki jih prejmejo omrežni vmesniki
IZHOD Rezervirano za pakete, ki jih sprožijo lokalni procesi

5: Tabela varnosti

Primarna uporaba te tabele je nastavitev notranjega varnostnega mehanizma za izboljšanje varnosti (SELinux), ki označuje pakete. Varnostna oznaka se lahko uporabi na povezavo ali paket.

Uporablja se za pravila obveznega nadzora dostopa in je druga tabela, ki je dostopna za tabelo filtrov. Ponuja naslednje privzete verige:

Veriga Opis
VHOD Rezervirano za dohodne pakete v sistem
IZHOD Uporablja se za lokalno ustvarjene pakete
NAPREJ Uporablja se za pakete, usmerjene skozi sistem

Po pregledu privzetih Iptables pojdimo še korak naprej in se pogovorimo o delu s pravili iptables.

Kako delati s pravili iptables?

Pravila Iptables se uporabljajo v naraščajočem vrstnem redu. To pomeni, da se najprej uporabi prvo pravilo v določenem nizu, nato drugo, nato tretje in tako naprej, dokler se zadnje.

Zaradi te funkcije iptables preprečujejo dodajanje pravil v nabor s pomočjo parametra -A; za dodajanje na vrh seznama morate uporabiti -I, ki mu sledi številka ali jo izprazniti.

Prikaz Iptables

Če si želite ogledati iptables, uporabite ukaz iptables -L -v za IPv4 in ip6tables -L -v za IPv6.

Vstavljanje pravil

Če želite vstaviti pravila v nabor, jih morate postaviti v natančnem vrstnem redu, ob upoštevanju pravil, ki jih uporablja ista veriga. Seznam pravil iptables si lahko ogledate z ukazom, kot je opisano zgoraj:

sudo iptables -L -v

Če želite na primer vstaviti pravilo, ki omogoča dohodne povezave do vrat 9001 prek TCP, moramo v verigo INPUT določiti številko pravila, ki upošteva prometna pravila za splet.

sudo iptables -I INPUT 1 -p TCP --dport 9001 -m state --state NEW -j ACCEPT

Ko si ogledate trenutne iptable, bi morali videti novo pravilo v naboru.

sudo iptables -L -v

Zamenjava pravil

Funkcija zamenjave deluje podobno kot pri vstavljanju, vendar uporablja ukaz iptables -R. Če želite na primer spremeniti zgornje pravilo in nastaviti vrata 9001 na zavrnitev, bomo:

sudo iptables -R INPUT 1 -p TCP --dport 9001 -m state --state NOVO -j REJECT

Brisanje pravila

Če želite izbrisati pravilo, mu posredujemo številko pravila. Če želite na primer izbrisati zgornje pravilo, lahko določimo kot:

sudo iptables -D VHOD 1

V večini distribucij Linuxa so iptables prazni za IPv4 in IPv6. Če torej niste dodali nobenega novega pravila, boste dobili rezultat, podoben spodnjemu. To je tvegano, ker pomeni, da sistem dovoljuje ves dohodni, odhodni in preusmerjeni promet.

Poglejmo si, kako konfigurirati iptables:

Kako konfigurirati iptables?

Obstajajo številni načini za konfiguriranje pravil iptables. V tem razdelku so primeri prikazani, kako lahko nastavite pravila z uporabo naslovov IP in vrat.

Blokiranje in dovoljevanje prometa po pristaniščih

Z določenimi vrati lahko blokirate ali dovolite ves promet v omrežnem vmesniku. Upoštevajte naslednje primere:

sudo iptables -A INPUT -j ACCEPT -p TCP --destination-port 1001 -i wlan0

Zgornji ukazi omogočajo promet na vratih 1001 TCP na vmesniku wlan0.

sudo iptables -A INPUT -j DROP -p TCP --destination-port 1001 -i wlan0

Ta ukaz deluje nasprotno od zgornjega ukaza, saj blokira ves promet na vratih 1001 na wlan0.

Tukaj je natančen pregled ukaza:

OPOMBA: Iptables ne razumejo vzdevkov omrežnega vmesnika. Tako boste morali v sistemu z več kot enim virtualnim vmesnikom ciljni naslov določiti ročno in izrecno.

Na primer:

sudo iptables -A INPUT -j DROP -p TCP --destination-port 1001 -i wlan0 -d 192.168.0.24

Seznam naslovov IP in črni seznam IP

Pravila požarnega zidu lahko ustvarite s pomočjo iptables. En primer je zaustavitev vsega prometa in omogočanje omrežnega prometa samo z eksplicitnih naslovov IP.

Primer:

iptables -A INPUT -m state --state VZPOSTAVLJENO, POVEZANO -j SPREJEM
iptables -A INPUT -i lo -m komentar --komentar "Dovoli povratne povezave" -j ACCEPT
iptables -A INPUT -p icmp -m komentar - komentar “Dovoli, da Ping deluje po pričakovanjih” -j

SPREJEM

iptables -A INPUT -s 192.168.0.1/24 -j SPREJEM
iptables -A INPUT -s 192.168.0.0 -j SPREJEM
iptables -P INPUT DROP
iptables -P NAPREJ PAD

Prva vrstica nastavi pravilo, ki dovoljuje vse izvorne naslove IP v 192.168.0.1/24 podomrežja. Uporabite lahko tudi CIDR ali posamezne naslove IP. V naslednjem ukazu smo nastavili pravilo, da dovolimo ves promet, povezan z obstoječimi povezavami. V zadnjih ukazih smo nastavili pravilnik za VNOS in NAPRED, da se vse spustijo.

Uporaba iptables na IPv6

Ukaz Iptables deluje samo na IPv4. Če želite uporabljati iptables na IPv6, morate uporabiti ukaz ip6tables. Ip6tables uporablja tabele raw, filter, security in mangle. Splošna sintaksa za ip6tables je podobna iptables in podpira tudi ujemajoče se možnosti iptables, kot so dodajanje, brisanje itd.

Za več informacij razmislite o uporabi strani z navodili ip6tables.

Primer nabora pravil iptables za omrežno varnost

Ustvarjanje ustreznih pravil požarnega zidu bo odvisno predvsem od storitve, ki se izvaja v sistemu, in vrat, ki se uporabljajo. Tu pa je nekaj osnovnih pravil omrežne konfiguracije, s katerimi lahko zaščitite svoj sistem:

1: Dovoli promet vmesnika Loopback in zavrni vse povratne zanke, ki prihajajo iz drugih vmesnikov

iptables -A INPUT -i lo -j ACCEPT (lahko tudi ip6tables)
iptables -A INPUT ! -i lo-s 127.0.0.0 -j ZAvrni (velja tudi ip6tables)

2: Zavrni vse zahteve za ping

iptables -A INPUT -p icmp -m state --state NEW --icmp-type 8 -j REJECT

3: Dovoli SSH povezave

iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j ACCEPT

To so primeri ukazov, s katerimi lahko zaščitite sistem. Vendar bo konfiguracija močno odvisna od tega, kdo ali kdo želite dostopati do različnih storitev.

POZOR: Če raje popolnoma onemogočite IPv6, razkomentirajte vrstico, saj bo to upočasnilo postopek posodobitve:

precedence :: ffff: 0: 0/96 100 najdeno v / etc / gai.conf .

To je zato, ker upravitelj paketov APT razreši zrcalno domeno v IPv6 zaradi posodobitve apt-get.

Kako razporediti pravila iptables?

Če želite svoje iptable razporediti v Ubuntu ali druge sisteme, ki temeljijo na Debianu, začnite z ustvarjanjem dveh datotek, ip4 in ip6, za njuna ustrezna naslova IP.

V katero koli datoteko dodajte pravila, ki jih želite uveljaviti v ustreznih datotekah - pravila IPv4 v datoteko ip4 in pravila IPv6 v datoteko ip6.

Nato moramo pravila uvoziti z ukazom:

sudo iptables-restore < /tmp/ip4 (replace filename for IPv6)

Nato lahko z ukazom preverite, ali so pravila veljala:

sudo iptables -L -v

Kratek iptables-vztrajen vodnik

Ubuntu in običajne distribucije, ki temeljijo na Debianu, so opremljene s trpežnim paketom iptables, ki omogoča enostavno uporabo pravil požarnega zidu ob ponovnem zagonu. Paket vsebuje datoteke, s katerimi lahko nastavite pravila za IPv4 ali IPv6 in jih je mogoče samodejno uporabiti ob zagonu.

Pravila požarnega zidu lahko uporabite tudi z uporabo UFW ali GUFW. Če želite izvedeti, kako uporabljati UFW, si oglejte naslednjo vadnico.

Kako namestiti iptables-persistent?

Prepričajte se, da imate v sistemu nameščen trajni iptables. Z dpkg preverite, ali imate nameščen paket.

V nasprotnem primeru uporabite naslednji ukaz:

sudo apt-get install iptables-persistent

Dvakrat boste pozvani, da shranite trenutna pravila IPv4 in IPv6. Kliknite Da, da shranite obe pravili.

Kliknite da, da shranite IPv6.

Ko je namestitev končana, preverite, ali imate podimenik iptables, kot je prikazano na spodnji sliki.

Zdaj lahko uporabite pravila.v4 in pravila.v6, da dodate pravila iptables, ki jih samodejno uporabi iptables-persistent. Datoteke so preproste besedilne datoteke, ki jih lahko enostavno urejate s katerim koli urejevalnikom besedil po vaši izbiri.

Zaključek

V tej vadnici smo zajeli osnove iptables. Začenši z delom z iptables, osnovnimi ukazi, privzetimi tabelami iptables in parametri.

Glede na to, kar ste se naučili, bi morali biti sposobni uporabljati iptables za ustvarjanje pravil požarnega zidu, ki pomagajo zaščititi vaš sistem.

Kako prikazati števec FPS v igrah Linux
Linux gaming je dobil velik zagon, ko je Valve leta 2012 napovedal podporo Linuxu za odjemalca Steam in njihove igre. Od takrat se je veliko AAA in in...
Kako prenesti in igrati Sid Meier's Civilization VI v Linuxu
Uvod v igro Civilization 6 je sodoben pogled na klasični koncept, uveden v seriji iger Age of Empires. Ideja je bila dokaj preprosta; začeli bi v zelo...
Kako namestiti in igrati Doom v Linuxu
Uvod v Doom Serija Doom je nastala v devetdesetih letih po izidu prvotnega Dooma. Bil je takojšen hit in od takrat naprej je serija iger prejela števi...