iptables básico
Iptables es un sistema de firewall integrado en el núcleo de Linux, para configurarlo basta con crear un script con las regla necesarias. Vamos a ver una configuración muy básica de iptables y como crear el script.
Decir que ante la configuración de un firewall podemos adoptar dos políticas de seguridad por defecto:
- Denegar todo y aplicar reglas específicas para permitir lo estrictamente necesario (recomendado, más seguro)
- Aceptar todo y denegar determinadas cosas que consideremos peligrosas o que no nos convienen. (poco seguro)
- MANGLE
- NAT: prerouting, postrouting
- FILTER: input (paquete entrante a la máquina), output ( paquete saliente), forward (paquete destinado a otra máquina)
- ACCEPT (aceptar)
- DROP (descartar)
- REJECT (rechazar, igual que drop pero envía un paquete de error a quien envió originalmente)
- ...
iptables -F
iptables -X
iptables -Z
iptables -t nat -F
Después aplicamos la política por defecto, en este caso elegimos la política de "denegar todo":
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
iptables -t nat -P POSTROUTING DROP
iptables -t nat -P PREROUTING DROP
Añadimos reglas de filtrado, este es el esquema de una regla de filtrado:
iptables -A [INPUT, OUTPUT, FORWARD] -i INTERFAZ -s ORIGEN -d DESTINO \
-p PROTOCOLO --dport PUERTO_ORIGEN --sport PUERTO_ORIGEN -j ACCIÖN
- ORIGEN y DESTINO: dirección IP, dirección IP de red (con formato 10.0.0.0/24) y nombres; una IP 0.0.0.0/0 indica cualquier dirección
- INTERFAZ: eth0, eth1, lo, ppp0... según corresponda
- PROTOCOLOS: TCP, UDP, ICMP... según corresponda
- ACCIONES: ACCEPT, DROP, REJECT...
- PUERTO: Un puerto solo (80) o un rango de puertos (20:21), los parámetros dport y sport pueden omitirse, en cuyo caso la regla se aplicará a todos los puertos.
Si nuestro firewall va a ser local con esto nos debe valer en principio, pero si vamos a usarlo como firewall de una red debemos configurar el equipo con dos o más tarjetas de red y activar el enrutamiento entre ellas. Para activar el enrutamiento hacemos lo siguiente:
echo "1" > /proc/sys/net/ipv4/ip-forward
y creamos una regla para cada enrutamiento
iptables -t nat -A POSTROUTING -s IP_ENTRADA -o INTERFAZ_SALIDA \donde IP_ENTRADA, IP_SALIDA son las IP de las interfaces del firewall.
-j SNAT -to-source IP_SALIDA
Si queremos ver que reglas están aplicadas lo podemos hacer con el comando:
iptables -L -n
Todo esto lo metemos en un script "iptables.sh", le damos permisos de ejecución y hacemos que se ejecute al inicio de la máquina.













2 comentarios:
Hola muy basico pero bueno. Tengo una pregunta:
¿cómo trasladas la siguiente linea a un script de inicio para que se ejecute al niciar la computadora previamente configurada con los runlevels correspondientes. Esque he buscado pero nadie al parecer sabe?
echo "1" > /proc/sys/net/ipv4/ip-forward
O bien, el objetivo de la anterior linea es habilitar el fordwardin, ¿como lo habilito (si existiera) de otra forma en un script?
Gracias por sus posibles respuestas ojala en alguna encuentre la solución.
Lo podes agregar como primera línea del script de las reglas del firewall.
Ariel
Publicar un comentario