Un servidor para logs

Los logs proporcionan información sobre el estado del sistema, centralizando los logs en único servidor me va a permitir tener un punto de supervisión único del estado de salud de mi lab.

El estándar para la recogida de logs es syslog y, por lo tanto, lo que voy a hacer es configurar un servidor Ubuntu, conectado a la red de gestión para la recolección de logs mediante el protocolo syslog. Inicialmente voy a dotar al servidor de 1GB de RAM y 10GB de disco.

El primer paso es, por lo tanto, crear la máquina virtual:

syslog1

Lo que quiero conseguir es que el directorio /var/log aparezca un fichero de log para cada uno de los servidores con la dirección IP del servidor. El servicio syslog está implementado a través del programa rsyslog y su fichero de configuración es, naturalmente, rsyslog.conf. Edito, por lo tanto este fichero:

add@ubsyslog:~$ sudo vi /etc/rsyslog.conf

syslog2

Para centralizar los logs en el servidor vamos a permitir que el servidor de logs escuche en los puertos TCP y UDP estándar. Para ello eliminamos los comentarios (borramos el ‘#’ al comienzo de la línea) de las líneas del fichero de configuración que configuran los puertos de escucha y que son las siguientes:

#$ModLoad imudp
#$UDPServerRun 514
#$ModLoad imtcp
#$InputTCPServerRun 514

El siguiente paso es definir una plantilla para los ficheros de log a los que se van a dirigir los logs recibidos en el servidor. Como ya comenté, la idea es que los ficheros de log de cada servidor se identifiquen por la dirección IP del servidor.

Para conseguir esto, añadimos las siguientes líneas al fichero de configuración antes de la sección de directivas globales.

$template ServerLogs,"/var/log/%FROMHOST-IP%/%PROGRAMNAME%.log"
*.*  ?ServerLogs
& ~

Como las cosas en Linux no son siempre intuitivas voy a explicar un poco que es lo que significa cada una de las líneas:

  • La primera línea le dice a rsyslog que la plantilla, de nombre ‘ServerLogs’, escribe en ficheros de log en subdirectorios, cuyo nombre es la dirección IP del equipo bajo el directorio /var/log. El nombre de esos ficheros de log es el nombre del programa que genera el mensaje y la extensión ‘.log’.
  • La segunda línea le dice a rsyslog que aplique la plantilla ServerLogs a todos los mensajes de log recibidos (de ahí el *.*).
  • Por último, la tercera línea, es una regla de redirección que le dice a rsyslog que una vez procesados los mensajes por la regla ServerLogs detenga el proceso posterior de los mensajes. Sin esta regla los mensajes se recogerían dos veces.

El fichero de configuración quedaría:

syslog3

Por último, reiniciamos el servicio rsyslog y comprobamos que el servicio escucha en los puertos correspondientes mediante el comando netstat:

add@ubsyslog:~$ sudo service rsyslog restart
add@ubsyslog:~$ sudo netstat -tulpn | grep rsyslog

El comando produce una salida como:

syslog4

Ahora vamos a configurar los clientes de syslog, en este caso, el router VyOS para que envíe la información de log para todas las facilities de nivel notice o superior a nuestro servidor syslog.

syslog5

En el servidor syslog vemos que se han creado directorios con la dirección IP de localhost y del router y que éstos contienen los ficheros de log.

syslog6

syslog7

Caso cerrado, por ahora. El siguiente paso va a ser el configurar un Nagios para la gestión de los equipos en la red.

Anuncios

Instalando vSphere (I)

Una vez he conseguido que mi flamante servidor esté en orden de marcha, la siguiente tarea a abordar es la instalación de VMWare vSphere. Como ya comenté, me he inclinado por este hipervisor por su, a priori, facilidad de gestión y confiando en la experiencia previa jugando con VMWare Workstation.

He comentado también, que buscando en la web, aparecen algunos comentarios de problemas relativos a la instalación de vSphere en el modelo de servidor que he comprado, fundamentalmente con los drivers de las tarjetas de red. Después de comprobar en la lista de compatibilidad hardware de VMWare que los procesadores que equipa mi servidor están soportados en la versión 5.5 del producto, me descargo el ISO correspondiente y me pongo a crear un pincho USB arrancable con la imagen descargada.

Leyendo en Internet aprendo que no se puede confiar en determinados software de creación de imágenes para USB y, siguiendo las instrucciones proporcionadas aquí, me descargo el programa Rufus y creo la imagen arrancable:

rufus

Una vez enchufado el equipo y conectado al monitor, teclado y red le doy al botón de encendido y, la primera impresión, es que un caza está despegando en mi cuarto de trabajo. El monstruo arranca con un ruido infernal y como siga así todo el tiempo se me acabó el entretenimiento. Afortunadamente al cabo de unos segundos el nivel de ruido desciende e incluso es tapado por el del ventilador de mi PC de sobremesa. Con la sorpresa del ruido me olvide de pulsar F2 y el equipo no arranca: botón de encendido durante 5 segundos para apagarlo y, de nuevo, para arrancarlo.

A la segunda estoy más espabilado y pulso F2 hasta que un pitido me indica que he accedido a la BIOS y, efectivamente, aparece en la pantalla del monitor aparece el menú. Paso un rato recorriendo los distintos apartados de la BIOS y, no sin cierta dificultad, soy capaz de configurar el orden de arranque, salvo la configuración y hago el saludo de tres dedos. El equipo arranca, la unidad USB parpadea y se empieza a cargar el vSphere:

vsphere1

Una vez cargados los distintos ficheros aparece una pantalla en negro y amarillo durante la carga del sistema que se me hace eterna:

vsphere2

Hasta que finalmente, aparece el fatídico mensaje:

vsphere3

Vamos, que no hay driver para el adaptador de red. Como me creo muy listo, asumo que sé donde está el problema y no es otro que VMWare no incluye los drivers de mi adaptador de red (Marvell 88e1116) en la versión 5.5 pero si en versiones anteriores.

En fin, a repetir los pasos, me bajo la versión 5.1 de vSphere, preparo el USB, lo conecto al equipo, re-inicio y … ¡Coño! tampoco esta vez hay driver. Pues nada, a probar con la 5.0 y vuelve a pasar lo mismo. La desesperación empieza a hacer presa y me vuelvo a conectar a Internet y me pongo a buscar.

Encuentro un sitio donde se describe como crear un ISO whitebox de vSphere 5.5 incluyendo los drivers para mi tarjeta de red. Vamos a darle una oportunidad y construyo el ISO y repito el mismo proceso, esta vez con la versión 5.5 tuneada y llego, como no podía ser de otra forma, al mismo sitio.

Evaluando la situación llego a la conclusión de que tengo dos alternativas:

  1. Comprarme una tarjeta de red soportada.
  2. Pasar de vSphere e instalar Ubuntu con KVM.

La solución en el siguiente post.

Cambio de planes

Estaba escribiendo esta bitácora para mantener un registro de las cosas que hacía en un entorno lab basado en virtualización. Tras no pocas consideraciones y, teniendo en cuenta las limitaciones en cuanto a hardware disponibles, tomé la decisión de comprar una máquina para el entorno lab. En este sentido, valorando distintas alternativas aterricé en alguno de los anuncios que en eBay tiene, la tienda británica Bargain Hardware y viendo las posibilidades me compré un servidor.

El servidor  que va a dar soporte a mi lab, a partir de ahora, es, ni más ni menos, que un Dell PowerEdge CS24-NV7:

dell-cs24-nv7-cloud-server-amd-2373-21ghz-64gb-perc-6i-4-x-1tb-

Se trata de un servidor pensado para bastidores que porta dos procesadores AMD Opteron 2373 a 2,10 GHz con cuatro cores cada uno y 32GB de RAM. A priori, no se trata de un modelo de catálogo sino de un modelo especial construido de acuerdo a las especificaciones del cliente (¿Facebook?). El angelito viene sin discos duros pero, puesto en casa, me sale por 134 libras esterlinas, unos 190€ al cambio. A esto hay que añadirle el coste de 2 discos duros y, espero, con la inversión de unos 300€, tener la infraestructura necesaria para soportar mis cacharreos.

Mientras llega el pedido, dedico mi escaso tiempo libre a planificar el despliegue del monstruo.

El primer dilema que me planteo es qué hipervisor voy a instalar. Las opciones son:

En principio me inclino por vSphere, más que nada por la facilidad de gestión y porque arrastro la (escasa) experiencia en VMWare Workstation que (espero que) de algo servirá. Investigando en la web de VMWare descubro que los procesadores que monta el equipo comprado no están en la lista de compatibilidad de hardware (HCL) de la versión 6 de vSphere así que me descargo la versión 5.5.

Paralelamente, buceando en Internet descubro una serie de problemas que tienen estos servidores, fundamentalmente con el adaptador de red pero, como soy una persona confiada sé que a mí no me van a pasar.

Otro problema adicional es la conectividad. El cacharro viene con una NIC dual y, en la habitación donde pretendo que resida la conectividad es, exclusivamente, a través de la WiFi doméstica y no tengo ninguna intención de ponerle una tarjeta WiFi al cacharro así que hay que pensar en una solución de conectividad que ya contaré en otro post.

Hasta aquí la planificación continuaré con la instalación física cuando llegue el pedido.

Configurando VyOS (II)

En este post voy a describir las tareas de configuración final del router virtual VyOS que instalé en mi entorno lab. En la entrada anterior, dejé configurada la conectividad básica del router y en este voy a configurar la salida a Internet desde las LANes creadas.

He creado una máquina virtual Lubuntu para probar la conectividad desde cada una de las LANes hacia Internet. En primer lugar, configuro el adaptador de red para que se conecte a la LAN de estaciones de trabajo (10.1.3.0/24) y vamos a comprobar que, al arrancar, el cliente obtiene una dirección IP del servidor DHCP configurado para esta subred en el router y esta IP debería estar en el rango 10.1.3.128-10.1.3-254:

config2_1

El cliente ha obtenido la dirección IP 10.1.3.128. Desde el cliente se debería poder hacer ping a las interfaces del router:

config2_2

Sin embargo no hay ping ni hacia el router doméstico ni hacia internet:

config2_3

El problema es que el router no puede encaminar direcciones del rango 10.x.x.x. Es necesario configurar una regla de NAT en el router virtual para poder tener salida a internet desde las subredes:

config2_4

Una vez configurado el NAT podemos comprobar que tenemos conectividad hacia Internet y la red local doméstica:

config2_5

Y deberíamos tener también el servicio de nombres (en la configuración DHCP establecimos como servidor de nombres el de Google: 8.8.8.8):

config2_6

Ya sólo queda realizar la misma configuración para las otras LANes.

Configurando VyOS (I)

En el post anterior comenté la instalación y configuración básica de una imagen de VyOS en una máquina virtual en un entorno VMWare Workstation. El propósito de este post es refinar esa configuración para posibilitar los propósitos de conectividad del lab.

En primer lugar vamos a habilitar SSH para poder acceder, de forma segura, al shell del VyOS. Para ello entramos en modo configuración y establecemos el servicio SSH:

inst1

Usando putty vemos que se accede a través de ssh:

inst2

Realmente, se puede acceder a través de SSH por todas las interfaces. Más adelante veré de qué forma puedo restringir el acceso ssh únicamente a través de la interfaz de gestión.

Si intentamos hacer ping a una dirección fuera de la red doméstica desde VyOS vemos que no hay acceso:

inst3

Esto es porque no hay una ruta por defecto establecida. Voy a establecer, por lo tanto, una ruta estática para llegar a internet a través del router doméstico (192.168.1.1):

inst4

Una vez que tenemos configurada la ruta estática ya deberíamos poder hacer un ping a internet:

inst5

Desde nuestro router virtual ya tenemos conectividad con internet. A continuación voy a configurar un servidor DHCP para que asigne direcciones IP a los puestos de cliente de la LAN de estaciones de trabajo (10.1.3.0/24).

inst6

Una vez guardada la configuración, voy a crear un cliente Lubuntu en la red de estaciones de trabajo para seguir avanzando en la configuración de red. Más en el siguiente post.

Instalando VyOS

Como comenté en el post anterior, voy a realizar la instalación de VyOS y su configuración como router en el entorno lab que estoy montando. Me he descargado la imagen ISO de la versión 1.1.7 y me pongo manos a la obra.

En primer lugar, voy a averiguar los condicionantes de la instalación y las instrucciones para instalar el software. Afortunadamente, la guía de usuario de VyOS tiene un apartado de instalación muy claro y los requisitos de máquina no son excesivos (512MB de RAM y 2GB de disco) lo que no está nada mal dadas las limitaciones hardware del entorno del que dispongo.

Voy a crear, por lo tanto, una nueva máquina virtual y a instalar la imagen. Usando el wizard de creación de máquinas virtuales de VMWare Workstation, averiguo que VyOS está basado en la versión 6 de Debian, antiguo pero es lo que hay.

A continuación voy a personalizar el hardware. En principio le voy a dar 512MB de RAM y 4GB de disco y voy a configurar las cinco interfaces de red para el router:

  1. Interfaz WAN hacia la LAN doméstica, esta será una interfaz tipo bridged a la que asignaré la dirección IP 192.168.1.5 (mi red doméstica está configurada para que el DHCP asigne direcciones a partir de la 192.168.1.128, las direcciones 192.168.1.1-127 se asignan de forma estática).
  2. Red de gestión. La conexión a la red de gestión va a realizarse a través de un adaptador host-only (Vmnet 1 – 192.168.79.0/24).
  3. Los restantes tres adaptadores estarán conectados a distintas LANes virtuales: DMZ – Vmnet2, SRVRS – Vmnet3, WSTS – Vmnet4.

Una vez configurados los adaptadores de red, se crea la máquina virtual y se arranca. Una vez arranca el equipo, hacemos login (vyos/vyos) y procedemos a instalar la imagen el disco duro de la máquina virtual creada.

Una vez completada la instalación, arrancamos la máquina y configuramos los adaptadores de red. El primer problema que nos encontramos es saber cuál es cada uno de los adaptadores. VyOS los nombra eth0 – eth4 pero, afortunadamente, tenemos sus direcciones MAC.

config1

Viendo las direcciones MAC en la información de los adaptadores de VMWare deduzco los siguientes emparejamientos:

  • eth0 – Adaptador bridged (WAN) – 192.168.1.5/24
  • eth1 – Adaptador Vmnet1 (MNGMNT) – 192.168.79.5/24
  • eth2 – Adaptador Vmnet2 (DMZ) – 10.1.1.1/24
  • eth3 – Adaptador Vmnet3 (SRVRS) – 10.1.2.1/24
  • eth4 – Adaptador Vmnet4 (WKSTS) – 10.1.3.1/24

A continuación configuramos cada uno de los adaptadores. Para ello, en primer lugar, cambiamos al modo de configuración de VyOS:

vyos@vyos~$ configure
vyos@vyos~#

Para cada una de las interfaces introducimos los siguientes dos comandos:

vyos@vyos~# set interface ethernet eth<x> address ‘<ip-address>’
vyos@vyos~# set interface ethernet eth<x> description ‘<description>’

Donde:

  • <x> es el número de la interfaz.
  • <ip-address> es la dirección IP de la interfaz.
  • <description> es la descripción de la interfaz.

Hacemos commit de los cambios y guardamos la configuración y salimos del modo configuración:

vyos@vyos~# commit
vyos@vyos~# save
vyos@vyos~# exit
vyos@vyos~$

Las interfaces quedan:

config2

Vamos a comprobar que haya ping, desde el equipo host, a las interfaces WAN y de gestión y desde el router al equipo host:

config3

config4

Básicamente, tenemos instalado VyOS y establecida la conectividad básica. En otro post abordaré la configuración del VyOS.

Mi lab, primeros pasos

Este blog está dedicado a guardar un registro de distintas cosas, relacionadas con la tecnología, que voy haciendo en mis ratos libres. La idea es guardar un registro, más para mí que para otros, de lo que voy haciendo para poder reconstruirlo, si fuera necesario.

Para empezar con algo voy a instalar un entorno de red en un VMWare Workstation 12.0.1 que tengo instalado en un PC (Acer Aspire, Intel® Core™2 Quad Processor Q9300, 8GB RAM, Windows 10). El PC anda justo así que me plantearé el adquirir nuevo hardware para un lab más ágil.

El esquema del entorno que quiero montar es el siguiente:

inicial.png

En el entorno virtualizado habrá un router con cinco interfaces:

  1. Una interfaz hacia la LAN doméstica (192.168.1.0/24) que proporciona salida a Internet a través de una conexión de fibra óptica. Esta interfaz va a estar configurada en modo bridge con la interfaz WiFi del PC.
  2. Una interfaz hacia una red de gestión (192.168.79.0/24) a través de la que, obviamente, se van a gestionar los equipos virtuales.
  3. Una interfaz hacia una DMZ (10.1.1.0/24).
  4. Una interfaz hacia una LAN para servidores (10.1.2.0/24)
  5. Finalmente, una interfaz hacia una LAN para estaciones de trabajo (10.1.3.0/24).

Una vez definido el esquema general del entorno voy a ponerme manos a la obra. La primera decisión es qué router virtual voy a montar. Las opciones iniciales que manejo son:

Me consta que hay más opciones pero, inicialmente, me voy a decantar por VyOS, planteo experimentar con pfSense más adelante pero configurándolo como UTM más que como router. Sin más, me muevo a la página de descarga de VyOS y me descargo la imagen ISO de la versión 1.1.7.

La instalación y configuración del router en un post posterior.