martes, 11 de septiembre de 2012

IPTABLES, FILTRO DE PAQUETES EN LINUX

QUE ES IPTABLES: Sistema de firewall vinculado en el kernel es parte del sistema operativo de linux anteriormente llamado Ipchains. para ponerlo en marcha creamos un script de shell. se ejecuta el comando iptables seguido de reglas. parecido a la creación de ACL se añade, se crea, se borra reglas.

GUIA RAPIDA.

iptables -A : añadir una regla
iptables -D :eliminar
iptables -L :para listar reglas que se están implementando
iptables -C : verifica una regla particular antes de añadirla
iptables -E :renombra una cadena, y no afecta la estructura de la misma
iptables -F . libera una cadena seleccionada
iptables -H :nos arroja un listado de estructura de comandos
iptables -I :inserta una regla en una cadena
iptables -N : crea una nueva cadena
iptables -P : configura politicas por defecto de una cadena
iptables -R :remplazar una regla en una cadena en particular


miremos un pequeño ejemplo. aceptar peticiones al puerto de www:80

iptables -A INPUT -i eth0 -s 0.0.0.0/0 -p TCP --dport www -j ACCEPT

iptable: comando para inicio cadena
-A: añadir la regla
INPUT: el estado del paquete
-i eth0:interfaz por la que se entra (se usa con las reglas INPUT,FORWARD)
-o eth0:interfaz por la que se sale. (se usa para las regla OUTPUT,FORWARD)
-s 0.0.0.0.0/0: dirección de acceso en este caso cualquiera
-p TCP: tipo de puerto
--dport : puerto destino
-j : destino del paquete (puede ser ACCEPT, DROP, REJECT)
-s:source address ej: 192.168.50.70/24
-d:destino ej 84.56.73.3
-p:tipo de protocolo (TCP.UDP.ICMP)
--sport:puerto de origen
--dport:puerto destino

por ahora son los parámetros que mas utilizaremos.
















primero haremos un flush de reglas

iptables -F
iptables -X
iptables -Z
iptables -t nat -f

##políticas por defecto

iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -p FORWARD DROP
iptables -t nat -p PREROUTING ACCEPT
iptables -t nat -p POSTROUTING ACCEPT

##COMO DENEGAMOS TODO AL PRINCIPIO AHORA EMPEZAREMOS A DAR PERMISOS PARA LOS PAQUETES.



















#permitir el localhost
 
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT















aceptamos el ping en nuestra maquina local, tanto de ingreso como de salida.


##FLUSH DE REGLAS
iptables -F
iptables -X
iptables -Z
iptables -t nat -F

##POLITICAS POR DEFECTO
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT

##AHORA VAMOS A PERMITIR PING A LOCALHOST. YA QUE POR DEFETO DENEGAMOS TODO
##VAMOS A EMPEZAR A DAR PERMISOS

##ESTRCUTURA PERMITIR LOCALHOST

iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT



##PERMITIR LA RED DEBIAN, SERVICIO WEB,DNS Y FTP
iptables -A INPUT -s 192.168.28.64/29 -j ACCEPT
iptables -A OUTPUT -d 192.168.28.64/29 -j ACCEPT

##AHORA DAREMOS PERMISOS PARA SSH Y FTP
##PERMITIR CONEXION SSH

iptables -A FORWARD -i eth0 -p tcp --sport 22 -o eth1 --dport 1024:65535 -j ACCEPT
iptables -A FORWARD -i eth1 -p tcp --sport 1024:65535 -o eth0 --dport 22 -j ACCEPT

##PARA LA WEB DINAMICO
iptables -A FORWARD -i eth0 -p tcp --sport 80 -o eth1 --dport 1024:65535 -j ACCEPT
iptables -A FORWARD -i eht1 -p tcp --sport 1024:65535 -o eth0 --dport 80 -j ACCEPT

iptables -A FORWARD -i eth0 -p tcp --sport 443 -o eth1 --dport 1024:65535 -j ACCEPT
iptables -A FORWARD -i eht1 -p tcp --sport 1024:65535 -o eth0 --dport 443 -j ACCEPT

##WEB ESTATICA
#iptables -A FORWARD -i eth0 -p tcp --sport 1024:65535 -o eth1 --dport 80 -j ACCEPT
#iptables -A FORWARD -i eht1 -p tcp --sport 80 -o eth0 --dport 1024:65535 -j ACCEPT


##PERMITIR DNS POR TCP
iptables -A FORWARD -i eth0 -p tcp --sport 53 -o eth1 --dport 1024:65535 -j ACCEPT
iptables -A FORWARD -i eth1 -p tcp --sport 1024:65535 -o eth0 --dport 53 -j ACCEPT


##PERMITIR DNS POR UDP
iptables -A FORWARD -i eth0 -p udp --sport 53 -o eth1 --dport 1024:65535 -j ACCEPT
iptables -A FORWARD -i eth1 -p udp --sport 1024:65535 -o eth0 --dport 53 -j ACCEPT

##REGLAS PARA NAT
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.28.64/29 -j MASQUERADE
##ACTIVAR EL REENVIADOR

echo 1 > /proc/sys/net/ipv4/ip_forward

##PREROUTING ENTRADA AL SERVIDOR

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to 192.168.28.66:80
iptables -t nat -A PREROUTING -s 192.168.50.86 -i eth0 -p tcp --dport 80 -j DNAT --to 192.168.28.66


iptables -A INPUT -s 192.168.50.0/24 -j ACCEPT
iptables -A OUTPUT -d 192.168.50.0/24 -j ACCEPT












No hay comentarios:

Publicar un comentario