Google
 

jueves, 10 de mayo de 2007

Firewall en [K]Ubuntu

Si en Windows tenias cortafuegos porque en Linux, no lo vas a tener?
Después de mucho tiempo de búsqueda y de dar por imposible crearme un script para Iptables me decidi por uno de interfaz gráfico. Para Ubuntu recomiendo FIRESTARTER por ser bastante sencillo de manejar, pero si tu entorno gráfico es KDE y no te apetece instalar todas las dependencias de gnome que requiere Firestarter, puedes instalarte GUARDDOG.
Guarddog es un cortafuegos que te permite configurar todo tu acceso a internet, tanto que si no sabes lo que haces te bloquea el acceso a cualquier página. Con guarddog he tenido muchas peleas a pesar de tener una interfaz 'amigable', y es que necesitas saber todos los puertos que utilizan tus programas para no caparlos, pero me tuve que resignar a utilizarlo por no encontrar nada más sencillo( y que supiera manejar).
Y por fin, navegando he encontrado un pequeño script para el usuario común de Iptables. Una vez leído y medio entendido he desinstalado Guarddog y he hecho correr este script. Aqui os le dejo, viene con comentarios. El script lo encontre en los foros de Ubuntu y es este, solo tienes que copiarlo en un archivo de texto y guardarlo con extension .sh.
Para ejecutarlo dale permisos --> $chmod +x nombre.sh
Si quieres que se ejecute cada vez que inicies tu Ubuntu -->
$cp nombre.sh /etc/init.d/
$update-rc.d .sh defaults

Y ya tienes tu Ubuntu protegido. No un script con una política muy restringida asique esta bien para un usuario normal.
**SCRIPT **
#!/bin/bash

#-s Especifica una dirección de origen
#-d Especifica una dirección de destino
#-p Especifica un prototocolo
#-i Especifica un interface de entrada
#-o Especifica un interface de salida
#-j Especifica la acción a ejecutar sobre el paquete
#--sport Puerto de origen
#--dport Puerto de destino

#Borrar todas las reglas
iptables -F

#Politica general.Cerramos todo.Dejamos entrar y salir lo solicitado
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

###OTRAS PROTECCIONES####

# Quitamos los pings.
/bin/echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all

# No respondemos a los broadcast.
/bin/echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

# Para evitar el spoofing nos aseguramos de que la dirección
# origen del paquete viene del sitio correcto.
for interface in /proc/sys/net/ipv4/conf/*/rp_filter; do
/bin/echo "1" > ${interface}
done

# Los ICMPs redirigidos que pueden alterar la tabla de rutas.
for interface in /proc/sys/net/ipv4/conf/*/accept_redirects; do
/bin/echo "0" > ${interface}
done

# No guardamos registros de los marcianos.
/bin/echo "1" > /proc/sys/net/ipv4/conf/all/log_martians

# Asegurar, aunque no tenga soporte el nucleo, q no hay forward.
/bin/echo "0" > /proc/sys/net/ipv4/ip_forward

###Reglas de los puertos####

# Permitimos que se conecten a nuestro servidor web.

#iptables -A INPUT -m state --state NEW -p TCP --dport 80 -j ACCEPT

#Abrimos ssh a la red.
#iptables -A INPUT -s 172.26.0.3 -p TCP --dport 22 -j ACCEPT
#iptables -A INPUT -s 172.26.0.4 -p TCP --dport 22 -j ACCEPT
#iptables -A INPUT -s 172.26.0.5 -p TCP --dport 22 -j ACCEPT

#iptables -A INPUT -p TCP --dport 22 -j ACCEPT

# Permitimos la comunicación con el servidor dns
iptables -A INPUT -p UDP --dport 53 -j ACCEPT
iptables -A INPUT -p TCP --dport 53 -j ACCEPT

#Permitimos uso de ftp.
#iptables -A INPUT -p TCP --dport 21 -j ACCEPT

#Permitimos acceso pop3.
#iptables -A INPUT -p TCP --dport 110 -j ACCEPT

# Permitimos uso de smtp
#iptables -A INPUT -p TCP --dport 25 -j ACCEPT

#Permitimos acceso imap.
#iptables -A INPUT -p TCP --dport 143 -j ACCEPT
#iptables -A INPUT -p UDP --dport 143 -j ACCEPT

#Permitimos todo el trafico de la LAN
#iptables -A INPUT -s 172.26.0.2 -j ACCEPT
#iptables -A INPUT -s 172.26.0.4 -j ACCEPT
#iptables -A INPUT -s 172.26.0.5 -j ACCEPT

#Dejamos a localhost, para mysql, etc..
iptables -A INPUT -i lo -j ACCEPT



**FIN SCRIPT**



David

No hay comentarios: