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 PADZgornji 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.
- Prvi ukaz iptables pokliče pripomoček ukazne vrstice iptables.
- Naslednji je -I argument, uporabljen za vstavljanje. Argument za vstavljanje doda pravilo na začetku verige iptables in tako dobi večjo prioriteto. Če želite dodati pravilo na določeno številko v verigi, uporabite argument -I, ki mu sledi številka, kamor naj se pravilo dodeli.
- Argument -s pomaga določiti vir. Zato uporabljamo argument -s, ki mu sledi naslov IP.
- Parameter -j z iptables določa preskok na določen cilj. Ta možnost nastavi dejanje, ki ga bodo Iptables izvedli, ko bo ustrezen paket. Iptables privzeto ponuja štiri glavne cilje, med katerimi so: ACCEPT, DROP, LOG in REJECT.
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 -L3: 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 ACCEPTKo 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 REJECTBrisanje pravila
Če želite izbrisati pravilo, mu posredujemo številko pravila. Če želite na primer izbrisati zgornje pravilo, lahko določimo kot:
sudo iptables -D VHOD 1V 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 wlan0Zgornji ukazi omogočajo promet na vratih 1001 TCP na vmesniku wlan0.
sudo iptables -A INPUT -j DROP -p TCP --destination-port 1001 -i wlan0Ta ukaz deluje nasprotno od zgornjega ukaza, saj blokira ves promet na vratih 1001 na wlan0.
Tukaj je natančen pregled ukaza:
- Prvi argument (-A) doda novo pravilo na koncu verige tabel.
- Argument INPUT doda določeno pravilo v tabelo.
- Argument DROP nastavi dejanje, ki naj se izvede kot ACCEPT oziroma DROP. To pomeni, da se paket, ko se ujema, izpusti.
- -p določa protokol, kot je TCP, in omogoča prehod prometa na drugih protokolih.
- -destination-port nastavi pravilo, da sprejme ali zavrne ves promet, namenjen za vrata 1001.
- -jaz
pove iptablesu, naj pravilo uporabi za promet, ki prihaja na vmesniku wlan0.
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.24Seznam 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 SPREJEMiptables -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 SPREJEMiptables -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 REJECT3: Dovoli SSH povezave
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j ACCEPTTo 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 -vKratek 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.