Copy Link
Add to Bookmark
Report

eMc2H 8 - Guia de firewalls

eZine's profile picture
Published in 
eMc2H
 · 29 Apr 2022

Autor: kobe
eMc2H


INDICE

  1. Introduccion a los firewalls
  2. Riesgos en servidores webs (HTTP)
  3. Riesgos en otros servicios de internet
  4. Implementacion de firewalls
  5. IPFW e Introduccion a Checkpoint Firewall-1
  6. Mantenimiento de nuestro firewall
  7. Glosario
  8. Despedida

1. Introduccion a los firewalls

Bueno, los novatos en el tema de los firewalls probablemente se pregunten que son o para que son, con que se comen o de que sirven. Empezemos definiendo los tres tipos de firewalls mas comunes son:

  • Firewall de filtrado de paquetes
  • Firewall como servidor proxy
  • Firewall de inspeccion de estados

1.1 Firewall de filtrado de paquetes

El primero de estos es el que vamos a analizar mas profundamente en este texto, se trata del firewall de filtro de paquetes. Este tipo de firewall funciona siendo analizando cada paquete o dato que salga/entre entre dos o mas redes. Este tipo de firewalls por lo general disponen de una lista de "reglas" o "politicas" acerca de que paquetes son aceptados y cuales son rechazados tomando sus decisiones al analizar la cabecera del paquete y checar datos como la ip de destino, la ip de origen, el puerto y el protocolo entre otros. Los firewalls modernos analizan mas informacion, como el estado de las conecciones que intentan pasar por el firewall y el flujo de datos entre otras cosas.

Al comprar un paquete con la lista de reglas de un firewall de filtrado de paquetes, este puede hacer varias cosas como:

  • Redireccionar el paquete
  • Aceptar el paquete
  • Bloquear el paquete
  • Enviar un mensaje de tipo ICMP a la fuente de origen.

Por lo general, en los programas de filtrado de paquetes, las reglas son analizadas en el orden en que esten escritas en la configuracion del firewall es decir, la regla que se va a aplicar es la que se encuentre primero en la configuracion del firewall.


1.2 Proxy Firewall

Estos por lo normal son ordenadores corriendo algun servidor Proxy, que por lo general no permiten trafico directo entre dos redes. Por lo regular hay que reconfigurar los servicios que usemos (telnetd, httpd, ftpd, etc) para que puedan hacer uso adecuado de una configuracion del servidor proxy. Como los servicios estan funcionando en el mismo servidor que un firewall es un buen lugar para implementar buenas rutinas de control de acceso y de logging, este tipo de firewalls tambien suelen ser usados para redes que requieran de NAT (networks address translation).

*Como dije antes, este texto se centrara en los firewalls de filtrado de paquetes y su uso en el hogar, y oficinas/redes pequeñas.


1.3 Firewall de inspeccion de estados.

Combinan aspectos de otros tipos de firewalls, funcionan filtrando los paquetes en la capa de red y despues determinan si los paquetes son validos y analizan su contenido en la capa de aplicacion, a diferencia de los firewalls tipo proxy permiten la transparencia en las conecciones host-servidor. Ofrecen un alto nivel de seguridad y buen desempeño, pero son por lo general mas costosos y requieren un mayor conocimiento para poder configurarlos de forma adecuada.


1.4 Uso comun para un firewall de filtrado de paquetes.

Hoy en dia es importante el uso de un programa de firewall ya sea en el hogar o en nuestra red, esto es debido a la gran cantidad de ataques por internet que se registran diariamente. El uso basico de un firewall de filtrado de paquetes es el de mantener a salvo de ataques por internet nuestra pc y al mismo tiempo no interferir con nuestro trabajo que requiera uso de internet.

Los firewalls comunes basados en software ya sean de linux o windows por lo normal son usados para evitar intrusiones de personas no autorizadas a nuestro sistema, asi como proteger de ataques DOS comunes y en general pueden bloquear cualquier servicio o aplicacion que nosotros deseemos, por ejemplo, en una computadora Win* si tenemos instalado un troyano, digamos netbus que abrio el puerto 12345 en nuestro ordenador, el firewall puede bloquear todo intento de conexion que se trate de hacer por ese puerto si lo configuramos de forma correcta. En computadoras basadas en SO *Nix, se usan mas comunmente para bloquear ataques DOS o para restringir el acceso hacia los servicios de nuestra pc. Aqui cabe aclarar que por lo general las computadoras que usan algun derivado de unix por lo general ofrecen varios servicios de internet, como ssh, ftp, http, entre otros, asi que las politicas de nuestro firewall deben ser algo flexibles para no interrumpir el correcto funcionamiento de estos servicios, como las computadoras basadas en Win9X por lo normal no ofrecen servicios de red, se usan mas comunmente solo para bloquear ataques de script kiddies (dos, troyanos, etc)

Haciendo una lista se podria resumir que un firewall nos sirve para:

  • Ataques DOS o Nukes en internet
  • Pueden bloquear accesos mediante troyanos o rootkits
  • Pueden ayudar a controlar programas de tipo "spyware" y el spam
  • Ayudan a asegurarte de que tu pc no sea usada con fines maliciosos como atacar a otros mediante DOS
  • Ayudan a evitar robo de nuestra informacion

1.5 Una politica de seguridad.

Recuerda que tu firewall y las reglas de seguridad de este solo son una implementacion tecnica de la politica de seguridad. La mayoria de las de tamaño mediano y grande ofrecen una politica de seguridad a los empleados que define que se permite y que no, por lo comun con un oficio en el que indican las caracteristicas de su politica de seguridad. El firewall es una herramienta tecnica que define como se hara obedecer esta politica, y se recomienda combinarlo con otras medidas de seguridad.


2. Riesgos en servidores web (HTTP)

HTTP que por sus siglas significa "Protocolo de Transferencia de HyperTexto" es el protocolo universalmente usado para el servicio de paginas webs en internet, practicamente todos los servidores web del mercado soportan HTTP (por no decir que todos), ademas HTTP puede ser usado como agente para la comunicacion entre otros protocolos de internet, incluyendo al SMTP, NNTP, FTP, Gopher, etc

Por defecto, los servidores web establecen sus conecciones TCP/IP en el puerto 80, pero como en la mayoria de protocolos nosotros podemos configurar el puerto en que nuestro servicio estara a la escucha.

Porque hablamos de esto si nuestro texto es sobre firewalls ? Pues bien, porque no podremos proteger nuestro servidores web si no sabemos al menos lo basico respecto a como funciona.

Cuando una persona accesa a un servidor web, el cliente de dicha persona envia al servidor la IP de su computadora, o en algunos casos lo que el servidor capta es la IP del proxy de dicha computadora, en caso de que este configurada para usarlo, una vez que nuestro servidor web capta la ip de la computadora y su posible dominio, el servidor aplica algunas reglas de autentificacion para determinar si el cliente tiene acceso a la web solicitada.

Este esquema de cliente-servidor tiene varios motivos para justificar el uso de un firewall en servidores web, entre los posibles riesgos de seguridad para un servidor HTTP de este tipo estan:

  • Autentificaciones falsas
  • Compromisos de privacidad al contenido de la web
  • Abuso de los recursos del servidor
  • Posibles bugs o agujeros de seguridad en el servidor (exploits)
  • Posible robo de Logs del servidor

Algunos otros sistemas como el SSL o el S-HTTP (secure http) intentan solucionarlos, pero solo lo han logrado parcialmente, ademas, hay que sumarle a las debilidades de este protocolo el hecho de que codigos mal escritos ya sea en Java, ActiveX, PHP, scripts CGI o cualquier otro lenguaje extendido para la web llevar sus propios riesgos de seguridad comprometiendo toda la seguridad de nuestro servidor.

eMc2Help:

  • No corras el servidor como root
  • Documentate bien acerca de las opciones de tu servidor HTTP
  • Desactiva el listado de directorios
  • Configura el server para no seguir Links simbolicos
  • Limita o prohibe los lenguajes del lado del servidor
  • Si tu servicio WWW va a transmitir informacion privada, usa SSL
  • Monitorea los logs del servidor
  • Ten cuidado con la instalacion de scripts CGI


3. Riesgos en otros servicios de internet

Bien, en esta seccion hablaremos de forma general y superficial de algunos de los riesgos mas comunes en servicios comunes usados en internet, tratar de explicar de forma detallada la seguridad en internet tomaria un libro entero asi que solo nos enfocaremos a las cosas mas generales y en un capitulo posterior veremos consejos de implementacion de firewalls para detener o al menos reducir el riesgo de ser victimas de algunas de estas amenazas.


3.1 E-Mail

El email, con todo y las ventajas que tiene y su infinidad de usos practicos es una de las fuentes mas comunes para los script kiddies en internet. Desde spam masivo, pasando por mail bombing hasta la distribucion de virus y aunamos a esto que en ocasiones es practicamente imposible el rastrear el origen de un correo (dependiendo del atacante y su capacidad, claro esta)

Otro de los riesgos del email tambien incluye a atacantes tratando de leer nuestros emails o el de nuestros clientes intentando robar informacion privada Cuando un email es enviado a traves de internet, puede ser expuesto a programas que automaticamente van a revisar el contenido del internet en busca de informacion especifica.

Una buena medida de prevension para estas intrusiones a la privacidad seria el uso de algun sistema de encriptacion como el PGP (Pretty good privacy) combinado con el uso de firmas digitales.


3.1.1 SMTP

Cuando se habla de correo electronico por lo general estamos hablando del SMTP (Simple Mail Transfer Protocol)
Aqui esta un Log de ejemplo de una sesion SMTP, las flechas indican el flujo de los datos <-- Indica un mensaje del servidor SMTP hacia el cliente
y --> Indica un mensaje del cliente hacia el servidor.

<--- 220 core.eMc2H.com SMTP 
---> HELO SOMEONE.ON.WORLD
<--- 250 core.eMc2H.com
---> MAIL FROM:<guest@SOMEONE.ON.WORLD>
<--- 250 OK
---> RCPT TO:<root@core.eMc2H.com>
<--- 250 OK
---> DATA
<--- 354 Start mail input; end with <CRLF>.<CRLF>
---> From guest@SOMEONE.ON.WORLD Thu Jan 27 21:00:05 EST 1994
---> From: guest@SOMEONE.ON.WORLD
---> To: root@core.eMc2H.com
---> Date: Thu, 27 Jan 94 21:00:05 EST
--->
---> Hola, este es un mensaje de prueba.
--->
---> Guest
---> .
--->
<--- 250 OK
.... SOMEONE.ON.WORLD!guest sent 273 bytes to core.eMc2H.com!root
---> QUIT
<--- 221 core.eMc2H.com Terminating


En este ejemplo, SOMEONE.ON.WORLD esta enviando un correo a la maquina local, Core.eMc2H.com, como ven es un ejemplo basico y facil de entender. Desde el punto de vista de la seguridad, el protocolo SMTP no es tan vulnerable, sino el software de servidor SMTP que usemos que en el mundo Unix por lo regular es el Sendmail, software que por cierto ha sido victima de multiples exploits y agujeros de seguridad que lo convierten en un blanco atractivo para las actividades maliciosas en internet.

Algunos de los remplazos para el sendmail no son tan superiores en materia de seguridad como aclaman ser ya que la experiencia sugiere que son menos explotados solo porque son menos usados, no porque sean mucho mas seguros. Existe software de servidor SMTP diseñados explicitamente para la seguridad pero sacrifican algunas de las caracteristicas de Sendmail.


3.1.2 Consejos de seguridad en caso de exploits/spam en SMTP (sendmail)

  • Identifica la fuente del correo checando su cabecera y reconfigura tu firewall bloqueando los accesos desde esa ip, ten cuidado al asumir que el atacante es la misma persona que aparece en las cabeceras del email, ya que en muchas ocasiones el nombre que aparece en las cabeceras solo es un alias.
  • Si tu servicio de correo es a traves de un proveedor de internet informales que estas siendo victima de spam o mail bombing para que ellos puedan configurar su firewall/router de forma que prevengan accesos de la fuente del atacante.
  • Asegurate que sendmail no descargue automaticamente los "attachment" al servidor
  • Como siempre, revisa la seguridad de tus contraseñas
  • Limita el numero de usuarios confiables (trusted) en el sendmail.cf
  • Asegurate que tu version de sendmail NO soporte los comandos debug, wiz o kill
  • Manten actualizada tu version de sendmail y sus parches
  • Comprueba que los archivos de alias no puedan ser modificados por usuarios no autorizados
  • Recomiendo desactivar los comandos VRFY y EXPN en la configuracion del sendmail.

3.2 File Transfer Protocol

La transferencia de archivos es uno de los servicios mas usados en internet y con la web este servicio se ha vuelto mas concurrido y facil de usar, lo que conlleva a una mayor dificultad para controlarlo y asegurarlo.

La seguridad es uno de los mayores problemas del protocolo FTP al punto que la mayoria de las compañias optan por transferir sus archivos desde los mismos servidores web o usando otros medios, uno de los mayores riesgos de seguridad del FTP se trata de que los datos del user/pass se envian sin encriptacion por la red, asi que un sniffer en el router podra capturar tus datos y toda tu sesion de ftp.

Una solucion para este problema seria usar una version SSL tanto en el servidor como en el cliente FTP, ya que al usar SSL la informacion viaja encriptada a traves de la red. El problema con SSL es que se requiere que ambas partes dispongan de un Certificado de Autoridad que es usado para establecer la verdadera identidad del cliente y server.

Otros problemas comunes representan el acceso anonimo a un servidor ftp que por lo general conducen a intentos de explotar el servidor y como siempre, los errores propios del software de FTP que usemos.

eMc2Help:

  • Checa que tu servidor FTP funcione de la forma que esperas, es decir, asegurate que los usuarios anonimos o no privilegiados no puedan accesar a la informacion delicada.
  • En caso de ofrecer acceso anonimo de FTP, asegurate que ninguna carpeta o archivo de esa area sea escribible por el usuario anonimo.
  • Asegurate que el dueño de las carpetas y archivos accesibles desde ftp NO sea el usuario FTP que es el ID de los usuarios anonimos.
  • Si ofreces acceso FTP anonimo asegurate de proteger el fichero /etc/passwd ya que podria caer en manos peligrosas y ser victima de ingeniera inversa, tambien recomiendo usar shadow o algun otro sistema de seguridad para este fichero
  • Revisa bien los permisos de directorios y archivos
  • Manten actualizado tu Demonio o servidor de FTP

3.3 Domain Name Service

Como ya sabran, el Sistema de Nombres de Dominio (DNS, Domain Name System) es el protocolo usado en internet para localizar y traducir nombres de dominio a IPs. En la primera epoca del Internet, era posible el que cada sitio mantuviera una tabla de correspencia para los nombres de dominio y sus ips pero ahora, con millones de dominios registrados no resulta practico el usar esta metodologia. En su lugar, el DNS le permite a cada sitio mantener la informacion sobre sus hosts al mismo tiempo de encontrar la informacion de los demas.

En cuanto los riesgos del DNS, uno de los mas tenidos es el spoofing, aunque no hay muchos reportes de ataques de este tipo no seria correcto asumir que estamos seguros, este tipo de ataques permite que un atacante redirija el flujo Normal de la IP correspondiente a un dominio, hacia la ip que el atacante indique.
Un riesgo a la privacidad cortesia del DNS es que mal configurado podria proporcionar mas informacion de la que deberia de nuestro sitio, por ejemplo, digamos que un atacante puede ver CORE.EMC2H.COM y despues de algo de busqueda recibe informacion de todo nuestro dominio EMC2H.COM

eMc2Help:

  • Restringe las transfers zone o desactivalas de ser posible
  • De nuevo, asegurate de correr la version mas actual del demonio de DNS
  • Usa las direcciones IP en lugar de los nombres de dominio para la autenticacion en servicios que requieran mayor seguridad
  • Autentifica a los usuarios en vez de direcciones IP, ya que la ip puede ser spoofeada

4. Implementacion de firewalls

Durante años los firewalls eran herramientas de dificil instalacion y configuracion pero como todas las cosas buenas, esto ha evolucionado hasta el punto que muchos usuarios tienen ya un firewall instalado y ni siquiera lo saben. A continuacion veamos algunos consejos para la implementacion de firewalls


4.1: Firewalls para una pc windows en el hogar

En el caso de las computadoras windows, los programas de firewall de Mcafee, Sygate y el ZoneAlarm ofrecen una buena proteccion para los riesgos comunes de una computadora Windows de escritorio. Estas computadoras por lo general no ofrecen ningun servicio de red (http, ftp, etc) y normalmente no almacenan informacion critica en ellas (no le llamo critico a la lista de contactos del Messenger o a los mp3s que bajan de kazaa)

Aun asi, recomiendo tener un firewall que nos proporcionara un buen nivel de seguridad para nuestra pc del hogar.

Estos tres programas firewall son ejemplos comunes de un firewall de filtrado de paquetes basado en reglas y politicas. Cuando alguien intenta acceder a tu pc, ya sea que se trate de un troyano como sub7 o de que sea alguien que quiera conectarse para jugar en linea contigo un Counter Strike el firewall por lo normal te preguntara si deseas Aceptar o Bloquear la coneccion. Estos firewalls traen archivos de reglas por defecto en el que se bloquea la actividad maliciosa como nukes y troyanos al mismo tiempo que permite el uso de las actividades comunes en internet.

Un punto importante a considerar es que un firewall mal configurado es peor que no tener firewall, hay que analizar que un firewall configurado de forma erronea podria bloquear protocolos que usamos comunmente como el HTTP, IRC, MSN, etc. Es importante que revises la configuracion de tu firewall para que sepas como va a reaccionar ante determinado evento.

Fuera de esos detalles de configuracion, la instalacion de estos firewalls personales para windows es una tarea sencilla que como normalmente pasa en este OS, solo sera necesario algunos clicks del mouse para tenerlo funcionando (pero recuerda que esta es la fuente del problema que comente, que en sus esfuerzos por facilitar la instalacion el firewall se configura de forma automica y por lo general no como nosotros lo requerimos)


4.2 Implementando firewalls en un entorno de redes

A la hora de implementar un firewall en un entorno mas hostil, es decir en un entorno de redes se hace necesario cuidar mucho mas caracteristicas que en el firewall para el hogar.
Es necesario plantearnos las siguientes preguntas a la hora de implementar un firewall en un servidor pequeño:

  • Que servicios deseo proteger ?
  • Voy a configurarlo yo el firewall o voy a comprar algun paquete preconfigurado de alguna compañia?
  • Que tantos recursos quiero emplear? (de tiempo dinero y esfuerzo)
  • Voy a usar Telnet ? (no recomendado) y en caso de hacerlo, como voy a prevenir que alguien robe mis contraseñas?
  • Como voy a lograr que los miembros de la red se adapten a las politicas del firewall?

En los siguientes capitulos asumire que has decidido instalar personalmente (una red pequeña dudo que tenga los recursos necesarios como para instalar un firewall basado en hardware) software de firewall usando filtrado de paquetes. La configuracion deberia ser similar en la mayoria de los firewalls de filtro de paquetes.

Usare como ejemplo a ipfw disponible ya instalado ( pero no activo en el kernel generico) en sistemas FreeBSD.


4.3 Profundizando con el filtrado de paquetes

En este punto no voy a detenerme a hablar de lo que es propiamente de la instalacion del software, puesto que ipfw viene instalado por defecto en FreeBSD Linux incluye iptables y openbsd trae a pf asi que si usamos algun sistema unix lo mas seguro es que ya lo tengamos instalado, tan solo no olvides que el Kernel Generico comunmente no tiene soporte para filtrado de paquetes, asi que tendriamos que activarlo y recompilar el kernel.

En su lugar hablaremos de nociones teoricas acerca del filtrado de paquetes y su lugar en una red.
Cuando estes implementado un firewall no olvides haber respondido previamente a preguntas como: Que servicios voy a ofrecer libremente y cuales estaran filtrados? Voy a ocupar X servicio ? (si no lo ocupas no lo actives ; ) recomiendo tener anotados en una hoja la idea que tenemos de nuestro firewall, es decir, lo que esperamos que haga ya que estre instalado y configurado.
Mientras mas clara sea nuestra idea del firewall que vamos a aplicar, mas probable es de que la operacion salga bien al final del proceso.


4.3.1 Ventajas del filtrado de paquetes:

  • Quizas la principal ventaja sea, que provee de un lugar centralizado la proteccion de firewall para toda la red, pongamos como ejemplo al Telnet, si tenias digamos 5 computadoras corriendo el demonio de telnet, y de repente ya no quieres ofrecer mas este servicio, tendrias que desactivar el demonio en cada computadora, y estar preocupado de que a la hora de instalar algun sistema nuevo, o reinstalar el sistema operativo, tambien volver a desactivar el demonio telnet. Ahora digamos que se trata de una red mas grande con unas 20 computadoras, captas el problema? El filtrado de paquetes nos permitiria filtrar y bloquear las conexiones de todas nuestras pc en un solo lugar.
  • Muchos routers traen filtrado de paquetes integrado
  • A diferencia de los firewalls tipo proxy, el firewall de tipo de filtro de paquetes no requiere software especifico o configuracion de las pc clientes
  • Existe buena documentacion para aprender a manejar facil y rapidamente los comandos especificos de nuestro software de filtrado.

4.3.2 Desventajas del filtrado de paquetes

El filtrado de paquetes no es perfecto, si lo fuera ya todas las pc conectadas a una red lo estarian usando. Algunos de sus problemas son:

  • Tienen poca capacidad como para auditar su seguridad, muchas veces es necesario ser victima de una intrusion para darnos cuenta que algo estaba mal con nuestro firewall.
  • La configuracion de las reglas es algo confusa si queremos elaborar politicas de gran tamaño
  • Como en todo software, nuestro paquete puede tener errores en el. En un firewall tipo proxy esto normalmente provoca que se sigan transmitiendo datos pero en un firewall de filtrado, podria aceptar paquetes que debio haber negado.
  • Menos seguro que otras implementaciones de firewall

4.3.3 Ubicacion de nuestro firewall de filtro de paquetes en una red.

Si conoces algo de redes, sabras que hay distintos topologias cada una con sus respectivas caracteristicas, lo que conlleva a una gran variedad de lugares donde seria posible colocar nuestro firewall.

En nuestra red pequeña, lo mas probable es que solo haya un router asi que no habra mucho problema al respecto, simplemente ponemos la computadora que tiene el software de filtrado de paquetes entre el router y el resto de las computadoras de nuestra red para ofrecerles el filtrado a todas

Nota: asumo que tu router no ofrece ninguna opcion de filtrado, o que la haz desactivado, aunque muchos routers ya traen firewall integrado, aqui estamos hablando de herramientas basadas en software.

Ahora supongamos otro ejemplo, supongamos que formas parte de una red un poco mas grande que cuenta con un par de routers, donde hacer el filtrado de paquetes ? Lo mas recomendable seria instalar firewall para cada router, y analizar cual es el flujo que deseamos permitir en cada uno de los routers que dispongamos, y seria recomendable combinarlo con otro mecanismo como los TCP Wrappers.

Aunque esto pudiera conducir a la duplicacion de reglas en varios filtros en nuestra red, esto no es algo malo, sirve para tener mas redundancia y podria ser un verdadero alivio en caso de que alguno de nuestros routers llegara a fallar.
Quizas te preguntes, porque no hacer el filtrado en todas las computadoras de la red entonces ? Pues hay un par de razones muy importantes, la primera es por motivos de mantenimiento, estar dandole mantenimiento a cada filtro seria una tarea laboriosa y compleja y quizas algunos filtros de tu red deban aceptar paquetes que otros no deberian, la segunda razon es por motivos de desempeño, aunque quizas en tu red las cosas funcionen bien, el desempeño seguramente se reduciria bastante si los paquetes tuvieran que pasar por varios routers y servidores antes de llegar a tu lan.


4.4 Extra: Un paquete comun y algo de teoria de redes

Para entender la estructura de un paquete comun es necesario entender algunas cosas sobre las redes, en especial como es manejada cada capa en la pila TCP/IP

  • Capa de aplicacion: (FTP, Telnet, HTTP)
  • Capa de transporte: (TCP, UDP)
  • Capa de internet: (IP)
  • Capa de red: (Ethernet, ATM)

En cada capa, un paquete tiene dos componentes, se trata de un cuerpo y una cabecera, en la cabecera hay informacion relevante al protocolo de esa capa, mientras que en el cuerpo estan los datos para esa capa que por lo normal consiste del paquete entero de la siguiente capa en la pila. En cada capa, el paquete contiene toda la informacion pasada desde una capa superior, asi nada se pierde, a este proceso de preservar los datos de capa en capa mientras se le agrega una nueva cabecera se le llama "Encapsulamiento de datos"

Pongamos un ejemplo, en la capa de aplicacion el paquete consiste simplemente de los datos que seran transferidos, (por ejemplo un fragmento de un archivo que esta siendo transmitido usando FTP). Al moverse a la siguiente capa, la capa de transporte, el protocolo TCP o el UDP retiene los datos de la previa capa y anexa la cabecera del protocolo al paquete. En la siguiente capa, la capa de internet, toma el paquete completo (que consiste ahora de la cabecera TCP o UDP mas los datos) que lo considera como datos y agrega su propia cabecera, finalmente en la capa de red Ethernet o algun otro protocolo de redes toma todo el paquete entero y agrega su cabecera.

Del otro lado de la coneccion, el proceso se revierte, mientras los datos son pasados de una capa a la siguiente capa superior, se le va quitando la cabecera de su respectiva capa. Por ejemplo, la capa de internet remueve la cabecera IP antes de pasar los datos encapsulados a la capa de transporte (TCP o UDP) En nuestros intentos por entender el filtrado de paquetes, la informacion mas importante para nosotros seria las distintas cabeceras de las capas, una descripcion de cada una de estas cabeceras seria algo larga asi que lo dejamos para algun otro texto que este dedicado a redes =]


5 IPFW e Introduccion a Checkpoint Firewall-1

5.1 Ipfw basico

Bien, probablemente ya hayas tenido suficiente de teoria de firewalls. Hora de un poco de practica y accion. Hora de ir a la guerra :]
Tan solo recuerda tener en claro que es lo que vas o no vas a permitir en tu pc y recuerda que la primera regla que tengas sera la que influya en el paquete, es decir si en la primera regla tienes explicitamente indicado algo como:

# ipfw add 0 deny ip from any to any


El firewall bloqueara todas las conecciones que intentes hacer sin importar el resto de las reglas

La sintaxis de ipfw es:

# ipfw [-N] comandos [indice] accion [log] protocolo IP opciones


Veamos una descripcion de estas opciones.

  • -N sirve para indicar que quieres resolver las ips a dominios
  • Comandos.- Los comandos validos basicos son add y delete, que sirven para agregar o borrar una regla respectivamente
  • indice.- Si deseas indicar un numero de indice, la regla se agrega/borra con el numero que le hayas indicado. De otro modo, la regla se agregara con un indice de 100 en 100 (100,200,300, etc) sin incluir a la regla por defecto, la 65535.
  • accion.- veamos las 3 acciones mas basicas que hay
    • reject: Rechaza el paquete y envia un paquete ICMP a la fuente
    • allow: Permite el flujo del paquete (puede ser: pass, permit, accept)
    • deny: Rechaza el paquete pero No envia ningun paquete ICMP de vuelta

  • log.- Si activas la opcion de logging cuando una regla concuerde con un paquete, veras el mensaje en la consola del sistema (debes haber compilador el kernel con la opcion IPFIREWALL_VERBOSE para esto)
  • protocolo.- Pueden estar los siguientes valores
    • all: La regla influye sobre cualquier paquete
    • ICMP: Paquetes ICMP
    • TCP: Paquetes TCP
    • UDP: Adivinaste, es para paquetes UDP

  • IP.- El formato en esta parte es de la siguiente manera:
    • from IP/mascara[puerto] to ip/mascara[puerto] [via interfaz]

Analicemos todas esas opciones, empezando con la primera construccion:

from IP/mascara[puerto] El puerto es opcional y solo puede ser especificado si usamos un protocolo TCP o UDP y pueden indicarse varios puertosa la vez. Esta linea se refiere a la fuente de origen del paquete, la "mascara" se trata de un numero en el rango 0-32 que para efectos practicos nos sirve para especificar un rango de ips facilmente. Por ejemplo:

# ipfw add deny all from 148.233.0.0/16 to myserver


Con esta regla, estas indicando que se bloquee una ip de 148.233.0.0, pero tambien estas indicando una mascara de 16. Que pasa con esto ? pues bien, el rango bloqueado quedaria asi:

148.233.*.*


Bloqueando un gran numero de ips (65536 ips en total). (quizas en DalNET les gustaria probar con esa instruccion para seguir rechazando a los usuarios de prodigy Mexico)

  • to ip/mascara[puerto].- Similar a la construccion anterior, solo que aqui nos referimos a la ip destinataria en nuestra red.
  • [via interfaz].- Esta parte es opcional, pero probablemente nos sea util. Con esta instruccion podriamos separar facilmente el filtrado de nuestra LAN del filtrado con el resto de internet indicando el nombre de una interfaz de red (debemos usar los nombres que el kernel reconoce, como ed0, x10, lo0, ppp0, etc Tambien se puede incluir astericos al nombre para que concuerde con todas las interfaces de ese tipo, por ejemplo ppp* corresponderia con todas las interfaces PPP en el kernel.

Si recuerdas la sintaxis original de nuestra ayuda de ipfw (ipfw [-N] comandos [indice] accion [log] protocolo IP opciones) veras que aun nos falta por analizar el ultimo fragmento de esa construccion, son opciones extras para IPFW, demosle un breve repaso.

  • frag: Concuerda si el paquete no es el primero en el datagrama
  • in: Concuerda si el paquete va de entrada
  • out: Concuerda si el paquete va de salida
  • ipoptions [spec]:Concuerda si la cabecera IP contiene una lista separada por comas de opciones, estas opciones pueden ser: ssrr, lsrr, rr
  • established: Concuerda si el paquete es parte de una coneccion TCP ya establecida ( Tiene establecidos los flags RST o el ACK)
  • setup: Concuerda si el paquete intenta iniciar la coneccion TCP (el flag SYN esta prendido pero ACK no)
  • tcpflags [flags]: Concuerda si la cabecera TCP lleva algun flag TCP como: fin, syn, rst, psh, ack, urg. La ausencia de algun flag en particular puede indicarse con un signo!
  • icmptypes [tipos]: Concuerda si el paquete ICMP es del tipo indicado en el parametro [tipos]. Los tipos de ICMP son:
    • 0 - Echo Reply
    • 3 - Destination Unreachable
    • 4 - Source Quench
    • 5 - Redirect
    • 8 - Echo Request
    • 9 - Router Advertisement
    • 10 - Router Silicitation
    • 11 - Time-to-Live Exceeded
    • 12 - IP header bad
    • 13 - Timestamp Request
    • 14 - Timestamp Reply
    • 15 - Information Request
    • 16 - Information Reply
    • 17 - Address Mask Request
    • 18 - Address Mask Reply

5.2 Ejemplos basicos con IPFW

Pongamos un ejemplo con ipfw, digamos que quieres evitar que un usuario de microsoft.com quiera usar tu servicio de ssh en tu lindo servidor freebsd, bastaria con algo como:

# ipfw add deny tcp from microsoft.com to miserver 22


Bastante simple no ? pues con eso ya estas filtrando tu primer paquete, no hace mucho esta regla, pero es un ejemplo basico para proteger tu server, pero hagamos esto un poco mejor, agreguemosle capacidad de logging a nuestro firewall:

# ipfw add deny log all from microsoft.com/24 to myserver.org


Este ejemplo es mas divertido, ya que bloquea cualquier tipo de comunicacion que quiera transmitirse en toda la clase C de microsoft (por eso el microsoft.com/24) a cualquier puerto de nuestra pc y ademas guarda el log. Aunque estos ejemplos son basicos, no esta de mas checar la pagina del manual de ipfw para que puedas ver todas las opciones posibles.

Ahora digamos que haz detectado ataques de spam desde una ip mexicana, por ejemplo 148.240.72.119, lo mas elemental seria bloquear su ip no? este es otro ejemplo sencillo,

# ipfw add 1000 deny log all from 148.240.72.119 to myserver.org


aunque este ejemplo no es muy practico en el mundo real ya que la ip en este caso es dinamica. Aunque podemos agregar todo el rango de ips por ejemplo:

# ipfw add 1001 deny log all from 148.240.72.119/24 to myserver.org


aunque esto probablemente bloquearia a mas usuarios de los que deseamos bloquear pero en nuestra red pequeña de todos modos no hay motivo para que los usuarios externos tengan acceso a nuestro servidor de SMTP a menos que nosotros lo indiquemos implicitamente.

ahora un ejemplo para los dns, analizemos las dos siguientes lineas:

# ipfw add 2000 allow log all from mysecondaryserver.org to myserver.org 53 
# ipfw add 3000 block log all from any to myserver.org 53


un par de ejemplos simples pero practicos, con la primer linea estamos indicando que acepte y guarde el log de las conecciones de nuestro servidor segundario -mysecondaryserver hacia nuestro servidor principal myserver.org en el puerto 53. Sin embargo, no queremos que nadie mas pueda acceder a ese puerto en nuestro servidor principal asi que en la siguiente linea hemos bloqueado el resto de los acceso a nuestra ip.

Que hubiera pasado si la regla 3000 que puse de ejemplo estuviera antes que la regla #2000 ? pues algo simple, nadie podria entablar comunicacion con ese puerto de nuestra pc, ni siquiera nuestro servidor secundario. Recuerda que en la mayoria de los firewalls, al concordar un paquete con una regla que tengamos, inmediatamente se procede a ejecutar las acciones, es decir bloquear la conexion.

Un ultimo ejemplo con varios puertos:

# ipfw add 60000 deny tcp from any to myserver.org 21,22,23


Con esta linea, estamos bloqueando cualquier intento de accesar a nuestro server en los servicios ftp, ssh y telnet. La ponemos casi a lo ultimo (60, 000) porque probablemente querramos tener algo como esto primero:

# ipfw add 500 allow tcp from IPSCONFIABLES to myserver.org 21,22,23


Con esta linea vamos a aceptar conecciones a esos servicios solo de las fuentes que nosotros deseemos.


5.3 IPFW mas complejo

Aunque los comandos basicos de IPFW deberian ser adecuados para la mayoria de las redes pequeñas/redes caseras, no serian lo suficientemente flexibles en un agresivo entorno de redes donde ocupemos mas control acerca de lo que puede y no puede salir. A continuacion detallaremos un poco algunos parametros que mencionamos en el capitulo anterior.


5.3.1 Interfaces y flujos.

Como ya deciamos, una caracteristica bastante util de ipfw es su capacidad para especificar en que interfaz de red van a actuar nuestras reglas, asi como en que direccion (in/out). Hasta ahora, solo hemos usado la direccion de destino y la de fuente para determinar el flujo de nuestros paquetes, pero usarlos solos no siempre da resultados exactos que esperariamos.

Si solo quieres que una regla concuerde con los paquetes ya sea que entran (IN) o que salen (OUT) ipfw nos lo permitira. Por lo general, estas indicaciones las anotamos al final o casi al final de cada regla despues de haber indicado los otros parametros que deseemos.

Veamos un ejemplo:

# ipfw add 5000 allow all from any to any in


Esta regla nos permitira permitir libremente el flujo de trafico hacia nuestra pc de una forma mas avanzada : ] para hacer algo similar, pero solo permitiendo el flujo de nuestra interfaz de red x10 seria algo como esto:

# ipfw add 5100 allow all from any to any in via x10


recuerda que el nombre de tu interfaz de red depende del tipo de tarjeta que uses, Otro ejemplo, esta vez para que actue sobre todas las interfaces de red que tengamos en nuestro sistema y esta vez aceptando el trafico q salga:

# ipfw add 5200 allow all from any to any out via any


5.3.2 Estados en conecciones TCP

Aqui nos vamos a enfocar a dos estados de las conecciones TCP, a "setup" y "established", estos estados como era de esperarse solo pueden ser especificados cuando el protocolo que usamos es el "TCP".

setup: Se refiere a que toda regla que tenga esta opcion va a concordar con cualquier paquete TCP que lleve el flag SYN activado. Veamos un ejemplo sencillo de dos reglas que sirven para lo mismo:

# ipfw add deny tcp from any to any in tcpflags syn 
# ipfw add deny tcp from any to any in setup


En ambos casos sucedera lo mismo: Cualquier paquete TCP con la bandera SYN concordaran con cualquiera de estasdos reglas y seran bloqueados

established: Asi como hay una opcion para indicar la solicitud de inicio de una coneccion ("setup") existe esta para reconocer cualquier coneccion TCP ya establecida. Debido a su facilidad para trabajar con los estados en TCP setup y established son muy practicas para agregarle funcionalidad a un firewall.


5.4 Ejemplos finales y despedida de IPFW

Como que despedida de IPFW ? si aun falta mucho por ver ! pues si, aun faltan cosas bastante interesantes de ver en ipfw, por ejemplo control del ancho de banda o ejemplos avanzados de reglas dinamics, pero este es un texto dedicado a teoria y consejos generales de Firewalls, no un curso de ipfw. Los ejemplos que he dado hasta ahora y los proximos que pondre son facilmente aplicables a la configuracion de otros firewalls, solo hay que aprender la sintaxis que use tu firewall en especifico.

Los usuarios de windows por lo regular usan programas de firewall con una GUI como zone alarm, en este caso solo hay que acceder a su panel de control o cualquier otro lugar donde se puedan agregarles reglas, tan solo hay que interpretar como acomodar las reglas nada mas, un repaso a lo que he dicho anteriormente y probablemente tengas en claro lo que hay que hacer

Pero antes de irnos, veamos un par de ejemplos utiles para IPFW. empezemos con esto:

# ipfw add 1000 allow tcp from any to any established 
# ipfw add 2000 allow tcp from any to any 22 in setup


Que es lo que hace esto ? algo util, con ese par de lineas solo estamos aceptando conecciones SSH desde el exterior ( suponiendo que la politica por defecto de tu firewall sea bloquear todo ). Con la primer linea indicamos que cualquier paquete TCP de una coneccion ya establecida sera permitido. Con la segunda linea indicamos que las unicas conecciones que se van a poder establecer son las que lleguen por el puerto 22 (SSH).

Veamos otro ejemplo:

# ipfw add 1000 allow tcp from any to any established 
# ipfw add 2000 allow tcp from any to myserver.org/27 21,22,25 setup
# ipfw add 3000 allow udp from myserver.org/27 to any 53
# ipfw add 3100 allow udp from any 53 to myserver.org/27


La primer linea es igual a la del ejemplo anterior, estamos permitiendo que cualquier coneccion ya establecida se siga comunicando libremente en toda nuestra red.

Con la segunda linea, estamos permitiendo que se establezcan conecciones en los puertos 21 22 y 25 (ftp ssh y smtp) en nuestra pc myserver.org y con la mascara de bits 27 le estamos tambien indicando un rango. Supongamos que la ip de myserver.org es 200.66.6.207 al indicarle la mascara de bits 27 le estamos indicando que escanee tambien las siguientes 32 ips en ese dominio 200.66.6.207 - 200.66.6.239 asi quedaria el rango, entonces esta regla actuaria sobre todo esas ips dentro de nuestra red.
La tercer y cuarta linea, permiten la salida por el puerto 53 (DNS) a otras maquinas y permiten que paquetes UDP por ese puerto de otras maquinas lleguen a nuestro rango de ips.


5.5 CheckPoint Firewall-1

Analicemos al Firewall-1 de checkpoint software, una de las herramientas de firewall mas utilizadas hoy en dia (a pesar de su alto costo)


5.5.1 Tecnologia de inspeccion de estados.

La tecnologia de inspeccion de estados es una tecnologia desarrollada por checkpoint software technologies, esta tecnologia esta incluida en el Firewall-1 de esta compañia. Con esta tecnologia, CheckPoint asegura una mayor seguridad en la red de nuestra empresa, los modulos de inspeccion del Firewall-1 analizan a todas las capas de comunicacion y extrae el estado de comunicacion y aplicacion del paquete. El modulo de inspeccion puede entender y aprender sobre cualquier protocolo y aplicacion de red.


5.5.1.1 Modulo de inspeccion

El modulo de inspeccion del firewall-1 reside en el kernel del sistema operativo, debajo de la capa de red en el nivel mas bajo del software, gracias a esto Firewall-1 puede interceptar y analizar cada paquete antes de que lleguen al sistema operativo y ningun paquete es aceptado por defecto en las capas superiores a menos que firewall-1 verifique que exista una regla de aceptacion (allow).

El modulo de inspeccion tiene acceso al mensaje en formato "raw" gracias a esto puede examinar los datos en todas las capas, ademas de poder analizar la inforamcion de los estados. El modulo de inspeccion examina la IP, puerto y cualquier otra informacion requirida para determinar si los paquetes deben ser aceptados en nuestra red, tambien almacena y actualiza la informacion del estado en tablas dinamicas de comunicacion.


5.5.1.2 El lenguaje INSPECT

Usando el lenguaje INSPECT de checkpoint software, el Firewall-1 puede incorporar reglas de seguridad, datos de aplicaciones, informacion contextual, y datos de las comunicaciones en un poderoso sistema de seguridad, INSPECT es un lenguaje orientado a objetos de alto nivel.
Para facilitar las cosas, CheckPoint ha proveido al Firewall-1 de una interfaz grafica facil de usar donde podremos agregar y definis las reglas de nuestro firewall, tras haber hecho esto, el Firewall-1 genera automaticamente un script en lenguaje INSPECT. Este codigo es compilado desde el script y cargado en los puntos de firewall que tengamos, donde resida el modulo de inspeccion. Los scripts INSPECT estan en ASCII y pueden ser editados para poder crear politicas especializadas.

El lenguaje INSPECT proporciona gran estabilidad para el sistema, y permite que las empresas incorporen nuevas aplicaciones, servicios o protocolos modificando algunas de las plantillas ofrecidas por el Firewall-1 mediante su interfaz grafica.


5.5.1.3 Analizando a la inspeccion de estados

En un entorno agresivo de redes, un firewall de filtrado de paquetes quizas no sea suficiente para cubrir algunas caracteristicas avanzadas, o seria muy dificil implementarlas, para que un firewall ofrezca un buen grado de seguridad debe ser capaz de accesar, analizar y utilizar los siguientes datos:

  1. Informacion de la comunicacion. - Los datos de todas las capas de red
  2. Estado derivado de la comunicacion. - Es el estado derivado de una comunicacion previa, por ejemplo, el puerto de salida de una sesion FTP pudo haber sido guardado para que pueda compararse con el proximo paquete FTP.
  3. Estado derivado de la aplicacion. - Estado derivado de otras aplicaciones, por ejemplo, un usuario que ya se haya logeado una vez con exito tambien se le permitiria el acceso a otros servicios que esten autorizados
  4. Informacion extra. - Expresiones compuestas con los tres factores anteriores

El firewall-1 de checkpoint es capaz de cumplir con los cuatro puntos, mientras que un firewall de filtrado de paquetes de paquetes o los firewall proxy solo los cumplen parcialmente o no los cumplen del todo.

La tecnologia de inspeccion de estados de CheckPoint es capaz de superar algunas de las limitaciones de los dos tipos anteriormente mencionados de firewalls, con la inspeccion activa el paquete es interceptado en la capa de red y entonces el mecanismo INSPECT se hace cargo de el, extrayendo informacion relevante requerida para la decision que se vaya a tomar en las demas capas y mantiene la informacion en tablas dinamicas de estado para evaluar posteriores intentos de coneccion.


5.5.2 Mecanismo INSPECT

El sistema de inspeccion de estados del firewall-1 usa otra tecnologia unica creada por checkpoint, se tratra del Mecanismo INSPECT. Este mecanismo checa todas las capas de comunicacion extrayendo la informacion relevante para asi permitir un desempeño mas eficiente, ademas de soportar un gran numero de protocolos y aplicaciones (y se extiende facilmente tambien), como era de imaginarse, el mecanismo INSPECT puede programarse usando el languaje INSPECT, con este par de caracteristicas el Firewall-1 permite al usuario final el incorporar nuevas aplicaciones servicios y protocolos sin la necesidad de instalar nuevo software. Para la mayoria de las aplicaciones, incluyendo las que son creadas por los mismos usuarios los datos del comportamiento de la nueva aplicacion pueden ser facilmente agregados al editar alguna de las plantillas de scripts incluidas en el Firewall-1 usando una interfaz grafica.

Al instalarlo en una puerta de enlace, el mecanismo INSPECT controla todo el trafico pasando entre las redes. El mecanismo INSPECT se instala entre la capa de enlace y la Capa de red (capas 2 y 3), como la capa de enlace es la interfaz de red real (una tarjeta ethernet por ejemplo) y la capa de red es la primera capa en la pila de un protocolo que llega a nuestro servidor, el Firewall-1 esta posicionado en la capa mas baja posible para el software. Gracias a esto, el mecanismo INSPECT es capaz de interceptar efectivamente todos los paquetes ya sea que van de entrada o de salida.

Este mecanismo es capaz de entender a toda la familia de protocolos IP y las aplicaciones construidas en base a ellos. Para protocolos carecientes de connecion como el UDP o RPC el mecanismo INSPECT crea y almacena los datos contextuales mientras mantiene una coneccion virtual en lo mas alto de la comunicacion UDP. El mecanismo INSPECT es capaz de aceptar o bloquear conecciones de forma dinamica segun se vaya requiriendo, aunque el usuario puede desactivar estas caracteristicas en caso de que no las necesite.

A diferencia de otras soluciones, la arquitectura del Firewall-1 le permite interceptar, analizar y tomar accion de todas las comunicaciones antes de entren al sistema operativo de la puerta de enlace donde esta instalado el firewall asegurando la completa integridad y seguridad de la red. Entre las acciones que el firewall-1 puede tomar estan aceptar el paquete, bloquearlo , autentificarlo o encriptarlo, todo trafico no explicitamente permitido por las reglas del firewall-1 sera rechazado por defecto a la vez que el firewall emitira una alerta de seguridad y genera los logs correspondientes

Resumiendo, la inspeccion de estados ofrece soporte integrado para cientos de aplicaciones, servicios y protocolos, incluyendo servidores web, smtp, ftp telnet, etc. la familia entera del protocolo TCP, y otros protocolos como UDP y RPC, ademas tambien ofrece soporte para aplicaciones criticas de negocios como bases de datos Oracle y SQL y aplicaciones multimedia como RealSystem, NetMeeting y telefonia por internet.


5.5.3 Ejemplos basicos de reglas para firewall-1

Firewall-1 ofrece una herramienta grafica muy facil de usar, en este texto veremos algunos ejemplos de reglas sencillas pero practicas que pueden usar en sus archivos de reglas, obviamente no podre incluir imagenes de la interfaz de este programa pero tratare de representarlo en una tabla

#	Src		Dest		Type		Action		Log 
1. Mgmt-IPs Firewall SSH Allow Yes
2. Any Firewall Any Drop Yes
3. Internal Any Netbios Drop No
4. Internal Any Any Allow No
5. Any Mailsrv SMTP Allow Yes
6. Any Websrv HTTP Allow No
HTTPS
7. Any Internal ICMP 0 Allow Yes
ICMP 3
ICMP 11
8. Any Any Any Drop Yes


Aunque son reglas simples demosle un breve repaso:

  1. Le indicamos que las ips administrativas (Mgmt-IPS) pueden acceder al firewall para una posible configuracion remota (por eso el destinario es firewall)
  2. Bloqueamos todos los demas acceso a nuestro firewall
  3. Evitamos que paquetes de Netbios salgan de nuestra LAN.
  4. Permitimos que los usuarios de nuestra red se muevan libremente por internet. Pudimos haber activado solo servicios especificos y pudimos haber activado la opcion de Logging para mayor seguridad
  5. Aceptamos el trafico hacia nuestro servidor de correo.
  6. Aceptamos el trafico hacia nuestro servidor web.
  7. Aceptamos respuestas a pings e ICMP's del tipo 0 3 y 11
  8. Ninguna otra cosa se permite.

Un ejemplo para servidores DNS:

#	Src		Dest		Type		Action	        Log 
1. any dns-server domain-udp Allow No


Un ejemplo simple, permitimos que todos accedan a nuestro servidor DNS. Pudieramos continuar con estos ejemplos para otros servicios, pero considero que la interfaz del Firewall-1 es lo bastante sencilla para que todos los usuarios de red la entiendan facilmente.


5.5.4 Ultimas palabras sobre Firewall-1

Hemos analizado algunas de las caracteristicas mas basicas del firewall-1, este paquete es una herramienta completa de firewall para una red que incluye mas capacidades de las que hablamos aqui.
Dicho sea depaso, el Firewall-1 esta soportado para maquinas Windows (2000) y para arquitecturas Unix (Linux, Solaris).
Estas ventajas del firewall-1 no vienen gratis, su costo va desde algunos cientos de dolares hasta miles de dolares dependiendo de las caracteristicas que desees y del tamaño de tu red, y una desventaja del firewall-1 es que hay muy poca documentacion.

En resumen, en la mayoria de los ambientes de red un servidor basado en UNIX hara el trabajo con el firewall que incluya (como nuestra maquina de ejemplo con FreeBSD e ipfw). Algunas coorporaciones con recursos economicos suficientes apreciaran las caracteristicas y seguridad extra del Firewall-1


6. Mantenimiento de nuestro firewall

Bien, ahora que ya tienes tu firewall instalado y configurado apenas empieza la prueba de verdad. Tu red sera expuesta al internet con todos los riesgos que ello conlleva, encima de esto nuevas amenazas son descubiertas dia a dia, lo que implica que necesitaras mantener tu firewall y el resto de tu red actualizados.

Podemos dividir las tareas de mantenimiento de un firewall en 4 categorias basicas:

  • Auditoria
  • Administracion del sistema
  • Actualizaciones

A continuacion hablaremos brevemente de cada una de estas.


6.1 Auditoria a nuestro firewall

Para la auditoria de nuestro firewall lo primero que debemos tener en claro es saber que es lo que esperamos y lo que no esperamos que haga. Este par de puntos basicos deberian estar publicados en la politica de seguridad de la que ya hemos hablado, Lo importante es definir las expectativas desde el inicio para saber que es lo que quieres que pase con el firewall.

Listado de puntos en la auditoria del firewall:

  • Asegurate que nadie que no este autorizado pueda acceder a la administracion del firewall, ya sea un miembro de la compañia o un visitante por internet, para el primer caso ocuparas medidas de proteccion fisicas (que debieron haber estado cubiertas en la politica de seguridad) y control de acceso al sistema.
  • Asegurate de mantener seguro a tu sistema operativo
  • Hazle un scaneo de puertos al sistema, un firewall propiamente configurado deberia tener pocos puertos abiertos, en algunos casos es considerable tambien rechazar los "pings" que vengan desde el exterior. Solo deberias tener puertos abiertos en los servicios que explicitamente le indicaste al firewall que deseas correr (en el caso del Firewall-1 abre algunos puertos por defecto para la administracion remota, pero puedes desactivarlos)
  • Una buena medida de auditoria es intentar accesar a la red protegida por el firewall desde otras redes (o desde otro segmento que no este dentro del firewall en la misma red corporativa)
  • Recuerda que el firewall deberia rechazar todo por defecto, a menos que nosotros le especifiquemos que queremos usar un servicio determinado.
  • Si no estas seguro de necesitar un servicio, no lo actives, si todo sigue funcionando bien y nadie se queja quiere decir que no lo necesitabas
  • En el caso del firewall-1, que ofrece capacidades avanzadas de encriptacion e identificacion, no olvides asegurarte que estos servicios funcionan de forma correcta, por ejemplo si estas protegiendo el acceso al servidor Web mediante un servicio de identificacion, intenta entrar al servidor web sin identificarte para ver su reaccion. De la misma forma querras instalar un sniffer en tu red para probar que la informacion viaje encriptada en realidad.
  • Checa la lista de reglas del firewall, que este en orden.
  • No olvides checar y analizar los logs de forma periodica, en particular quizas podria intersarte:
    • Paquete rechazados y conecciones negadas
    • El protocolo y nombre de usuario de usuarios que han podido accesar al servidor publico (si es que disponemos de uno)
    • Mensajes de error

Algunas herramientas que pueden ayudarte en estas tareas: nmap, snort, tcpdump, nessus, sss (shadow security scanner)


6.2 Tareas administrativas del sistema.

Una vez repasada la seguridad y confiabilidad del firewall es necesario tambien mantener vigilado al sistema donde corre, ya sea un firewall casero o parte de alguna red(asumiendo que usas un firewall basado en software)

Como normalmente pasa en tareas administrativas, es mas facil llevarlas a cabo cuando solo somos unos usuarios de windows que tienen que respaldar sus datos. Si este es tu caso, probablemente no quieras respaldar el sistema operativo en si, solo los datos que te interesen (mp3s, documentos, juegos, tus fotos porno, etc). Un programa de respaldo y un quemador de CD's (de preferencia re-escribible) sera suficiente. Una buena eleccion para respaldo es el BackUp exec deluxe.

En el caso de redes de multiples maquinas, las tareas de respaldo del sistema son mas complejas y requeririan un enfoque distinto al de este texto. Por ahora hablemos del respaldo unicamente de nuestro firewall, para esto puedes usar un sistema automatico de respaldo, de preferencia que envie emails con mensajes ya sea de exito o de errores
En el caso de los routers, una solucion practica es respaldar su configuracion en diskettes de 3 1/2 y, si el router lo soporta, programar respaldos a un servidor ftp para mayor seguridad.

Admnistracion de usuarios.- Los usuarios de pc's en el hogar que corran windows no ocupan esta seccion, sin embargo en ambientes *Nix el manejo de las cuentas de usuario es una tarea aveces olvidada pero muy importante. Pocos usuarios deberian tener acceso al firewall, cada uno de ellos representa un riesgo en potencia, por eso cuando agreguemos usuarios debemos hacerlo de forma cuidadosa, ademas de borrar cuentas antiguas que ya no necesitamos y cambiar las contraseñas de forma periodica
Asegurate de revisar periodicamente las cuentas de usuario y asegurarte que en verdad son necesarias en el sistema, si tu sistema operativo soporta expiracion de contraseñas probablemente quieras activarlo, pero usa un tiempo generoso (de 3 a 6 meses) ya que existe el riesgo de que algun admin que requiera el manejo de la pc para momentos criticos se quede sin acceso. Tambien podria provocar inconformidad entre el resto de los usuarios del sistema el tener que cambiar sus contraseñas de forma muy seguida.

Administracion del espacio.- Aun con los enormes discos duros que se usan hoy en dia, los datos que guardamos siempre parecen ser mas grandes. Un problema comun es que dejamos cosas que en realidad no necesitamos, estos solo son malos habitos que adquirimos con el tiempo y son raiz de confusiones en un ambiente de redes.
Existen programas de auditoria para el espacio en disco que te informaran de cambios en areas especificas del disco duro en las que no deberia haber cambios, pero necesitaras personalmente (o delegarle esta tarea a otra persona) el checar areas en las que intencionalmente estan permitidos cambios en el disco.
Y un tema mas es el de los logs del sistema, que en maquinas de alto trafico puede consumir vorazmente el espacio de nuestro servidor, Estos logs deben ser reciclados automaticamente y probablemente querras comprimirlos tambien (no olvides que mientras intentas truncar o borrar logs, si el programa que los crea esta corriendo puede causar problemas)


6.3 Manteniendo actualizado el sistema

Esta es una necesidad logica que debemos aplicar no solo en los firewalls, de hecho, podemos dividirlo en dos partes:

  • Actualizacion personal ( a nuestros conocimientos para ser exactos )
  • Actualizacion del sistema en si

La primera la cumplimos al estar informado acerca de vulnerabilidades y avisos de seguridad, para este efecto nos sirve mucho la lectura. Leer revistas, listas de correos, foros, etc.

Un buen punto para estar informado es www.securityfocus.com

Respecto a las actualizaciones del sistema, si estas actualizado respecto a las nuevas vulnerabilidades debe ser una tarea sencilla y probablemente ya sepas que hacer y como responder ante nuevos retos.

Sin embargo hay algunas cosas a considerar cuando querramos actualizar el sistema:

  • No siempre te apuras para instalar un parche primero determina la importancia que tenga para tu sistema. Siempre es bueno dejar que un parche primero circule algunos dias en internet, ya que en ocasiones el mismo parche puede traer nuevos problemas
  • No parches problemas que no esten presentes en tu PC, de hacerlo, podrias estar llevandole riesgos de seguridad que antes no tenias.
  • No olvides que los foros y listas de correo son buenas fuentes para hablar acerca de parches a algun problema en especifico, si tienes alguna duda respecto a los parches quizas alguien que participe ahi ya tenga la respuesta.

Bien, con esto damos por concluido este capitulo, ya vimos algunas medidas practicas para el mantenimiento de tu firewall, ahora falta que las pongas en practica y no olvides documentarte constantemente.


7. Glosario

Hora de analizar algunos conceptos utiles en el mundo de los firewalls, algunos los pongo en el idioma ingles ya que asi es mas comunmente encontrarlos, y no pongo todos los terminos que nos encontraremos en el mundo de los firewalls sino los que considero de mayor importancia.

  • Abuso de privilegio. - Cuando un usuario interno hace algo que no esta autorizado, de acuerdo a la politica de seguridad.
  • Application layer firewall. - Sistema de firewall que por lo general funciona redirigiendo el trafico de forma que al de volver los datos hacen pensar que el origen es el firewall, y no nuestra red.
  • Ataque interno. - Ataque que proviene desde la red interna.
  • Autentificacion. - El proceso de determinar la identidad de un usuario que trata de entrar al sistema.
  • Bastion Host. - Es un sistema que ha sido implementado para resistir ataques, y que fue instalado de forma que potencialmente sera victima a ataques.
  • Data Driven Attack. - Tipo de ataque que consiste en enviar al firewall un paquete oculto en forma de datos comunes y posteriormente lanzar un ataque a la red detras del firewall.
  • Defense in depth. - Una politica de seguridad en la cual cada sistema de la red es protegido contra los peores desastres posibles. Se usan firewalls en forma conjunta.
  • Deteccion de intrusos. - Deteccion de accesos ilegales (o intentos de) ya sea de forma manual, mediante software especializado, logs, u otros recursos de analisis en la red.
  • DNS Spoof. - Alterando de forma ilegal el nombre de DNS de otro sistema al corromper el cache del nombre de servicio.
  • Host enmascarado. - Host en una red que esta detras de un router
  • IP Spoof. - Consiste en aparentar la ip de otra persona.
  • Least privilege. - Consiste en diseñar un sistema operativo de forma que opera con lo minimo posible de privilegias en el sistema de archivos.
  • Listas de control de acceso. - Reglas para los filtros de paquetes que indican que se permite y que se debe bloquear.
  • Logging. - Consiste en almacenar informacion sobre alguna actividad.
  • Network Layer Firewall. - Firewall en el que el trafico es examinado en la capa de red.
  • Politica. - Reglas a nivel organizacion en el que se definen el uso de recursos, practicas de seguridad y procedimientos.
  • Seguridad basada en el perimetro. - Tecnica de seguridad basada en controlar el acceso a todos los puntos de entrada y salida de la red.
  • Seguridad en base al host. - Tipo de seguridad que consiste en proteger a un solo sistema, dependiente del sistema operativo y su version.
  • Tunneling Router. - Router capaz de controlar el trafico encriptandolo y encapsulandolo para su transmision en redes inseguras previniendo posibles intentos de desencapsulacion y desencriptacion.


8. Despedida

Pues bien, hora de la triste despedida. pero no lloren que ya me veran por aqui de nuevo, quizas en algun texto dedicado a algun firewall en particular o algo mas acerca de las redes. No olviden que el uso de firewalls no es 100% seguro, me refiero a que los propios firewalls tienen sus vulnerabilidades asi que no crean que por tener un firewall ya estan seguros en contra de las amenazas por internet, por naturaleza todo equipo de computo existente es inseguro.

Nos vemos en otro texto, revisen www.emc2h.com para otras publicaciones o busquen en el irc en #eMc2H en Undernet.
Email: kobe@emc2h.com

hasta luego :-)

← previous
next →
loading
sending ...
New to Neperos ? Sign Up for free
download Neperos App from Google Play
install Neperos as PWA

Let's discover also

Recent Articles

Recent Comments

Neperos cookies
This website uses cookies to store your preferences and improve the service. Cookies authorization will allow me and / or my partners to process personal data such as browsing behaviour.

By pressing OK you agree to the Terms of Service and acknowledge the Privacy Policy

By pressing REJECT you will be able to continue to use Neperos (like read articles or write comments) but some important cookies will not be set. This may affect certain features and functions of the platform.
OK
REJECT