miércoles, 21 de diciembre de 2011

SCRIPT CON IPTABLES

nterface=”eth0″; //Selecciona como interfaz la eth0
port_whitelist=”whitelist”;
ip_blacklist=”blacklist”;
redirect=”redirect”;

echo 1 >/proc/sys/net/ipv4/ip_forward //Activamos el BIT de ruteo

iptables -F //Eliminamos reglas anteriores

//Establecemos reglas por defecto: aceptar todo
iptables -P OUTPUT ACCEPT
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -t nat -F

//Baneamos IP
echo “Bloqueando IP:”;
for num_ban in `cat $ip_blacklist`;
do
echo ” $num_ban”;
iptables -A INPUT -s $num_ban -j REJECT
done

//Abrimos puertos desde blacklist
echo “Habilitando puertos:”;
for num_p in `cat $port_whitelist`;
do
echo ” $num_p”
iptables -A INPUT -p tcp –dport $num_p -j ACCEPT -i $interface;
done;
echo “Bloqueando los otros puertos …”;
iptables -A INPUT -i $interface -p all -m state –state NEW,INVALID -j REJECT
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d 192.168.1.0/24 -j ACCEPT

//Habilito el NAT
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d 0.0.0.0/0 -j MASQUERADE

//Redireccionamos puertos
echo “Redireccionando puertos:”
for redir in `cat $redirect`;
do
_type=`echo $redir|cut -f1 -d “/”`;
_from=`echo $redir|cut -f2 -d “/”`;
_to=`echo $redir|cut -f3 -d “/”`;
echo ” ($_type) $_from -> $_to”;
iptables -A PREROUTING -t nat -p $_type -i $interface –dport $_from -j DNAT –to $_to;
done

IPTABLES

#!/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 FTP
iptables -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 reglas
iptables -X
iptables -Z
iptables -t nat -F: solo borras los que estén haciendo nat en ese momento
Todo 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