Prezentare generală
Iptables
Prezentare generală
Iptables este un program de tip aplicație spațiu-utilizator care permite unui administrator de sistem / rețea să configureze tabelele furnizate de firewall-ul nucleului Linux (implementat ca diferite module Netfilter), precum și lanțurile și regulile pe care le stochează. Diferite module de nucleu și programe sunt utilizate pentru diferite protocoale; iptables se aplică la IPv4, ip6tables la IPv6, arptables la ARP (Address Resolution Protocol) și ebtables pentru cadre Ethernet.
Pentru a utiliza iptables, sunt necesare privilegii depline și trebuie să fie executate de către utilizatorul root, în caz contrar acesta nu funcționează. Pe majoritatea sistemelor Linux, iptables este instalat ca /usr/sbin/iptables și este documentat în man page (manual page – pagina manual), care poate fi deschis cu ajutorul „man iptables” atunci când este instalat. Acesta poate fi, de asemenea, găsit si în /sbin/iptables, dar din moment ce iptables este mai mult ca un serviciu, mai degrabă decât un "binar esențial", locația preferată rămâne /usr/sbin.
Termenul „iptables” este, de asemenea, utilizat în mod obișnuit pentru a se referi inclusiv la componentele la nivel de nucleu. x_tables este numele modulului de nucleu care transportă porțiunea de cod partajat, care este utilizat de către toate cele patru module care oferă, de asemenea, API-ul utilizat pentru extensii; ulterior, Xtables este mai mult sau mai puțin folosit pentru a se referi la întreaga arhitectura firewall (v4, v6, arp și eb).
Succesorul lui iptables este nftables, care a fost fuzionat în ramura principală a nucleului Linux, începand cu versiunea de nucleu 3.13, care a fost lansat pe 19 ianuarie 2014. [30]
Figura 18: Fluxul pachetelor – pachetele pornesc de la o anumită sursă și se vor deplasa către o destinație prestabilită, în funcție de circumstanțe.
Noțiuni de bază
Fiecare regulă inserată într-un lanț poate fi considerată o regulă. Fiecare regulă reprezintă o linie pe care nucleul o verifică pentru a ști ce va face cu pachetul. Dacă toate criteriile sau potrivirile sunt întâlnite, se execută o țintă. O regulă se scrie astfel:
iptables [table] <command> <match> <target/jump>
Nu este necesar ca ținta să fie ultima, însă pentru o mai bună citire, acest lucru este recomandat.
Ca regulă generală, comanda trebuie să fie scrisă prima, sau imediat după specificarea tabelului.
Tabelele
Optiunea -t precizează ce tabel să fie folosit. Implicit este „filter”. Opțiunile următoare se pot folosi cu comanda -t.
Comenzile
Observație: Comanda trebuie neaapărat să existe. Omiterea se poate efectua numai atunci când se folosește opțiunea –h, pentru a afișa instrucțiunile de utilizare (ajutorul – help).
Potrivirile (matches)
Potrivirile se împart în: potriviri generale (generic matches), TCP, UDP și ICMP, potriviri ce se pot folosi numai pe acele protocoale.
Potriviri generale
Potriviri TCP (Transmission Control Protocol)
Potriviri UDP (User Datagram Protocol)
Potriviri ICMP (Internet Control Message Protocol)
Potriviri MAC (Media Access Control) Address
Potriviri Limit
Potriviri Multiport
Potriviri Mark
Potriviri Owner
Potriviri de stare
Potriviri TOS (Type Of Service)
Potriviri TTL (Time To Live)
Ținte uzuale
Traversarea tabelelor și a lanțurilor
Când un pachet sosește în firewall, ajunge la partea hardware și intră pe driver-ul echipamentului din nucleu. După aceasta, pachetul trece printr-o serie de etape din nucleu până ce este trimis către aplicația corectă (local), sau este înaintat către o altă destinație. Dacă un pachet, destinat pentru o altă stație de lucru / echipament, ajunge la firewall și trece prin urmatoarele etape:
Dacă un pachet, destinat pentru firewall (localhost), ajunge la acesta, trece prin urmatoarele etape:
Pachetele ce au ca sursă firewalul trec prin următoarele etape:
[30], [31], [32], [33]
Tabelul „MANGLE”
Acest tabel permite schimbarea valorilor tipul de serviciu (TOS – Type Of Service) și multe altele. În acest tabel, nu se efectuează fitrare și nici SNAT, DNAT sau „mascaradare”.
Țintele utilizate în acest lanț, sunt:
TOS – țintă folosită pentru a seta / schimba valoarea tipul de serviciu (TOS – Type Of Service). Se poate folosi pentru a seta regulile unei rețele, în funcție de cum trebuie un pachet să fie rutat și alte aspecte. Valoarea acesteia nu se folosește pe Internet, deci, nu trebuie schimbată această valoare pentru pachetele ce pleacă spre Internet, decât în cazul în care se efectuează rutare cu iproute2;
TTL – țintă folosită pentru a schimba valoarea timpul de viață (TTL – Time To Live). Se poate seta ca pachetele să aibă un TTL specific;
MARK – țintă folosită pentru a configura valori speciale în câmpul MARK. Aceste însemnări pot sa fie recunoscute de către programele lui iproute2 pentru a face diferite routări în baza valorii mark. Cu această țintă, se poate face limitare de bandă și CBQ (Class Based Queueing).
Tabelul „NAT”
Tabel NAT este utilizat numai pentru a face translatarea adresei de rețea. Nu se vor efectua filtrări. Doar primul pachet (dintr-o succesiune) va ajunge la acest lanț, restul pachetelor vor fi tratate precum a fost tratat primul pachet.
Țintele utilizate în acest lanț, sunt:
DNAT – țintă folosită în cazuri în care, de exemplu, există un singur IP și se dorește ca toate conexiunile pe portul 80 de pe acel IP, să fie redirecționate către o stație de lucru / server din rețeaua locală;
SNAT – țintă folosită pentru a ascunde rețeaua locală. Un avantaj al aceastei ținte, constă in consumul redus de resurse ale procesorului, cu condiția să existe o adresă IP nerutabilă fixă;
MASQUERADE – această țintă este similară cu SNAT-ul, diferența constând în faptul ca nu este necesar să se cunoască adresa IP nerutabilă. Dezavantajul acestei ținte, constă în consumul marit de resurse ale procesorului, deoarece, cu fiecare pachet redirecționează adresa IP nerutabilă.
Tabelul „FILTER”
Tabelul filter, este folosit precum indica si numele acestuia, pentru filtrarea pachetelor. Are mai multe ținte, printre care, cele mai importante sunt:
ACCEPT – ținta îi comunică nucleului să accepte toate pachetele care întrunesc condițiile impuseș
REJECT – ținta îi comunică nucleului să nu accepte niciun pachet care întruneste condițiile și să informeze sursa emitentă, că pachetul respectiv a fost respins.
DROP – ținta îi comunică nucleului să nu accepte niciun pachet care întruneste condițiile, fără a mai informa sursa emitentă sub nicio formă. [30], [31], [32], [33].
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Prezentare generală (ID: 117105)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
