Uvod
Iptables je alat naredbenog retka za vatrozid . To znači da je to softver koji vam omogućuje konfiguraciju vatrozida na vašem sustavu. Obično je dostupan prema zadanim postavkama na Linux sustavima. U ovom vodiču ćemo raspraviti o nekim uobičajenim pravilima i naredbama koje idu uz iptables vatrozid. Kad god se veza pokuša uspostaviti s vašim sustavom, vatrozid će se pozvati na ova pravila kako bi odredio koji bi trebao biti sljedeći korak.
Iptables naredbe
Ovaj vodič će predstaviti neke od najvažnijih iptables naredbi. Da biste pratili vodič, morat ćete imati osnovno razumijevanje o tome što je iptables i kako radi. To će vam pomoći da bolje razumijete pravila koja implementirate sa sljedećim naredbama. Zapamtite, bilo koja od dolje navedenih naredbi može se koristiti zasebno. S druge strane, možete ih i kombinirati kako bi odgovarale vašim specifičnim potrebama.
Stvari koje treba imati na umu
Prije nego što nastavite čitati, evo nekoliko stvari koje biste trebali imati na umu:
- Redoslijed pravila u iptablesu je važan.
- Za dodavanje novog pravila na kraj lanca, vaša
iptablesnaredba morat će koristiti-A. - Ako želite dodati pravilo na drugu poziciju, morate koristiti opciju
-I. Ova opcija vam omogućuje da odredite točnu lokaciju pravila. Ako želite postaviti pravilo na početak lanca, jednostavno nemojte navesti broj pravila. - Kako biste osigurali dosljedan pristup svom poslužitelju, blokirajte SSH promet na portu 22 prema zadanim postavkama.
- U slučaju da to ne učinite i izgubite pristup svom poslužitelju, možete se ponovno povezati pomoću konzole. Dopustite SSH promet za promjenu postavki vatrozida.
- Ako ikada poželite pregledati skup pravila koji je trenutno na snazi, upotrijebite naredbe
sudo iptables -S i sudo iptables -L.
Nadalje, imamo detaljan vodič o tome kako izlistati i izbrisati pravila iptables vatrozida, što će vam dodatno pomoći da na najbolji način iskoristite svoj iptables vatrozid.
Sada kada smo riješili preduvjete, zaronimo u neke od uobičajenih iptables naredbi:
Kako spremiti svoja pravila
Započet ćemo utvrđivanjem kako možete spremiti svoja pravila. Važno je napomenuti da su iptables pravila efemerna. To znači da će biti izgubljena nakon što ponovno pokrenete sustav - osim ako ih ne spremite. Evo kako možete ručno spremiti svoja nova pravila na Ubuntu i CentOS poslužitelju:
-
Ubuntu
Najlakši način za spremanje novih pravila na Ubuntu poslužitelju je korištenje iptables-persistent paketa. Možete jednostavno stvoriti Ubuntu poslužitelj prateći ovaj vodič.
Sada, prvi korak za spremanje vaših novih iptables pravila je instaliranje iptables-persistent paketa pomoću apt-get. Evo kako ga možete nabaviti:
|
1 |
sudo apt-get install iptables-persistent |

Tijekom procesa instalacije morate odlučiti želite li spremiti trenutno aktivna pravila vatrozida. Da biste umjesto toga ažurirali pravila i spremili promjene, upotrijebite ovu naredbu:
|
1 |
sudo netfilter-persistent save |

Gornja naredba obično radi za verzije Ubuntua nakon 16.04. Ako koristite raniju verziju, umjesto toga upotrijebite ovu naredbu:
|
1 |
sudo invoke-rc.d iptables-persistent save |
-
CentOS
Možete konfigurirati svoj vatrozid s iptables na CentOS 6 ili starijim verzijama. CentOS 7 umjesto toga koristi FirewallD. Pratite ovaj vodič kako biste saznali kako postaviti FirewallD na CentOS 7.
Svoja nova pravila na CentOS-u možete spremiti pomoću iptables init skripte. Pogledajte sljedeću naredbu:
|
1 |
sudo service iptables save |
Ova naredba će spremiti vaša nova pravila za iptables vatrozid. Trenutno aktivna iptables pravila mogu se pronaći u /etc/sysconfig/iptables datoteci.
Korisne iptables naredbe
Sada prijeđimo na neke vrlo korisne naredbe iptables vatrozida koje ćete možda morati koristiti na svom poslužitelju.
-
Loopback veze
Prvo ćemo istražiti kako možete dopustiti loopback veze. Vaš sustav koristi loopback sučelje za slanje veza samom sebi. Na primjer, zamislite da ste pokrenuli ovu naredbu: ping localhost ili ping 127.0.0.1. Vaš će poslužitelj koristiti loopback sučelje, ili lo, kako bi u biti pingao sam sebe. U drugim slučajevima, poslužitelj ga može koristiti ako je vaš aplikacijski poslužitelj konfiguriran za povezivanje na adresu 'localhost'.
Bez obzira na situaciju, morate se pobrinuti da vaš vatrozid iptables ne blokira ove veze. Stoga ćete morati dopustiti loopback veze kako bi se ove funkcije mogle izvršavati.
Evo naredbi koje ćete pokrenuti kako biste dopustili sav promet koji dolazi na loopback sučelje:
|
1 2 |
sudo iptables -A INPUT -i lo -j ACCEPT sudo iptables -A OUTPUT -o lo -j ACCEPT |

-
Uspostavljene i povezane dolazne veze
Druga vrsta veze koju ćete možda morati dopustiti je odlazna veza. Kako biste osigurali da vaš poslužitelj prima i šalje dolazni i odlazni promet, morate dopustiti uspostavljene i povezane dolazne veze. To omogućuje poslužitelju slanje povratnog prometa za odlazne veze. Koristite ovu naredbu kako biste dopustili uspostavljene kao i povezane dolazne veze:
|
1 |
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT |
![]()
-
Uspostavljene odlazne veze
Poslužitelj će obično slati odgovore na dolazne veze u obliku odlaznog prometa uspostavljenih veza. Kako biste to dopustili, koristite sljedeću naredbu:
|
1 |
sudo iptables -A OUTPUT -m conntrack --ctstate ESTABLISHED -j ACCEPT |
![]()
-
Interno prema vanjskom
Ponekad ćete možda morati konfigurirati svoj vatrozid kako biste omogućili pristup iz interne mreže prema vanjskoj. Prema zadanim postavkama, vaša vanjska mreža trebala bi biti eth0 i eth1 bi trebala biti vaša interna mreža. Ako je to slučaj, koristite ovu naredbu za omogućavanje pristupa:
|
1 |
sudo iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT |

-
Odbacivanje nevažećih paketa
Ponekad će neki paketi mrežnog prometa biti označeni kao nevažeći. Većinu vremena možete jednostavno odbaciti te nevažeće pakete. Da biste to učinili, koristite sljedeću naredbu:
|
1 |
sudo iptables -A INPUT -m conntrack --ctstate INVALID -j DROP |
Pravila za blokiranje IP adresa
Zatim ćemo pogledati neke naredbe koje možete koristiti za blokiranje veza koje dolaze s određenih IP adresa. Kako bismo olakšali stvari, koristit ćemo 15.15.15.51 IP adresu kao primjer u našim naredbama. Ovu vrijednost možete zamijeniti svojom specifičnom IP adresom.
|
1 |
sudo iptables -A INPUT -s 15.15.15.51 -j DROP |
U -s 15.15.15.51, -s označava izvor (source). Dakle, naredba specificira izvornu IP adresu '15.15.15.51'. Slično tome, možete specificirati izvornu IP adresu u bilo kojem pravilu vatrozida. To uključuje pravilo dopuštanja i odbijanja.
Ako želite odbiti vezu, upotrijebit ćete REJECT umjesto DROP u naredbi ovako:
|
1 |
sudo iptables -A INPUT -s 15.15.15.51 -j REJECT |
Kao rezultat toga, vaš će poslužitelj javiti pogrešku 'veza odbijena' (connection refused) kad god ta određena IP adresa pošalje zahtjev za povezivanje.
-
Blokiranje veza na određeno sučelje
Moguće je blokirati sve zahtjeve za povezivanje koji dolaze s određene IP adrese na određeno mrežno sučelje. U našem primjeru, IP adresa je 15.15.15.51 a mrežno sučelje je eth0. Koristite ovu naredbu za blokiranje veza:
|
1 |
iptables -A INPUT -i eth0 -s 15.15.15.51 -j DROP |
Sjajna stvar je što možete specificirati mrežno sučelje u bilo kojem pravilu. To znači da se bilo koje pravilo može primijeniti i ograničiti samo na određenu mrežu.
Pravila za uslugu: SSH
SSH postaje relevantan ako koristite poslužitelj u oblaku. U tom slučaju morate dopustiti dolazne SSH veze na portu 22. Omogućavanje ovih veza omogućuje vam povezivanje s vašim poslužiteljem i upravljanje njime. Ovdje ćemo raspraviti o nizu uobičajenih pravila koja se odnose na SSH.
-
Dopuštanje svih dolaznih SSH veza
Sljedeće naredbe omogućuju sve dolazne SSH veze:
|
1 2 |
sudo iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT sudo iptables -A OUTPUT -p tcp --sport 22 -m conntrack --ctstate ESTABLISHED -j ACCEPT |
U gornjem skupu, drugu naredbu trebate koristiti samo ako OUTPUT politika nije postavljena na ACCEPT. Ona omogućuje odlazni promet uspostavljenih SSH veza.
-
Dopuštanje dolaznog SSH-a iz podmreže
Prethodna naredba dopušta sve dolazne veze. Možete koristiti sljedeće naredbe kako biste dopustili samo dolazne veze s određene IP adrese ili podmreže. Recimo da želite dopustiti samo dolazne veze iz podmreže 15.15.15.0/24 podmreže:
|
1 2 |
sudo iptables -A INPUT -p tcp -s 15.15.0/24 --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT sudo iptables -A OUTPUT -p tcp --sport 22 -m conntrack --ctstate ESTABLISHED -j ACCEPT |
Kao i prije, drugu naredbu trebate koristiti samo ako OUTPUT politika nije postavljena na ACCEPT. Ona omogućuje odlazni promet uspostavljenih SSH veza.
-
Dopuštanje odlaznog SSH-a
Koristite ove naredbe ako OUTPUT politika nije postavljena na ACCEPT a želite omogućiti SSH veze. To će omogućiti vašem poslužitelju pokretanje SSH veza prema drugim poslužiteljima:
|
1 2 |
sudo iptables -A OUTPUT -p tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT sudo iptables -A INPUT -p tcp --sport 22 -m conntrack --ctstate ESTABLISHED -j ACCEPT |
Za daljnje korištenje SSH-a na vašim poslužiteljima u oblaku, pogledajte naše vodiče o kako koristiti SSH za povezivanje s udaljenim poslužiteljem u Ubuntuu i kako konfigurirati svoj Linux poslužitelj za korištenje autentifikacije temeljene na SSH ključevima.
-
Dopuštanje dolaznog Rsync-a iz podmreže
Rsync je značajka koju možete koristiti za prijenos datoteka s jednog sustava na drugi. Radi na portu 873. Dakle, ako želite dopustiti dolazne Rsync veze na portu 873 s određene IP adrese ili podmreže, koristite sljedeće naredbe:
|
1 2 |
sudo iptables -A INPUT -p tcp -s 15.15.0/24 --dport 873 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT sudo iptables -A OUTPUT -p tcp --sport 873 -m conntrack --ctstate ESTABLISHED -j ACCEPT |
Kao što vidite, naveli smo izvornu IP adresu zajedno s odredišnim portom. Drugu naredbu koristit ćete samo ako vatrozidna OUTPUT politika nije postavljena na ACCEPT. Ona omogućuje odlazni promet uspostavljenih Rsync veza. Osim toga, možete pogledati naš vodič o tome kako koristiti Rsync za sinkronizaciju lokalnih i udaljenih direktorija na VPS-u.
Pravila za uslugu: Web poslužitelj
HTTP veze obično se primaju na portu 80. Slično tome, HTTPS obično dolazi na portu 443. Web poslužitelji poput Apache i Nginx slušaju ove portove kako bi uhvatili zahtjeve za povezivanje. Ponekad zadane postavke mogu uzrokovati da vaš poslužitelj odbije ili odbaci ove dolazne zahtjeve. Zato ćete morati postaviti nova pravila kako biste ipak dopustili promet.
-
Dopuštanje svih dolaznih HTTP veza
Možete dopustiti sve dolazne HTTP veze na portu 80 pomoću ovih naredbi:
|
1 2 |
sudo iptables -A INPUT -p tcp --dport 80 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT sudo iptables -A OUTPUT -p tcp --sport 80 -m conntrack --ctstate ESTABLISHED -j ACCEPT |
Drugu naredbu koristit ćete samo ako vatrozidna OUTPUT politika nije postavljena na ACCEPT. Ona omogućuje odlazni promet uspostavljenih HTTP veza.
-
Dopuštanje svih dolaznih HTTPS veza
Koristite ove naredbe kako biste dopustili sve dolazne zahtjeve za HTTPS vezu na portu 443:
|
1 2 |
sudo iptables -A INPUT -p tcp --dport 443 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT sudo iptables -A OUTPUT -p tcp --sport 443 -m conntrack --ctstate ESTABLISHED -j ACCEPT |
Drugu ćete naredbu koristiti samo ako vatrozid iptables OUTPUT pravilo nije postavljeno na ACCEPT. Ona dopušta odlazni promet uspostavljenih HTTP veza.
-
Dopuštanje svih dolaznih veza s HTTP-a i HTTPS-a
Možete koristiti modul multiport ako želite dopustiti promet s HTTP i HTTPS portova. U tom slučaju koristite ove naredbe:
|
1 2 |
sudo iptables -A INPUT -p tcp -m multiport --dports 80,443 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT sudo iptables -A OUTPUT -p tcp -m multiport --dports 80,443 -m conntrack --ctstate ESTABLISHED -j ACCEPT |
Drugu ćete naredbu koristiti samo ako vatrozid OUTPUT pravilo nije postavljeno na ACCEPT. Ona dopušta odlazni promet uspostavljenih HTTP i HTTPS veza.
Pravila za uslugu: MySQL
Ponekad klijent može koristiti udaljeni poslužitelj za pristup vašem MySQL poslužitelju baze podataka. U tom slučaju morate ručno dopustiti dolazni promet s odgovarajućeg porta. MySQL sluša zahtjeve za povezivanje s porta 3306.
-
Dopuštanje dolaznih MySQL veza iz podmreže
Morat ćete navesti izvor ako želite dopustiti MySQL veze iz određene podmreže. U našem primjeru dopustit ćemo dolazni promet iz 15.15.15.0/24 podmreže pomoću ovih naredbi:
|
1 2 |
sudo iptables -A INPUT -p tcp -s 15.15.0/24 --dport 3306 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT sudo iptables -A OUTPUT -p tcp --sport 3306 -m conntrack --ctstate ESTABLISHED -j ACCEPT |
Drugu ćete naredbu koristiti samo ako vatrozid OUTPUT pravilo nije postavljeno na ACCEPT. Ona dopušta odlazni promet uspostavljenih MySQL veza.
-
Omogućavanje MySQL veza na sučelje
Ako također želite odrediti koje mrežno sučelje treba primati MySQL veze, možete koristiti ove naredbe:
|
1 2 |
sudo iptables -A INPUT -i eth1 -p tcp --dport 3306 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT sudo iptables -A OUTPUT -o eth1 -p tcp --sport 3306 -m conntrack --ctstate ESTABLISHED -j ACCEPT |
U ovom slučaju dopuštamo veze na privatno mrežno sučelje pod nazivom eth1.
Drugu ćete naredbu koristiti samo ako vatrozid OUTPUT pravilo nije postavljeno na ACCEPT. Ona dopušta odlazni promet uspostavljenih MySQL veza.
Možete pratiti naš vodič za jednostavno postavljanje MySQL-a na vašem poslužitelju.
Pravila za uslugu: PostgreSQL
Vaš klijent može koristiti udaljeni poslužitelj za pristup vašem PostgreSQL poslužitelju baze podataka. U tom slučaju morate dopustiti ove dolazne veze. Ove veze će ići preko porta 5432.
-
Dopuštanje dolaznih PostgreSQL veza iz podmreže
Možete koristiti sljedeće naredbe kako biste dopustili dolazne PostgreSQL veze iz određene podmreže ili IP adrese. Kao što vidite, naveli smo izvor, a to je 15.15.15.0/24 podmreža.
|
1 2 |
sudo iptables -A INPUT -p tcp -s 15.15.0/24 --dport 5432 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT sudo iptables -A OUTPUT -p tcp --sport 5432 -m conntrack --ctstate ESTABLISHED -j ACCEPT |
Drugu ćete naredbu koristiti samo ako vatrozid OUTPUT pravilo nije postavljeno na ACCEPT. Omogućuje odlazni promet uspostavljenih PostgreSQL veza.
-
Omogućavanje PostgreSQL veza na određeno sučelje
Ako želite dopustiti PostgreSQL veze samo na određeno mrežno sučelje, upotrijebite ove naredbe:
|
1 2 |
sudo iptables -A INPUT -i eth1 -p tcp --dport 5432 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT sudo iptables -A OUTPUT -o eth1 -p tcp --sport 5432 -m conntrack --ctstate ESTABLISHED -j ACCEPT |
U ovom slučaju dopuštamo veze na privatno mrežno sučelje pod nazivom eth1. Drugu ćete naredbu koristiti samo ako pravilo vatrozida OUTPUT nije postavljeno na ACCEPT. Ono omogućuje odlazni promet uspostavljenih PostgreSQL veza.
Pratite ovaj vodič za instalaciju PostgreSQL-a na vaš Ubuntu poslužitelj.
Pravila za uslugu: E-pošta
Možda ćete također morati konfigurirati svoj vatrozid u skladu s poslužiteljem e-pošte koji koristite. Na primjer, Sendmail i Postfix mogu primati veze na nizu različitih priključaka. To ovisi o protokolu koji koristite za dostavu e-pošte. Da biste blokirali i dopustili određene veze e-pošte, morate znati koji protokol koristite.
-
Dopuštanje dolaznih SMTP veza
SMTP veze obično dolaze na priključku 25. Iako SMTP također obično koristi priključak 587 za odlaznu poštu. Kako biste omogućili svom poslužitelju da odgovori na ove veze, upotrijebite sljedeće naredbe:
|
1 2 |
sudo iptables -A INPUT -p tcp --dport 25 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT sudo iptables -A OUTPUT -p tcp --sport 25 -m conntrack --ctstate ESTABLISHED -j ACCEPT |
Drugu ćete naredbu koristiti samo ako pravilo vatrozida OUTPUT nije postavljeno na ACCEPT. Ono omogućuje odlazni promet uspostavljenih SMTP veza.
-
Dopuštanje svih dolaznih IMAP veza
Kako biste omogućili svom poslužitelju da odgovori na sve dolazne IMAP veze na priključku 143, jednostavno upišite i pokrenite ovo:
|
1 2 |
sudo iptables -A INPUT -p tcp --dport 143 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT sudo iptables -A OUTPUT -p tcp --sport 143 -m conntrack --ctstate ESTABLISHED -j ACCEPT |
Drugu ćete naredbu koristiti samo ako pravilo vatrozida OUTPUT nije postavljeno na ACCEPT. Ono omogućuje odlazni promet uspostavljenih IMAP veza.
-
Dopuštanje svih dolaznih IMAPS veza
Upotrijebite ove naredbe kako biste omogućili svom poslužitelju da odgovara na IMAPS veze na priključku 993:
|
1 2 |
sudo iptables -A INPUT -p tcp --dport 993 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT sudo iptables -A OUTPUT -p tcp --sport 993 -m conntrack --ctstate ESTABLISHED -j ACCEPT |
Drugu ćete naredbu koristiti samo ako pravilo vatrozida OUTPUT nije postavljeno na ACCEPT. Ono omogućuje odlazni promet uspostavljenih IMAPS veza.
-
Dopuštanje svih dolaznih POP3 veza
Ove veze dolaze na priključku 993. Ako želite da vaš poslužitelj odgovara na zahtjeve za IMAPS vezu, upotrijebite sljedeće naredbe:
|
1 2 |
sudo iptables -A INPUT -p tcp --dport 110 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT sudo iptables -A OUTPUT -p tcp --sport 110 -m conntrack --ctstate ESTABLISHED -j ACCEPT |
Drugu ćete naredbu koristiti samo ako pravilo vatrozida OUTPUT nije postavljeno na ACCEPT. Ono omogućuje odlazni promet uspostavljenih POP3 veza.
-
Dopuštanje svih dolaznih POP3S veza
Upotrijebite ove naredbe kako biste omogućili svom poslužitelju uspostavljanje veza s POP3S zahtjevima koji dolaze na priključku 995:
|
1 2 |
sudo iptables -A INPUT -p tcp --dport 995 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT sudo iptables -A OUTPUT -p tcp --sport 995 -m conntrack --ctstate ESTABLISHED -j ACCEPT |
Drugu naredbu koristit ćete samo ako politika vatrozida OUTPUT nije postavljena na ACCEPT. Ono dopušta odlazni promet uspostavljenih POP3S veza.
-
Kako blokirati odlaznu SMTP poštu
Umjesto dopuštanja dolaznih veza i omogućavanja odgovora poslužitelja, možda ćete htjeti potpuno blokirati odlaznu poštu. Možete blokirati sav odlazni SMTP promet na portu 25 pomoću ove naredbe:
|
1 |
sudo iptables -A OUTPUT -p tcp --dport 25 -j REJECT |
Kao rezultat toga, iptables vatrozid odbit će sav odlazni promet na portu 25. Možete koristiti istu strukturu naredbe ako želite odbiti bilo koju drugu uslugu. Sve što trebate učiniti je zamijeniti port 25 odgovarajućim brojem porta.
Zaključak
Ovaj vodič pokriva osnovne naredbe iptables vatrozida. Pruža vam osnovne alate koji su vam potrebni za učinkovito konfiguriranje vašeg iptables vatrozida. Imajte na umu da ne postoji univerzalno rješenje. Ove su naredbe iznimno fleksibilne. To znači da ih možete koristiti na način koji najbolje odgovara vama i vašim zahtjevima.
Sretno s radom!

Komentari
Još nema komentara. Budite prvi.