Senza categoria

Oltre 25 comandi iptables più comuni con esempi

Se utilizzi Linux, hai molte opzioni per proteggere il tuo dispositivo. Viene fornito con iptables, un’utilità firewall a riga di comando che offre flessibilità e protezione eccellente.

Tuttavia, poiché si tratta di un’utilità della riga di comando, richiede una leggera curva di apprendimento.

Quindi, se sei un amministratore di sistema o uno studente di Linux, sei nel posto giusto mentre esaminiamo i comuni comandi iptables con esempi.

Cos’è iptables?

iptables è un firewall integrato Linux basato su software. Consente agli utenti Linux di creare o definire criteri che hanno un impatto diretto e indiretto sul traffico Internet.

Ciò significa che puoi utilizzare iptables per creare regole che bloccano o consentono il traffico tramite la porta, l’indirizzo IP di origine, le interfacce di rete e altro ancora.

Una volta definite le regole, tutto il traffico deve attraversarle. Quindi, ad esempio, per ogni nuova connessione, iptables verificherà eventuali regole predefinite che corrispondono alla connessione. In tal caso, applicherà la regola alla connessione. Tuttavia, se non ci sono regole applicabili associate, implementerà la regola predefinita.

Per utilizzare iptables, è necessario utilizzare il seguente comando.

$ iptables -L -n -v 

Qui, i parametri sono i seguenti:

  • -L serve per elencare tutte le regole.
  • -n fa in modo che l’output numerico offra prestazioni più veloci.
  • -v per mostrare l’output in formato dettagliato.

Una volta eseguito il comando iptables senza alcun parametro, restituirà il seguente output:

iptables v1.8.7 (nf_tables): no command specified

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

È necessario installarlo se si verifica un errore, ad esempio il comando “iptables” non trovato.

Per installare iptables nella tua distribuzione Linux, esegui il seguente comando.

$ sudo apt-get install iptables

Restituirà quanto segue poiché è già preinstallato sulla mia distribuzione 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.

Che cos’è Firewall?

I firewall sono la forma più elementare di protezione di sistemi, reti e personal computer. Può essere basato su hardware o software, basandosi su regole per funzionare correttamente.

La maggior parte dei firewall è altamente personalizzabile, consentendo di creare o modificare regole. Ad esempio, poiché i pacchetti provenienti da Internet utilizzano le porte per entrare in un sistema, la scansione basata sulle porte può aiutarti a filtrarli. Oltre a ciò, puoi anche consentire o bloccare i servizi in base all’indirizzo IP di origine o all’interfaccia di rete.

Se stai usando Linux, hai accesso a iptables integrato. Tuttavia, puoi anche utilizzare un firewall Linux autonomo per aiutarti nel processo di protezione del tuo sistema.

Perché hai bisogno di iptables per configurare il firewall?

Ma perché dovresti usare iptables? Dopotutto, ci sono buone utilità firewall alternative da riga di comando come ufw e firewalld. Inoltre, puoi utilizzare firewall Linux autonomi che sono semplici da usare e offrono più funzionalità.

Quindi, cosa rende iptables così attraente quando si configura un firewall? I motivi per usarlo includono:

  • Offre un’eccellente flessibilità fuori dagli schemi. È possibile impostare regole a livello di pacchetto.
  • È relativamente facile da usare una volta che sai come funziona.
  • Blocca il traffico indesiderato in modo semplice.
  • Reindirizza i pacchetti a un indirizzo IP alternativo.
  • Proteggi i tuoi sistemi dagli attacchi Denial of Service (DoS).

E altro ancora!

Comprensione dell’architettura di iptables e della sua relazione con Netfilter

Per comprendere correttamente iptables, dobbiamo conoscere la loro architettura. Innanzitutto, ci darà una chiara comprensione dei diversi componenti di iptables. Quindi, una volta che conosciamo ciascuno di essi, possiamo usarli per scrivere regole del firewall.

E, quando parliamo di iptables, entra in scena anche Netfilter. Puoi pensare a “Netfilter” come a un fratello maggiore di iptables. Si basa su iptables e offre un set di funzionalità migliore per gestire il tuo firewall. Tuttavia, utilizza iptables come uno dei mezzi per ottenere eccellenti capacità di firewall.

Iptables è un’interfaccia a riga di comando per gli hook a livello di kernel di Netfilter. Questi hook possono interagire con lo stack di rete Linux, che influisce sui pacchetti al livello più profondo.

Quindi, che aspetto ha l’architettura di iptables:

Tabelle

L’architettura di iptables inizia con le tabelle. Queste tabelle si occupano dell’organizzazione delle regole. E ogni tavolo è classificato in base al tipo di decisione che stanno prendendo. In termini più semplici, una tabella semplifica l’elaborazione complessiva dei pacchetti allegando un modo specifico per elaborare i pacchetti.

Le diverse tabelle offerte da iptables includono:

  • Tabella dei filtri: specifica il tipo di decisione per il filtraggio dei pacchetti. In termini semplici, determina se un pacco deve raggiungere o meno la sua destinazione.
  • Tabella NAT: specifica il tipo di decisione per la traduzione degli indirizzi. Qui, l’instradamento dei pacchetti viene determinato in base alle reti NAT. Ad esempio, se un pacchetto non può accedere a NAT, salterà e proverà a cercare una rete non NAT.
  • Tabella Mangle: gestisce le esigenze di elaborazione speciali del pacchetto. Ad esempio, puoi configurarlo per modificare le informazioni di intestazione del pacchetto, come i valori TTL.
  • Tabella grezza: la tabella grezza ti consente di lavorare diligentemente con l’aspetto stateful del firewall iptables. Usando la tabella, puoi instradare i pacchetti in base al loro “stato” prima che il kernel di Linux inizi a tracciarne lo stato. Viene utilizzato principalmente per contrassegnare i pacchetti, indipendentemente dal fatto che il sistema di tracciamento della connessione li gestisca o meno. Se un pacchetto non viene tracciato, viene impostato su NOTRACK target.

Catene

E, poi, abbiamo “catene” all’interno di “tabelle”.

Queste catene gestiscono l’ispezione approfondita dei pacchetti in diverse fasi del loro viaggio. Ad esempio, puoi ispezionarli quando raggiunge una porta o un’interfaccia di rete. In questo modo, è possibile prendere una decisione prima che il pacchetto venga rilasciato al processo di un sistema.

Proprio come i tavoli, ottieni anche catene diverse. Questi includono:

  • Catena PREROUTING: qui le regole gestiscono i pacchetti appena arrivati ​​all’interfaccia di rete.
  • Catena INPUT: le regole menzionate nella catena INPUT gestiscono il comportamento della connessione in entrata. Una volta fatto, vengono dati al processo locale.
  • Catena OUTPUT: la catena OUTPUT si occupa dei pacchetti prodotti dai processi.
  • Catena FORWARD: la catena FORWARD gestisce i pacchetti non destinati ai sistemi locali. È un vettore per altri sistemi destinati, come un router.
  • Catena POSTROUTING: Infine, abbiamo la catena POSTROUTING, che si occupa dei pacchetti in partenza attraverso l’interfaccia di rete.

Non tutte le catene sono disponibili in ogni tabella. Ad esempio, la catena FORWARD è disponibile solo nelle tabelle mangle, filter e security. Allo stesso modo, la catena POSTROUTING è disponibile su mangle e nat (SNAT). In tutte le tabelle è disponibile solo la catena OUTPUT.

Bersaglio

Ora abbiamo un “bersaglio”. Una volta che un pacco arriva, si sposta attraverso le catene per vedere quale descrizione della regola si adatta meglio. Se corrisponde alla descrizione di una regola, esegue l’azione associata basata su di essa e quindi la sposta sulla destinazione, segnando il destino del pacchetto.

In molti casi, un pacchetto non corrisponde a nessuna descrizione o set di regole. Ed è qui che entra in gioco la politica predefinita, un obiettivo.

Gli obiettivi possono essere ACCEPT, DROP e REJECT. Questi sono obiettivi di terminazione che decidono il destino del pacchetto.

  • ACCETTA: Accetta i pacchetti.
  • DROP: rilascia il pacchetto, impedendo al mittente di sapere se il sistema è presente o meno.
  • REJECT: rifiuta il pacchetto.

Esistono anche obiettivi non terminanti che vengono utilizzati principalmente per memorizzare informazioni sul pacchetto.

Comandi iptables più comuni con esempi

Prima di saltare e iniziare a eseguire il comando iptables, assicurati che:

  • Hai accesso amministrativo per eseguire i comandi. Se il comando non riesce a causa dei privilegi di amministratore, eseguire nuovamente il comando con il comando sudo davanti.
  • L’articolo non è un tutorial su come configurare iptables su Ubuntu.
  • Useremo il comando iptables che funziona con IPv4. Se intendi lavorare con IPv6, dovrai invece utilizzare ip6tables.

Controllo dello stato di iptables

Per verificare lo stato corrente di iptables, è necessario eseguire il seguente comando.

$ 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

L’output sopra contiene molte informazioni. Tuttavia, suggerisce anche un firewall inattivo. Questo perché, attualmente, tutte le catene sono impostate su ACCETTA e non hanno regole.

Dovrai iniziare ad aggiungere regole per attivare il firewall.

Aggiunta di regole alla catena

Quando aggiungi una regola, questa viene sempre accodata alla catena. Pertanto, è necessario utilizzare l’opzione -A (Aggiungi). La sintassi per esso è la seguente:

$ sudo iptables - A

Tuttavia, quando lo esegui, restituirà quanto segue:

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

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

Gli argomenti che puoi utilizzare per aggiungere regole sono:

  • – i: Sta per l’interfaccia. Qui puoi menzionare l’interfaccia per la quale stai aggiungendo le regole. Può essere ppp0, eth0 e così via.
  • – p: Sta per protocollo. Qui menzioni la regola per utilizzare un protocollo di rete per filtrare i packer. Ad esempio, puoi dire ICMP, TCP, UDP, ecc. Se vuoi che la regola funzioni su tutti i protocolli, menziona “all” come valore dell’argomento.
  • – s: segue l’argomento source, che menziona l’origine del traffico (come l’indirizzo IP o il nome host)
  • – dport: il dport sta per la porta di destinazione, dove si menziona il numero di porta a cui è destinato il pacchetto.
  • – j: Infine, abbiamo un argomento TARGET in cui puoi menzionare il nome TARGET, ACCEPT, DROP o RETURN

È inoltre essenziale scrivere il comando nel seguente ordine:

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

Salvataggio delle modifiche a iptables

Dopo aver aggiunto una regola, puoi salvarla con il comando iptables -save.

$ sudo iptables -save

L’output è il seguente:

[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

Regole persistenti manualmente

Per impostazione predefinita, iptables non salva le regole. Quindi, se riavvii il computer, rimuoverà tutte le regole. Dovrai utilizzare i seguenti comandi per assicurarti di non dover riconfigurare iptables.

Per le regole IPv4, scrivi il comando:

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

E per le regole IPv6, scrivi il comando:

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

Regole persistenti automaticamente

Per rendere le regole persistenti anche dopo un riavvio, e anche questo automaticamente, dovrai installare il pacchetto iptables-presistent.

Per fare ciò, eseguire il seguente comando.

$ sudo apt-get install iptables-persistent

Si aprirà la seguente finestra. Premere Invio su .

Poiché stiamo lavorando con la tabella IPv4, mostrerà solo le regole IPv4. Se stai lavorando su IPv6, mostrerà la finestra pertinente.

Nota: il pacchetto carica solo le regole di iptables salvate. Quindi, ogni volta che cambi iptables, dovrai salvarlo con il comando iptables -save.

Regole di ricarica dopo il riavvio

Una volta salvate le regole, è necessario ripristinarle con il seguente comando.

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

E

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

Abilitazione del traffico su Localhost / Abilitazione del loopback

Per abilitare il traffico su Localhost, utilizzare il seguente comando:

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

Qui, lo sta per l’interfaccia di loopback per tutte le comunicazioni localhost.

Allo stesso modo, possiamo consentire ai pacchetti di partire attraverso l’interfaccia di loopback.

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

Per verificare come ha cambiato le regole, esegui 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

Abilitazione del traffico su porte particolari

È possibile abilitare il traffico da ACCETTARE o RIFIUTARE su determinate porte.

Ad esempio, le porte SSL, HTTP e SSH sono importanti per il normale funzionamento delle tue app. È possibile aggiungere regole al pacchetto ACCEPT tramite i numeri di porta per assicurarsi che funzionino come previsto.

Per SSL, eseguire il seguente comando.

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

Per HTTPS, eseguire il seguente comando.

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

Per consentire tutto il traffico HTTPS sull’interfaccia 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

Per SSH, eseguire il seguente comando.

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

E per accettare TUTTO il traffico SSH in entrata sull’interfaccia eth0, esegui quanto segue:

$ 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 altro esempio potrebbe essere l’abilitazione del traffico portuale su una porta specifica per la tua app personalizzata. Diciamo la porta 233.

Per aprire le connessioni su quella porta, esegui.

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

Allo stesso modo, puoi anche disabilitare le connessioni su una particolare porta utilizzando l’opzione di destinazione REJECT.

Blocchiamo tutte le connessioni alla porta 392.

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

Per verificare, eseguire il comando 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

Elimina regole esistenti

Per eliminare le regole esistenti, dovrai eseguire il seguente comando.

$ iptables -F

O

$ iptables --flush

Nota: se non hai salvato le regole, sono perse per sempre e non possono essere ripristinate utilizzando iptables -restore

Elimina regole con numeri di riga

Per eliminare una regola specifica, dovrai ottenere l’elenco delle regole con i numeri.

$ 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

Eseguire il seguente comando se si desidera rimuovere la regola numero 4 per la catena INPUT.

$ sudo iptables -D INPUT 4

E, se esegui nuovamente il comando 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

Visualizza solo le regole della catena INPUT o OUTPUT

Per visualizzare solo le regole della catena INPUT, eseguire il seguente comando.

$ 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

Allo stesso modo, se vuoi vedere solo le regole della catena OUTPUT, esegui:

$ 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

Avvia/arresta/riavvia il firewall

Se utilizzi RHEL/Fedora Linux o CentOS, puoi avviare/arrestare o riavviare il firewall eseguendo i comandi.

$ service iptables stop

$ service iptables start

$ service iptables restart

Puoi anche usare il comando systemctl.

Tuttavia, non funzionerà su Ubuntu.

Inserisci le regole in un luogo specifico

Se si desidera inserire regole in una posizione specifica, è necessario utilizzare i seguenti comandi.

Innanzitutto, controlla le regole.

$ 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

Eseguire il seguente comando se si desidera inserire regole tra 2 e 3.

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

Ora controlla le regole aggiornate.

#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

Blocca il traffico in entrata ma consenti il ​​traffico in uscita

Dovrai inserire il seguente comando per bloccare tutto il traffico in entrata.

$ 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

In questo modo, puoi eseguire il ping o scaricare pacchetti ma bloccare qualsiasi traffico in entrata sconosciuto.

Blocca un particolare indirizzo IP

Per bloccare un indirizzo IP specifico, eseguire il seguente comando.

$ iptables -A INPUT -s 14.23.59.9 -J DROP

È inoltre possibile definire una variabile per memorizzare l’indirizzo IP bloccato e quindi eseguire il comando.

BLOCK_THE_IP = “a.b.c.d”

E poi esegui:

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

Nota: cambia “abcd” con il tuo indirizzo IP preferito.

Consentire il ping del sistema dall’esterno

Puoi convincere gli utenti esterni a eseguire il ping del tuo server per rendere la tua rete rilevabile.

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

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

Consentire alla rete interna di comunicare con la rete esterna

Esegui il seguente comando per consentire la rete interna (diciamo eth0) alla rete esterna (diciamo eth1).

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

Consenti DNS in uscita

Per consentire le connessioni DNS al tuo server, esegui il seguente comando.

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

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

Consenti Rsycn da una rete specifica

Se usi il comando Rsync e desideri abilitarlo su una rete specifica, esegui il comando seguente.

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

Blocco Porta

Eseguire il seguente comando per bloccare una porta specifica e qualsiasi richiesta in arrivo.

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

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

Blocca il traffico in uscita verso un particolare indirizzo IP

Puoi bloccare il traffico verso qualsiasi indirizzo IP eseguendo il seguente comando.

$ host -t a winadmin.it.com

#produzione

winadmin.it.com ha un indirizzo di 172.66.40.93

Per bloccare il traffico in uscita verso quel particolare indirizzo IP, eseguire il seguente comando.

iptables -A OUTPUT -d 72.66.40.93 -j DROP

Allo stesso modo, puoi anche bloccare piattaforme di social media come Instagram, Twitter e Facebook.

Trova l’indirizzo IP del social media eseguendo il seguente comando:

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

Ad esempio, per Instagram, sarebbe:

$ host -t a www.instagram.com

Ora dovrai trovare CIDR per l’indirizzo IP di quella particolare piattaforma di social media.

$ whois 185.89.219.11 | grep CIDR

Nota: potrebbe essere necessario installare il pacchetto whois eseguendo sudo apt-get install whois

Ora, inserisci il valore CIDR nel modo seguente:

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

Nota: assicurati di modificare il valore CIDR di conseguenza.

Consenti o blocca richiesta ping ICMP

Per consentire o bloccare le richieste ping ICMP, eseguire i seguenti comandi.

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

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

Apri una particolare gamma di porte

Per aprire un intervallo di porte, eseguire il seguente comando.

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

Elenca le regole NAT

Per elencare le regole NAT, eseguire il seguente comando:

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

O

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

Azzera i contatori dei pacchi

Per controllare il contatore iptables corrente:

$ sudo iptables -L -n -v

Per reimpostare o cancellare i contatori, eseguire quanto segue:

$ sudo iptables -Z

$ sudo iptables -L -n -v

Per azzerare solo il contacatena INPUT, eseguire:

$ iptables -Z INPUT

Per reimpostare un particolare contatore di regole, eseguire quanto segue:

$ iptables -z INPUT RULE-NUMBER

Assicurati di cambiare RULE-NUMBER in quella particolare regola.

Parole finali

iptables è una potente utility della riga di comando del firewall. Puoi configurare quasi tutto ciò che riguarda risorse di rete, pacchetti, interfacce e scenari particolari.

Inoltre, iptables offre molte opzioni. Controlla la sua pagina principale usando il comando man per ottenere il quadro completo.

$ man iptables
$ man ip6tables

Successivamente, controlla un firewall di rete e come aiuta a fermare gli attacchi.