Ovaj će vodič raspravljati o tome kako konfigurirati i koristiti pravila iptables na Ubuntu sustavu za zaštitu vaše mreže. Bez obzira jeste li početnik Linux ili sezonski administrator sustava, iz ovog vodiča i na ovaj ili onaj način naučit ćete nešto korisno o iptablesima.
Iptables dolaze unaprijed instalirani na Ubuntu i većini distribucija temeljenih na Debianu. Ubuntu također pakira GUFW vatrozid, grafičku alternativu koju možete koristiti za rad s iptablesima.
BILJEŠKA: Da biste koristili i konfigurirali iptables, trebat će vam sudo privilegije na vašem sustavu. Iz sljedećeg vodiča možete saznati više o sudo-u.
Sad kad znate što su Iptables, zaronimo odmah!
Kako koristiti iptables za upravljanje IPv4 prometom?
Da biste koristili Iptables za upravljanje mrežom i prometom IPv4, morate razumjeti sljedeće:
Zapovjedništvo Iptables
Iptables nudi izbor opcija koje vam omogućuju prilagodbu i podešavanje vaših pravila iptables. Razmotrimo neke od ovih parametara i vidjet ćemo što rade.
BILJEŠKA: Možete konfigurirati skup pravila koja upravljaju određenim podskupom, poznatim kao lanci iptables.
Parametri Iptables
Prije nego što započnemo s kreiranjem i konfiguriranjem pravila iptables, prvo shvatimo osnove iptables-a, poput opće sintakse i zadanih argumenata.
Razmotrite naredbu u nastavku:
sudo iptables -I INPUT -s 192.168.0.24 -j KAPGornja naredba govori iptablesima da stvore pravilo u lancu. Pravilo uklanja sve pakete s IP adrese 192.168.0.24.
Ispitajmo naredbu, redak po redak, kako bismo je bolje razumjeli.
- Prva naredba iptables poziva uslužni program naredbenog retka iptables.
- Slijedi -I argument koji se koristi za umetanje. Argument umetanja dodaje pravilo na početku lanca iptables i na taj način dobiva veći prioritet. Da biste dodali pravilo na određeni broj u lancu, upotrijebite argument -I iza kojeg slijedi broj kojem bi pravilo trebalo dodijeliti.
- Argument -s pomaže odrediti izvor. Stoga koristimo argument -s iza kojeg slijedi IP adresa.
- Parametar -j s iptables specificira skok na određeni cilj. Ova opcija postavlja radnju koju će Iptables izvršiti kada postoji odgovarajući paket. Iptables prema zadanim postavkama nudi četiri glavna cilja, koja uključuju: PRIHVATI, DROP, LOG i ODBIJI.
Iptables nudi izbor parametara pomoću kojih možete konfigurirati različita pravila. Razni parametri koje možete koristiti za konfiguriranje pravila iptables uključuju:
Parametar pravila Iptables | Opis |
---|---|
-s -izvor | Navedite izvor, koji može biti adresa, ime hosta ili naziv mreže. |
-p -protokol | Određuje protokol veze; na primjer, TCP, UDP itd. |
-d -odredenje | Određuje odredište, koje može biti adresa, naziv mreže ili naziv hosta. |
-j -skok | Postavlja akciju koju će iptables provesti nakon pronalaska paketa. |
-o-van-sučelje | Postavlja sučelje putem kojeg iptable šalje paket. |
-i -in-interface | Postavlja sučelje koje se koristi za uspostavljanje mrežnih paketa. |
-c -brojevi | Omogućuje administratoru da postavi brojače bajtova i paketa za određeno pravilo. |
-g -goto lanac | Parametar navodi da bi se obrada trebala nastaviti u lancu koji je postavio korisnik nakon povratka. |
-f-fragment | Kaže iptablesima da primjenjuju pravilo samo na drugi i sljedeći fragmenti fragmentiranih paketa. |
Opcije Iptables
Naredba iptables podržava širok raspon opcija. Neki od uobičajenih uključuju:
Opcija | Opis |
---|---|
-A -prilog | Dodaje pravilo na kraj navedenog lanca |
-D -brisati | Uklanja pravilo iz navedenog lanca |
-F -isprati | Uklanja sva pravila, jedno po jedno |
-L-lista | Prikazuje sva pravila u navedenom lancu |
-Umetnem | Umeće pravilo u navedeni lanac (prosljeđuje se kao broj, kada nije naveden broj; pravilo se dodaje na vrh) |
-C -provjera | Upiti za podudaranje pravila; zahtjev u određenom pravilu |
-v -verbozna | Prikazuje više detalja kada se koristi s parametrom -L |
-N-novi lanac | Dodaje novi korisnički definirani lanac |
-X -brisati-lanac | Uklanja određeni korisnički definirani lanac |
Iptables Stolovi
Linux jezgra ima zadane tablice u kojima se nalazi skup povezanih pravila. Te zadane tablice imaju skup zadanih lanaca, ali korisnici mogu prilagoditi pravila dodavanjem pravila definiranih od korisnika.
BILJEŠKA: Zadane tablice uvelike će ovisiti o vašoj konfiguraciji jezgre i instaliranim modulima.
Evo zadanih tablica iptables:
1: Tablice filtra
Tablica filtra zadana je tablica koja sadrži lance koji se koriste za filtriranje mrežnih paketa. Neki od zadanih lanaca u ovoj tablici uključuju:
Lanac | Opis |
---|---|
Ulazni | Iptables koriste ovaj lanac za sve dolazne pakete u sustav, tj.e., paketi koji idu u utičnice lokalne mreže. |
Izlaz | Iptables koriste izlazni lanac za lokalno generirane pakete, tj.e., paketi koji izlaze iz sustava. |
Naprijed | Ovaj lanac je ono što Iptables koriste za pakete usmjerene ili proslijeđene putem sustava. |
2: NAT tablice
NAT ili tablica mrežnih adresa je uređaj za usmjeravanje koji se koristi za izmjenu izvorne i ciljane IP adrese u mrežnom paketu. Glavna upotreba NAT tablice je povezivanje dviju mreža u privatnom rasponu adresa s javnom mrežom.
NAT je razvijen za podršku maskiranju stvarnih IP adresa, omogućujući privatnim IP adresama u rasponu od dosezanja vanjske mreže. To pomaže u zaštiti detalja o internim mrežama od otkrivanja u javnim mrežama.
NAT tablica zapošljava se kada paket inicira novu vezu.
Iptables imaju zadanu tablicu za NAT adresiranje. Ova tablica ima tri glavna lanca:
Lanac | Opis |
---|---|
PRETROUTIRANJE | Omogućuje izmjenu podataka o paketima prije dolaska u lanac INPUT koji se koristi za dolazne pakete |
IZLAZ | Rezervirano za lokalno kreirane pakete, tj.e., prije nego što se dogodi mrežno usmjeravanje |
POSTROUTING | Omogućuje izmjenu odlaznih paketa - Paketi koji izlaze iz lanca OUTPUT |
Dijagram u nastavku prikazuje pregled ovog postupka na visokoj razini.
Upotrijebite naredbu u nastavku da biste vidjeli svoje tablice usmjeravanja NAT.
iptables -t nat -n -v -L3: Stolovi Mangle
Stol za rukovanje uglavnom se koristi za posebne modifikacije paketa. Jednostavnije rečeno, koristi se za izmjenu IP zaglavlja mrežnog paketa. Modifikacija paketa može uključivati promjenu TTL vrijednosti paketa, promjenu važećih mrežnih skokova za paket itd.
Tablica sadrži sljedeće zadane lance:
Lanac | Opis |
---|---|
PRETROUTIRANJE | Rezervirano za dolazne pakete |
POSTROUTING | Koristi se za odlazne pakete |
ULAZNI | Koristi se za pakete koji dolaze izravno na poslužitelj |
IZLAZ | Koristi se za lokalne pakete |
Naprijed | Rezervirano za pakete usmjerene kroz sustav |
4: Sirove tablice
Glavna svrha sirove tablice je konfiguriranje iznimaka za pakete kojima sustav praćenja ne namjerava rukovati. Neobrađena tablica postavlja oznaku NOTRACK na paketima, što traži da značajka conntrack ignorira paket.
Conntrack je značajka umrežavanja Linux kernela koja omogućava Linux kernelu da prati sve mrežne veze, omogućavajući kernelu da prepozna pakete koji čine mrežni tok.
Sirovi stol ima dva glavna lanca:
Lanac | Opis |
---|---|
PRETROUTIRANJE | Rezervirano za pakete primljene mrežnim sučeljima |
IZLAZ | Rezervirano za pakete pokrenute lokalnim procesima |
5: Sigurnosna tablica
Primarna upotreba ove tablice je postavljanje unutarnjeg sigurnosnog mehanizma za poboljšanje sigurnosti za Linux (SELinux) koji označava pakete. Sigurnosna oznaka može se primijeniti na vezu ili paket.
Koristi se za obavezna pravila kontrole pristupa i druga je tablica kojoj se pristupa nakon tablice filtra. Nudi sljedeće zadane lance:
Lanac | Opis |
---|---|
ULAZNI | Rezervirano za dolazne pakete u sustav |
IZLAZ | Koristi se za lokalno kreirane pakete |
NAPRIJED | Koristi se za pakete usmjerene kroz sustav |
Nakon što smo pogledali zadane Iptables, idemo korak dalje i razgovaramo o radu s pravilima iptables.
Kako raditi s iptables pravilima?
Iptables pravila primjenjuju se u rastućem redoslijedu. To znači da se prvo primjenjuje prvo pravilo u određenom skupu, a zatim drugo, pa treće i tako dalje, sve do zadnjeg.
Zbog ove funkcije, iptables vas sprječavaju da dodate pravila u skup pomoću parametra -A; morate upotrijebiti -I, a zatim broj ili isprazniti ga za dodavanje na vrh popisa.
Prikazivanje Iptables
Da biste pregledali svoje iptables, upotrijebite naredbu iptables -L -v za IPv4 i ip6tables -L -v za IPv6.
Umetanje pravila
Da biste umetnuli pravila u skup, morate ih postaviti točno prema redoslijedu, poštujući pravila koja koristi isti lanac. Popis svojih pravila iptables možete pregledati pomoću naredbe kako je gore rečeno:
sudo iptables -L -vNa primjer, da bismo umetnuli pravilo koje dopušta dolazne veze na port 9001 preko TCP-a, moramo odrediti broj pravila lancu INPUT koji se pridržava pravila prometa na webu.
sudo iptables -I INPUT 1 -p TCP --dport 9001 -m state --state NEW -j ACCEPTNakon što pogledate trenutne iptable, trebali biste vidjeti novo pravilo u skupu.
sudo iptables -L -v
Zamjena pravila
Funkcija zamjene radi slično kao i umetanje, ali koristi naredbu iptables -R. Na primjer, da bismo izmijenili gornje pravilo i postavili portiranje 9001 na uskraćivanje, mi:
sudo iptables -R ULAZ 1 -p TCP --dport 9001 -m stanje - stanje NOVO -j ODBIJANJEBrisanje pravila
Da bismo izbrisali pravilo, prosljeđujemo broj pravila. Na primjer, da bismo izbrisali gornje pravilo, možemo odrediti kao:
sudo iptables -D ULAZ 1U većini Linux distribucija iptables su prazni za IPv4 i IPv6. Stoga, ako niste dodali nijedno novo pravilo, dobit ćete izlaz sličan onome prikazanom u nastavku. To je rizično jer znači da sustav dopušta sav dolazni, odlazni i usmjereni promet.
Pristupimo načinu konfiguriranja iptables:
Kako konfigurirati iptables?
Postoje brojni načini za konfiguriranje pravila iptables. Ovaj odjeljak koristi primjere kako bi vam pokazao kako postaviti pravila pomoću IP adresa i priključaka.
Blokiranje i omogućavanje prometa po lukama
Možete koristiti određeni priključak da biste blokirali ili dopustili sav promet na mrežnom sučelju. Razmotrite sljedeće primjere:
sudo iptables -A INPUT -j ACCEPT -p TCP --destination-port 1001 -i wlan0Gornje naredbe omogućuju promet na priključku 1001 TCP na sučelju wlan0.
sudo iptables -A INPUT -j DROP -p TCP --destination-port 1001 -i wlan0Ova naredba radi suprotno od gornje naredbe jer blokira sav promet na portu 1001 na wlan0.
Evo pomnog pregleda naredbe:
- Prvi argument (-A) dodaje novo pravilo na kraju lanca tablice.
- Argument INPUT dodaje navedeno pravilo u tablicu.
- DROP argument postavlja radnju koja se izvodi kao ACCEPT, odnosno DROP. To znači da kad se paket podudara, on se ispušta.
- -p specificira protokol poput TCP-a i omogućuje prolazak prometa na drugim protokolima.
- -odredišna luka postavlja pravilo da prihvaća ili ispušta sav promet namijenjen luci 1001.
- -ja
govori iptablesima da primijene pravilo na promet koji dolazi na sučelju wlan0.
BILJEŠKA: Iptables ne razumiju pseudonime mrežnog sučelja. Stoga ćete u sustavu s više virtualnih sučelja odredišnu adresu morati definirati ručno i eksplicitno.
Na primjer:
sudo iptables -A INPUT -j DROP -p TCP --destination-port 1001 -i wlan0 -d 192.168.0.24IP adrese s bijele liste i s crne liste
Pravila vatrozida možete stvoriti pomoću iptables. Primjer je zaustavljanje cjelokupnog prometa i dopuštanje mrežnog prometa samo s eksplicitnih IP adresa.
Primjer:
iptables -A INPUT -m state --state USTANOVLJENO, POVEZANO -j PRIHVATLJIVOiptables -A ULAZ -i lo -m komentar --komentar "Dopusti povratne veze" -j PRIHVATI
iptables -A ULAZ -p icmp -m komentar - komentar “Dopusti Pingu da radi prema očekivanjima” -j
PRIHVATITI
iptables -A ULAZI -s 192.168.0.1/24 -j PRIHVATIiptables -A ULAZI -s 192.168.0.0 -j PRIHVATI
iptables -P INPUT DROP
iptables -P NAPRIJED DROP
Prvi redak postavlja pravilo koje omogućuje svim izvornim IP adresama u 192.168.0.1/24 podmreža. Također možete koristiti CIDR ili pojedinačne IP adrese. U sljedećoj naredbi postavili smo pravilo da dopušta sav promet povezan s postojećim vezama. U posljednjim naredbama postavili smo pravilo da ULAZI i NAPRIJED ispuštaju sve.
Korištenje iptables na IPv6
Naredba Iptables radi samo na IPv4. Da biste koristili iptables na IPv6, morate upotrijebiti naredbu ip6tables. Ip6tables koristi sirove, filtrirane, sigurnosne i mangle tablice. Opća sintaksa za ip6tables slična je iptables, a također podržava podudaranje iptables opcija kao što su dodavanje, brisanje itd.
Razmislite o korištenju stranica priručnika ip6tables za više informacija.
Primjer iptables pravila pravila za mrežnu sigurnost
Stvaranje prikladnih pravila vatrozida uglavnom će ovisiti o usluzi koja se izvodi na sustavu i lukama u upotrebi. Međutim, evo nekoliko osnovnih pravila mrežne konfiguracije kojima možete zaštititi svoj sustav:
1: Dopustite promet sučelja Loopback i odbacite sve povratne veze koje dolaze s drugih sučelja
iptables -A ULAZ -i lo -j PRIHVATI (Također možete koristiti ip6tables)iptables -A ULAZ ! -ja lo-s 127.0.0.0 -j ODBIJANJE (primjenjuju se ip6tables)
2: Odbiti sve zahtjeve za ping
iptables -A INPUT -p icmp -m state --state NEW --icmp-type 8 -j REJECT3: Omogući SSH veze
iptables -A ULAZ -p tcp --dport 22 -m stanje - stanje NOVO -j PRIHVATIOvo su primjeri naredbi pomoću kojih možete osigurati svoj sustav. Međutim, konfiguracija će uvelike ovisiti o tome što ili kome želite pristupiti raznim uslugama.
OPREZ: Ako više volite potpuno onemogućiti IPv6, poništite komentar jer će to usporiti postupak ažuriranja:
precedence :: ffff: 0: 0/96 100 pronađeno u / etc / gai.konf .
To je zato što APT upravitelj paketa rješava zrcalnu domenu u IPv6 zbog ažuriranja apt-get.
Kako rasporediti pravila iptables?
Da biste rasporedili svoje iptable na Ubuntu ili druge sustave zasnovane na Debianu, počnite stvaranjem dviju datoteka, ip4 i ip6, za njihove IP adrese.
U bilo koju datoteku dodajte pravila koja želite primijeniti u odgovarajućim datotekama - IPv4 pravila u ip4 datoteku i IPv6 pravila u ip6 datoteku.
Dalje, pravila moramo uvesti pomoću naredbe:
sudo iptables-restore < /tmp/ip4 (replace filename for IPv6)Zatim možete provjeriti jesu li se pravila primijenila pomoću naredbe:
sudo iptables -L -vKratki vodič koji je uporan na iptables
Ubuntu i uobičajene distribucije zasnovane na Debianu dolaze s paketom postojanim na iptables koji vam omogućuje jednostavnu primjenu pravila vatrozida nakon ponovnog pokretanja. Paket sadrži datoteke koje možete koristiti za postavljanje pravila za IPv4 ili IPv6 i mogu se automatski primijeniti prilikom pokretanja.
Također možete koristiti pravila vatrozida koristeći UFW ili GUFW. Razmotrite sljedeći vodič da biste naučili kako koristiti UFW.
Kako instalirati iptables-persistent?
Obavezno instalirajte iptables-persistent na vašem sustavu. Upotrijebite dpkg da biste provjerili imate li instaliran paket.
Ako nije, upotrijebite sljedeću naredbu:
sudo apt-get install iptables-persistent
Dvaput ćete dobiti upit za spremanje trenutnih pravila IPv4 i IPv6. Kliknite Da za spremanje oba pravila.
Kliknite na da za spremanje IPv6.
Nakon završetka instalacije provjerite imate li poddirektorij iptables, kao što je prikazano na donjoj slici.
Sada možete koristiti pravila.v4 i pravila.v6 za dodavanje pravila iptables, a automatski će ih primijeniti iptables-persistent. Datoteke su jednostavne tekstualne datoteke koje možete lako urediti pomoću bilo kojeg uređivača teksta po vašem izboru.
Zaključak
U ovom smo tutorijalu pokrili osnove iptables. Počevši od rada s iptables, osnovnim naredbama, zadanim iptables tablicama i parametrima.
Iz onoga što ste naučili, trebali biste biti u mogućnosti koristiti iptables za stvaranje pravila vatrozida koja pomažu u zaštiti vašeg sustava.