Iptable è lo strumento di amministrazione per il filtraggio dei pacchetti IPv4 e NAT. Iptables viene utilizzato per impostare, mantenere e ispezionare le tabelle delle regole del filtro dei pacchetti IPv4 nel kernel Linux. Possono essere definite diverse tabelle. Ogni tabella contiene un numero di catene integrate e può anche contenere catene definite dall'utente. Ogni catena è un elenco di regole che possono corrispondere a un insieme di pacchetti. Ogni regola specifica cosa fare con un pacchetto che corrisponde. Questo è chiamato "target", che può essere un salto a una catena definita dall'utente nella stessa tabella.
Una regola del firewall specifica i criteri per un pacchetto e una destinazione. Se il pacchetto non corrisponde, la regola successiva nella catena è l'esaminato; se corrisponde, la regola successiva viene specificata dal valore del target, che può essere il nome di una catena definita dall'utente o uno dei valori speciali ACCEPT, DROP, QUEUE o RETURN.
- ACCETTO significa far passare il pacchetto.
- DROP significa far cadere il pacchetto sul pavimento
- CODA significa passare il pacchetto allo spazio utente
- RITORNO significa interrompere l'attraversamento di questa catena e riprendere alla regola successiva nella catena precedente.
Ci sono in totale 4 catene:
- INGRESSO - La catena predefinita viene utilizzata per i pacchetti indirizzati al sistema. Usalo per aprire o chiudere le porte in entrata e gli indirizzi IP/sottorete
- USCITA - La catena predefinita viene utilizzata quando i pacchetti vengono generati dal sistema. Usa questo per aprire o chiudere le porte in uscita e gli indirizzi IP/sottoreti
- AVANTI - Le catene predefinite vengono utilizzate quando i pacchetti vengono inviati tramite un'altra interfaccia. Solitamente usato quando configuri Linux come router
- RH-Firewall-1-INPUT - Questa è una catena personalizzata definita dall'utente. Viene utilizzato dalle catene INPUT, OUTPUT e FORWARD.
Installazione di Iptables
Possiamo installare iptables tramite il seguente comando.
[root@vpn ~]# yum install iptables -y
Controlla la versione di iptable:
[root@vpn ~]# iptables --version
iptables v1.3.5
Controlla lo stato di iptables:
[root@vpn ~]# service iptables status
Avvia iptables :
[root@vpn ~]# service iptables start
Flushing firewall rules: [ OK ]
Setting chains to policy ACCEPT: filter [ OK ]
Unloading iptables modules: [ OK ]
Per impostare iptables inizia all'avvio:
[root@vpn ~]# chkconfig iptables on
Il file di configurazione predefinito di CentOS è /etc/sysconfig/iptables. Sono gli script di sistema che attivano il firewall leggendo questo file
Regole Iptable
1) Reimposta tutte le regole (F) e le catene (X), necessarie se hai già definito le regole di iptables
#iptables -t filter -F
#iptables -t filter -X
2) Visualizza lo stato del firewall
#iptables -L -n -v
3) Blocco dei pacchetti nulli
#iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
4) Rifiuta l'attacco SYN -FLOOD
#iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
5) Rifiuta un pacchetto di ricognizione
#iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
6) Aggiunta dell'interfaccia localhost al filtro firewall
#iptables -A INPUT -i lo -j ACCEPT
7) Consenti il traffico del server web
#iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
#iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
8) Consenti agli utenti di utilizzare i server SMTP
#iptables -A INPUT -p tcp -m tcp --dport 25 -j ACCEPT
#iptables -A INPUT -p tcp -m tcp --dport 465 -j ACCEPT
9) Consenti agli utenti di leggere le email sul proprio server
consentire il traffico POP3
#iptables -A INPUT -p tcp -m tcp --dport 110 -j ACCEPT
#iptables -A INPUT -p tcp -m tcp --dport 995 -j ACCEPT
consentire il traffico POP3
#iptables -A INPUT -p tcp -m tcp --dport 143 -j ACCEPT
#iptables -A INPUT -p tcp -m tcp --dport 993 -j ACCEPT
10) Consenti traffico ssh
#iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
consentire il traffico alla porta SSH se proviene da una sorgente
#iptables -A INPUT -p tcp -s YOUR_IP_ADDRESS -m tcp --dport 22 -j ACCEPT
11) Consenti a tutte le connessioni in uscita stabilite di ricevere risposte dal server
#iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
12) Blocca un indirizzo IP
#iptables -A INPUT -s IP_ADDRESS -j DROP
13) Blocca una porta per un indirizzo IP specifico
#iptables -A INPUT -p tcp -s IP_ADDRESS --dport PORT -j DROP
14) Aprire una porta per un indirizzo IP specifico
#iptables -A INPUT -p tcp -s IP_ADDRESS --dport PORT -j ACCEPT
15) Consenti alla stampante un indirizzo IP specifico
#iptables -A INPUT -s IP_ADDRESS -p udp -m udp --dport 631 -j ACCEPT
16) Apri DNS
#iptables -A INPUT -m state --state NEW -p tcp --dport 53 -j ACCEPT
17) Apri la porta MySQL
#iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
18) Aprire un intervallo di porte (es:7000-7100)
#iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 7000:7100 -j ACCEPT
Dopo aver impostato tutte le regole, devi salvarle e riavviare iptables
#service iptables save
#service iptables restart