Blog

Ejemplo práctico IPTABLES

firewall

El siguente es un script básico para la configuracián de una distribucion linux RHEL, Centos y fedora como firewall perimetral en modo permisivo. El script esta basado en el muy buen tutorial de Pello Xabier Altadill Izura http://www.pello.info/filez/firewall/iptables.html 

No es realmente fácil obtener dinero a través de otros recursos externos, por lo general para atender las necesidades de atención médica. Algunos medicamentos son antifúngicos. Sin lugar a dudas, la nomenclatura es muy grande. ¿Tiene alguna pregunta sobre Kamagra y "azitromicina precio"? En la actualidad, muchas personas buscan en línea la palabra clave exacta "zitromax precio" en Google. Una investigación reciente sobre "zitromax niños" encontró que el problema sexual más común de los hombres es la disfunción eréctil. Mientras que el medicamento se acredita con la mejora de las náuseas, también puede matar el estado de ánimo en el dormitorio. Si usted recibe alguna droga de disfunción eréctil como Kamagra, consulte con un médico que son inocentes para tomar con sus otros medicamentos. Guarde este medicamento genérico en el recipiente que vino, herméticamente cerrado. Por ejemplo, los medicamentos líquidos deben mantenerse idealmente en el refrigerador, pero también pueden almacenarse a temperatura ambiente.

#!/bin/sh
## SCRIPT de ejemplo IPTABLES.
## FIREWALL PERIMETRAL ENTRE UNA RED LOCAL E INTERNET.

##ejemplos de rutas estaticas 

route add -net 172.16.0.0 netmask 255.255.255.0 gw 192.168.11.7
route add -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.11.7
route add -net 82.197.128.0/19 gw 192.168.11.248


echo -n Aplicando Reglas de Firewall...

## FLUSH de reglas
iptables -F
iptables -X
iptables -Z
iptables -t nat -F

## Establecemos politica por defecto
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT

## Empezamos a filtrar
## Nota: eth2 es el interfaz conectado al router y eth0 a la LAN
# El localhost se deja (por ejemplo conexiones locales a mysql)

# Al firewall tenemos acceso desde la red local
iptables -A INPUT -s 192.168.11.0/24 -i eth0 -j ACCEPT
iptables -A INPUT -s 192.168.11.0/24 -i eth1 -j ACCEPT
iptables -A INPUT -s 192.168.15.0/24 -i eth2 -j ACCEPT
iptables -A INPUT -s 10.136.41.0/24 -i eth2 -j ACCEPT
iptables -A INPUT -s 10.136.41.0/24 -i eth1 -j ACCEPT
iptables -A INPUT -s 10.136.41.0/24 -i eth0 -j ACCEPT
iptables -A INPUT -s 192.168.15.0/24 -i eth0 -j ACCEPT
iptables -A INPUT -s 192.168.15.0/24 -i eth1 -j ACCEPT
iptables -A INPUT -s 172.16.0.0/24 -i eth0 -j ACCEPT
iptables -A INPUT -s 192.168.2.0/24 -i eth0 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -i eth0 -j ACCEPT

# Ahora hacemos enmascaramiento de la red local
# y activamos el BIT DE FORWARDING (imprescindible!!!!!)

iptables -t nat -I POSTROUTING -s 192.168.15.0/24 -d 10.136.41.0/24 -j ACCEPT
iptables -t nat -I POSTROUTING -s 192.168.15.0/24 -d 10.136.39.128/25 -j ACCEPT
iptables -t nat -I POSTROUTING -s 192.168.15.0/24 -d 10.136.32.0/24 -j ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.11.0/24 -o eth2 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 192.168.15.0/24 -o eth2 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth2 -s 10.136.41.0/24 -d ! 192.168.15.0/24 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth2 -s 10.136.39.128/25 -d ! 192.168.15.0/24 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth2 -s 10.136.32.0/24 -d ! 192.168.15.0/24 -j MASQUERADE

# Con esto permitimos hacer forward de paquetes en el firewall, o sea
# que otras máquinas puedan salir a traves del firewall.
echo 1 > /proc/sys/net/ipv4/ip_forward

# ejemplos de bloqueo por puerto

iptables -A INPUT -s 0.0.0.0/0 -p tcp --dport 1:21 -j DROP
iptables -A INPUT -s 0.0.0.0/0 -p udp --dport 1:21 -j DROP
iptables -A INPUT -s 0.0.0.0/0 -p tcp --dport :46 -j DROP
iptables -A INPUT -s 0.0.0.0/0 -p udp --dport 23:46 -j DROP
iptables -A INPUT -s 0.0.0.0/0 -p tcp --dport 81:442 -j DROP
iptables -A INPUT -s 0.0.0.0/0 -p udp --dport 81:442 -j DROP
iptables -A INPUT -s 0.0.0.0/0 -p tcp --dport 444:1722 -j DROP
iptables -A INPUT -s 0.0.0.0/0 -p udp --dport 444:1722 -j DROP
iptables -A INPUT -s 0.0.0.0/0 -p tcp --dport 1724:3127 -j DROP
iptables -A INPUT -s 0.0.0.0/0 -p udp --dport 1724:3127 -j DROP
iptables -A INPUT -s 0.0.0.0/0 -p tcp --dport 3307:40000 -j DROP
iptables -A INPUT -s 0.0.0.0/0 -p udp --dport 3307:40000 -j DROP
iptables -A INPUT -s 0.0.0.0/0 -p tcp --dport 40010:65535 -j DROP
iptables -A INPUT -s 0.0.0.0/0 -p udp --dport 40010:65535 -j DROP
# Bloqueo https y redireccion squid para un conjunto de equipos
for ip in $( cat /etc/squid/ip_squid )
do
iptables -t nat -A PREROUTING -s $ip -p tcp --dport 80 -j REDIRECT --to-port 3128
done

#Ejemplo de bloqueo de puertos usando un alias de ip de un fichero externo.

for ip in $( cat /etc/squid/ip_facebook )
do
iptables -A FORWARD -s $ip -d 74.125.0.0/16 -p tcp --dport 80 -j DROP
done
for ip in $( cat /etc/squid/ip_facebook )
do
iptables -A FORWARD -s $ip -d 66.220.144.0/20 -p tcp --dport 443 -j DROP
done
for ip in $( cat /etc/squid/ip_facebook )
do
iptables -A FORWARD -s $ip -d 69.63.176.0/20 -p tcp --dport 443 -j DROP
done
for ip in $( cat /etc/squid/ip_facebook )
do
iptables -A FORWARD -s $ip -d 65.52.0.0/14 -p tcp --dport 443 -j DROP
done
for ip in $( cat /etc/squid/ip_facebook )
do
iptables -A FORWARD -s $ip -d 128.242.0.0/16 -p tcp --dport 443 -j DROP
done

# Ejemplos de NAT y DNAT

iptables -t nat -A PREROUTING -i eth2 -p tcp --dport 80 -j DNAT --to 192.168.11.248:80
iptables -t nat -A PREROUTING -i eth2 -p tcp --dport 40009 -j DNAT --to 192.168.11.241:3389
iptables -t nat -A PREROUTING -i eth2 -p tcp --dport 9001 -j DNAT --to 192.168.11.242:9001
iptables -t nat -A PREROUTING -i eth2 -p tcp --dport 1194 -j DNAT --to 192.168.11.242:1194
iptables -t nat -A PREROUTING -i eth2 -p tcp --dport 3306 -j DNAT --to 192.168.11.240:3306
iptables -t nat -A PREROUTING -i eth2 -p tcp --dport 40001 -j DNAT --to 192.168.11.242:8080
iptables -t nat -A PREROUTING -i eth2 -p tcp --dport 40002 -j DNAT --to 192.168.11.242:22
iptables -t nat -A PREROUTING -i eth2 -p tcp --dport 40004 -j DNAT --to 192.168.11.246:3389
iptables -t nat -A PREROUTING -i eth2 -p tcp --dport 3550 -j DNAT --to 192.168.11.246:3550
iptables -t nat -A PREROUTING -i eth2 -p tcp --dport 40005 -j DNAT --to 192.168.11.245:22
iptables -t nat -A PREROUTING -i eth2 -p tcp --dport 40006 -j DNAT --to 192.168.11.242:22
iptables -t nat -A PREROUTING -i eth2 -p tcp --dport 40007 -j DNAT --to 192.168.11.247:22
iptables -t nat -A PREROUTING -i eth2 -p tcp --dport 40008 -j DNAT --to 192.168.11.247:80
iptables -t nat -A PREROUTING -i eth2 -p tcp --dport 40010 -j DNAT --to 192.168.11.248:3389

 Si necesita más información o soporte sobre este tema o algún otro contáctenos por nuestro chat o haciendo clic aquí

Comentarios   

0 #1 Camilo Jimenez 01-08-2015 18:50
Necesito ayuda con un linea.
iptables -A FORWARD -s $ip -d 74.125.0.0/16 -p tcp --dport 80 -j DROP
done
Citar

Escribir un comentario


Código de seguridad
Refescar