Instalacion y configuracion shorewall en DEBIAN con 2 interfaces.
Shorewall es una robusta y extensible herramienta de alto nivel para la configuración de firewall. Solo necesita que se le proporcionen algunos datos en algunos archivos y éste creará las reglas correspondientes a través de iptables.
Los pasos a seguir son los siguientes:
1) apt-get install shorewall
2) cp * /usr/share/doc/shorewall/default-config /etc/shorewall
3) Editar los siguientes archivos en /etc/shorewall
Inicio Shorewall
/etc/default/shorewall
Donde dice startup=0 cambiarlo por startup=1
Interfaces
/etc/shorewall/interfaces
En este archivo se establecen las interfaces de las zonas a ser tomadas en cuenta por el firewall. Se establecen las que corresponden a la de Internet y Red Local.
En el siguiente ejemplo, se cuenta con una interfaz eth1 para acceder hacia Internet, y una interfaz eth0 para acceder hacia la LAN
net eth1 detect dhcp
loc eth0 detect
#LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVE
Zonas
/etc/shorewall/zones
En el archivo zones se definen las zonas que se administraran del firewall.
fw firewall
net ipv4
loc ipv4
#LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVE
Reglas
/etc/shorewall/rules
Este es el archivo de configuración más importante de Shorewall, ya que aquí se definen las reglas que permitirán o denegarán el acceso a servicios y puertos desde y hacia zonas o el firewall. También se puede definir las reglas DNAT y registro de ciertos paquetes.
ACCEPT net $FW tcp 22
(con esto abrimos el puerto del ssh para poder ingresar desde afuera de ser necesario, de lo contrario no hace falta)
ACCEPT loc $FW tcp 3128
(con esto abrimos el puerto del proxy en el caso de tener instalado)
DNAT net loc:192.168.0.10:27016 tcp 27016
(Un ej de como abrir el puerto 27016 en la IP indicada, remplazamos por lo que querramos, muy util para poder administrar los puertos en las PC donde se quiere utilizar programas p2p)
Mas ejemplos en http://www.shorewall.net/ports.htm
Politicas
/etc/shorewall/policy
En este archivo se establecen las políticas por defecto para paquetes que viajan entre una zona hacia otra.
fw loc ACCEPT
loc fw ACCEPT
fw net ACCEPT
net all DROP
all all REJECT
Enmascaramiento
/etc/shorewall/masq
Este archivo se lo utiliza para definir enmascaramiento (masquerading) o NAT, esto es útil cuando tenemos una red privada con la cual queremos navegar a través de un Proxy. En el siguiente ejemplo aplicaremos enmascaramiento para la interfaz eth0 (Red Lan) la cual sale por medio de la interfaz eth1 que es nuestra IP Pública:
eth1 eth0
#LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVE
Lo mas probable es que no les inicie bien el shorewall cuando prendan la PC, para resolver ese problema hacemos lo siguientes pasos.
1) cd /etc/init.d/
2) Creamos un archivo de texto llamado shoreclear.sh o el nombre que quieran. Dentro agregamos lo siguiente:
shorewall stop
sleep 4
shorewall clear
sleep 4
shorewall start
3) Lo guardan y le dan permiso de ejecucion.
chmod +x shoreclear.sh
4) Creamos un link blando en /etc/rc2.d/ de la siguiente manera.
cd /etc/rc2.d/
ln -s /etc/init.d/shoreclear.sh
mv shoreclear.sh S92shoreclear
Con eso cada vez que inicie el sistema va a ejecutar el script que hicimos en los pasos anteriores.
Como instalar shorewall en modo firewall bajo debian
Shorewall es un frontend amigable de IPTABLES que nos permite configurar un poderoso y robusto firewall entre otras cosas.
En esta guia vamos a ver paso a paso como configurar shorewall en modo firewall para una sola interfaz de red.
1. Instalamos shorewall.
apt-get install shorewall
2. Debemos copiar la configuracion por defecto a nuestra carpeta de configuracion.
cd /usr/share/doc/shorewall/default-config
cp * /etc/shorewall/
3. Ahora vamos a configurar los archivos de interfaces y zonas:
/etc/shorewall/interfaces: Acá vamos asociar las interfaces de nuestro sistema. En nuestro caso una: eth0
El contenido del archivo sería:
net eth0 detect routefilter,dhcp,tcpflags,logmartians,nosmurfs
/etc/shorewall/zones: Acá vamos a definir las zonas que utilizamos para las interfaces. Como solo tenemos una la llamamos net:
El contenido del archivo sería:
net net
/etc/shorewall/policy: Acá vamos a definir las políticas de seguridad para las zonas. Como solo tenemos una y lo que queremos es que se tenga acceso a internet (net) en un solo sentido vamos a poner lo siguiente:
El contenido del archivo sería:
$FW net ACCEPT
net $FW DROP info
/etc/shorewall/rules: Acá vamos a definir las reglas de trafico, estas reglas se superponen a las políticas asi que acá podemos permitir el trafico desde/hacia una zona bloqueada hacia/desde un puerto o rango en particular.
En nuestro caso queremos permitir el acceso al puerto 22.
El contenido del archivo sería:
ACCEPT net $FW tcp 22
4. Por ultimo debemos verificar que esta todo correctamente configurado antes de iniciarlo, para eso debemos hacer:
#shorewall check
y si esta todo bien podemos iniciarlo:
#shorewall start
Si no hay ningun problema ya estamos listos para configurar el inicio automatico de shorewall al bootear el equipo, para eso hay que editar los siguientes archivos:
en /etc/shorewall/shorewall.conf debemos poner:
STARTUP_ENABLED=Yes
y en /etc/default/shorewall:
startup=1
NOTA: si hacemos un cambio en los archivos debemos testearlos con shorewall check y si esta todo bien, reiniciamos el firewall con shorewall restart.
De esta manera tenemos nuestro sistema protegido con un potente y simple firewall.
Si lo desean, también pueden ver nuestro script para checkeo de reglas: http://www.wikipeando.com/index.php/archives/129








