Páginas

sábado, 13 de agosto de 2011

Firewall Slackware

Fuentes: http://www.pello.info/filez/firewall/iptables.html
Redes en Linux: Carla Schroeder

Puestos a hacer vamos a establecer reglas iptables para un solo host en Slackware. Lo que cambia con respecto a gentoo es el directorio por defecto para iniciar el cortafuegos. Ya vimos como se hace en gentoo linux, en slackware los scripts que se inician con el sistema están ubicados en /etc/rc.d/. El nombre debe ir precedido de rc. Por lo tanto se llamará rc.firewall. La ruta de iptables para establecer las variables cambia a /usr/sbin/iptables. Luego al archivo /etc/rc.d/rc.firewall se le conceden permisos de ejecución.
# chmod +x /etc/rc.d/rc.firewall

El archivo /etc/sysctl.conf, (añadir los parámetros kernel), no está presente por defecto, pero se puede crear y poner en marcha ejecutando:
# /sbin/sysctl -e -p /etc/sysctl.conf

Contenido de los archivos:

###########inicio sysctl.conf############
net.ipv4.conf.default.rp_filter = 1
net.ipv4.ip_forward = 0
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.all.arp_announce = 1
vm.swappiness = 10
###########final sysctl.conf#############

##############inicio firewall############
#!/bin/sh
##/etc/rc.d/rc.firewall
#script para una estacion de trabajo o portatil

#define variables
ipt="/usr/sbin/iptables"
mod="/sbin/modprobe"
ports="1:1024"
ipall="0.0.0.0/0"
red_A="10.0.0.0/8"
red_B="172.16.0.0/16"
red_D_MULT="224.0.0.0/4"
red_E_RES_NET="240.0.0.0/5"
loopback="127.0.0.0/8"
broad_src="0.0.0.0"
broad_dest="255.255.255.255"

#Flush all rules, delete all chains
$ipt -F
$ipt -X
$ipt -t nat -F
$ipt -t nat -X
$ipt -t mangle -F
$ipt -t mangle -X

#todos los contadores a cero
$ipt -Z
$ipt -t nat -Z
$ipt -t mangle -Z

#conjunto basico de modulos del kernel
$mod ip_tables
$mod ip_conntrack
$mod iptable_filter
$mod iptable_nat
$mod iptable_mangle
$mod ipt_LOG
$mod ipt_limit
$mod ipt_state
$mod ipt_MASQUERADE

#opcional para irc y ftp
#$mod ip_conntrack_irc
#$mod ip_conntrack_ftp

#politicas por defecto Incoming es rechazar todo,
#outgoing esta restringido
$ipt -P INPUT DROP
$ipt -P FORWARD DROP
$ipt -P OUTPUT ACCEPT
$ipt -t nat -P OUTPUT ACCEPT
$ipt -t nat -P PREROUTING ACCEPT
$ipt -t nat -P POSTROUTING ACCEPT
$ipt -t mangle -P PREROUTING ACCEPT
$ipt -t mangle -P POSTROUTING ACCEPT

#esta linea es necesaria para la interfaz loopback
#e internos socket-based servicios trabajen correctamente.
$ipt -A INPUT -i lo -j ACCEPT

# rechazar intentos de conexion no iniciados desde el host
$ipt -A INPUT -p tcp --syn -j DROP

#Allow return traffic initiated from the host
$ipt -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Acceptar important ICMP packets
$ipt -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
$ipt -A INPUT -p icmp --icmp-type time-exceeded -j ACCEPT
$ipt -A INPUT -p icmp --icmp-type destination-unreachable -j ACCEPT

# Cerrar rangos de puertos privilegiados para paquetes que entran
$ipt -A INPUT -s $ipall -p tcp --dport $ports -j DROP
$ipt -A INPUT -s $ipall -p tcp --dport $ports -j DROP

# Cerrar puerto de gestion webmin
$ipt -A INPUT -s $ipall -p tcp --dport 10000 -j DROP

echo "Rechazar pqtes direcciones privadas"

# Rechazar paquetes que digan proceder o ir a direcciones
# privadas de redes A B y C
$ipt -A INPUT -s $red_A -j DROP
$ipt -A OUTPUT -d $red_A -j DROP

$ipt -A INPUT -s $red_B -j DROP
$ipt -A OUTPUT -d $red_B -j DROP

# Rechazar paquetes que digan proceder de la interfaz lo
$ipt -A INPUT -s $loopback -j DROP
$ipt -A OUTPUT -s $loopback -j DROP

# Rechazar pqtes de difusion mal formados
$ipt -A INPUT -s $broad_src -j DROP
$ipt -A INPUT -d $broad_src -j DROP

# Rechazar las direcciones de multidifusion de clase D que
# sean solo ilegales como direcciones de origen. La multi-
# difusion utiliza UDP
$ipt -A INPUT -s $red_D_MULT -j DROP
$ipt -A OUTPUT -s $red_D_MULT -j DROP
$ipt -A INPUT -d $red_D_MULT -j DROP
$ipt -A OUTPUT -d $red_D_MULT -j DROP

# Rechazar direcciones reservadas IP de clase E
$ipt -A INPUT -s $red_E_RES_NET -j DROP

echo "Direcciones reservadas por el IANA"

# Rechazar direcciones definidas como reservadas por el IANA
$ipt -A INPUT -s 1.0.0.0/8 -j DROP
$ipt -A INPUT -s 2.0.0.0/8 -j DROP
$ipt -A INPUT -s 5.0.0.0/8 -j DROP
$ipt -A INPUT -s 7.0.0.0/8 -j DROP
$ipt -A INPUT -s 23.0.0.0/8 -j DROP
$ipt -A INPUT -s 27.0.0.0/8 -j DROP
$ipt -A INPUT -s 31.0.0.0/8 -j DROP
$ipt -A INPUT -s 37.0.0.0/8 -j DROP
$ipt -A INPUT -s 39.0.0.0/8 -j DROP
$ipt -A INPUT -s 41.0.0.0/8 -j DROP
$ipt -A INPUT -s 42.0.0.0/8 -j DROP
$ipt -A INPUT -s 58.0.0.0/8 -j DROP
$ipt -A INPUT -s 60.0.0.0/8 -j DROP

$ipt -A INPUT -s 65.0.0.0/8 -j DROP
$ipt -A INPUT -s 66.0.0.0/8 -j DROP
$ipt -A INPUT -s 67.0.0.0/8 -j DROP
$ipt -A INPUT -s 68.0.0.0/8 -j DROP
$ipt -A INPUT -s 69.0.0.0/8 -j DROP
$ipt -A INPUT -s 70.0.0.0/8 -j DROP
$ipt -A INPUT -s 71.0.0.0/8 -j DROP
$ipt -A INPUT -s 72.0.0.0/8 -j DROP
$ipt -A INPUT -s 73.0.0.0/8 -j DROP
$ipt -A INPUT -s 74.0.0.0/8 -j DROP
$ipt -A INPUT -s 75.0.0.0/8 -j DROP
$ipt -A INPUT -s 76.0.0.0/8 -j DROP
$ipt -A INPUT -s 77.0.0.0/8 -j DROP
$ipt -A INPUT -s 78.0.0.0/8 -j DROP
$ipt -A INPUT -s 79.0.0.0/8 -j DROP

$ipt -A INPUT -s 80.0.0.0/8 -j DROP

$ipt -A INPUT -s 96.0.0.0/8 -j DROP

$ipt -A INPUT -s 112.0.0.0/8 -j DROP
$ipt -A INPUT -s 113.0.0.0/8 -j DROP
$ipt -A INPUT -s 114.0.0.0/8 -j DROP
$ipt -A INPUT -s 115.0.0.0/8 -j DROP
$ipt -A INPUT -s 116.0.0.0/8 -j DROP
$ipt -A INPUT -s 117.0.0.0/8 -j DROP
$ipt -A INPUT -s 118.0.0.0/8 -j DROP
$ipt -A INPUT -s 119.0.0.0/8 -j DROP
$ipt -A INPUT -s 120.0.0.0/8 -j DROP
$ipt -A INPUT -s 121.0.0.0/8 -j DROP
$ipt -A INPUT -s 122.0.0.0/8 -j DROP
$ipt -A INPUT -s 123.0.0.0/8 -j DROP
$ipt -A INPUT -s 124.0.0.0/8 -j DROP
$ipt -A INPUT -s 125.0.0.0/8 -j DROP
$ipt -A INPUT -s 126.0.0.0/8 -j DROP

$ipt -A INPUT -s 217.0.0.0/8 -j DROP
$ipt -A INPUT -s 218.0.0.0/8 -j DROP
$ipt -A INPUT -s 219.0.0.0/8 -j DROP
$ipt -A INPUT -s 220.0.0.0/8 -j DROP

echo " Bien. Verifique con iptables -nL"
#########FIN#############

Linux es genial!.

No hay comentarios:

Publicar un comentario