Linux Firewall. Ce este Linux Firewall? Cum se activeaza filtrarea pachetelor cu Open Source Iptables Firewall?

Linux Firewall. Ce este Linux Firewall? Cum se activeaza filtrarea pachetelor cu Open Source Iptables Firewall?

Ce este un firewall Linux?

Un firewall Linux este un dispozitiv care inspecteaza traficul de retea (conexiuni de intrare/iesire) si ia decizia de a transmite sau de a filtra traficul. Iptables este un instrument CLI pentru gestionarea regulilor de firewall pe o masina Linux.

Network Security a evoluat cu diferite tipuri de firewall Linux in epoca. Firewall-urile traditionale de filtrare a pachetelor se ocupa de rutarea si filtrarea pachetelor ( OSI Layers 3 si 4 ), Unde altundeva NGFW-urile vor functiona cu functii suplimentare ca si cu straturile OSI (L4-L7 din modelul OSI).

Ce este Iptables? Cum functioneaza?

Iptables este o aplicatie CLI (Interfata de linie de comanda) care permite administratorului sa configureze reguli specifice care vor impune nucleul Linux (cadru Netfilter) pentru a efectua o actiune cum ar fi inspectarea, modificarea sau eliminarea pachetelor de retea. Activarea acestui Iptables in orice masina sau dispozitiv Linux va actiona ca un firewall de retea si/sau un router.

Diferite module si programe ale nucleului sunt utilizate pentru diferite protocoale; IPtables se aplica la IPv4, ip6tables la IPv6, arp tables la ARP și ebtables la cadre Ethernet.

Ulterior, Netfilter Project a dezvoltat Nftables pentru performanta si scalabilitate. Acesta este un cadru de filtrare a pachetelor care face aceeasi activitate ca Iptables.

Cum funcționeaza filtrarea pachetelor cu Iptables?

O politica iptables este construita cu un set ordonat de reguli, care descriu nucleului actiunile care ar trebui intreprinse impotriva anumitor tipuri de pachete.

Prezentare generala a tabelelor

Functionalitatea Iptables clasificata in patru tabele care sunt tabelul NAT, tabelul de filtrare a pachetelor, tabelul Mangle si tabelul brut.

Tabel NAT:

  • Traducerea adresei de retea (NAT) este procesata pentru pachetele de intrare si pachetele de iesire cu decizii de rutare în tabel.
  • Rutarea in retea este procesata cu Pre-routare si Post-routare a pachetelor de la origine la destinatie.

Tabel de filtrare a pachetelor:

Filtrarea pachetelor este procesata cu regulile lantului de mai jos.

Lanturi:

  • Lanturile sunt clasificate în 3 tipuri LANT DE INTRARE, LANT DE IESIRI si LANT DE INTAMPRE.
  • Input Chain – Conexiuni de intrare care sunt traversate de la Prerouting. Exemplu: IP extern care incearca sa stabileasca o conexiune SSH pe sistemul dvs.
  • Lant de iesire – Pachete care sunt transmise sau conexiuni de iesire din sistemul dumneavoastra. Exemplu: daca incercati sa vizitati dataopen.ro, traficul utilizatorilor este verificat in regula in lant pentru a permite sau a refuza conexiunea.
  • Forward Chain – Redirectionarea conexiunilor catre anumite retele sau porturi. Exemplu: Port Forwarding.

Masa Mangle

  • Tabelul Mangle poate fi utilizat pentru procesarea in scopuri speciale a pachetelor.
  • Include o combinatie de mese si lanturi NAT.

Masa bruta

  • Tabelele brute sunt folosite numai pentru pachetele procesate cu conditii speciale, cum ar fi scutite de urmarirea conexiunii.

Chibrituri:

Fiecare regula iptables are un set de potriviri care ii spune lui iptables ce sa faca cu un pachet.

–sursa (-s) adresa IP sau retea
sursa –destinatie (-d) Adresa IP sau retea de destinatie
–protocol (-p) Valoare IP
–in-interfata (-i) Interfata de intrare (de exemplu, eth0)
–out-interface ( -o) Interfata de iesire
– stari de conexiune
– secventa de sir de octeti de date din stratul de aplicatie

Tinta:

ACCEPT –   Permite un pachet. (Acceptati conexiunea de intrare/iesire)
DROP –     Arunca un pachet. ( Renuntati la conexiuni )
LOG –       Inregistreaza un pachet in Syslog. ( Inregistreaza starea conexiunii pentru monitorizarea retelei, TCP construit/demontat )
REJECT –      Arunca un pachet ai trimite un pachet de raspuns adecvat (Resetare TCP sau un mesaj de inaccesibil al portului ICMP).
RETURN-      Continua procesarea unui pachet in lantul de apelare.

Sa scriem o regula simpla pentru a bloca ping (ICMP).

$ iptables -A INPUT -p icmp -j DROP sau $ iptables -A INPUT -p icmp -j REJECT

Verifica:

$ sudo iptables -t filter -L INPUT -v
$ sudo iptables –table filter –list INPUT –verbose

Test ping (ICMP):

Da, a functionat. A blocat toate pachetele primite cu protocolul ca ICMP in retea. 

Acum sa permitem ping (ICMP).

$ iptables -A INPUT -p icmp -j ACCEPT

De asemenea, puteti scrie orice regula personalizata in functie de mediul dvs., cum ar fi ALLOW trafic peste portul 443 sau orice protocol si inregistrati acele jurnale de conexiune cu parametrul -L.