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
CODE:
-
#ZONE INTERFACE BROADCAST OPTIONS GATEWAY
-
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.
CODE:
-
#ZONE DISPLAY OPTIONS
-
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.
CODE:
-
loc net ACCEPT
-
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:
CODE:
-
#INTERFACE SUBNET ADDRESS PROTO PORT(S) IPSEC
-
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:
CODE:
-
#!/bin/sh
-
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.