25+ Cele mai comune comenzi iptables cu exemple

Dacă sunteți pe Linux, aveți o mulțime de opțiuni pentru a vă proteja dispozitivul. Vine cu iptables, un utilitar firewall de linie de comandă care oferă flexibilitate și protecție excelentă.

Cu toate acestea, deoarece este un utilitar de linie de comandă, necesită o curbă ușoară de învățare.

Deci, dacă sunteți un administrator de sistem sau un cursant de Linux, sunteți în locul potrivit, în timp ce parcurgem comenzile comune iptables cu exemple.

Ce este iptables?

iptables este un firewall Linux bazat pe software. Permite utilizatorilor Linux să creeze sau să definească politici care au impact direct și indirect asupra traficului de internet.

Aceasta înseamnă că puteți utiliza iptables pentru a crea reguli de blocare sau de autorizare a traficului prin port, adresa IP sursă, interfețe de rețea și multe altele.

Odată ce ați definit regulile, tot traficul trebuie să treacă prin ele. Deci, de exemplu, pentru fiecare conexiune nouă, iptables va verifica dacă există reguli predefinite care se potrivesc cu conexiunea. Dacă se întâmplă, va aplica regula conexiunii. Cu toate acestea, dacă nu există reguli aplicabile asociate, va implementa regula implicită.

Pentru a utiliza iptables, trebuie să utilizați următoarea comandă.

$ iptables -L -n -v 

Aici, parametrii sunt după cum urmează:

  • -L este pentru a enumera toate regulile.
  • -n face ca ieșirea numerică să ofere performanțe mai rapide.
  • -v pentru afișarea rezultatelor în format detaliat.

Odată ce rulați comanda iptables fără niciun parametru, va returna următoarea ieșire:

iptables v1.8.7 (nf_tables): no command specified

Try `iptables -h' or 'iptables --help' for more information.

Trebuie să îl instalați dacă întâlnește o eroare, cum ar fi comanda „iptables” negăsită.

Pentru a instala iptables în distribuția dvs. Linux, executați următoarea comandă.

$ sudo apt-get install iptables

Va returna următoarele, deoarece este deja preinstalat pe distribuția mea Linux.

#output
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
iptables is already the newest version (1.8.7-1ubuntu5).
iptables set to manually installed.
0 upgraded, 0 newly installed, 0 to remove, and 35 not upgraded.

Ce este Firewall?

Firewall-urile sunt cea mai de bază formă de protecție a sistemelor, rețelelor și computerelor personale. Poate fi bazat pe hardware sau software, bazându-se pe reguli pentru a funcționa corect.

Majoritatea firewall-urilor sunt extrem de personalizabile, permițându-vă să creați sau să editați reguli. De exemplu, deoarece pachetele de pe internet folosesc porturi pentru a intra într-un sistem, scanarea bazată pe porturi vă poate ajuta să le filtrați. În afară de aceasta, puteți, de asemenea, să permiteți sau să blocați serviciile după adresa IP sursă sau interfața de rețea.

Dacă utilizați Linux, aveți acces la iptables încorporat. Cu toate acestea, puteți utiliza și un firewall Linux independent pentru a vă ajuta în procesul de protecție a sistemului.

De ce aveți nevoie de iptables pentru a configura firewall-ul?

Dar de ce ar trebui să folosești iptables deloc? La urma urmei, există utilitare alternative bune pentru firewall de linie de comandă, cum ar fi ufw și firewalld. De asemenea, puteți utiliza firewall-uri Linux autonome, care sunt simplu de utilizat și oferă mai multe funcții.

Deci, ce face iptables atât de atrăgător atunci când configurați un firewall? Motivele pentru a-l folosi includ:

  • Oferă o flexibilitate excelentă din cutie. Puteți stabili reguli la nivel de pachet.
  • Este relativ ușor de utilizat odată ce știi cum funcționează.
  • Blocați traficul nedorit într-un mod simplu.
  • Redirecționați pachetele către o adresă IP alternativă.
  • Protejați-vă sistemele împotriva atacurilor Denial of Service (DoS).

Și mult mai mult!

Înțelegerea arhitecturii iptables și a relației sale cu Netfilter

Pentru a înțelege corect iptables, trebuie să învățăm despre arhitectura lor. În primul rând, ne va oferi o înțelegere clară a diferitelor componente iptables. Apoi, odată ce știm despre fiecare dintre ele, le putem folosi pentru a scrie reguli de firewall.

Și, când vorbim despre iptables, intră și Netfilter în imagine. Vă puteți gândi la „Netfilter” ca la un frate mai mare al iptables. Se bazează pe iptables și oferă un set de funcții mai bun pentru a vă gestiona firewall-ul. Cu toate acestea, folosește iptables ca unul dintre mijloacele de a obține capabilități excelente de firewall.

Iptables este o interfață de linie de comandă pentru cârlige la nivel de kernel Netfilter. Aceste cârlige pot interacționa cu stiva de rețea Linux, care afectează pachetele la cel mai profund nivel.

Deci, cum arată arhitectura iptables:

Mese

Arhitectura iptables începe cu tabele. Aceste tabele se ocupă de organizarea regulilor. Și fiecare tabel este clasificat în funcție de tipul de decizie pe care îl iau. În termeni mai simpli, un tabel simplifică procesarea globală a pachetelor prin atașarea unui mod specific de procesare a pachetelor.

Diferitele tabele oferite de iptables includ:

  • Tabel de filtrare: Specifică tipul de decizie pentru filtrarea pachetelor. În termeni simpli, determină dacă un pachet trebuie să ajungă la destinație sau nu.
  • Tabel NAT: Specifică tipul de decizie pentru traducerea adresei. Aici, rutarea pachetelor este determinată pe baza rețelelor NAT. De exemplu, dacă un pachet nu poate accesa NAT, va omite și va încerca să caute o rețea non-NAT.
  • Mangle table: Gestionează nevoile speciale de procesare ale pachetului. De exemplu, îl puteți configura pentru a modifica informațiile de antet ale pachetului, cum ar fi valorile TTL.
  • Tabelul brut: Tabelul brut vă permite să lucrați cu sârguință cu aspectul de stare al firewall-ului iptables. Folosind tabelul, puteți direcționa pachetele în funcție de „starea” lor înainte ca nucleul Linux să înceapă să-și urmărească starea. Este folosit în primul rând pentru a marca pachetele, indiferent dacă sistemul de urmărire a conexiunii le gestionează sau nu. Dacă un pachet nu este urmărit, acesta este setat la țintă NOTRACK.
  Cum se formatează codul în VS Code

Lanţuri

Și, apoi, avem „lanțuri” în „mese”.

Aceste lanțuri se ocupă de inspecția profundă a pachetelor în diferite etape ale călătoriei lor. De exemplu, le puteți inspecta când ajunge la un port sau o interfață de rețea. În acest fel, o decizie poate fi luată înainte ca pachetul să fie eliberat în procesul unui sistem.

La fel ca și mesele, obțineți și lanțuri diferite. Acestea includ:

  • PREROUTING lanț: Aici, regulile gestionează pachetele abia sosite la interfața de rețea.
  • Lanț INPUT: Regulile menționate în lanțul INPUT gestionează comportamentul conexiunii de intrare. Odată gata, acestea sunt date procesului local.
  • Lanțul OUTPUT: Lanțul OUTPUT se ocupă cu pachetele pe care procesele le produc.
  • Lanț FORWARD: Lanțul FORWARD gestionează pachete care nu sunt destinate sistemelor locale. Este un purtător pentru alte sisteme destinate, cum ar fi un router.
  • Lanțul POSTROUTING: În sfârșit, avem lanțul POSTROUTING, care se ocupă cu pachetele pe cale să părăsească prin interfața de rețea.

Nu toate lanțurile sunt disponibile în fiecare tabel. De exemplu, lanțul FORWARD este disponibil numai în tabelul Mangle, Filter și Security. În mod similar, lanțul POSTROUTING este disponibil pe mangle și nat (SNAT). Doar lanțul OUTPUT este disponibil în toate tabelele.

Ţintă

Acum, avem o „țintă”. Odată ce sosește un pachet, acesta trece prin lanțuri pentru a vedea ce descriere a regulii se potrivește cel mai bine. Dacă se potrivește cu descrierea unei reguli, efectuează acțiunea asociată pe baza acesteia și apoi o mută la țintă – sigilând soarta pachetului.

În multe cazuri, un pachet nu se va potrivi cu nicio descriere sau set de reguli. Și aici intervine politica implicită, o țintă.

Țintele pot fi ACCEPT, DROP și REJECT. Acestea sunt ținte finale care decid soarta pachetului.

  • ACCEPT: Acceptă pachetele.
  • DROP: Aruncă pachetul, ceea ce face ca expeditorul să nu poată afla dacă sistemul este prezent sau nu.
  • REJECT: Respinge pachetul.

Există, de asemenea, ținte care nu se încheie, care sunt utilizate în principal pentru a stoca informații despre pachet.

Cele mai comune comenzi iptables cu exemple

Înainte de a sări și de a începe să executați comanda iptables, asigurați-vă că:

  • Aveți acces administrativ pentru a rula comenzile. Dacă comanda eșuează din cauza privilegiilor administrative, reluați comanda cu comanda sudo în fața ei.
  • Articolul nu este un tutorial despre cum să configurați iptables pe Ubuntu.
  • Vom folosi comanda iptables care funcționează cu IPv4. Dacă intenționați să lucrați cu IPv6, va trebui să utilizați ip6tables în schimb.

Verificarea stării iptables

Pentru a verifica starea curentă a iptables, trebuie să rulați următoarea comandă.

$ iptables -L -n -v
#output

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)

 pkts bytes target     prot opt in     out     source               destination

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)

 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)

 pkts bytes target     prot opt in     out     source               destination

Ieșirea de mai sus conține o mulțime de informații. Cu toate acestea, indică și un firewall inactiv. Asta pentru că, în prezent, toate lanțurile sunt setate la ACCEPT și nu au reguli.

Va trebui să începeți să adăugați reguli pentru a activa firewall-ul.

Adăugarea de reguli la lanț

Când adăugați o regulă, aceasta este întotdeauna atașată la lanț. Prin urmare, trebuie să utilizați opțiunea -A (Adăugați). Sintaxa pentru aceasta este următoarea:

$ sudo iptables - A

Cu toate acestea, când îl rulați, va returna următoarele:

iptables v1.8.7 (nf_tables): option "-A" requires an argument

Try `iptables -h' or 'iptables --help' for more information.

Argumentele pe care le puteți folosi pentru a adăuga reguli sunt:

  • – i: reprezintă interfața. Aici, puteți menționa interfața pentru care adăugați reguli. Poate fi ppp0, eth0 și așa mai departe.
  • – p: înseamnă protocol. Aici, menționezi regula de a utiliza un protocol de rețea pentru a filtra packerii. De exemplu, puteți spune ICMP, TCP, UDP etc. Dacă doriți ca regula să funcționeze pe toate protocoalele, menționați „toate” ca valoare a argumentului.
  • – s: Urmează argumentul sursă, care menționează sursa traficului (ca adresă IP sau nume de gazdă)
  • – dport: dportul reprezintă portul de destinație, unde menționați numărul portului căruia este destinat pachetul.
  • – j: În cele din urmă, avem un argument ȚINTĂ în care puteți menționa numele ȚINTEI, ACCEPTĂ, DROP sau RETURN

De asemenea, este esențial să scrieți comanda în următoarea ordine:

$ sudo iptables -A <chain-name> -i <interface-name> - p <protocool-name> - s <source> --dport <port no.> -j <target>

Salvarea modificărilor la iptables

Odată ce adăugați o regulă, o puteți salva cu comanda iptables -save.

$ sudo iptables -save

Ieșirea este după cum urmează:

[email protected]:~$ sudo iptables-save

# Generated by iptables-save v1.8.7 on Sun May 14 13:37:34 2023

*filter

:INPUT ACCEPT [0:0]

:FORWARD ACCEPT [0:0]

:OUTPUT ACCEPT [0:0]

-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT

-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT

-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT

-A INPUT -p tcp -m tcp --dport 392 -j REJECT --reject-with icmp-port-unreachable

-A OUTPUT -o lo -j ACCEPT

COMMIT

# Completed on Sun May 14 13:37:34 2023

Reguli persistente manual

Implicit, iptables nu salvează regulile. Deci, dacă reporniți computerul, acesta va elimina toate regulile. Va trebui să utilizați următoarele comenzi pentru a vă asigura că nu trebuie să reconfigurați iptables.

Pentru regulile IPv4, scrieți comanda:

$ sudo iptables-save > /etc/iptables/rules.v4

Și pentru regulile IPv6, scrieți comanda:

$ sudo iptables-save > /etc/iptables/rules.v6

Reguli persistente automat

Pentru ca regulile să persistă chiar și după o repornire și asta în mod automat, va trebui să instalați pachetul iptables-presistent.

Pentru a face acest lucru, executați următoarea comandă.

$ sudo apt-get install iptables-persistent

Se va deschide următoarea fereastră. Apăsați enter pe .

Deoarece lucrăm cu tabelul IPv4, acesta va afișa doar regulile IPv4. Dacă lucrați la IPv6, va afișa fereastra relevantă.

Notă: Pachetul încarcă numai regulile iptables salvate. Deci, ori de câte ori schimbați iptables, va trebui să îl salvați cu comanda iptables -save.

Reîncărcarea regulilor după repornire

Odată ce regulile sunt salvate, trebuie să le restaurați cu următoarea comandă.

$ sudo iptables-restore < /etc/iptables/rules.v4

Și

$ sudo iptables-restore < /etc/iptables/rules.v6

Activarea traficului pe Localhost / Activarea Loopback

Pentru a activa traficul pe Localhost, utilizați următoarea comandă:

$ sudo iptables -A INPUT -i lo -j ACCEPT

Aici, lo reprezintă interfața loopback pentru toate comunicațiile localhost.

  iMac, Mini și Pro: Mac-urile desktop Apple comparate

În mod similar, putem permite pachetelor să plece prin interfața de loopback.

$ sudo iptables -A OUTPUT -o lo -j ACCEPT

Pentru a verifica cum a schimbat regulile, rulați iptables -L -n -V

#output

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)

 pkts bytes target     prot opt in     out     source               destination

    0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)

 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)

 pkts bytes target     prot opt in     out     source               destination

Activarea traficului pe anumite porturi

Puteți activa traficul pentru ACCEPTARE sau RESPINGERE pe anumite porturi.

De exemplu, porturile SSL, HTTP și SSH sunt importante pentru funcționarea normală a aplicațiilor dvs. Puteți adăuga reguli la pachetul ACCEPT prin intermediul numerelor de port pentru a vă asigura că funcționează conform intenției.

Pentru SSL, rulați următoarea comandă.

$ sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT

Pentru HTTPS, rulați următoarea comandă.

$ sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT

Pentru a permite întregul trafic HTTPS la interfața eth0.

$ iptables -A INPUT -i eth0 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT

$ iptables -A OUTPUT -o eth0 -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT

Pentru SSH, rulați următoarea comandă.

$ sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT

Și pentru a accepta TOT traficul SSH de intrare pe interfața eth0, rulați următoarele:

$ iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT

$ iptables -A OUTPUT -o eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT

Un alt exemplu ar fi activarea traficului de port pe un anumit port pentru aplicația dvs. personalizată. Să spunem portul 233.

Pentru a deschide conexiunile pe acel port, rulați.

$ sudo iptables -A INPUT -p tcp --dport 233 -j ACCEPT

În mod similar, puteți, de asemenea, să dezactivați conexiunile pe un anumit port utilizând opțiunea țintă REJECT.

Să blocăm toate conexiunile la portul 392.

$ sudo iptables -A INPUT -p tcp --dport 392 -j REJECT

Pentru a verifica, rulați comanda iptables -L -n -v.

#output

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)

 pkts bytes target     prot opt in     out     source               destination

    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:22

    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80

    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:443

    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:233

    0     0 REJECT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:392 reject-with icmp-port-unreachable

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)

 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)

 pkts bytes target     prot opt in     out     source               destination

 0     0 ACCEPT     all  --  *      lo      0.0.0.0/0            0.0.0.0/0

Ștergeți regulile existente

Pentru a șterge regulile existente, va trebui să rulați următoarea comandă.

$ iptables -F

sau

$ iptables --flush

Notă: dacă nu ați salvat regulile, atunci acestea sunt pierdute pentru totdeauna și nu pot fi restaurate folosind iptables -restore

Ștergeți regulile cu numere de linie

Pentru a șterge o anumită regulă, va trebui să obțineți lista de reguli cu numere.

$ sudo iptables -L --line-numbers
#output

Chain INPUT (policy ACCEPT)

num  target     prot opt source               destination

1    ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:ssh

2    ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:http

3    ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:https

4    ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:233

5    REJECT     tcp  --  anywhere             anywhere             tcp dpt:392 reject-with icmp-port-unreachable

Rulați următoarea comandă dacă doriți să eliminați regula numărul 4 pentru lanțul INPUT.

$ sudo iptables -D INPUT 4

Și, dacă rulați din nou comanda iptables -n -v -L.

#output

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)

 pkts bytes target     prot opt in     out     source               destination

    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:22

    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80

    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:443

    0     0 REJECT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:392 reject-with icmp-port-unreachable

Afișează numai regulile lanțului INPUT sau OUTPUT

Pentru a afișa numai regulile lanțului INPUT, rulați următoarea comandă.

$ sudo iptables -L INPUT -n -v --line-numbers
#ouput

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)

num   pkts bytes target     prot opt in     out     source               destination

1        0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:22

2        0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80

3        0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:443

4        0     0 REJECT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:392 reject-with icmp-port-unreachable

În mod similar, dacă doriți să vedeți numai regulile lanțului OUTPUT, rulați:

$ sudo iptables -L OUTPUT -n -v --line-numbers
#output

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)

num   pkts bytes target     prot opt in     out     source               destination

1        0     0 ACCEPT     all  --  *      lo      0.0.0.0/0            0.0.0.0/0

Porniți/Opriți/Reporniți paravanul de protecție

Dacă sunteți pe RHEL/Fedora Linux sau CentOS, puteți porni/opri sau reporni firewall-ul rulând comenzile.

$ service iptables stop

$ service iptables start

$ service iptables restart

De asemenea, puteți utiliza comanda systemctl.

  Cum se instalează și se utilizează tastaturi terțe pe iPhone și iPad

Cu toate acestea, nu va funcționa pe Ubuntu.

Introduceți reguli într-un loc specific

Dacă doriți să inserați reguli într-o anumită poziție, trebuie să utilizați următoarele comenzi.

În primul rând, verificați regulile.

$ sudo iptables -L INPUT -n --line-numbers
#output

Chain INPUT (policy ACCEPT)

num  target     prot opt source               destination

1    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:22

2    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:80

3    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:443

4    REJECT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:392 reject-with icmp-port-unreachable

Rulați următoarea comandă dacă doriți să inserați reguli între 2 și 3.

$ sudo iptables -I INPUT 3 -s 252.32.1.2 -j DROP

Acum, verificați regulile actualizate.

#output

Chain INPUT (policy ACCEPT)

num  target     prot opt source               destination

1    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:22

2    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:80

3    DROP       all  --  252.32.1.2           0.0.0.0/0

4    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:443

5    REJECT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:392 reject-with icmp-port-unreachable

Blocați traficul de intrare, dar permiteți traficul de ieșire

Va trebui să introduceți următoarea comandă pentru a bloca tot traficul de intrare.

$ iptables -P INPUT DROP

$ iptables -P FORWARD DROP

$ iptables -P OUTPUT ACCEPT

$ iptables -A INPUT -m state --state NEW,ESTABLISHED -j ACCEPT

$ iptables -L -v -n

În acest fel, puteți trimite ping sau descărca pachete, dar blocați orice trafic necunoscut de intrare.

Blocați o anumită adresă IP

Pentru a bloca o anumită adresă IP, executați următoarea comandă.

$ iptables -A INPUT -s 14.23.59.9 -J DROP

De asemenea, puteți defini o variabilă pentru a stoca adresa IP blocată și apoi executați comanda.

BLOCK_THE_IP = “a.b.c.d”

Și apoi alergați:

$ iptables -A INPUT -s “BLOCK_THE_IP” -j DROP

Notă: Schimbați „abcd” la adresa IP preferată.

Permiterea pingului sistemului din exterior

Puteți determina utilizatorii externi să pună ping la serverul dvs. pentru a face rețeaua detectabilă.

$ sudo iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT

$ sudo iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT

Permiterea rețelei interne să vorbească cu rețeaua externă

Rulați următoarea comandă pentru a permite rețelei interne (să spunem eth0) rețelei externe (să spunem eth1).

$ sudo iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT

Permiteți DNS de ieșire

Pentru a permite conexiuni DNS la serverul dvs., executați următoarea comandă.

$ iptables -A OUTPUT -p udp -o eth0 --dport 53 -j ACCEPT

$ iptables -A INPUT -p udp -i eth0 --sport 53 -j ACCEPT

Permiteți Rsycn dintr-o anumită rețea

Dacă utilizați comanda Rsync și doriți să o activați într-o anumită rețea, executați următoarea comandă.

iptables -A INPUT -i eth0 -p tcp -s 192.168.101.0/24 --dport 873 -m state --state NEW,ESTABLISHED -j ACCEPT

iptables -A OUTPUT -o eth0 -p tcp --sport 873 -m state --state ESTABLISHED -j ACCEPT

Blocare Port

Rulați următoarea comandă pentru a bloca un anumit port și orice solicitare primită.

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

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

Blocați traficul de ieșire către o anumită adresă IP

Puteți bloca traficul către orice adresă IP rulând următoarea comandă.

$ host -t a tipstrick.ro.com

#ieșire

tipstrick.ro.com are adresa 172.66.40.93

Pentru a bloca traficul de ieșire către acea anumită adresă IP, executați următoarea comandă.

iptables -A OUTPUT -d 72.66.40.93 -j DROP

În mod similar, puteți bloca și platformele de social media, cum ar fi Instagram, Twitter și Facebook.

Găsiți adresa IP a rețelei sociale rulând următoarea comandă:

$ host -t a social-media-web-adrress.com

De exemplu, pentru Instagram, ar fi:

$ host -t a www.instagram.com

Acum, va trebui să găsiți CIDR pentru adresa IP a acelei platforme de socializare.

$ whois 185.89.219.11 | grep CIDR

Notă: poate fi necesar să instalați pachetul whois rulând sudo apt-get install whois

Acum, introduceți valoarea CIDR în felul următor:

$ iptables - A OUTPUT -p tcp -d CIDR-value -j DROP

Notă: Asigurați-vă că modificați valoarea CIDR în consecință.

Permiteți sau blocați cererea de ping ICMP

Pentru a permite sau bloca solicitările ping ICMP, executați următoarele comenzi.

$ iptables -A INPUT -p icmp --icmp-type echo-request -j DROP

$ iptables -A INPUT -i eth1 -p icmp --icmp-type echo-request -j DROP

Deschideți o serie specială de porturi

Pentru a deschide o serie de porturi, executați următoarea comandă.

$ iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 8933: 8500 -j ACCEPT

Listează regulile NAT

Pentru a lista regulile NAT, executați următoarea comandă:

$ sudo iptables -t nat -L -n -v

Sau

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

Resetați contoarele de pachete

Pentru a verifica contorul curent iptables:

$ sudo iptables -L -n -v

Pentru a reseta sau a șterge contoarele, executați următoarele:

$ sudo iptables -Z

$ sudo iptables -L -n -v

Pentru a reseta numai contorul de lanț INPUT, rulați:

$ iptables -Z INPUT

Pentru a reseta un anumit număr de reguli, executați următoarele:

$ iptables -z INPUT RULE-NUMBER

Asigurați-vă că schimbați REGULA-NUMĂR cu regula respectivă.

Cuvinte finale

iptables este un utilitar puternic firewall de linie de comandă. Puteți configura aproape tot ce este legat de resursele de rețea, pachete, interfețe și scenarii particulare.

De asemenea, iptables oferă o mulțime de opțiuni. Consultați pagina principală folosind comanda man pentru a obține o imagine completă.

$ man iptables
$ man ip6tables

Apoi, verificați un firewall de rețea și cum ajută acesta să oprească atacurile.