viernes, 22 de febrero de 2013

Creación de un Virtual Appliance para control de Internet con VMware (parte 2)

<< Artículo anterior

En el anterior artículo habíamos sentado las bases sobre el appliance que queremos construir: las funcionalidades, la intrastructura y el software y herramientas necesarias.

El siguiente paso es describir el planteamiento de manera más concreta y comenzar con la instalación básica del sistema operativo base y de los paquetes mínimos necesarios.

La red


Desde el punto de vista de la red local, este esquema representa la filosofía del proyecto:



Como vemos, hemos separado físicamente las dos "patas" de nuestro appliance para garantizar que, en caso de fallo de configuración o brecha de seguridad, nuestras estaciones de trabajo jamás podrán alcanzar el segmento de red que daría acceso directo e irrestricto a Internet. Para ello hemos segmentado la red en capa 2 mediante el etiquetado de paquetes 802.1Q, las VLAN.

En nuestro ejemplo, la VLAN por defecto del switch es la 1, y ahí dejaremos la mayoría de dispositivos. La VLAN con ID 2 sería la que contiene la zona desmilitarizada (DMZ) y que conectará a la otra "pata" de nuestro appliance.

Configurando la infraestructura


El primer paso es tener las VLANs a punto en nuestra electrónica de red. Si ya tenemos nuestras VLANes separadas a nuestro gusto, pues sólo tendremos que utilizar las que corresponda a la configuración actual. Si aún todo el switch está gestionado en "plano", este es el momento de configurar una VLAN adicional con el identificador "2" (en nuestro ejemplo la VLAN para la zona "aislada" de la red principal). Cómo configurar las VLANes es algo que escapa al alcance de este artículo y además es distinto para cada fabricante, así que corresponde al lector hacer una pequeña incursión en Google llegado a este punto.

Una vez nuestros switches están configurados, tenemos que crear en nuestro VMware las redes virtuales. Para ello añadimos un switch virtual (vSwitch) y le asociamos la interfaz de red que esté conectada a la VLAN 2 del switch físico. Nos pedirá crear una nueva red virtual (VM Network 2) y como ID de VLAN pondremos 2.

Una vez configurada la red virtual debe quedar algo parecido a esto:


No vamos a entrar en detalles de configuración de redes de VMware ya que hay información detallada por todo Internet.

El siguiente paso es crear la máquina virtual. Creamos una nueva máquina por el procedimiento habitual, y le damos para empezar las siguientes características (se pueden ampliar más adelante):

  • Tipo de máquina: Typical, Other, FreeBSD 32bit (o 64, dependiendo de nuestra versión de FreeBSD)
  • RAM 128 MB
  • HD: 6 GB
  • CPU: 2 cores
  • NIC: 2 interfaces de tipo E1000

Aunque las especificaciones parezcan demasiado modestas, en realidad suelen ser suficiente para este tipo de aplicaciones. En cualquier momento se puede ampliar la RAM que es lo que más puede necesitarse.

Una vez creada, y antes de comenzar la instalación del sistema operativo, accedemos a las propiedades de la máquina y asignamos a cada interfaz de red una red virtual diferente (correspondiendo con las VLANs 1 y 2 de nuestro ejemplo), si no lo hicimos ya en el momento de la creación.

Ya estamos listos para el siguiente paso.

Instalación de FreeBSD


Para escribir este tutorial yo me he basado en una imagen ISO que tenía por aquí de FreeBSD 8.2 32bit, aunque no debería haber demasiada diferencia con versiones posteriores.

Comenzad la instalación en la máquina virtual (bien tostando el CD o bien enganchando la imagen ISO con el VMware) y pronto os pedirá los parámetros de organización del disco. El BSD es ligeramente distinto a Linux en cuanto a la nomenclatura usada para el particionado. Para no complicaros mucho la vida, mi recomendación es que hagáis un "slice" principal que ocupe todo el disco físico, y dentro de este slice hagáis las siguientes particiones:

swap 256 MB
/ 4350 MB
/var/log 1536 MB
A continuación tenemos que seleccionar qué paquetes queremos instalar. Seleccionamos "custom installation" y marcamos los siguientes grupos de paquetes:

  • Base
  • Kernels
  • Doc (ENG)
  • Info
  • Man
  • Src/Sys

Después escogemos una password para el superusuario 'root'; no hace falta agregar en principio más usuarios.

Ahora ya podemos iniciar sesión. El primer paso y más importante a realizar en la configuración de FreeBSD es configurar las interfaces de red. Recordaremos que de las dos interfaces, una irá a la VLAN por defecto y la otra irá a la VLAN 2 reservada para la red de salida a Internet. El orden se debería corresponder con el que se haya utilizado en VMware para definir las interfaces, aunque comprobarlo es tan sencillo como habilitar y deshabilitar las interfaces de la VM y hacer un ifconfig para ver con cuáles se corresponden las interfaces em0 em1.

Una vez se tenga seguridad, se procede a editar el archivo /etc/rc.conf para modificar (o crear) las siguientes líneas:



ifconfig_em0=”inet 192.168.3.254 netmask 255.255.255.0”
ifconfig_em1=”inet 172.16.5.1 netmask 255.255.255.0”
defaultrouter=”172.16.5.254”

No olvidemos que este appliance será el gateway por defecto de nuestras estaciones de trabajo, por lo que si necesitamos añadir algún tipo de ruta estática (por ejemplo, para enrutar el tráfico de una VPN por otro sitio) este es el lugar y momento para hacerlo. Para ello editamos nuevamente el /etc/rc.conf y agregamos las líneas que necesitemos (para ejecutar el comando route):


#nuestra VPN usa la red 192.168.x.x y
#su puerta de enlace es la 172.16.5.253

route add -net 192.168.0.0/16 172.16.5.253

Para finalizar esta primera fase de configuración, dejaremos la puerta abierta a administrar la máquina por SSH, para lo que editaremos el /etc/ssh/sshd_config y añadiremos o modificaremos la siguiente línea:

PermitRootLogin yes
Para asegurarnos de que todos los servicios necesarios están funcionando correctamente y actualizados, lo mejor ahora es reiniciar la máquina. A partir de este momento, si todo ha salido bien, ya podemos entrar con un cliente SSH cualquiera y ya podemos poner como puerta de enlace de nuestros PCs la dirección privada del appliance, es decir, la 192.168.3.254 para tener una navegación básica por Internet.

En el siguiente artículo continuaremos con la configuración básica del proxy Squid.

Continuará...

<< Artículo anterior