En primer lugar instalamos el paquete iptables:
$ sudo apt-get install -test iptables
Ésto nos activará el servicio por defecto. Sólo queda implementar el script de iptables con nuestras reglas y hacer que se carguen al inicio.
El script que yo tengo, sin entrar en detalles viene a ser algo así, muy sencillo:
#!/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
Lógicamente las líneas van juntas. Sólo se aplican las líneas no comentadas con # , las otras son para mi servidor.
El fichero se puede llamar por ejemplo firewall.sh , debemos darle permisos de ejecución:
$ chmod +x firewall.sh
Ahora si aplicamos el script de este modo:
$ sudo sh firewall.sh
podemos ver la salida de iptables haciendo:
$ sudo iptables -L
que viene a ser algo así:
root@platas:/home/herje # iptables -L
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT udp -- anywhere anywhere udp dpt:domain
ACCEPT tcp -- anywhere anywhere tcp dpt:domain
ACCEPT all -- glorioso anywhere
ACCEPT all -- minime anywhere
ACCEPT all -- placebo anywhere
ACCEPT all -- anywhere anywhere
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
root@platas:/home/herje #
Sólo falta hacer que las reglas se carguen al inicio, para ello copiamos el script en /etc/init.d y lo ponemos por default:
$ sudo cp firewall.sh /etc/init.d/
$ sudo update-rc.d firewall.sh defaults
Y listo, reinicia tu maquina conviertete en root y veras como estan levantadas las reglas.
Suscribirse a:
Enviar comentarios (Atom)
1 comentario:
Hello. This post is likeable, and your blog is very interesting, congratulations :-). I will add in my blogroll =). If possible gives a last there on my blog, it is about the Home Theater, I hope you enjoy. The address is http://home-theater-brasil.blogspot.com. A hug.
Publicar un comentario