====== Shorewall: configurando un firewall con IPTables/Netfilter ====== //Por Félix Molinuevo, [[http://fmsistemas.com/|FMSI Sistemas de Informática]]// ===== Introducción ===== Shorewall es un conjunto de scripts y archivos de configuración, que permiten configurar IPTables/Netfilter aprovechando toda la versatilidad de estas herramientas de firewalling. Las indicaciones que aquí se muestran deberán ser cambiadas para el sistema específico donde se lo esté instalando. ===== Pasos para configurar un firewall básico ===== -Instalar firewall, en Debian: aptitude install shorewall -Editar /etc/default/shorewall poniendo startup en 1 -Los archivos de configuración de Shorewall se encuentran en /etc/shorewall -Los scripts y otros archivos se encuentran en /usr/share/shorewall -Organizar la red por zonas, para ello editar /etc/shorewall/zones: fw firewall net ipv4 dmz ipv4 loc ipv4 -Asociar las zonas a las interfaces, para ello editar /etc/shorewall/interfaces: net eth0 detect dhcp,routefilter,tcpflags dmz eth1 detect dhcp loc eth2 detect dhcp -Crear políticas por defecto, editando /etc/shorewall/policy: net all DROP dmz all REJECT loc all REJECT fw all ACCEPT all all REJECT -Crear las reglas, editando /etc/shorewall/rules: ACCEPT loc net tcp 80,443 ACCEPT loc fw udp 53 ACCEPT all dmz tcp 80 -Configurar PAT/NAT, editando /etc/shorewall/masq: eth0 eth1 eth0 eth2 -Activar forwarding, editando /etc/shorewall/shorewall.conf: IP_FORWARDING=On - Si se utiliza PPPoE, también se debe activar CLAMPMSS: CLAMPMSS=Yes -Chequear la configuración: shorewall check -Si todo está bien, iniciar el firewall ===== Algunas configuraciones avanzadas ===== - Para permitir solamente el acceso a internet de los hosts internos seleccionados, se deben configurar los archivos policy y rules de la siguiente manera: En el archivo /etc/shorewall/policy no deben existir políticas de acceso completo como: loc all ACCEPT loc net ACCEPT En el archivo /etc/shorewall/rules: ACCEPT loc:192.168.0.123 net tcp 80,8080 - DNAT para conectarse desde internet a un host interno, en el archivo /etc/shorewall/rules: DNAT net:190.155.200.123 loc:192.168.0.123:5900 tcp 5900 ===== Facebook: cómo bloquear todo el rango de direcciones IP ===== En un archivo llamado "start" dentro de /etc/shorewall, poner la siguiente línea de Bash script: /usr/bin/whois -h whois.radb.net '!gAS32934' | head -n -1 | tail -n -1 | /usr/bin/xargs --max-args=1 | \ /usr/bin/xargs -I {} --max-args=1 /sbin/iptables -t mangle -I POSTROUTING -d {} -j DROP ===== Bibliografía ===== *Debian Wiki: [[http://wiki.debian.org/HowTo/shorewall|http://wiki.debian.org/HowTo/shorewall]]