jueves, 8 de diciembre de 2011

Configurando un firewall en Smoothwall

Parte 1: Instalando el Firewall y Asignar Zonas.

En algún momento de la carrera de administradores de redes se llegará a configurar un firewall, para muchos es un verdadero reto pero para nada difícil tomando en cuenta la gran variedad de software, como Firewall Builder, y también de distribuciones de Linux basadas en IpTables, como en este caso Smoothwall. Smoothwall a diferencia de muchas otras opciones que se presentaron fue la que, de manera personal, encontré más amigable para formarme una sobre firewalls siendo que soy alguien que está recién adentrándose en seguridad de redes.

Está distribución de Linux es especial desde el momento de su instalación, puesto que desde ya hay que tener claro el esquema de la red en la que se va a implementar. Además tener el equipo con las tarjetas de redes necesarias para el esquema ya instaladas en el equipo, o sino ‘SW’ no dejará continuar la instalación. Para este caso se ocupara esquema de 3 zonas Outside, Inside y DMZ.

Lo siguiente es la ventana de bienvenida a la instalación de smoothwall, hay que ser un poco cauteloso en los pasos a seguir, después de la ventana de bienvenida preguntará por insertar el disco de instalación de ‘SW’, estando todo bien con solo presionar Ok la instalación seguirá sin problemas.


A continuación dará aviso que el disco duro será particionado y después formateado para la instalación de Smoothwall. Además dará un aviso de que todo será borrado de manera permanente, todos los archivos serán reescritos y sin la habilidad de deshacer. A todo, OK.


Ya listo el proceso de particionado, creación del sistema de archivos y sistema de log, empezará con la instalación de archivos, servicios relacionados con ‘SW’ y drivers básicos del sistema.


Terminada la instalación preguntará si se quiere crear un disquete de restauración de la instalación, generalmente se responde que no (ya nadie usa equipos con disquetera). Para seguir se elige la configuración del teclado y el nombre de la máquina, lo cual es muy importante al momento de la seguridad hay que tener muy claro esto al momento de instalar el firewall.


Esta parte es de lo más importante de la instalación de ‘SW’, aquí se ve como se quieren la políticas de seguridad hacia afuera por defecto. ‘SW’ trae 3 diferentes opciones:

Open: Todas las peticiones de salida están permitidas.
Half-Open: La mayoría de las peticiones de salida están permitidas, excepto las potencialmente peligrosas.
Closed: Todas las peticiones de salida están bloqueadas, y tienen que ser habilitados solo los puertos y servicios explícitamente requeridos.

En este “Laboratorio”, se eligirá Half-Open.


Con eso listo, se procede al menú de configuración de la red. Por defecto esto viene solamente con la interfaz Green (LAN Interna) activa, hay que dirigirse a Network Configuration Type para decir que tipo de configuración de red se requiere. Recordar que se hará de 3 zonas: Outside, Inside y Dmz.


Una de las ventajas que tiene la configuración de Smoothwall, es su amigable manera de identificar las zonas de un firewall que serían las siguientes (generalmente representadas como):
Red: Outside o WAN.
           Green: Inside o LAN.
           Orange: DMZ.
           Purple: WLAN.

Por lo siguiente la configuración de este laboratorio sería GREEN, ORANGE y RED.


Ahora se puede proceder con las demás configuraciones en el menú Network Configuration Menu. En Drivers and cards assigments, se configuran los drivers para las tarjetas y asignas a las interfaces (GREEN, ORANGE y RED). Address Settings, se configuran las direcciones de las puertas de enlaces para las interfaces y DNS and Gateway Settings, se asigna el DNS y la puerta de enlace que usarán en la interfaz RED el firewall.


Presionando ‘Done’, la instalación continuará e irá a un paso muy relevante que es la asignación de contraseñas para ‘SW’, al igual que un programa ya conocidos por muchos , ‘Trixbox’, hay que asignar una contraseña para el root y para el administrador web. Hay que procurar que no sean las mismas por motivos de seguridad.



¡Enhorabuena!, la instalación ha terminado. ¡Se está listo para configurar ‘Smoothwall’ y todos sus servicios!


Parte2: Configurando El Firewall

Ya instalado Smoothwall, se procede a configurar según las necesidades de la red en la que se está. Para entrar a la configuración web del firewall, se hace poniendo en el navegador web la ip que se asignó a la puerta de la interfaz Green por el puerto 441, por ejemplo:

http://192.168.1.1:441

Debería lanzar un error por certificado de seguridad, puesto que trabajo bajo https, ya adentro nos encontraremos con una pantalla de bienvenida con estadísticas en tiempo real del Firewall. Para empezar dirigirse a Networking y ahí a interfaces, y verificar que la configuración de las interfaces esté tal cual como había sido puesta en la instalación.


Continuando, dirigirse a la pestaña external access en esta pestaña se abren puertos de servicios de smoothwall para que sean administrados por hosts externos. Por defecto trae el puerto 113 TCP abierto.


En la pestaña Internal, se configuran los servicios que se quieren abrir para que se puedan comunicar entre hosts de las interfaces Orange (DMZ) o Purple (WLAN) hacia la Green (LAN).


La siguiente pestaña a revisar es Outgoing, aquí se abren los puertos de servicios a comunicarse desde la interfaz Green a la Red (WAN). Aquí se puede dejar el trafico en las interfaces de dos formas Allow with exceptions (Permitido pero con excepciones) o Blocked with exceptions (Bloqueado pero con excepciones), de forma personal elijo la segundo ya que es más restrictiva. Viene con algunos servicios configurados de manera predeterminada ahí uno elige los que uno quiere y agrega los necesarios que se tenga en la red LAN.


Una de las últimas pestañas a revisar, es Incoming aquí se hace la redirección de los puertos necesarios para lo comunicación de servicios desde la interfaz RED (WAN) hacia las redes internas.


Para poder configurar Smoothwall desde otra computadora por medio de SSH, se debe activar en el menú Services y dentro ahí en la pestaña Remote Access. Además ahí se puede encontrar la pestaña Web Proxy donde se activa de manera transparente el proxy Squid que trae integrado Smoothwall, a continuación explicaré como configurar Squid además de como bloquear páginas webs y extensiones de archivos.


Parte 3: Configurando Squid Web Proxy

Para empezar una pequeña introducción a Squid un web proxy muy usado por ser muy amigable al momento de configurar. Además de ser muy versátil. Smoothwall lo trae integrado dentro de su instalación normal, se puede también agregar módulos como Sarg que es un módulo de análisis de logs de Squid y poder saber de manera más ordenada en que páginas se meten los usuarios de la red.
Para empezar se debe entrar por SSH al firewall e ir a la carpeta /var/smoothwall/proxy/ y dentro de ese directorio buscar el archivo Squid.conf, Puede editarlo con nano o Vi dependiendo si la distribución lo trae incluido. Y se agregan las siguientes líneas:

acl all src 0.0.0.0/0.0.0.0
acl localhost src 127.0.0.1/255.255.255.255
acl localnet src 192.168.2.0/255.255.255.0

En estas líneas declaramos las redes con las que relacionarán las listas de acceso, en la última se declara a la red Green y se llama localnet. Esto para usarla en futuras acls.

Lo siguiente son las acl de bloqueo de páginas webs y extensiones de archivos. Hay dos maneras de bloquear páginas o extensiones puede ser una acl por página web o hacer una acl global y direccionarla hacia un archivo con el listado de páginas, lo mismo para el bloqueo de extensiones de archivos. En este caso se direccionó la acl hacia un archivo que contiene las páginas web y extensiones de archivo. Al final estará el ejemplo de cómo deben lucir esos archivos. (No hay que preocuparse por el formato de esos archivos, en Linux no tiene importancia)

--OUTPUT IGNORED--
acl blocked_sites url_regex "/var/smoothwall/proxy/sitiosmalos.txt"
acl blocked_ext urlpath_regex "/var/smoothwall/proxy/extensiones"
http_access deny blocked_ext
http_access deny blocked_sites
http_access allow localnet

Explicar un poco la sintaxis de las acls: primero se declara que es una acl y despues un nombre a la acl en el caso de las paginas web blocked_sites despues el tipo de acl que aquí sería "url_regex" y al final entre comillas le digo el directorio a donde dirigirse para buscar las url bloquedas. Para el caso de las extensiones hasta el nombre eso lo mismo pero el tipo de acl es "urlpath_regex" y también entre comillas el directorio del archivo con las extensiones. Despues ya declarada las acl hay decir si se permiten o denegan entonces se pone http_access, porque es de acceso de http, deny para denegar y el nombre de la acl (lo mismo para blocked_ext) y al final poner http_access allow localnet. Ya que si no encuentra coincidencias en las acls anteriormente declaradas dejará pasar el tráfico hacia internet.

Ya listo y guardado esto, en la administración web en la pestaña web proxy se pone Save para reiniciar el servicio de Squid y los cambios se apliquen. Ahora el firewall está listo para ser probado e instalado a la red. Con el tiempo se irán configurando nuevos requerimientos dependiendo de cómo la red vaya avanzando y creciendo.

Smoothwall se puede descargar desde su página web principal ( http://www.smoothwall.org/ ), además de ahí encontrar módulos muy útiles.
Ejemplo de archivo para bloquear páginas webs:
www.facebook.com
facebook.com
es-es.facebook.com
www.twitter.com
twitter.com
www.953fm.cl
953fm.cl
www.adnradio.cl
adnradio.cl
www.amigafm.cl
amigafm.cl
www.radiobiobio.cl
radiobiobio.cl
www.radiocarinosa.cl
radiocarinosa.cl
www.corazon.cl
corazon.cl
www.digitalfm.cl
digitalfm.cl
www.playfm.cl
playfm.cl

Ejemplo archivos para bloquear extensiones:

\.avi$
\.mpeg$
\.mp4$
\.mp3$
\.rm$
\.rmv$
\.wmv$
\.wma$
\.mkv$
\.ogg$
\.wav$

13 comentarios:

  1. Weno!!! te las mandaste Golden! XD! jeejeje dejaste clarito justo en lo ultimo que estaba trabajando antes de dejarlo en pausa el LAB lo que es proxy Squid.

    Saludos!

    ResponderEliminar
  2. Snif snif...el saber que le sirvio a UNA persona me es suficiente satisfacción...snif snif :')

    ResponderEliminar
  3. gracias se agradece compartir tu sabiduria

    ResponderEliminar
  4. lo acabo de probar y me funciono a la perfeccion, ahora a casar las direcciones que visitan para bloquearlos jejejeje

    Muchas gracias

    ResponderEliminar
  5. HOla Amigo muy buena explicacion estoy empezando en esto y ya tengo instalado el smothwall pero aun se puede ingresar a las paginas no deseadas, mi pregunta es cuando dices entrar por SSH al firewall, como lo haces..??? gracias por toda la ayuda

    ResponderEliminar
    Respuestas
    1. Debes hacerlo con clientes SSH puedes usar PUTTY para eso ;)

      Saludos,
      Cesar

      Eliminar
  6. Muy bueno tu post nada mas tengo una gran duda, facebook.com esta denegado, pero si algun usuario entra con el https://www.facebook.com puede ingresar normalmente en este caso que puedo hacer?, se que si kiero puedo bloquear el https pero bloqueo todos los servicios de correos y otras paginas que necesitan del protocolo

    Saludos

    ResponderEliminar
  7. La misma pregunta de Luis!! tengo ese drama, les tengo todo bloqueado, pero tengo un guacho que entra a facebook x https, se lo bloquie en el host del terminal, pero si pone google.com que lo tengo permitido, y en buscar facebook.com puede entrar igual!!

    ResponderEliminar
    Respuestas
    1. http://iecyrit.blogspot.com/2013/08/bloquear-redes-sociales-con-squid.html

      Espero que te sirva, master. Saludos.

      Eliminar
  8. estimado, muy buen tutorial, pero sabes, cuando modifico el archivo squid.conf, lo guardo (modifico con vi y guardo con :wq) y reinicio el servicio squid de administrador, squid.conf vuelve a su configuracion por defecto...sabes porque pasa eso?? saludos.

    ResponderEliminar
  9. Bueno creo que es por VI. Me sucedio eso cuando recien instale el servidor CentOS. Te recomiendo instalar NANO es mas instuitivo y facil de usar que VI. Saludos :)

    ResponderEliminar
  10. Como lo solucionaron, sigo sin poder resolverlo

    ResponderEliminar