Cum se utilizează iptables pentru a filtra pachetele pe Linux

Cuprins

În acest tutorial despre care vom vorbi iptables, firewall-ul sau firewall-ul pe care îl avem în Linux. Acest instrument ne va permite să filtrăm pachetele (cu care se va ocupa tutorialul), să generăm o înregistrare jurnal, să efectuăm traduceri NAT.

Datorită iptables putem genera reguli pentru a filtra pachetele destul de simplu, deși prima dată când îl utilizați poate părea oarecum confuz, veți vedea că atunci când îl utilizați timp de câteva zile nu are nicio complicație.

Utilizarea acestui instrument necesită privilegii ridicate, adică va trebui să fim superutilizatori pentru al face să ruleze. Avem multe caracteristici în cadrul iptables, obiectivul tutorialului este de a vedea o aproximare a utilizării sale prin exemple. Este important ca odată ce ați terminat tutorialul să continuați să săpați, deoarece este foarte util.

Apoi părăsim site-ul oficial în cazul în care este de interes:

NotăPentru IPv6 avem ip6tables.

Dacă vrem să vedem informații despre iptables vom executa următoarele într-un terminal:

 om iptables
Vom vedea următoarele informații:

În imagine puteți vedea o parte din informațiile furnizate de comandă, pentru a le vedea pe toate, derulați în jos în terminal. După cum am văzut la începutul tutorialului, una dintre sarcinile pe care iptables ni le permite este să creăm reguli sau filtre pentru a ști ce să facem cu pachetele care au mașina noastră ca origine / destinație. Pentru această sarcină, vom fi interesați să știm de ce folosim următoarele concepte:

Placi
Iptables are mai multe tabele, dar pentru tutorialul nostru ne concentrăm doar asupra tabel de filtrare, care se ocupă de filtrare, este utilizat implicit în iptables.

Lanţuri
Șirurile pe care le voi pune aici sunt cele care aparțin tabelului comentat anterior.

  • Intrare: Pachete destinate mașinii noastre.
  • Ieșire: Pachete care provin din sistemul nostru.
  • Redirecţiona: Pachete care trec prin mașina noastră pentru a fi direcționate către altul.

Reguli
Vom indica cele 2 care vor fi utilizate în tutorial, dar există mai multe.

  • Accept: Pachetele sunt acceptate.
  • cădere brusca: Pachetele sunt aruncate.

Parametrii
Unii dintre parametrii pe care îi putem folosi sunt următorii.

  • -O regula: Pentru a adăuga o regulă
  • -D regula: Pentru a șterge regula pe care o indicăm.
  • -L: Ne permite să enumerăm regulile.
  • -F: Ștergeți toate regulile existente.
  • -j țintă: Setați tipul de regulă (Accept, Drop).
  • -t masa: Va indica tabelul utilizat (implicit tabelul de filtrare).
  • -protocol p: Folosit pentru a indica protocolul.
  • -interfață i: Stabilim interfața pentru regulă.
  • -s: Pentru a indica originea.
  • -d: Pentru a indica destinația.
  • -h: Afișează ajutorul.

Există multe altele, așa cum pot fi --portul de destinație sau --port-sursă. Pentru a le vedea pe toate, puteți rula comanda pe care am discutat-o ​​mai sus:

 om iptables
Sau puteți rula, de asemenea:
 iptables -h
NotăTrebuie să vă uitați cu atenție la opțiunile oferite de instrument, deoarece face distincție între litere mici și majuscule și putem face o greșeală (nu va fi același lucru să puneți -p acea -P).

Să începem cu exemplele, se vor pune în total 10, deci va fi mai bine înțeles și putem vedea cum funcționează iptables în modul firewall. În exemple nu veți vedea sudo, nu va fi necesar dacă sunteți ca rădăcină, altfel va trebui să adăugați cuvântul sudo la începutul fiecărui exemplu.

1. Interziceți plecarea către orice destinațiePentru început, vom da un exemplu ușor, nu părăsiți ieșirea nicăieri.

 iptables -A OUTPUT -j DROP
Acesta este foarte ușor, după cum puteți vedea, următorul este și mai ușor.

2. Ștergeți toate regulileContinuăm cu un exemplu foarte simplu, lăsăm iptables-ul nostru fără reguli, pentru aceasta vom executa:

 iptables -F
Ei bine, hai să o complicăm un pic mai mult în următoarea.

3. Interziceți plecarea prin portul 80Acum ne ocupăm de închiderea ieșirii printr-un port specific, în acest caz este 80, prin urmare nu vom avea navigare pe web prin protocolul http (dacă navigăm la o pagină https, putem naviga, deși am putea face același lucru ca 80).

 iptables -A OUTPUT -p tcp --destination-port 80 -j DROP
NotăAtunci când se utilizează un port de destinație sau sursă, va trebui să punem parametrul -p pentru a indica protocolul.

Trecem la al patrulea exemplu.
4. Interziceți navigarea către o paginăCu această ocazie suntem interesați să interzicem accesul la pagina X din sistemul nostru, să ne imaginăm că această pagină este solvetic.com, pentru aceasta îi aflăm IP-ul, foarte ușor executând un ping îl vom obține.

Și acum vom executa:

 iptables -A OUTPUT -d 178.33.118.246 -j DROP
După cum putem vedea, este suficient să vă indicați adresa IP după parametru -d.

5. Enumerați regulile care existăAcest exemplu va încerca să enumere regulile de filtrare pe care le-am definit în prezent:

 iptables -L
Vedem o imagine, avem doar două reguli definite, așa cum vedem mai jos:

Să trecem la al șaselea exemplu, în care vom folosi din nou lista de reguli.

6. Ștergeți o regulă specificăAici, pornind de la regulile pe care le-am avut în exemplul anterior, vom șterge una dintre regulile de ieșire, în acest caz prima care apare, executăm următoarele:

 iptables -D OUTPUT 1
Și pentru a verifica dacă a fost șters efectiv, folosim exemplul 5:

Să continuăm cu mai multe.

7. Evitați să faceți pingNu vrem să ne facă ping, pentru aceasta vom bloca intrarea pentru protocolul ICMP.

 iptables -A INPUT -p ICMP -j DROP
Mai jos las o imagine de ping înainte de a executa comanda de mai sus și după:

Putem vedea că aparatul nostru nu răspunde, deoarece respinge pachetele ICMP. Dacă blocăm ieșirea în locul intrării, vom executa:

 iptables -A OUTPUT -p ICMP -j DROP
Același lucru ca în imaginea anterioară s-ar întâmpla din nou. Pentru a testa am făcut ping de 3 ori, dacă executăm putem vedea numărul de pachete:
 iptables -L -v

Vedem că pune efectiv 3 în imaginea anterioară.

8. Împiedicați un IP să ne trimită dateVom aplica unul de intrare, nu vrem să ne conecteze un anumit IP, așa că vom executa:

 iptables -A INPUT -s 192.168.66.1 -j DROP
Să vedem un exemplu ceva mai lung.

9. Permiteți ieșirile către o serie de adrese IPImaginați-vă că doriți să acceptați numai ieșiri pentru o serie de adrese IP, dar respingeți restul ieșirilor, trebuie să executăm:

 Iptables -A OUTPUT -d 192.168.0.0/24 -j ACCEPT Iptables -A OUTPUT -j DROP
NotăOrdinea de execuție a regulilor contează, încercați acest exemplu cu rețeaua pe care doriți să o permiteți și faceți o conexiune, veți vedea că funcționează, apoi ștergeți toate regulile și executați cele 2 propoziții invers, acum ar respinge conexiunile .

Să trecem la al zecelea și ultimul exemplu.

10. Deschideți portul 143 (imap)Vom deschide un port pentru intrarea tuturor pachetelor tcp, în acest caz 143 (ar fi același lucru pentru restul).

 iptables -A INPUT -m state --state NEW -p tcp --dport 143 -j ACCEPT
În acest exemplu am vrut să folosim --port, astfel încât să puteți vedea că putem folosi acest lucru sau --portul de destinație, am putea folosi și --portul in loc de --port-sursă.

Tutorialul se încheie aici, acum încercați să aplicați alte reguli, cu cât practicați mai mult, cu atât veți avea mai rapid atunci când aplicați reguli și cu atât vă va costa mai puțin. Pentru a finaliza, lăsăm un tutorial care ar putea fi de interes pentru dvs., deschiderea și închiderea porturilor în Windows 10.

Vei ajuta la dezvoltarea site-ului, partajarea pagina cu prietenii

wave wave wave wave wave