Exemples d’iptables (Català)

Actualitzat el diumenge, 19 juny, 2016

IPtables és un sistema de tallafocs vinculat a l’nucli de linux. A l’contrari del que pugui semblar unes iptables no són com un servidor que el vam iniciar o aturem, ha hagut alguna vulnerabilitat que a permès un DdoS, però sempre serà més efectiu que les aplicacions que escolten en determinat port TCP. Iptables aquesta integrat amb el nucli, és part de el sistema operatiu. Podem crear, modificar, esborrar tot tipus de regles, aquí proposarem uns exemples. A

Reset iptables tallafocs rules

iptables -P INPUT ACCEPTiptables -P FORWARD ACCEPTiptables -P OUTPUT ACCEPTiptables -Fiptables -t nat -F

Veure l’estat de la teva tallafocs i llistar regles a Type the following command as root:

iptables -L -n -viptables -n -L -v --line-numbers iptables -L INPUT -n -viptables -L OUTPUT -n -v --line-numbers

eliminar regles de Firewall

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

Es pot eliminar per nombre de regla

iptables -D INPUT 4

O especificar una regla que coincideixi

iptables -D INPUT -s 202.54.1.1 -j DROP

Establir les polítiques de tallafocs per defecte per eliminar tot el trànsit:

iptables -P INPUT DROPiptables -P OUTPUT DROPiptables -P FORWARD DROPiptables -L -v -n

Només a bloquejar el tràfic entrant

per eliminar tots els paquets entrants / enviat, però permetre el trànsit sortint, escriviu:

iptables -P INPUT DROPiptables -P FORWARD DROPiptables -P OUTPUT ACCEPTiptables -A INPUT -m state --state NEW,ESTABLISHED -j ACCEPTiptables -L -v -n

Eliminar adreces de xarxa privada a la interfície pública ( suposant eth1 com a interfície pública)

Bloquejar IP:

iptables -A INPUT -s 192.168.1.5 -j DROPiptables -A INPUT -s 192.114.71.13 -j DROP

Guardar regles:

iptables-save > /root/iptables.fw

En CentOS / RHEL / Fedora Linux,:

service iptables save

Restaurar regles :

iptables-restore < /root/iptables.fw

Restaura en CentOS / RHEL / Fedora Linux:

service iptables restart

Pots recarregar les regles automàticament a l’reiniciar el servidor:

vi /etc/rc.local
# Reload IPTABLES Rules automatically on restart/sbin/iptables-restore < /root/iptables.fw

En CentOS pots guardar les regles per recarregar-automàticament:

/etc/sysconfig/iptables

Permet tot el trànsit de loopback, i eliminar tot el trànsit a 127/8 que no fa servir lo0

iptables -A INPUT -i lo -j ACCEPTiptables -A INPUT ! -i lo -d 127.0.0.0/8 -j REJECT

Eliminar qualsevol paquet TCP que no s’ha iniciat amb el Flag SYN actiu

iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP

D’acord totes les connexions entrants establertes

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

Eliminar qualsevol paquet invàlid que no pugui ser identificat

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

Bloquejar trànsit a l’domini facebook.com, mirem la IP de facebook.com i després el seu rang de IPs

host -t a www.facebook.comwhois 69.171.228.40 | grep CIDR

Creem la regla per no permetre accés

iptables -A OUTPUT -p tcp -d 69.171.224.0/19 -j DROP

També per nom de domini, però no és 100% efectiu.

iptables -A OUTPUT -p tcp -d www.facebook.com -j DROPiptables -A OUTPUT -p tcp -d facebook.com -j DROP

Permetre connexions entrants a port 21 des d’una la IP 11.22.33.44

iptables -A INPUT -p tcp -m state --state NEW --dport 21 --source 11.22.33.44

Permet tot el trànsit entrant SSH

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

Permet SSH sortint

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

Permet tràfic 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

Permet HTTPS sortint.

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

Combinar regles amb multiport

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

Denegar totes les connexions entrants a port 21.

iptables -A INPUT -p tcp -m state --state NEW --dport 21 -j DROP

Eliminar la primera regla d’entrada

iptables -D INPUT 1

blo jar o Permetre sol·licitud d’ICMP Tennis

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:

### ** assumed that default INPUT policy setembre to DROP ** ######### #### iptables -A INPUT -p icmp -icmp-type echo-reply -j ACCEPT iptables -A INPUT -p icmp -icmp-type destination-unreachable -j ACCEPT iptables -A INPUT -p icmp -icmp-type time -exceeded -j ACCEPT a ## ** all our server to responia to pings ** ## iptables -A INPUT -p icmp -icmp-type echo-request -j ACCEPT

 Permitir ping de fuera hacia adentro

iptables -A INPUT -p icmp -icmp-type echo-request -j ACCEPT iptables -A OUTPUT -p icmp – icmp-type echo-reply -j ACCEPT

Permitir PING de dentro a fuera.

iptables -A OUTPUT -p icmp -icmp-type echo-request -j ACCEPT iptables -A INPUT – p icmp -icmp-type echo-reply -j ACCEPT

Permitir tráfico DNS saliente.

iptables -A OUTPUT -p udp -o eth0 -dport 53 -j ACCEPT iptables -A INPUT -p udp -i eth0 -Sport 53 -j ACCEPT

Abrir un rango de puertos de entrada

iptables -A INPUT -m state state NE W -m tcp -p tcp dport 7000: 7010 -j ACCEPT

Abrir un rango de IPs

## only accept connection to tcp port 80 (Apache) if ip is between 192.168 .1.100 and 192.168.1.200 ## iptables -A INPUT -p tcp destination-port 80 -m iprange src-range 192.168.1.100-192.168.1.200 -j ACCEPT

## nat example ## iptables – t nat -A POSTROUTING -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 entrada -p tcp syn dport 22 -m connlimit -connlimit-dalt 3 -j Rebutjar

Limitar el número de conexiones HTTP a 20:

iptables -p tcp syn duport 80 – M Connlimit Connlimit-A dalt 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 entrada -m mac -mac-font 00: 0f: ea: 91 : 04: 08 -V Drop
## * Només accepta trànsit per al port TCP # 22 de Mac 00: 0f: EA: 91: 04: 07 * ## iptables -a entrada -p tcpdestination-port 22 -m mac Mac-Font 00: 0f: EA: 91: 04: 07 -j accepta

%%%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 entrada -p tcp dport 80 -m límit límit 25 / Minut -Limit-Burst 100 -J accept

%%%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 prerouting -p tcp -d 192.168.102.37 dport 422 -j dnat a 192.168.102.37:22 Iptables -a entrada -i eth0 -p TCP DPort 422 -M State State New, establert -j accepta iptables -a sortida -o eth0 -P tcpsport 422 -m estat estatal establert -j accepta

Logar y eliminar paquetes:

iptables -a entrada -i eth1 -s 10.0.0.0/8 -j log-log-prefix ‘ip_spoof A: “iptables -a entrada -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 entrada -i eth1 -s 10.0.0.0/8 -M límit límit límit 5 / m limit-esclatar 7 – j Log-Log-Prefix “IP_SPOOF A:” IPTABLES -Un Entrada -i eth1 -s 10.0.0.0/8-D Drop

Sacar en el log los paquetes caídos.* Primero creamos una cadena llamada LOGGING:

iptables -n Registre

Luego todas las conexiones entrantes vayan por la cadena LOGGING

iptables -a entrada -j registre

iptables -a registre -m Límit límit 2 / min -j Log-log-prefix de registre de registre ‘iptables va caure: “-Log-Nivell 7

Y los bloqueamos:

iptables -a registre -j drops

%%%Listado de reglas ejemplo para puertos TCP/UDP comunes:* Replace ACCEPT with DROP to block port:

## Obrir port ssh tcp port 22 ## iptables -a entrada – m Estat Estat nou -m TCP -P TCP DPort 22 -C accepta iptables -a entrada -s 192.168.1.0/24 -M Estat Estat nou -P TCP DPort 22 -C accepta

## obre tasses (Servei d’impressió) UDP / TCP Port 631 per a usuaris de LAN ## iptables -a entrada -s 192.168.1.0/24 -P UDP -M UDP -DPORT 631 -JAc accepta iptables -a entrada -s 192.168.1.0/24 -P tcp -m tcp -dport 631 -j accept

## permetre Time Sync a través de NTP per a usuaris de LAN (Open UDP Port 123) ## iptables -a entrada -s 192.168.1.0/24 -M StatestaTate New -p UDP DPort 123 -J accepta

## obre el port TCP 25 (SMTP) Per a tots els ## iptables -a entrada -m Estat Estat nou -P TCP DPort 25 -C accepta

  1. Obriu els ports del servidor DNS per a tots ##

iptables -a entrada -m estat de l’estat nou -p udp dport 53 -j accepta iptables -a entrada -m estat estat nou -p tcpdport 53 -S accepta

## Obre http / https (Apache) Port de servidor a tots els ## iptables -a entrada -M Estat State New -p TCP DPort 80 -JAC accepta iptables -a entrada -M Estat Estat nou -P TCP DPort 443 -J accepta

## Obriu el port TCP 110 (POP3) per a tots els ## iptables -a entrada -M estat de l’estat nou -P TCP DPort 110 -j accepta

## Obriu el port TCP 143 (IMAP) per a tots ## iptables -a entrada -m estat estatal nou -P tcp dport 143 -j accepta

## accés obert a samba f Servidor d’Ile per a usuaris de LAN només ## iptables -a entrada -s 192.168.1.0/24 -m Estat Estat nou -P TCP DPort 137 -J accepta iptables -a entrada -s 192.168.1.0/24-State State State New -p TCP DPort 138 -Ac accepta iptables -a entrada -s 192.168.1.0/24 -M Estat Estat nou -P TCP DPort 139 -C accepta iptables -a entrada -s 192.168.1.12 -m State State State nou -p TCP DPort 445 -JAC accepta

## accés obert al servidor intermediari per a usuaris de LAN només ## iptables -a entrada -s 192.168.1.0/24 -M Estat Estat nou -P TCP DPort 3128 -J accept

## accés obert al servidor mySQL per a usuaris de lan només ## iptables -i entrada -p tcp -dport 3306 -j accepta ///

Deixa un comentari

L'adreça electrònica no es publicarà. Els camps necessaris estan marcats amb *