Firewall Linux minim folosind iptables din linie de comanda – introducere si generalitati

Configurare noua (How To)

Situatie

Sub linux “utilitarul” de baza folosit pentru firewall este iptables.

Pentru a vedea regulile de firewall se foloseste comanda

sudo iptables -L

sau

sudo iptables -nvL

(n – intoarce adresa de ip in loc sa rezilve adresele, v – verbose/detaliat, L – listeaza reguli)

De baza iptables are trei canale sau “lanturi” (chains) pe care filtreaza traficul IN / OUT pe tabela de “filter” si mai are inca o tabela de NAT folosita pentru port forward. Mai multe despre tabelele iptables aici:

http://www.thegeekstuff.com/2011/01/iptables-fundamentals/

Pentru a sterge reguli de firewall se seteaza “politica” implicita ca canalelor INPUT/FORWARD/OUTPUT:

sudo iptables -P INPUT ACCEPT

sudo iptables -P OUTPUT ACCEPT 
sudo iptables -P FORWARD ACCEPT

sudo iptables -F (-F goleste toate chain-urile adica face “flush”)

Regulile intr-un “chain” (fie INPUT/OUTPUT/FORWARD) se parcurge de sus in jos – de aceea pentru regula implicita se seteaza ultima regula DROP sau -P (politica) DROP.

Fie vom avea

sudo iptables -P INPUT DROP sudo iptables -P FORWARD DROP  sudo iptables -P OUTPUT DROP 
fie:  sudo iptables -A INPUT -j DROP sudo iptables -A FORWARD-j DROP sudo iptables -A OUTPUT-j DROP 

Cu -A regulile se adauga in partea de jos cu -I se “introduc” deasupra. 
Ordinea este importanta intr-un lant (“chain”)

Backup

O imagine care poate da o idee de cum sant inspectate pachetele este mai jos:

 

 

Solutie

In imaginea de mai jos se pot vedea tabelele principale (filter, nat, mangle, raw), punctele de decizie (prerouting, postrouting). Fireste se pota adauga “chains” noi cu -N.

 

Cu comanda:

sudo iptables -nvL –-line-numbers

sau

sudo iptables -nvL –-line

Se listeaza regulile numerotate. Pentru a insera intre doua reguli se utilizeaza -I INPUT numar, de exemplu -I INPUT 3 va insera pe inpute intre 2 si 3, regula 3 va deveni 4. La fel si pe output, forward, etc.

Pentru a sterge o regula se foloseste -D

sudo iptables -D INPUT -j DROP

La -D trebuie descrisa regula identic cum a fost ea adaugata cu -I sau -A.

In general comanda iptables are mai multe “sectiuni:

iptables (tabela) (operatiune) (sursa) (destinatie) (actiune)

– tabela folosite curent sant nat sau filter si se specifica cu -t nat sau -t filter

– operatiune este -I INPUT/OUTPUT/FORWARD/POSTROUTING/PREROUTING sau -A INPUT/OUTPUT/FORWARD/POSTROUTING/PREROUTING

– sursa se specifica cu -s x.x.x.x/x

– destinatia se specifica cu -d x.x.x.x/x

-actiune se specifica cu -j si poata fi -j DRPOP/ACCEPT/REJECT etc

O alta modalitate de a lista regulile iptables este

sudo iptables -S

Pentru ca procerele locale sa poata comunica intre ele pe masina locata este foarte important de adaugat o regula ca pe interfata de loopback sa se poata face trafic:

O resursa interesanta despre cum se seteaza un firewall este si in likul de mai jos: (cap.14 la www.linuxhomenetworking.com)

http://www.linuxhomenetworking.com/wiki/index.php/Quick_HOWTO_:_Ch14_:_Linux_Firewalls_Using_iptables

Tip solutie

Permanent

Voteaza

(5 din 14 persoane apreciaza acest articol)

Despre Autor

Leave A Comment?