#!/bin/sh
## SCRIPT de IPTABLES - ejemplo del manual de
iptables
## Ejemplo de script para proteger la propia máquina
##
Pello Xabier Altadill Izura
## www.pello.info - pello@pello.info
echo -n Aplicando Reglas de Firewall...: ver en pantalla el mensaje que sigue a echo
## FLUSH de reglas : limpieza de reglas (inicializar iptables)
iptables -F: borramos todas las reglas, no queremos que hayan mas reglas ejecutandose de las que vamos a ejecutar ahora.
iptables -X
iptables -Z
iptables -t nat -F: solo borras los que estén haciendo nat en ese momento
## Establecemos politica por defecto a Aceptar
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
Que lo acepte todo de momento, luego vendrán mas reglas
## Empezamos a filtrar
# El localhost se deja (por ejemplo conexiones locales a
mysql)
/sbin/iptables -A INPUT -i lo -j ACCEPT: si tengo un servidor de mysql en el firewall que lo pueda utilizar
# A nuestra IP le dejamos todo, por lo que podrá mandar los paquetes respuesta a las
peticiones FTP y MySQL que generan el colega y el diseñador de las reglas siguientes
iptables -A INPUT -s
195.65.34.234 -j ACCEPT
# A un colega le dejamos entrar al mysql para que mantenga
la BBDD
iptables -A INPUT -s 231.45.134.23 -p tcp --dport 3306 -j
ACCEPT: aceptamos todas las entradas a través del puerto 3306 lo acepto porque el puerto 3306 es el de mysql
# A un diseñador le dejamos usar el
FTPiptables -A INPUT
-s 80.37.45.194 -p tcp -dport 20:21 -j ACCEPT:
aceptamos todas las entradas a través del puerto para ftp
# El puerto 80 de www debe estar abierto, es un servidor
web (
http).
iptables -A INPUT -p tcp --dport 80 -j ACCEPT:
aceptamos todas las entradas a través del puerto para el servidor web
# Y el resto, lo cerramos, el FTP cerrado, el MySQL cerrado, el telnet cerrado...
iptables -A INPUT -p tcp --dport 20:21 -j DROP
iptables -A INPUT -p tcp --dport 3306 -j DROP
iptables -A INPUT -p tcp --dport 22 -j DROP
iptables -A INPUT -p tcp --dport 10000 -j DROP: para alojar servidores generalmente en formato web
echo " OK . Verifique que lo que se aplica con: iptables -L -n": Nos sugiere que ejecutemos iptables -L para ver que esté todo bien puesto:
# Fin del script
#!/bin/sh
## SCRIPT de IPTABLES - ejemplo del manual de iptables
## Ejemplo de script para proteger la propia máquina
## Pello Xabier Altadill Izura
## www.pello.info - pello@pello.info
echo -n Aplicando Reglas de Firewall...:
Escribe un mensaje en pantalla diciendo "Aplicando ... ".
## FLUSH de reglas
iptables -F:
borramos todas las reglasiptables -X
iptables -Z
iptables -t nat -F:
solo borras los que estén haciendo nat en ese momentoTodo lo anterior es para tener el firewall limpio y que solo aparezcan las nuestras.
## 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
Todo lo que llegue (SI NO SE DICE LO CONTRARIO) lo vamos a aceptar.## Empezamos a filtrar
# El localhost se deja (por ejemplo conexiones locales a mysql)
/sbin/iptables -A INPUT -i lo -j ACCEPT
Que puedas manejar el firewall sin ningun problema# A nuestra IP le dejamos todo
iptables -A INPUT -s 195.65.34.234 -j ACCEPT
Le decimos que todo lo que llegue por nuestra ip que pase.# A un colega le dejamos entrar al mysql (puerto 3306) para que mantenga la BBDD
iptables -A INPUT -s 231.45.134.23 -p tcp --dport 3306 -j ACCEPT
# A un diseñador le dejamos usar el FTP
iptables -A INPUT -s 80.37.45.194 -p tcp -dport 20:21 -j ACCEPT
Al diseñador con ip 80.37.45.194 lo dejamos pasar# El puerto 80 de www debe estar abierto, es un servidor web.
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
# Cerramos rango de los puertos privilegiados. Cuidado con este tipo de
# barreras, antes hay que abrir a los que si tienen acceso.
iptables -A INPUT -p tcp --dport 1:1024 -j DROP:
todos los puertos que son aplicaciones de servicios los cerramos(1 : 1024)iptables -A INPUT -p udp --dport 1:1024 -j DROP
# Cerramos otros puertos que estan abiertos (3306 mysql)
iptables -A INPUT -p tcp --dport 3306 -j DROP
iptables -A INPUT -p tcp --dport 10000 -j DROP
iptables -A INPUT -p udp --dport 10000 -j DROP
echo " OK . Verifique que lo que se aplica con: iptables -L -n"
# Fin del script