Aggiornato domenica 19 giugno 2016
iptables è un sistema firewall collegato al kernel Linux. Contrariamente a ciò che può sembrare Iptables non è come un server che lo avvizziamo o si fermiamo, c’è stata una vulnerabilità che un DDOS consentito, ma sarà sempre più efficace delle applicazioni che ascoltano in una determinata porta TCP. Iptable è integrato con il kernel, fa parte del sistema operativo. Possiamo creare, modificare, eliminare tutti i tipi di regole, qui proponiamo alcuni esempi.
Reset Iptables firewall Regole
iptables -P INPUT ACCEPTiptables -P FORWARD ACCEPTiptables -P OUTPUT ACCEPTiptables -Fiptables -t nat -F
Visualizza lo stato delle regole del firewall e della lista
digitare il seguente comando come root:
iptables -L -n -viptables -n -L -v --line-numbers iptables -L INPUT -n -viptables -L OUTPUT -n -v --line-numbers
le regole del firewall Elimina
iptables -L INPUT -n --line-numbersiptables -L OUTPUT -n --line-numbersiptables -L OUTPUT -n --line-numbers | lessiptables -L OUTPUT -n --line-numbers | grep 202.54.1.1
può essere cancellato dallo regola numero
iptables -D INPUT 4
o specificare una regola che le partite
iptables -D INPUT -s 202.54.1.1 -j DROP
impostare i criteri del firewall di default Per eliminare tutto il traffico:
iptables -P INPUT DROPiptables -P OUTPUT DROPiptables -P FORWARD DROPiptables -L -v -n
solo bloccare il traffico in entrata
Per eliminare tutti i pacchetti in entrata / Inviati, ma consentire il traffico in uscita, tipo :
iptables -P INPUT DROPiptables -P FORWARD DROPiptables -P OUTPUT ACCEPTiptables -A INPUT -m state --state NEW,ESTABLISHED -j ACCEPTiptables -L -v -n
indirizzi di rete privata eliminare nella interfaccia pubblica (Assumendo ETH1 come pubblico Interfaccia)
Blocca IP:
Salva regole:
iptables-save > /root/iptables.fw
in Centos / Rhel / Fedora Linux,:
Regole Ripristina :
iptables-restore < /root/iptables.fw
Ripristina in Centos / Rhel / Fedora Linux:
service iptables restart
Puoi ricaricare le regole automaticamente al riavvio del server:
vi /etc/rc.local
# Reload IPTABLES Rules automatically on restart/sbin/iptables-restore < /root/iptables.fw
In CentOS è possibile salvare le regole per ricaricarle automaticamente:
/etc/sysconfig/iptables
Consenti tutto il traffico di loopback, ed eliminare tutto il traffico a 127/8 che non utilizza lo0
iptables -A INPUT -i lo -j ACCEPTiptables -A INPUT ! -i lo -d 127.0.0.0/8 -j REJECT
Elimina qualsiasi pacchetto TCP che non è stato avviato con il flag SYN attivo
iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
accettare tutte le connessioni in entrata stabilite
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
Rimuovi qualsiasi pacchetto non valido che non può essere Identificato
iptables -A INPUT -m state --state INVALID -j DROPDrop all inbound telnet trafficiptables -I INPUT -p tcp --dport 23 -j DROPDrop all outbound web trafficiptables -I OUTPUT -p tcp --dport 80 -j DROPDrop all outbound traffic to 192.168.0.1iptables -I OUTPUT -p tcp --dest 192.168.0.1 -j DROPAllow all inbound web trafficiptables -I INPUT -p tcp --dport 80 -j ACCEPTAllow inbound port traffic for localhostiptables -I INPUT -s 12.0.0.1 -p tcp --dport 2003 -j ACCEPTAllow inbound HTTPS traffic from 10.2.2.4iptables -I INPUT -s 10.2.2.4 -p tcp -m tcp --dport 443 -j DROPDeny outbound traffic to 192.2.4.0-192.2.4.255iptables -I OUTPUT -d 192.2.4.6.0/24 -j DROP
il traffico Blocca al dominio Facebook.com, si cerca nella IP di Facebook.com e poi i tuoi IPS varia
host -t a www.facebook.comwhois 69.171.228.40 | grep CIDR
creare la regola di non permettere l’accesso
iptables -A OUTPUT -p tcp -d 69.171.224.0/19 -j DROP
anche dal nome di dominio, ma non è efficace al 100%.
iptables -A OUTPUT -p tcp -d www.facebook.com -j DROPiptables -A OUTPUT -p tcp -d facebook.com -j DROP
Consenti connessioni in ingresso sulla porta 21 da un 11.22.33.44 IP
iptables -A INPUT -p tcp -m state --state NEW --dport 21 --source 11.22.33.44
Consenti tutto SSH traffico in entrata
iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPTiptables -A OUTPUT -o eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
Consenti SSH in uscita
iptables -A OUTPUT -o eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPTiptables -A INPUT -i eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
Consenti traffico HTTP
iptables -A INPUT -i eth0 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPTiptables -A OUTPUT -o eth0 -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT
Consenti in uscita HTTPS.
iptables -A OUTPUT -o eth0 -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPTiptables -A INPUT -i eth0 -p tcp --sport 443 -m state --state ESTABLISHED -j ACCEPT
Unire regole con multipport
iptables -A INPUT -i eth0 -p tcp -m multiport --dports 22,80,443 -m state --state NEW,ESTABLISHED -j ACCEPTiptables -A OUTPUT -o eth0 -p tcp -m multiport --sports 22,80,443 -m state --state ESTABLISHED -j ACCEPT
Nega tutte le connessioni in ingresso sulla porta 21.
iptables -A INPUT -p tcp -m state --state NEW --dport 21 -j DROP
Elimina la prima regola di ingresso
fioritura Quear o consentire ICMP richiesta ping
iptables -A INPUT -p icmp --icmp-type echo-request -j DROPiptables -A INPUT -i eth1 -p icmp --icmp-type echo-request -j DROP iptables -A INPUT -s 192.168.1.0/24 -p icmp --icmp-type echo-request -j ACCEPT/// A continuación sólo acepta tipo limitado de peticiones ICMP:
### ** presume che la politica di input predefinita destinato a ridursi ** ######## ## ## IPTABLES -A INPUT -P ICMP -ICMP-TYPE echo-reply -j ACCEPT IPTABLES -A INPUT -P ICMP -ICMP-TYPE DESTATION-UNREACHABLE -j ACCEPT IPTABLES -A INPUT -P ICMP -ICMP-TYPE TEMPO -Exceeded -j ACCEPT
## ** Tutto il nostro server per rispondere ai ping ** ## iptables -A ingresso -p ICMP -ICMP-TYPE echo-request -j ACCEPT
iptables -A ingresso -p ICMP -ICMP-TYPE echo-request -j ACCEPT iPTABLES -A OUTPUT -P ICMP – ICMP- TIPO echo-reply -j ACCEPT
Permitir PING de dentro a fuera.
iptables -a uscita -p ICMP -ICMP-TYPE echo-request -j ACCEPT iptables -A ingresso – P ICMP -ICMP-TYPE echo-reply -j ACCEPT
Permitir tráfico DNS saliente.
iptables -a uscita -P UDP -O ETH0 -DPORT 53 -j ACCEPT iptables -A INPUT – P udp -i eth0 -sport 53 -j accetta
Abrir un rango de puertos de entrada
iptables -a input -m status state ne W -M TCP -P TCP DPT 7000: 7010 -J Accetta
Abrir un rango de IPs
## Accetta solo la connessione a TCP Port 80 (Apache) IP è tra 192.168 .1.100 e 192.168.1.200 ## Iptables -a input -P -P -P TCP Destinazione-Porta 80 -M Iprange src-range 192.168.1.100-192.168.1.200 -J accetta
## Esempio NAT ## Iptables – T na nat -a postruruting -j snat -to-source 192.168.1.20-192.168.1.25
%%%Restringir el número de conexiones concurrentes a un servidor por IP%%%Puedes utilizar el módulo connlimit para crear estas restricciones. Permitir 3 conexiones SSH por cliente:
iptables -a ingresso -P TCP SYN DPORT 22 -M Connlimit -connlimit-sopra 3 -J Rifiuta
Limitar el número de conexiones HTTP a 20:
iptables -p TCP Syn Dport 80 – M ConnLimit Connlimit-sopra 20 Connlimit-Mask 24 -J Drop
Donde:* --connlimit-above 3 : Match if the number of existing connections is above 3.* --connlimit-mask 24 : Group hosts using the prefix length. For IPv4, this must be a number between (including) 0 and 32.%%%Eliminar o aceptar paquetes desde una MAC Address
Iptables -a Input -m Mac -Mac-source 00: 0F: EA: 91 : 04: 08 -j Drop
## * Accetta solo il traffico per la porta TCP # 22 da Mac 00: 0F: EA: 91: 04: 07 * ## Iptables -a Input -p TcpDestination-Port 22 -m Mac MAC-Sorgente 00: 0F: EA: 91: 04: 07 -J Accetta
%%%Prevenir ataques DoS* -Limit 25/minute : Limita a sólo 25 conexiones por minuto.* -Limit-burst 100: Indica que el valor de limit/minute será forzado sólo después del número de conexiones en este nivel
Iptables -a Input -P -P TCP DPORT 80 -M Limit 25 / minuto -limit-burst 100 -j accetta
%%%Permitir redirección de puertos.* Ejemplo puerto 422 redirigimos al 22, con lo que podemos tener conexiones al puerto 22 y al puerto 422 por ssh.
iptables -t nat -a prereuting -p tcp -d 192.168.102.37 DPORT 422 -J DNAT a 192.168.102.37:22 Iptables -a input -i eth0 -p TCP DPORT 422 -M State State Nuovo, Fondata -J Accetta Iptables -a Uscita -O ETH0 -P TCPSport 422 -M State State Fined -J accetta
Logar y eliminar paquetes:
iptables -a input -i eth1 -s 10.0.0.0/8 -j registro -log-prefisso “ip_spoof A:” iptables -a input -i eth1 -s 10.0.0.0 / 8 -J Drop
Logar y eliminar paquetes limitando el número de entradas repetidas en el LOG
Iptables -a Input -I -I ETH1 -S 10.0.0/8 -m Limite limite 5 / M Limit-Brush 7 – j log -log-prefisso “ip_spoof a:” iptables -a ingresso -i eth1 -s 10.0.0.0/8 -j Drop
Sacar en el log los paquetes caídos.* Primero creamos una cadena llamada LOGGING:
iptables -n Registrazione
Luego todas las conexiones entrantes vayan por la cadena LOGGING
iptables -a ingresso -J logging
iptables -a logging -m limite limite 2 / min -j log-prefisso “Iptables Packet Dropped:” -log-level 7
Y los bloqueamos:
iptables -a logging -j Drop
%%%Listado de reglas ejemplo para puertos TCP/UDP comunes:* Replace ACCEPT with DROP to block port:
## Apri Porta SSH TCP Porta 22 ## Iptables -a Input – m State State New -m TCP -P TCP DPORT 22 -J Accetta Iptables -A Input -s 192.168.1.0/24 -m State State New -P TCP DPORT 22 -J ACCETTO
## APERTA CUPS (Servizio di stampa) PORTA UDP / TCP 631 per utenti LAN ## iptables -a input -s 192.168.1.0/24 -P UDP -M UDP -Dport 631 -J Accetta Iptables -A Input -s 192.168.1.0/24 -P TCP -M TCP -Dport 631 -J Accetta
## Consenti Time Sync Via NTP per utenti LAN (Apri PORT UDP 123) ## Iptables -a Input -s -s 192.168.1.0/24 -M StatoState New -P UDP Dport 123 -J Accetta
## Apri la porta TCP 25 (SMTP) per tutti ## Iptables -a Input -M State State New -P TCP Dport 25 -J Accetta
- Apri porte del server DNS per tutti ##
Iptables -a Input -M State State New -P UDP Dport 53 -J Accetta Iptables -A Input -M State State New -P TCPDport 53 -J Accetta
## Apri http / https (Apache) Porta server a tutti ## iptables -a Input -M State State New -P TCP Dport 80 -J Accetta Iptables -A Input -M State State New -P TCP Dport 443 -J Accetta
## Apri TCP Port 110 (POP3) per tutti ## iptables -a Input -m State State New -P TCP Dport 110 -J Accetta
## Apri la porta TCP 143 (IMAP) per tutti ## Porta TCP iptables -a input -m State State New -P TCP Dport 143 -J Accetta
## Aprire l’accesso a Samba f Ile Server per gli utenti LAN solo ## Iptables -a Input -s -s 192.168.1.0/24 -m State State New -P TCP Dport 137 -J Accetta Iptables -A Input -s 192.168.1.0/24 -m State State New -P TCP DPORT 138 -J Accetta Iptables -a input -s -s 192.168.1.0/24 -m State State New -P TCP Dport 139 -J Accetta iptables -A Input -s 192.168.1.0/24 -m State State New -P TCP Dport 445 -J Accetta
## Aprire l’accesso al server proxy solo per gli utenti LAN solo ## iptables -a input -s -s 192.168.1.0/24 -m State State New -P TCP Dport 3128 -J Accetta
## Aprire l’accesso a MySQL Server per gli utenti LAN Solo ## Iptables -i Input -P TCP -Dport 3306 -J Accetta ///