Bazele | ||
---|---|---|
Prec | Urm |
In acest capitol se va discuta amanuntit cum sa faceti propriile reguli. Fiecare regula pe care o inserati intr-un lant poate fi considerata o regula. Fiecare regula este o linie la care kernel-ul se uita pentru a sti ce va face cu pachetul. Daca toate criteriile sau potrivirile sunt intalnite, se executa o tinta. In mod normal am scrie o regula astfel:
iptables [table] <command> <match> <target/jump>
Nimic nu spune ca trebuie sa pui tinta ultima, dar ofera o mai buna citire. In schimb comanda trebuie sa fie scrisa prima, sau imediat dupa specificarea tabel-ului.Optiunea -t specifica ce tabel sa fie folosit. Default este "filter". Urmatoarele optiuni se pot folosi cu comanda -t.
Tabel | Explicatie |
nat | Tabelul nat este folosit pentru Translatarea Adresei de Retea. Nu incercati sa faceti nici un fel de filtrare in acest tabel. Aici avem 3 lanturi: PREROUTING [folosit pentru a altera pachetele chiar cand ajung la firewall], OUTPUT [folosit pentru a altera pachetele generate local] si POSTROUTING [folosit pentru a altera pachetele chiar inainte sa iasa]. |
mangle | Cu ajutorul acestui tabel se pot shimba diferite pachete, si felul in care arata header-ele printre altele. Exemple ar fi schimbarea TTL-ului, TOS-ului sau MARK-ului. Contine 2 lanturi: PREROUTING [folosit pentru a altera pachetele care ating firewall-ul, inainte de a ajunge la decizia de routare] si OUTPUT [folosit pentru alterarea pachetelor generate local inainte de a ajunge la decizia de routare]. |
filter | Tabelul fiter trebuie folosit pentru a filtra pachetele in general. De exemplu, putem sa DROP, LOG, ACCEPT sau REJECT. Aici exista 3 tabele: FORWARD [folosit pentru toate pachetele generate nelocal], INPUT [pentru toate pachetele care sunt destinate pentru localhost] si OUTPUT [folosit pentru toate pachetele generate local] |
Comanda | Exemplu | Explicatie |
-A, --append | iptables -A INPUT ... | Aceasta comanda este folosita pentru adougarea regulii la sfarsitul lantului. Regula, cu alte cuvinte, va fi pusa mereu la sfarsitul lantului, si va fi cercetata ultima. |
-D, --delete | iptables -D INPUT --dport 80 -j DROP iptables -D INPUT 1 | Aceasta comanda sterge o regula dintr-un lant. Aceasta poate fi facuta in 2 metode: ori prin a pune un -D in loc de -A ( in regula scrisa ), ori prin numarul acesteia -D lant 1 ( sterge regula 1 [aceasta fiind prima de sus in jos]). |
-R, --replace | iptables -R INPUT 1 -s 192.168.0.1 -j DROP | Aceasta comanda inlocuieste vechea regula de la acea linie. |
-I, --insert | iptables -I INPUT 1 --dport 80 -j ACCEPT | Insereaza o regula in lant. |
-L, --list | iptables -L INPUT | Listeaza regulile din lant. |
-F, --flush | iptables -F INPUT | Aceasta comanda sterge toate regulile din lant. Aceasta se specifica fara alte optiuni |
-Z, --zero | iptables -Z INPUT | Reseteaza toate counte-ele din lantul specificat. |
-N, --new-chain | iptables -N permis | Aceasta comanda ii spune kernel-ului sa creeze un nou lant, in tabelul specificat, cu numele specificat. |
-X, --delete-chain | iptables -X permis | Aceasta regula sterge un lant. Este necesar ca lantul sa fie gol. |
-P, --policy | iptables -P INPUT DROP | Aceasta comanda ii spune kernel-ului sa seteze o tinta default. Toate pachetele carora nu se potriveste nici o regula vor fi trimise catre aceasta tinta default. |
-E, --rename-chain | iptables -E permis nepermis | Comanda -E ii spune kernel-ului sa redenumeasca regula permis in nepermis. |
In aceasta sectiune se va vorbi mai mult despre portiviri ( matches ). Potrivirile se impart in: potriviri generale ( Generic matches ), dupa care mai exista potriviri TCP, UDP si ICMP, potriviri ce pot fi folosite numai pe acele protocoale.
Potriviri Generale
Potrivire | Exemplu | Explicatie |
-p, --protocol | iptables -A INPUT -p tcp | Protocoalele pachetelor. Acestea pot fi: tcp, udp si icmp |
-s, --source | iptables -A INPUT -s 192.168.1.1 | Sursa pachetului. |
-d, --destination | iptables -A INPUT -d 192.168.1.1 | Destinatia pachetului. |
-i, --in-interface | iptables -A INPUT -d 192.168.1.1 | Interfata pe care intra pachetele. |
-o, --out-interface | iptables -A FORWARD -o eth0 | Interfata pe care ies pachetele. |
-f, --fragment | iptables -A INPUT -f | Spune ca regula se refera la cel de-al II-lea sau restul pachetelor. |
-c, --set-counters | iptables -A INPUT --set-counters | Seteaza counter-ele la un numar de pachete si un numar de biti. |
Potriviri TCP
Potrivire | Exemplu |
-sport, --source-port | iptables -A INPUT -p tcp --sport 22 |
-dport, --destination-port | iptables -A INPUT -p tcp --dport 22 |
--tcp-flags | iptables -p tcp --tcp-flags SYN,ACK,FIN SYN |
--syn | iptables -p tcp --syn |
--tcp-option | iptables -p tcp --tcp-option 16 |
Portiviri UDP
Potrivire | Exemplu |
--sport, --source-port | iptables -A INPUT -p udp --sport 53 |
--dport, --destination-port | iptables -A INPUT -p udp --dport 53 |
Potriviri ICMP
Potrivire | Exemplu |
--icmp-type | iptables -A INPUT -p icmp --icmp-type 8 |
Potriviri MAC
Potrivire | Exemplu |
--mac-source | iptables -A INPUT --mac-source 00:00:00:00:00:01 |
Potriviri Limit
Potrivire | Exemplu |
--limit | iptables -A INPUT -m limit --limit 3/hour |
--limit-burst | iptables -A INPUT -m limit --limit-burst 5 |
Potriviri Multiport
Potrivire | Exemplu |
--source-port | iptables -A INPUT -p tcp -m multiport --source-port 22,53,80,110 |
--destination-port | iptables -A INPUT -p tcp -m multiport --destination-port 22,53,80,110 |
--port | iptables -A INPUT -p tcp -m multiport --port 22,53,80,110 |
Potriviri Mark
Potrivire | Exemplu |
--mark | iptables -t mangle -A INPUT -m mark --mark 1 |
Potriviri Owner
Potrivire | Exemplu |
--uid-owner | iptables -A OUTPUT -m owner --uid-owner 500 |
--gid-owner | iptables -A OUTPUT -m owner --gid-owner 0 |
--pid-owner | iptables -A OUTPUT -m owner --pid-owner 78 |
--sid-owner | iptables -A OUTPUT -m owner --sid-owner 100 |
Potriviri de stare
Potrivire | Exemplu |
--state | iptables -A INPUT -m state --state RELATED,ESTABLISHED |
Potriviri Unclean
Potrivire | Exemplu |
Potriviri TOS
Potrivire | Exemplu |
--tos | iptables -A INPUT -p tcp -m tos --tos 0x16 |
Potriviri TTL
Potrivire | Exemplu |
--ttl | iptables -A OUTPUT -m ttl --ttl 60 |
Prec | Continut | Urm |
Pregatiri | Traversarea tabelelor si a lanturilor |