martes, 12 de junio de 2012

Montar ISO en GRUB2

Desde el GRUB2 se pueden montar  imágenes ISO para arrancar diferentes sistemas "LIVE" sin instalarlos en el HD.
Como root editamos el archivo /etc/grub.d/40_custom y le añadimos las configuraciones que queramos.

Para hacer efectivos los cambios, utilizamos el comando update-grub2.

Este es el contenido de mi archivo /etc/grub.d/40_custom

miércoles, 23 de mayo de 2012

Configurar Postfix para enviar correo a través de Gmail

Como muchos sabrán, Gmail, Hotmail, y muchos otros servidores, no permiten la recepción de correos enviados desde IP públicas que no está registradas,(las IP dinámicas de todos los usuarios domésticos), por lo que configuraremos nuestro servidor postfix para que se valide en el servidor SMTP de Gmail y lo utilice para entregar nuestro correo.
Necesitamos tener instalados los siguientes paquetes:
postfix-tls 
libsasl2
libsasl2-modules
ca-certificates
Para enviar correo utilizando el servidor SMTP de Gmail la conexión tiene que estar cifrada con TLS, para lo que debemos añadir la Autoridad Certificadora adecuada y autenticada, para lo que utilizaremos un nombre de usuario (dirección de correo) y contraseña del servicio. 
Para configurar el servidor es necesario editar /etc/postfix/main.cf y añadir las líneas siguientes:
relayhost = [smtp.gmail.com]:587 smtp_use_tls = yes
smtp_tls_security_level=encrypt
smtp_tls_loglevel = 1
smtp_sasl_auth_enable = yes
smtp_tls_CAfile = /etc/ssl/certs/Equifax_Secure_CA.pem
smtp_sasl_password_maps = hash:/etc/postfix/sasl/passwd
smtp_sasl_security_options = noanonymous 

Pero primero haremos una copia de seguridad del archivo.
root@excellondonsrv2:~# cp /etc/postfix/main.cf /etc/postfix/main.cf.backup
root@excellondonsrv2:~# nano /etc/postfix/main.cf
Se le indica que use el smtp de gmail por el puerto 587, usando TSL, con el certificado Equifax_Secure_CA.pem, que es el que actualmente utiliza para la autentificación, y la información de la autentificación se encuentra en /etc/postfix/sasl/passwd Para generar el fichero con la información de autentificación se crea el fichero /etc/postfix/sasl/passwd con el siguiente contenido:
[smtp.gmail.com]:587 unacuenta@gmail.com:unacontraseña.
root@excellondonsrv2:~# nano /etc/postfix/sasl/passwd
Y lo protegemos adecuadamente con:
root@excellondonsrv2:~# chmod 600 /etc/postfix/sasl/passwd

El fichero de configuración hay que transformarlo a un fichero indexado de tipo hash mediante la instrucción:

root@excellondonsrv2:~# postmap /etc/postfix/sasl/passwd

que creará el fichero /etc/postfix/sasl/passwd.db

Es necesario reiniciar postfix.

Para probar si todo ha ido bien:

mail -s "test" cuenta_correo@gmail.com
Para enviarlo pulsar Ctrl+D

El único inconveniente es que el remitente del correo será la cuenta de gmail que hemos usado para la autentificación.

Añadir un remitente nuevo en nuestra cuenta de gmail

Si tenemos configurado nuestro servidor con algún servicio de DNS dinámico, como dyndns, podemos añadir el remitente en nuestra cuenta de Gmail.
Abrimos en el navegador la página de Gmail, vamos a Configuración > Cuentas e importación > Enviar mensaje como y añadimos como nuevo remitente la dirección de correo de nuestro servidor de correo (usuario@mimaquina.dyndns.org). 
Para verificar que somos usuarios legítimos de la misma gmail nos enviará un mensaje con un código de verificación, que nos llegará a nuestra cuenta local. Una vez verificada la cuenta, gmail permitirá que se envíen mensajes con ese remitente y no lo modificará. 


Más información:
http://support.google.com/mail/bin/answer.py?hl=es&ctx=mail&answer=22370

martes, 22 de mayo de 2012

Personalizar el entorno Nagios

En la web se pueden encontrar multitud de añadidos para cambiar el aspecto de Nagios.
http://exchange.nagios.org/directory/Addons/Frontends-%28GUIs-and-CLIs%29
Pero nos conformaremos con cambiar un poco el aspecto de nuestro entorno básico, añadiendo iconos representativos a las configuraciones.
root@excellondonsrv2:/usr/local/nagios/etc/objects# nano localhost.cfg 
define host{
        use                     linux-server            ; Name of host template to use
        host_name               localhost
        alias                   Servidor Nagios
        icon_image              debian.gif
        vrml_image              debian.png
        statusmap_image         debian.gd2
        address                 127.0.0.1
        }

Monitorización de BBDD SQLServer con Nagios

Descargas el siguiente plugin:
http://exchange.nagios.org/components/com_mtree/attachment.php?link_id=497&cf_id=24

root@excellondonsrv2:/usr/local/nagios/libexec# cp /home/user/Downloads/check_mssql check_mssql
root@excellondonsrv2:/usr/local/nagios/libexec# chmod +x check_mssql
Para realizar la prueba, utilizaremos el usuario por defecto de SQLServer "sa"

root@excellondonsrv2:/usr/local/nagios/libexec# ./check_mssql -H 192.168.10.2 -U sa -P London2011

Si todo ha ido bien, procedemos a configurar el comando en Nagios.
define command{
command_name check_mssql
command_line $USER1$/check_mssql -H $HOSTADDRESS$ $ARG1$
}
root@excellondonsrv2:/usr/local/nagios/libexec# nano ../etc/objects/commands.cfg 
Y añadimos el servicio en la plantilla de windows.cfg
#Servicio para monitorizar SQLServer
define service{
        use                     generic-service
        host_name               excellondonsrv1
        service_description     MS SQL Server
        check_command           check_mssql!-U sa -P London2011
}
root@excellondonsrv2:/usr/local/nagios/libexec# nano ../etc/objects/windows.cfg
Reiniciamos Nagios y ya está activo el nuevo servicio.
root@excellondonsrv2:/usr/local/nagios/libexec# service nagios reload

Configurar Nagios para que monitorice una base de datos MySQL ubicada en un Linux

Para esta monitorización vamos a crear un usuario "nagios" en mysql, con permiso de lectura y que se podrá conectar desde cualquier IP a la base de datos "mysql".

root@excellondonsrv2:~# mysql -u root -p
mysql> GRANT select ON mysql.* TO 'nagios'@'%' IDENTIFIED BY 'nagios';
mysql> flush privileges;
mysql> quit

Añadimos al final de /usr/local/nagios/etc/objects/localhost.cfg

root@excellondonsrv2:~# nano /usr/local/nagios/etc/objects/localhost.cfg 
#Servicio para monitorizar la base de datos "mysql"
define service{
use local-service
host_name localhost
service_description BD_Test
check_command check_mysql!-d mysql -u nagios -p nagios
}
y reiniciamos nagios.

root@excellondonsrv2:~# service nagios reload

Configurar Nagios para que monitorice una página Web hospedada en Linux

Para que nos monitorice el contenido de una página web, sólo tenemos que añadir un nuevo servicio, en nuestro caso en localhost.cfg para que compruebe que la página index.html contiene "IesCesarManrique.net"

root@excellondonsrv2:~# nano /usr/local/nagios/etc/objects/localhost.cfg 

#Servicio para monitorizar la web index.html
define service{
     use                local-service
     host_name      localhost
     service_description       index.html
     check_command          check_http!-H localhost -u "/index.html" -f follow -s "IesCesarManrique.net"
}

Configurar Nagios para que monitorice la interfaz de red de un equipo Linux


Para esta tarea utilizaremos el plugin check_ifstatus, que requiere que configuremos un servidor SNMP en la máquina linux.

root@skillredes01-debian:~# apt-get install snmpd
Editaremos el archivo de configuración y descomentamos la línea
rocommunity public localhost
para tener acceso completo desde local.
root@skillredes01-debian:~# nano /etc/snmp/snmpd.conf
Reiniciamos el servicio y realizamos una prueba.
root@skillredes01-debian:~# service snmpd restart

root@skillredes01-debian:~# /usr/local/nagios/libexec/check_ifstatus -H localhost
Y añadimos el servicio en el nrpe.cfg
root@skillredes01-debian:~# nano /usr/local/nagios/etc/nrpe.cfg
command[check_ifstatus]=/usr/local/nagios/libexec/check_ifstatus -H localhost

Ya sólo nos queda añadir el servicio también en el servidor.
Para poder emplear "check_ifstatus" con cualquier host que disponga de SNMP, tendremos que añadir la definición del comando en el archivo "command.cfg"

# 'check_ifstatus' definición de comando
define command{
        command_name    check_ifstatus
        command_line    $USER1$/check_ifstatus -h $HOSTADDRESS$ -C public -x $ARG1$
}
Pero como nosotros lo vamos a ejecutar a través de NRPE, la configuración quedaría así:

root@excellondonsrv2:/usr/local/nagios/etc/objects# nano skillredes01-debian.cfg 
# check_ifstatus

define service{
        use                             local-service
        host_name                       skillredes01-debian
        service_description             Estado Interfaces de Red
        check_command                   check_nrpe!check_ifstatus
}