miércoles, 12 de octubre de 2011

Implementación de firewall en SlackWare usando Shorewall


Firewall (Wikipedia)

Un cortafuegos (firewall en inglés) es una parte de un sistema o una red que está diseñada para bloquear el acceso no autorizado, permitiendo al mismo tiempo comunicaciones autorizadas.

Los cortafuegos pueden ser implementados en hardware o software, o una combinación de ambos. Los cortafuegos se utilizan con frecuencia para evitar que los usuarios de Internet no autorizados tengan acceso a redes privadas conectadas a Internet, especialmente intranets.


Shorewall (Wikipedia)

Shorewall (más apropiadamente el Shoreline Firewall) es una herramienta de código abierto para Linux que se basa en el Netfilter (iptables / ipchains) incorporado en el kernel de Linux, con el es más fácil de manejar esquemas de configuración más complejas.

NOTA 0: SlackWare en una instalación por defecto, instala IPTABLES y iptables es el software firewall nativo de linux actualmente; lo cual en este post solo vamos a instalar y a configurar el Shorewall.


Entorno de trabajo:

Sistema Operativo = Slackware 13.37 x86_64

Shorewall descargado = shorewall-4.4.9.tar.bz2

URL de descarga = ftp://slovakia.shorewall.net/mirror/shorewall/4.4/shorewall-4.4.9/

Tipo de configuración de Firewall = Shorewall con 3 interfaces.

1 = eth0 = Red cableada local

2 = wlan0 = Res inalambrica e internet

3 = tap0 = VPN con otras redes


Instalación de Shorewall:

Logearce como root y hacer lo siguiente:

Descomprimir el paquete:

#tar xvfj shorewall-4.4.9.tar.bz2


Ingresar al directorio descomprimido:

#cd shorewall-4.4.9


Ejecutar el instalador:

#sh install.sh

Con estos pasos anteriores ya queda el shorewall instalado.



Configuración Shorewall con 3 interfaces:

Cuando ejecutas el instalador de Shorewall, crea una carpeta donde quedan los archivos de configuración; esta carpeta es la siguiente: /etc/shorewall.


Los archivos mas importantes para la configuración son:

shorewall.conf

interfaces

zones

policy

rules


Configuraciones para cada archivo:

/etc/shorewall/shorewall.conf

Habilitar a shorewall para que inicie a trabajar.

Buscar la linea y cambiar “No” por “Yes”


STARTUP_ENABLED=Yes



/etc/shorewall/interfaces

Definir las interfaces de red que van a trabajar.

Agregar al final del archivo:


net wlan0 detect

loc eth0 detect

vpn tap0 detect



/etc/shorewall/zones

Definir la zonas a manipular:

Agregar al final del archivo:


fw firewall # Se considera la misma maquina donde esta el shorewall instalado.

net ipv4

loc ipv4

vpn ipv4



/etc/shorewall/policy

Este archivo se configura según la política que usted tenga en mente; en mi caso, no quiero que ninguna zona o interfaz se vea con la otra; en pocas palabras voy a cerrar todo:

Agregar al final del archivo:


loc net DROP info

vpn net DROP info

fw net DROP info

net all DROP info

all all REJECT info


/etc/shorewall/rules

Las reglas van puestas de acuerdo a lo que cada usuario necesite; en mi caso, esta maquina es una maquina cliente en un hogar; lo cual necesito:

DNS = Resolver Nombres e IP's

Webs

Webs Seguras

Msn

Gtalk

Skype

Ftp

ssh

Cliente SIP para llamadas Voz sobre IP.

Acceso a servidores Mysql


Con estos servicios haremos la configuración.


NOTA: para poder hacer esta instalación la persona que la realice debe saber que es un PUERTO, cuantos hay y a que servicios pertenecen.


COLOCAR MUCHA ATENCION:


Ejemplo 1 Colocar una regla:


ACCEPT fw net tcp 80

En este ejemplo anterior estoy dejando que nuestra maquina FW vaya a Internet por el puerto 80 a través de la net; recordar que net es la interfaz WIFI que tiene el Internet.


Ejemplo 2 Colocar multiples reglas:


ACEEPT fw net tcp 80,443

ACEEPT fw net udp 53,1234


En este ejemplo estamos dejando a nuestra maquina usar 80 = Web, 443 = Webs Seguras, 53 = DNS, 1234 un servicio cualquiera. Tener en cuenta que estoy usando protocolos UDP y TCP.


Ahora miremos como queda el archivo final y que función tiene:

/etc/shorewall/rules

Agregar al final:


# Desde el Firewall “La misma maquina”, hacia el WIFI.

#Aceptar en el protocolo TCP: Webs, Webs Seguras, Gtalk, MSN, FTP.

ACCEPT fw net tcp 80,443,5222,1863,21,20


#Aceptar en el protocolo UDP: DNS, VPN, Cliente SIP

ACCEPT fw net udp 53,1234,5060


#Aceptar desde el FW hacia la VPN: ssh, web, webs seguras, mysql, tomcat

ACCEPT fw vpn tcp 22,80,443,3306,8080


#Trafico entrante a la maquina, Solo permito la entrada al puerto 2201 en protocolo TCP, el cual es un servicio telnet.

ACCEPT net fw tcp 2201


NOTA 1: tener en cuenta que

FW = la maquina donde esta el shorewall.

net = La tarjeta WIFI que tiene el Internet.

vpn = la tarjeta tap0 que contiene la VPN con otras redes.


Administración de shorewall,

“solo funciona logeado como root en una terminal”:


Inicializarlo:

#shorewall start


Reiniciarlo:

#shorewall restart


Apagarlo:

#shorewall stop


Limpiar las reglas:

#shoreall clear


  • shorewall show log (Muestra los últimos 20 mensajes de netfilter)

  • shorewall logwatch (Verifica los logs a un tiempo determinado)

  • shorewall dump (Nos da un amplio reporte de los problemas encontrados por Shorewall)



Dudas u opiniones “En los comentarios”.


Gracias.

2 comentarios:

  1. no configuration file specified and /usr/share/shorewall/shorewall not found
    me sale ese error al ejecutar sh install.sh

    ResponderEliminar
  2. Al momento de reiniciarlo o Iniciarlo me da problema......a que se debe?

    ResponderEliminar