Questo articolo fornisce alcune informazioni di base su come utilizzare iptables
firewall software. Questo firewall è la soluzione firewall predefinita per le distribuzioni basate su Red Hat® Enterprise Linux® (RHEL®) 6 e CentOS® 6.
Nota :i passaggi in questo articolo non sono destinati all'uso su server RackConnect®. Se devi apportare modifiche al firewall su un server RackConnect, devi utilizzare il tuo Dedicated Firewall Manager.
Prerequisiti
Devi avere i seguenti prerequisiti:
- Conoscenza di base di SecureShell® (SSH)
- Accesso sudo o amministrativo al tuo server
- Un server cloud non RackConnect che esegue RHEL 6 o CentOS 6.
Cos'è "iptables" e come funziona?
iptables
è la soluzione firewall software Linux predefinita. Usando il modulo del kernel netfilter, iptables
può gestire il traffico di rete in entrata e in uscita. iptables
utilizza le catene di regole configurate come parte di una tabella sul server. Una tabella raggruppa catene simili che svolgono un'attività specifica.
Tabelle, catene e regole
Ogni tabella ha una serie di catene predefinite. Questo articolo fa riferimento al filtro tabella, che contiene INPUT , AVANTI e USCITA Catene. Le regole in queste catene vengono lette ed elaborate dall'alto verso il basso.
-
INGRESSO :questa catena gestisce il traffico in entrata destinato al server.
-
AVANTI :questa catena gestisce il traffico che arriva al server ma è destinato a un altro dispositivo.
-
USCITA :questa catena viene utilizzata per i pacchetti in uscita che hanno origine sul server.
Target, azioni e filtri
La tabella seguente mostra alcuni obiettivi e azioni di base in iptables
quando il traffico viene inviato al server:
Nome | Descrizione |
---|---|
ACCETTO | Il traffico è accettato e non vengono elaborate ulteriori regole. |
DROP | Il pacchetto è bloccato e non vengono elaborate ulteriori regole. Nessuna risposta inviata al mittente. |
LOG | Le informazioni sul pacchetto vengono registrate sul server e iptables continua a elaborare le regole. |
RIFIUTA | Simile al pacchetto DROP, ma invia una risposta al mittente. |
Filtro | Cosa fa |
---|---|
-p (protocol) | Il protocollo del pacchetto. Il protocollo specificato può essere uno di tcp , udp , icmp o la parola chiave speciale all . |
-s, --source | L'indirizzo IP di origine del pacchetto. |
-d --destination | La destinazione del pacchetto. |
-sport | La porta di origine da abbinare. |
-dport | La porta di destinazione da abbinare. |
-i | L'interfaccia ricevuta dal pacchetto. |
L'anatomia di una regola
La seguente regola è un esempio di iptables
regola:
iptables -I INPUT -i eth0 -s 192.168.1.1 -p tcp --dport 22 -j ACCEPT
In questo esempio, il traffico proveniente dall'indirizzo IP di origine, 192.168.1.1
, sopra il tcp
il protocollo è accettato su eth0
interfaccia alla porta di destinazione 22
. Questa regola viene aggiunta in cima a INPUT
catena.
Come funzionano le regole "iptables"?
Un modo per limitare il traffico di rete in entrata e in uscita sul server consiste nell'implementare le regole del firewall. Su un server RHEL o CentOS 6, la soluzione firewall software predefinita è iptables
. iptables
ti consente di impostare una configurazione simile a quella di un firewall dedicato in esecuzione sul tuo server. Configura queste regole in una CHAIN
a seconda della regola. Questo articolo discute l'INPUT
chain, che è la catena predefinita per accettare il traffico tramite iptables
.
Abilita e verifica lo stato di "iptables"
Prima di aggiungere nuove regole in iptables
, dovresti verificare che il servizio sia in esecuzione ed elencare le regole correnti.
Per controllare lo stato di iptables
, esegui il comando seguente:
service iptables status
Dovresti ottenere un output che indica che il servizio è Active
sul server. In caso contrario, puoi avviare il servizio con service iptables start
comando.
Dopo l'avvio del servizio, puoi elencare le regole utilizzando il comando seguente:
iptables -L
Se non hai ancora configurato alcuna regola, l'output è simile al seguente esempio:
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
esempi di “iptables”
Gli esempi seguenti mostrano alcune regole in iptables
e la loro funzionalità all'interno di iptables
.
INSERT contro APPEND
Con iptables
, il -I
flag inserisce la regola in cima alla catena selezionata e il -A
flag aggiunge la nuova regola in fondo alla catena selezionata. Questo è importante perché le regole vengono lette dall'alto verso il basso. Pertanto, se c'è una regola in alto che blocca tutto il traffico in entrata e usi -A
per aggiungere una regola che accetta il traffico da un IP, la regola aggiunta viene bloccata dalla prima regola. Dovresti considerare la configurazione per determinare se -A
o -I
è l'opzione migliore per la modifica effettuata sul server. Rivedi sempre le regole attuali prima di apportare modifiche.
Una buona regola è aggiungere tutte le regole che finiscono con un drop e inserire tutte le regole che accettano un pacchetto.
Esempio di comando | Cosa fa |
---|---|
iptables -L | Questo comando elenca tutti gli iptables regole. |
iptables -L --line-numbers | Questo comando elenca tutti gli iptables regole e fornisce un numero di riga per ciascuna regola. |
iptables -D INPUT 2 | Se usato insieme a iptables -L --line-numbers , questo comando rimuove la seconda regola in INPUT catena. Questo è il metodo migliore per garantire la rimozione della regola corretta. |
iptables -A INPUT -m tcp -p tcp -s 12.345.67.89 --dport=22 -j DROP | Questa regola elimina il traffico sulla porta 22 dall'IP di origine attraverso la catena INPUT tramite TCP. Questa regola viene aggiunta in cima alla catena INPUT. |
iptables -A INPUT -s 12.345.67.89 -j DROP | Questa regola elimina tutte le connessioni in entrata dall'IP di origine. Questo esempio è aggiunto all'inizio di INPUT catena. |
iptables -D INPUT -m tcp -p tcp -s 12.345.67.89 --dport=22 -j ACCEPT | Questo comando cancella la regola specificata da INPUT tavolo. Puoi usare il -D contrassegna con qualsiasi catena o regola, ma ti consigliamo di rimuovere per numero di riga come mostrato sopra. |
iptables -I INPUT -m tcp -p tcp -s 12.345.67.89 --dport=22 -j ACCEPT | Questa regola accetta il traffico sulla porta 22 dall'IP di origine tramite INPUT catena tramite TCP. Questa regola è inserita in INPUT catena. |
iptables -I INPUT -s 12.345.67.89 -j ACCEPT | Questa regola accetta tutte le connessioni in entrata dall'IP di origine tramite qualsiasi protocollo su qualsiasi porta. Questa regola è inserita in INPUT catena. |
service iptables save | Per impostazione predefinita, iptables non fornisce persistenza. Questo comando ti permette di salvare le regole. |
service iptables reload | Questo comando ricarica il servizio iptables per consentire l'elaborazione di nuove regole. |
Ulteriori letture
Questo articolo tratta solo le basi di iptables
. Ci sono molte altre attività e regole che puoi configurare per limitare l'accesso al tuo server. Per ulteriori informazioni su iptables
, puoi rivedere il man
pagina per iptables su iptables - Pagina man di Linux.