Red a Implementar.
A
continuación vamos a configurar un Firewall básico con Shorewall, este es una herramienta que nos facilita la configuración de Iptables. La
instalación se realizará en una máquina virtual usando VirtualBox con sistema
operativo CentOS, la idea es que entendamos un nivel básico de configuración y
funcionamiento de Shorewall, sus principales archivos de configuración, entre
otras características.
************************************************************************************************
Detalles Técnicos.
1 Servidor CentOS con 2
Tarjetas de Red (eth0/eth1).
Segmentos de Red
LAN Externa (Net)
Network
0.0.0.0/0
Eth0 (CentOS) DHCP (Asignada en forma Automática).
LAN Interno (Loc)
Network 192.168.2.0/24
Eth1
(CentOS) 192.168.2.10/24 (Estático).
PC
(Linux) 192.168.2.27/24
(Estático).
PC
(Windows) 192.168.2.26/24
(Estático).
1 Switch (asignado en forma
Interna Por Virtual Box),
2 PCS con Distintos S.O
(Linux/Windows).
************************************************************************************************
Configuración Previa del
Servidor Virtual CentOS
Activamos
y Configuramos nuestras 2 tarjetas de red en la maquina virtual, la primera
tarjeta quedara definida como puente o bridge (eth0/DHCP).
La
segunda tarjeta de red de nuestra maquina virtual quedara como tarjeta de red
interna (eth1/estático).
************************************************************************************************
Configuración de CentOS y
Shorewall
Una vez configurada e inicializada nuestra
maquina virtual procederemos a descargar el Paquete RPM desde la página oficial de
Shorewall (www.shorewall.net).
Descargado
El Paquete RPM de la página oficial procederemos su descompresión con el siguiente comando en consola.
Rpm –ivh
shorewall-4.4.12.1.RPM
************************************************************************************************
Finalizada
su instalación nos dirigimos a la siguiente ruta /etc/shorewall y verificamos si están todos los archivos de
configuración indispensable para que funcione firewall Shorewall (6).

- shorewall.conf: archivo de
configuración general.
- zones: Donde declararemos las zonas
y su tipo.
- interfaces: Donde le asignaremos las
interfaces a las zonas.
- policy: Donde declaremos las
políticas.
- rules: Donde declararemos las
reglas.
- masq: Enmascaramiento de la tarjeta
de red.
************************************************************************************************
Abrimos
con el editor de textos preferido el archivo /etc/shorewall/shorewall.conf y modificamos los siguientes parámetros y
guardamos:
STARTUP_ENABLED=Yes

STARTUP_ENABLED
Se
utiliza para activar Shorewall. De modo predefinido está desactivado, solo se
necesita cambiar No por Yes.
************************************************************************************************
IP_FORWARDING=On
ADD_IP_ALIASES
=No
CLAMPMSS=Yes
IP_FORWARDING.
Se
encarga de la retransmisión de los paquetes que se reciben por una interfaz
física y de retransmitirlos por otra interfaz hacia otro nodo.
ADD_IP_ALIASES.
Este parámetro
determina si Shorewall agrega automáticamente la dirección externa.
CLAMPMSS.
Se utiliza en conexiones tipo PPP (PPTP o PPPoE) y sirve para
limitar el MSS (acrónimo de Maximum Segment Size que significa Máximo Tamaño de
Segmento). Cambiando el valor No por Yes, Shorewall calculará el MSS más
apropiado para la conexión. Si es osado,
puede también especificarse un número en paquetes SYN. La recomendación es
establecer Yes si se cuenta con un enlace tipo PPP.
************************************************************************************************
Editamos
el archivo /etc/shorewall/zones, y
aquí declararemos las zonas como dije anteriormente, en nuestro caso tenemos dos
interfaces de red, que son eth0 y eth1, la eth0 se conecta a internet
(le llamaremos net), y la eth1 están conectadas las otras
máquinas de la red interna (la llamaremos loc), por lo tanto en nuestro caso
el archivo se vería así:
#ZONE
TYPE OPTIONS IN OUT
#
OPTIONS OPTIONS
fw firewall
net ipv4
loc ipv4
Aquí
ya hemos agregado las dos zonas, y por defecto tenemos la zona fw, la cual es
nuestro firewall, o sea nuestra máquina, guardamos y salimos.
************************************************************************************************
Editamos
el archivo /etc/shorewall/interfaces,
en este le asignaremos las interfaces a las zonas creadas previamente, el
archivo de configuración se vería así:
#ZONE
INTERFACE BROADCAST OPTIONS
net eth0 detect dhcp
loc eth1 detect
Aquí
le asignamos las interfaces a las zonas, y en BROADCAST escribimos detect,
para que detecte automáticamente el broadcast. Anexamente se pueden utilizar
las siguientes opciones complementarias para protección de ataques.
tcpflags.
Esta
opción causa que el Shorewall haga verificaciones de sanidad en los encabezados
de los paquetes TCP que arriban a la interfase. Esto incluye combinaciones
usados por los escaners de puertos.
blacklist.
Implementa
listas negras de IP que no queremos que pasen por la interfaz.
norfc1918.
La
interfaz no recibirá ningún paquete cuya fuente este en los rangos reservados
por el RFC 1918.
routefilter.
Activa
el sistema de antispoofing del kernel en la interfaz.
dropunclean.
Bloquea
paquetes inválidos o manipulados deliberadamente.
************************************************************************************************
Editamos el archivo /etc/shorewall/policy, como su nombre lo indica aquí declararemos
las políticas de seguridad, para nuestro caso lo definimos de la siguiente
forma:
#SOURCE DEST POLICY LOG LIMIT: CONNLIMIT:
loc net ACCEPT
net all DROP info
all all REJECT info
Aquí
hemos definido 3 políticas,
- Acepta todas las conexiones desde
la zona loc a la zona net la cual es el
Internet.
- Deniega todas las conexiones desde la
net hacia cualquiera.
- Niega cualquier conexión a
cualquier lugar.
************************************************************************************************
Con esto ya tendremos nuestro pequeña red bien
segura, pero no podremos hacer nada, ya que solamente tenemos acceso a la red
desde el firewall, todo está bloqueado, por eso necesitaremos editar el archivo
rules(reglas),
para agregar reglas en las cuales definiremos lo que vamos a aceptar, editamos
el archivo de configuración /etc/shorewall/rules.
Agregaremos
debajo de la línea SECTION NEW las reglas que queramos por ejemplo las
siguiente permitirá la conexión al puerto 22 (SSH), 80, 8080, desde Internet
(net) a nuestro firewall.
#ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL RATE
#SECTION ESTABLISHED
#SECTION RELATED
SECTION NEW
ACCEPT net fw icmp 8
ACCEPT net fw tcp 22
ACCEPT net fw tcp 53
ACCEPT net fw udp 53
************************************************************************************************
Para
finalizar vamos a enmascarar, y para ello utilizaremos el fichero /etc/shorewall/masq, en este
definiremos el enmascaramiento para la red
local (Interfaz eth1, zona loc), la cual sale por medio de la interfaz eth0 (Zona net).
#INTERFACE
SUBNET ADDRESS PROTO
PORT(S) IPSEC
eth0 eth1
************************************************************************************************
Solo basta reiniciar el servicio de shorewall con el comando service shorewall restart, pero antes debemos detener el servicio IPTABLES para que funcione en forma correcta.
Anexamente con
el comando shorewall se puede utilizar un sin numero de opciones, donde puedes
ver en tiempo real el estatus de log y trafico de un segmento a otro, algunos
comandos son:
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).
************************************************************************************************
Ahora Comprobaremos la buena configuración del
Firewall Shorewall instalando otra máquina virtual la cual será un Windows XP
la que debe apuntar a la red LAN Interna.
Asignamos la ip a la tarjeta de red según el
segmento que corresponda, la cual pertenecerá a la red interna 192.168.2.0/24.
Desde la máquina virtual con Windows XP,
tratamos de hacer ping 192.168. 2.10 a nuestro servidor Shorewall, el cual no
nos dará respuesta ya que así se encuentra configurado, independiente que este
dentro del mismo segmento de redes.
Verificamos la conectividad a Internet Explorer
y este debiera cargar la página de inicio con esto completaríamos exitosamente
la prueba de nuestro firewall.
************************************************************************************************
Comprobación del Firewall Shorewall instalando
máquina virtual con Linux Ubuntu al igual que la maquina virtual anterior
debemos configurar la tarjeta de red en LAN Interna.
Una vez cargada la maquina virtual comenzaremos a configurar una IP estática
Correspondiente al segmento 192.168.2.0/24
Para ello seleccionamos las siguientes
opciones:
Conexiones
de red
Editamos
conexión cableada
Ajustes
de ipv4
Método[manual]
En Dirección pichamos Añadir.
Ingresamos
la dirección IP
Mascara
de Red
Puerta
de Enlace
Servidores DNS
Guardamos y salimos
La Última prueba es verificar la conectividad a
internet, seleccionamos firefox y si este nos resuelve la página de inicio eso
significa que nuestro firewall está operando en forma satisfactoria.