Cum se utilizează comenzile Iptables Netfilter pe Linux

Cuprins

Securitatea trebuie să fie întotdeauna una din premisele pe care trebuie să lucreze administratorii, personalul de management și de asistență și, în general, toți utilizatorii oricărui sistem de operare actual din cauza multiplelor amenințări prezente în rețea.

În cazul distribuțiilor Linux, majoritatea au instrumente avansate pentru a aplica un filtru pachetelor de rețea atât la nivelul procesării controlului pachetelor de rețea în intrarea, mișcarea, controlul și ieșirea stivei. Rețelele din nucleul sistemului utilizat , prin urmare, începând cu kernel 2.4, au fost introduse iptables, care se mai numesc netfilter și acestea au un nivel mai ridicat de securitate și funcționalități practice pentru protecția sistemului.

iptables gestionează filtrarea IPv4 în timp ce ip6tables gestionează filtrarea IPv6 în rețelele actuale.
Solvetic va face o analiză cu privire la modul în care funcționează iptables și unele dintre comenzile mai practice pe care le putem lua din acesta.

1. Filtrarea pachetelor pe Linux


Kernel-ul distribuțiilor Linux folosește instrumentul Netfilter pentru a efectua procesul de filtrare a pachetelor și, astfel, să îndeplinească sarcinile de primire sau oprire a acestora.

Reguli încorporate în NetfilterNetfilter este încorporat în mod implicit în nucleul Linux și are trei tabele sau liste de reguli integrate astfel:

  • filtru: Se referă la tabelul implicit conceput pentru gestionarea pachetelor.
  • nat: Funcția sa este de a modifica pachetele care au fost create într-o nouă conexiune folosită în principal de NAT.
  • mangle: Utilizarea sa se aplică atunci când anumite pachete de rețea trebuie modificate.

Acum, fiecare tabel are un grup de lanțuri încorporate care sunt legate de acțiunile care pot fi efectuate de netfilter, acestea fiind:

Reguli pentru tabelele de filtrareȘirurile încorporate pentru tabelul de filtrare sunt:

  • INPUT: Este legat de pachetele care au fost destinate gazdei.
  • IEȘIRE: Funcționează pe pachete de rețea care au fost generate local.
  • FORWARD: Asociază pachetele care au fost direcționate prin gazda principală.

Reguli pentru tabelele natȘirurile încorporate pentru tabelul nat sunt:

  • PREROUTING: Funcția sa este de a modifica pachetele de rețea imediat ce sosesc.
  • IEȘIRE: A fost conceput pentru a modifica pachetele de rețea care sunt create local și sunt activate înainte de a fi trimise.
  • POSTROUTING: Creat pentru a modifica pachetele înainte de a fi trimise la nivel global.

Reguli pentru panourile de mangroveLanțurile încorporate pentru masa de mangrove sunt:

  • INPUT: Conceput pentru a modifica pachetele de rețea destinate gazdei principale.
  • IEȘIRE: Creat pentru a modifica pachetele de rețea create local și funcționează înainte de a fi trimise.
  • FORWARD: modifică pachetele care au fost direcționate prin gazda principală.
  • PREROUTING: Sarcina dvs. este să modificați pachetele primite înainte de a fi direcționate.
  • POSTROUTING: modifică pachetele de rețea înainte ca procesul de trimitere să aibă loc.

Fiecare pachet de rețea primit sau trimis din sistemul de operare Linux este întotdeauna legat de cel puțin o masă. Acum, să înțelegem câteva dintre comenzile mai utile pe care le putem folosi cu iptables.

2. Afișați starea firewall-ului

Pasul 1
Pentru a cunoaște starea curentă a firewallului executăm următoarea linie:

 sudo iptables -L -n -v 

MARI

Pasul 2
Acolo putem valida fiecare lanț cu nivelurile sale respective de pachete gestionate, parametrii utilizați în această comandă sunt:

-LAfișați regulile listei.

-vGenerează informații detaliate, cum ar fi numele interfeței, plus opțiunile de regulă, plus contoare de pachete și octeți sunt de asemenea listate, cu sufixul „K”, „M” sau „G” pentru opțiunile de 1000, 1.000.000 și, respectiv, 1.000.000.000.

-nAfișează adresa IP și portul în format numeric.

Pasul 3
Dacă doriți, vedeți acest rezultat cu numărul de linii, putem executa următoarele:

 iptables -n -L -v --line-numbers 

MARI

3. Opriți, reporniți sau porniți iptables pe Linux

Pasul 1
Principalele comenzi pentru gestionarea sarcinilor iptables la nivel de pornire sau oprire sunt:

 service iptables stop service iptables start service iptables restart
Pasul 2
De asemenea, va fi posibil să utilizați comanda iptables pentru a opri firewall-ul și a elimina toate regulile de acest fel:
 iptables -F iptables -X iptables -t nat -F iptables -t nat -X iptables -t mangle -F iptables -t mangle -X iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT
Pasul 3
Parametrii definiți sunt:

-FEliminați toate regulile.

-XȘtergeți un șir.

-tnume_tabel: Selectați tabelul (numit nat sau mangle) și ștergeți sau eliminați regulile.

-PSetați politica implicită, cum ar fi DROP, REJECT sau ACCEPT.

4. Adăugați noi reguli firewall în Linux

Pasul 1
Una dintre cele mai practice sarcini ale iptables este de a crea anumite reguli pentru gestionarea corectă a pachetelor, pentru a insera una sau mai multe reguli în lanțul selectat vom folosi următoarea sintaxă în care trebuie descoperite mai întâi numerele de linie:

 iptables -L INPUT -n --line-numbers 
Pasul 2
de exemplu, să adăugăm următoarea regulă:
 iptables -I INPUT 2 -s 192.168.0.50 -j DROP 
Pasul 3
Mai târziu, vom vedea regulile folosind comanda de mai sus. Acolo vedem că regula creată a fost adăugată pe linia 3 așa cum s-a indicat.

MARI

5. Ștergeți o regulă de firewall pe Linux

Pasul 1
În primul rând, trebuie să afișăm regulile care sunt create pentru a determina exact care ar trebui eliminată, pentru a obține aceste informații avem următoarele opțiuni:

 iptables -L INPUT -n --line-numbers iptables -L OUTPUT -n --line-numbers iptables -L OUTPUT -n --line-numbers | Mai puțin
Pasul 2
Acum, pentru a șterge regula 3 creată anterior, vom executa următoarele:
 iptables -D INPUT 3 

MARI

6. Stocați și restaurați regulile iptables pe Linux

Pasul 1
De fiecare dată când modificăm regulile iptables, trebuie să procedăm la salvarea acestor modificări, pentru aceasta este suficient să executăm următoarea linie:

 service iptables știe 
Pasul 2
Putem pur și simplu restabili acele reguli pe care le-am stocat executând următoarele:
 service iptables reporniți 

7. Setați regulile implicite în Linux


Cu iptables va fi posibil să se permită sau să se refuze regulile implicite care trebuie aplicate întregului sistem în felul următor.

Pasul 1
Pentru a elimina tot traficul pe care îl executăm:

 iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP
Pasul 2
Pentru a elimina tot traficul primit:
 iptables -P INPUT DROP iptables -P FORDARD DROP iptables -P OUTPUT ACCEPT iptables -A INPUT -m state - NOU, STABILIT -j ACCEPT

MARI

8. Blocați o adresă IP în Linux

Cu iptables va fi posibil să se blocheze o anumită adresă IP pentru a împiedica accesul la sistem al pachetelor de rețea. Pentru această sarcină avem următoarele opțiuni:

 iptables -A INPUT -s 192.168.0.14 -j DROP (IP specific) iptables -A INPUT -s 192.168.0.0/24 -j DROP (Interval de adrese)

9. Blocați cererile de port primite pe Linux

Pasul 1
O altă sarcină tipică de securitate este restricționarea accesului la pachete printr-un port specific, cu iptables avem următoarele opțiuni:

Blocați toate acțiunileBlocați toate acțiunile pentru un anumit port executând:

 iptables -A INPUT -p tcp --dport 80 -j DROP iptables -A INPUT -i eth1 -p tcp --dport 80 -j DROP

Blocați un portBlocați un port pentru o anumită adresă IP:

 iptables -A INPUT -p tcp -s 192.168.0.14 --dport 80 -j DROP iptables -A INPUT -i eth1 -p tcp -s 192.168.0.1/24 --dport 80 -j DROP

Blocați adresa IP de ieșire
Este posibil să blocați traficul de ieșire către o anumită gazdă sau domeniu, de exemplu Solvetic.com, pentru aceasta executăm următoarele:

 gazdă -t la solvetic.com 

MARI

Pasul 2
Acum, cu această adresă IP, continuăm să blocăm:

 iptables -A OUTPUT -d 178.33.118.246 -j DROP 
Pasul 3
De asemenea, va fi posibil să blocați întregul domeniu astfel:
 iptables -A OUTPUT -p tcp -d www.solvetic.com -j DROP 

10. Dacă se permite sau nu traficul de rețea utilizând adresa MAC în Linux

O altă posibilitate de utilizare este de a restricționa sau permite utilizarea pachetelor pe baza adresei MAC a dispozitivului selectat. Pentru aceasta vom folosi una dintre următoarele opțiuni:

 iptables -A INPUT -m mac --mac-source 00: 2F: EF: 85: 04: 09 -j DROP (refuza traficul de la adresa MAC selectată) iptables -A INPUT -p tcp --destination-port 22 - m mac --mac-source 00: 2F: EF: 85: 04: 09 -j ACCEPT (Acceptă pachete de la adresa indicată doar de portul 22)

11. Blocați sau permiteți solicitările ICMP pe Linux


Protocolul ICMP (Internet Control Message Protocol) este un protocol dezvoltat pentru a gestiona informațiile legate de erorile din computerele din rețeaua locală, astfel încât cu acest protocol să poată fi făcute cereri de la distanță pentru a verifica disponibilitatea unei echipe și acest lucru din punct de vedere al securității poate fi delicat .

Pasul 1
Putem rula următoarele linii pentru a evita solicitările ICMP pe Linux:

 iptables -A INPUT -p icmp --icmp-type echo-request -j DROP iptables -A INPUT -i eth1 -p icmp --icmp-type echo-request -j DROP
Pasul 2
Răspunsurile ping pot fi, de asemenea, limitate la anumite rețele sau gazde de genul acesta:
 iptables -A INPUT -s 192.168.0.1/24 -p icmp --icmp-type echo-request -j ACCEPT 
Pasul 3
Vom putea accepta doar un tip limitat de solicitări ICMP ca acesta:
 iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT iptables -A INPUT -p icmp --icmp-type destination-inreachable -j ACCEPT iptables -A INPUT -p icmp --icmp-type time- depășit -j ACCEPT

12. Deschideți o serie de porturi și adrese IP în Linux

Pasul 1
Acest lucru este util dacă trebuie să activăm o gamă definită de porturi pentru a efectua acțiuni administrative sau de execuție a programului:

 iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 9000: 9020 -j ACCEPT 
Astfel, am deschis gama de porturi 9000 - 9020 pentru conexiuni TCP.

Pasul 2
O altă alternativă este să activați o serie de adrese IP prin setarea unui port specific ca acesta. Acolo am autorizat această gamă să utilizeze portul 80.

 iptables -A INPUT -p tcp --destination-port 80 -m iprange --src-range 192.168.0.70-192.168.0.80 -j ACCEPT 

13. Restricționați numărul de conexiuni paralele la un server de IP client pe Linux

Pasul 1
Putem folosi modulul connlimit pentru a defini aceste restricții, de exemplu, pentru a permite conexiuni de 5 ssh per client, introducem următoarele:

 iptables -A INPUT -p tcp --syn --dport 22 -m connlimit --connlimit-above 5 -j REJECT 

MARI

Pasul 2
Pentru a restricționa accesul HTTP la 10:

 iptables -p tcp --syn --dport 80 -m connlimit --connlimit-above 10 --connlimit-mask 24 -j DROP 
Pasul 3
Am indicat următoarele:
  • --conlimit-above 5: se potrivește dacă numărul de conexiuni existente este mai mare de 5.
  • --connlimit-mask 24: Acestea sunt gazdele grupului care utilizează lungimea prefixului. Pentru IPv4, trebuie să fie un număr între (inclusiv) 0 și 32.

14. Restricționați numărul de conexiuni paralele la un server de IP client pe Linux

Pasul 1
NAT (Network Address Translation) este un sistem de traducere a adreselor de rețea și astfel facilitează navigarea. Pentru a le enumera, vom executa următoarele:

 iptables -t nat -L -n -v 

MARI

Pasul 2
Va fi posibil să vedeți acest rezultat cu liniile respective, astfel:

 iptables -t nat -v -L -n --line-number 

15. Ștergeți regulile NAT pe Linux


Pasul 1
Dacă dorim să ștergem regulile NAT stabilite, vom executa următoarele:
 iptables -t nat -v -L -n --line-number iptables -t nat -v -L PREROUTING -n --line-number iptables -t nat -v -L POSTROUTING -n --line-number
Pasul 2
Pentru a șterge toate regulile „PREROUTING” executăm următoarea sintaxă:
 iptables -t nat -D PREROUTING {Număr regulă} 
Pasul 3
Pentru a șterge toate regulile „POSTROUTING” executăm:
 iptables -t nat -D POSTROUTING {număr regulă} 

16. Resetați contoare de pachete în Linux


Mai întâi, trebuie să executăm comanda „iptables -L -n -v”, pe care am văzut-o mai devreme, pentru a enumera contoare.

Pasul 1
Pentru a goli aceste contoare, rulați următoarele:

 iptables -Z 
Pasul 2
Pentru a reseta contoare cu acces numai executăm:
 iptables -Z INPUT 

17. Validați paravanul de protecție pe Linux

Pasul 1
În primul rând, trebuie să validăm dacă porturile sunt sau nu deschise cu următoarea comandă:

 netstat -tulpn 

MARI

Pasul 2
Pentru validarea unui anumit port executăm:

 netstat -tulpn | grep: 80 

MARI

Pasul 3
În cazul în care portul nu este deschis, executăm:

 service httpd start 
Pasul 4
Apoi trebuie să ne asigurăm că iptables are acces prin acel port:
 iptables -L INPUT -v -n | grep 80 

18. Permiteți accesul în buclă cu iptables pe Linux

Accesul Loopback al cărui acces este de la IP 127.0.0.1 este important și ar trebui lăsat întotdeauna activ pentru sarcinile de administrare și gestionare a rețelei. Pentru a-l activa în iptables, trebuie doar să executați următoarele.

 iptables -A INPUT -i lo -j ACCEPT iptables -A OUTPUT -o lo -j ACCEPT

19. Definiți noi șiruri iptables pe Linux


Pasul 1
Cu iptables avem posibilitatea de a ne defini propriul lanț și de a stoca reguli personalizate în acesta. Pentru a defini un lanț, executăm următoarele:
 iptables -N "Numele șirului" 
Pasul 2
Apoi rulăm „iptables -L” pentru a lista șirurile iptables:

MARI

Pasul 3
În rezultat vom vedea lanțul nostru creat:

MARI

20. Ștergeți lanțurile sau regulile de firewall iptables pe Linux

Pentru a efectua această ștergere trebuie să executăm următoarele:

 iptables -F 
După cum putem vedea, iptables este o soluție cuprinzătoare pentru gestionarea centralizată a diferitelor aspecte de securitate în distribuțiile Linux pentru a obține îmbunătățiri în tot ceea ce privește confidențialitatea.

wave wave wave wave wave