Script de Iptables

Imagen de mephistrockmetal
0 puntos

Buen dia.

Hace algunas semanas implemente un firewall basado en Ubuntu para la red de la empresa y tuve que buscar demasiada información para poder hacer que trabajara como yo queria, especialmente por que la información que encontraba era demasiado vieja, explicaba muy poco o tenia que unir varios textos para entender algo.

Al dia de hoy esta trabajando al 100 y la edición del mismo es casi nula.
El script es permisivo por default, lo que quiere decir que no restringe ninguna conexión a menos que nosotros se lo especifiquemos ( cosas de cada empresa ).

Asi que sin mas lo dejo para ver si se puede mejorar ( ya vi varios puntos donde puedo mejorar pero como que da hueva a veces y siguiendo el dicho " si funciona no lo arregles" ) y espero a alguien mas le sirva, aunque sea de referencia.
----
El equipo cuenta con 2 interfaz de red, eth1 y eth2 donde eth1 se conecta al switch principal de la red local y eth2 se conecta al router/modem.

La red interna tiene un sufijo 192.168.2.x mientras que la red entre el firewall y el router/modem es 192.168.1.x
por lo tanto el firewall enmascara ( NAT ) las direcciones entre redes.

Tambien hace port forward para tener conexiones remotas ( se le indica al modem que dirija ciertos puertos al firewall y el firewall vuelve a hacer port forward para llegar a los servidores )

Bloquea facebook, hotmail, messenger ( maldito programa mañoso ), salas de chat, youtube, google, youtube y se pueden añadir mas IP siguiendo el mismo metodo.

No quise usar SQUID por que usando "https" en cualquier navegar se salta las restricciones y tener que configurar cada equipo esta de HUEVA.

IMPORTANTE: como agregar cada ip de todos los servidores esta cabron, se hacen bloqueos a partir de secciones grandes de ip ( ej. 200.39.45.0/24 deniega todas las ip restantes 200.39.45.1 , 200.39.45.2 ... etc )

Si no me explico bien, una disculpa. Solo cambien las ip que ya estan.
----

#!/bin/sh
##NOTAS:
##eth2 ES LA INTERFAZ CONTECTADA AL ROUTER Y eth1 A LA LAN

#Activacion de el reenvio
echo 1 > /proc/sys/net/ipv4/ip_forward

#FLUSH de reglas
iptables -F
iptables -X
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

#acceso localhost
/sbin/iptables -A INPUT -i lo -j ACCEPT

#Redirecciona puertos de forma local. ( en el mismo equipo )
#iptables -t nat -A PREROUTING -i eth2 -p tcp --dport 80 -j REDIRECT --to 192.168.2.x:9050

# Se aplica la mascara 192.168.1.x a los paquetes que tengan red de origen 192.168.2.0/24 y que tengan salida por eth2
iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -o eth2 -j SNAT --to 192.168.1.x

# PREROUTING de puertos para llegar hasta servidores internos de forma remota.
iptables -t nat -A PREROUTING -p tcp --dport 80 -i eth2 -j DNAT --to 192.168.2.x
iptables -t nat -A PREROUTING -p udp --dport 80 -i eth2 -j DNAT --to 192.168.2.x
iptables -t nat -A PREROUTING -p tcp --dport 9050 -i eth2 -j DNAT --to 192.168.2.x
iptables -t nat -A PREROUTING -p tcp --dport 22 -i eth2 -j DNAT --to 192.168.2.x
iptables -t nat -A PREROUTING -p tcp --dport 5900 -i eth2 -j DNAT --to 192.168.2.x

#IP's CON ACCESO
iptables -t filter -A FORWARD -s 192.168.2.x -p ALL -j ACCEPT
iptables -t filter -A FORWARD -s 192.168.2.x -p ALL -j ACCEPT

#IP's EXTRAS
iptables -t filter -A FORWARD -s 192.168.2.5 -p ALL -j ACCEPT
iptables -t filter -A FORWARD -s 192.168.2.21 -p ALL -j ACCEPT
iptables -t filter -A FORWARD -s 192.168.2.31 -p ALL -j ACCEPT

#SERVIDORES
iptables -t filter -A FORWARD -s 192.168.2.x -p ALL -j ACCEPT
iptables -t filter -A FORWARD -s 192.168.2.x -p ALL -j ACCEPT

#CELULARES
iptables -t filter -A FORWARD -s 192.168.2.x -p ALL -j ACCEPT
iptables -t filter -A FORWARD -s 192.168.2.x -p ALL -j ACCEPT
iptables -t filter -A FORWARD -s 192.168.2.x -p ALL -j ACCEPT

# Permite Web
iptables -t filter -A FORWARD -d x.x.x.x -p ALL -j ACCEPT

# Permite a una ip interna navegar a un sitio bloqueado para el resto
iptables -t filter -A FORWARD -s 192.168.2.27 -d login.live.com -p ALL -j ACCEPT

# Permite Google y Deniega Gmail y Youtube
iptables -t filter -A FORWARD -d 74.125.224.52 -p ALL -j ACCEPT
iptables -t filter -A FORWARD -d 74.125.224.51 -p ALL -j ACCEPT
iptables -t filter -A FORWARD -d 74.125.224.50 -p ALL -j ACCEPT
iptables -t filter -A FORWARD -d 74.125.224.49 -p ALL -j ACCEPT
iptables -t filter -A FORWARD -d 74.125.224.48 -p ALL -j ACCEPT
iptables -t filter -A FORWARD -d 74.125.224.0/24 -p ALL -j REJECT
iptables -t filter -A FORWARD -d 74.125.239.0/24 -p ALL -j REJECT

# Bloque FACEBOOK
iptables -t filter -A FORWARD -d 69.171.0.0/16 -p ALL -j REJECT
iptables -t filter -A FORWARD -d 69.171.228.0/24 -p ALL -j REJECT
iptables -t filter -A FORWARD -d 69.171.224.0/24 -p ALL -j REJECT
iptables -t filter -A FORWARD -d 69.171.229.11 -p ALL -j REJECT
iptables -t filter -A FORWARD -d 69.171.242.11 -p ALL -j REJECT
iptables -t filter -A FORWARD -d 66.220.149.11 -p ALL -j REJECT
iptables -t filter -A FORWARD -d 66.220.158.11 -p ALL -j REJECT
iptables -t filter -A FORWARD -d 66.220.147.44 -p ALL -j REJECT

# Bloqueo Hotmail
iptables -t filter -A FORWARD -d 65.55.72.0/24 -p ALL -j REJECT

# Bloqueo MSN Live Messenger
iptables -t filter -A FORWARD -d 65.55.60.123 -p ALL -j REJECT
iptables -t filter -A FORWARD -d 65.54.239.211 -p ALL -j REJECT
iptables -t filter -A FORWARD -d 65.54.186.0/24 -p ALL -j REJECT
iptables -t filter -A FORWARD -d 65.54.165.0/24 -p ALL -j REJECT
iptables -t filter -A FORWARD -d 65.54.227.242 -p ALL -j REJECT
iptables -t filter -A FORWARD -d 64.4.45.62 -p ALL -j REJECT
iptables -t filter -A FORWARD -d 64.4.56.183 -p ALL -j REJECT
iptables -t filter -A FORWARD -d 64.4.56.199 -p ALL -j REJECT

# Bloqueo Fotolog
iptables -t filter -A FORWARD -d 63.171.185.196 -p ALL -j REJECT
iptables -t filter -A FORWARD -d 63.166.124.68 -p ALL -j REJECT
iptables -t filter -A FORWARD -d 207.109.73.99 -p ALL -j REJECT
iptables -t filter -A FORWARD -d 207.109.73.106 -p ALL -j REJECT

# Bloqueo elblogdelnarco
iptables -t filter -A FORWARD -d 64.202.189.170 -p ALL -j REJECT

# BLOQUE WEB BASED MESSENGER
iptables -t filter -A FORWARD -d 38.99.72.233 -p ALL -j REJECT
iptables -t filter -A FORWARD -d 38.99.72.232 -p ALL -j REJECT
iptables -t filter -A FORWARD -d 74.63.220.238 -p ALL -j REJECT
iptables -t filter -A FORWARD -d 64.13.161.61 -p ALL -j REJECT
iptables -t filter -A FORWARD -d 74.114.28.110 -p ALL -j REJECT
iptables -t filter -A FORWARD -d 208.81.191.110 -p ALL -j REJECT
iptables -t filter -A FORWARD -d 208.109.186.152 -p ALL -j REJECT
iptables -t filter -A FORWARD -d 99.192.249.209 -p ALL -j REJECT
iptables -t filter -A FORWARD -d 85.17.78.163 -p ALL -j REJECT
iptables -t filter -A FORWARD -d 74.208.12.174 -p ALL -j REJECT
iptables -t filter -A FORWARD -d 173.45.74.55 -p ALL -j REJECT
iptables -t filter -A FORWARD -d 66.135.39.98 -p ALL -j REJECT
iptables -t filter -A FORWARD -d 82.98.86.167 -p ALL -j REJECT
iptables -t filter -A FORWARD -d 174.142.232.238 -p ALL -j REJECT
iptables -t filter -A FORWARD -d 74.86.15.130 -p ALL -j REJECT
iptables -t filter -A FORWARD -d 205.186.183.218 -p ALL -j REJECT
iptables -t filter -A FORWARD -d 72.233.64.227 -p ALL -j REJECT
iptables -t filter -A FORWARD -d 75.103.119.199 -p ALL -j REJECT
iptables -t filter -A FORWARD -d 68.180.190.124 -p ALL -j REJECT
iptables -t filter -A FORWARD -d 74.86.129.114 -p ALL -j REJECT

# Bloque Chatroom
iptables -t filter -A FORWARD -d 74.207.248.124 -p ALL -j REJECT
iptables -t filter -A FORWARD -d 204.62.114.37 -p ALL -j REJECT
iptables -t filter -A FORWARD -d 72.249.29.17 -p ALL -j REJECT
iptables -t filter -A FORWARD -d 91.121.36.253 -p ALL -j REJECT
iptables -t filter -A FORWARD -d 63.150.3.212 -p ALL -j REJECT
iptables -t filter -A FORWARD -d 74.201.112.85 -p ALL -j REJECT
iptables -t filter -A FORWARD -d 74.201.113.175 -p ALL -j REJECT
iptables -t filter -A FORWARD -d 74.201.154.149 -p ALL -j REJECT
iptables -t filter -A FORWARD -d 188.40.80.245 -p ALL -j REJECT
iptables -t filter -A FORWARD -d 184.173.90.186 -p ALL -j REJECT
iptables -t filter -A FORWARD -d 50.23.244.0/24 -p ALL -j REJECT
iptables -t filter -A FORWARD -d 50.23.245.0/24 -p ALL -j REJECT

# Bloquear Puertos MSN
iptables -t filter -A FORWARD -d 0/0 -p tcp --dport 1863 -j REJECT
iptables -t filter -A FORWARD -d 0/0 -p udp --dport 1863 -j REJECT
iptables -t filter -A FORWARD -d 0/0 -p tcp --dport 6891:6900 -j REJECT

echo "EJECUTA iptables -L -n PARA COMPROBAR LAS REGLAS"
echo ""

Saludos desde Monterrey, Mexico. Feliz año nuevo

Imagen de LSard
+1
0
-1

Me lo guardo y lo probaré :) muchas gracias.

+1
0
-1

Web Personal:
http://luissard.com
Amante de la vida, con inquietud por descubrir cada vez mas el mundo de la informática, enamorado de mi chica y de mi hermosa familia.
Imagen de juanmatias81
+1
0
-1

Hola como estas? muy buena la info, igual yo mi firewall lo tengo ya corriendo, ahora, te hago una consulta... cuantas maquinas podria soportar este firewall en la parte LAN con el servidor dhcp3-server, estoy en una Obra Social y quiero colocar este firewall para poder negar el acceso a facebook y otras paginas que no son productivas en cuanto a lo que tiene q ver el trabajo jejeje.
como para que te des una idea, son casi 120 computadoras...
me recomendarias alguna otra configuracion o otro sistema para el bloqueo? el server tiene la plata de red 10/100/1000 pero segun me comento un amigo tendria que utilizar utp6...
espero respuestas y consejos

+1
0
-1

juanmatias81
Matux