Tutorial usor de invatat cu comenzile de baza in IPTABLES pentru configurare firewall LINUX.
Ce este IPTABLES?
Iptables este folosit pentru mai multe servicii precum : translatare de adrese sursa sau destinatie (SNAT / DNAT ) , port forwading sau pur si simplu rejectare sau forwadare de pachete , routing.
Cum pornesc serviciul IPTABLES?
Code:
[root tmp]# service iptables start
[root tmp]# service iptables stop
[root tmp]# service iptables restart
Ca serviciul IPTABLES sa porneasca o data cu sistemul rulati urmatoarea comanda:
Code:
[root tmp]# chkconfig iptables on
Procesarea de pachete in IPTABLES
Toate pachetele inspectate de iptables trec printr-o secventa de tabele (cozi) pentru prelucrare. Fiecare dintre aceste cozi este dedicata unui anumit tip de activitate de pachete si este controlata de un lanţ de filtrare asociat.
Iptables foloseste implicit trei tabele :
1. FILTER ( tabel implicit) - este responsabil cu filtrarea pachetelor
Are 3 lanturi built-in in care va puteti declara reguli de politica firewall
Forward : Filtreaza pachete catre servere protejate de firewall.
Input : Filtreaza pachetele destinate firewall-ului.
Output : Filtreaza pachetele expediate de firewall
2. NAT – este responsabil cu network address translation(translatarea adresei de retea)
3. MANGLE – este responsabil pentru modificarea bitilor QOS din headerul TCP
Are 2 lanturi built-in:
Pre-routing: face NAT atunci cand adresa destinatie a pachetului trebuie schimbata.
Post-routing: face NAT atunci cand adresa sursa a pachetului trebuie schimbata.
Cum functioneaza IPTABLES?
Pentru fiecare regula firewall pe care o creezi trebuie sa specifici tabela si lantul de careva apartine. La aceasta regula este o singura exceptie: Cele mai multe reguli sunt legate de filtrare, astfel iptables presupune că orice lanţ definit fără o tabela asociata va face parte din tabela filter. Tabela filter este, prin urmare, implicita.
Fiecare regulă firewall inspectează pachetele IP şi apoi încearcă să le identifice ca si tinte pentru o anumita operatie.
Cele mai folosite tinte sunt:
ACCEPT – Iptables opreste procesarea ulterioara; Pachetul este trimis catre aplicatie sau sistem de operare pentru prelucrare
DROP - Iptables opreste procesarea ulterioara; Pachetul este blocat
LOG – Informaţiile sunt trimise la daemonul syslog pentru logare; Iptables continua procesarea pachetului
REJECT – Funcţionează DROP, dar va trimite un mesaj de eroare la gazda carea a trimis pachetul cum că pachetul a fost blocat
DNAT – Rescrie adresa IP destinaţie a pachetului
SNAT – Rescrie adresa IP sursa a pachetului
MASQUERADE – Folosit pentru SNAT; În mod implicit adresa IP sursa este aceeaşi cu cea utilizată de interfaţa firewall-ului
Parametrii pentru IPTABLES:
-t <-table-> : Dacă nu specificaţi o tabela, tabela filter este asumata. Aşa cum am discutat înainte, tabelele posibile pot fi: filtru, NAT, mangle
-j <target> : Salt la lanţul ţintă specificat în momentul pachet se potriveste cu regula actuală.
-A sau –append : Adauga o regula la sfarsitul chainului
-F : Flush. Sterge toate regulile din tabela selectata.
-p <protocol-type> : Potrivire cu protocolul icmp, tcp, udp sau all
-s <ip-address> : Potrivire cu adresa IP sursa
-d <ip-address> : Potrivire cu adresa IP destinatie
-i <interface-name> : Potrivire cu interfata de retea prin care intra pachetul
-o <interface-name> : Potrivire cu interfata de retea prin care iese pachetul
-m –state <state> : ESTABLISHED, NEW, RELATED, INVALID
Pentru a activa anumite funcţii ale Iptables trebuie sa încărcaţi anumite module de kernel la pornirea sistemului.
Fisier: /etc/rc.local
Code:
# Module to track the state of connections
modprobe ip_conntrack
# Load the iptables active FTP module, requires ip_conntrack
modprobe ip_conntrack_ftp
# Load iptables NAT module when required
modprobe iptable_nat
# Module required for active an FTP server using NAT
modprobe ip_nat_ftp