martes, abril 07, 2009

Usando exim4 con gmail y logwatch para monitorizar nuestro servidor casero

Como dice el título, si se tiene un servidor caserillo, y queremos mantener cierto control sobre el, podemos utilizar exim4 para que nos mande unos completos reportes de logs al correo.

Paso1: Configurar Exim4 con gmail (gracias a Manu)

Reconfiguramos exim4

$dpkg-reconfigure exim4-config
y contestamos las preguntas de la siguiente manera:
  • Escoger mail sent by smarthost; received via SMTP or fetchmail
  • System Mail Name: company.com ó nombre.no-ip.org
  • IP Adresses to listen on for incoming SMTP connections: 127.0.0.1
  • Other destinations for which mail is accepted: en blanco
  • Machines to relay mail for: En blanco
  • Machine handling outgoing mail for this host (smarthost): smtp.gmail.com::587
  • Escoger NO, don’t hide local mail name in outgoing mail.
  • Escoger NO, don’t keep number of DNS-queries minimal (Dial-on-Demand).
  • Escoger mbox
  • Escoger NO, split configuration into small files
Ahora editamos la configuración de exim4 en el fichero /etc/exim4/exim4.conf.template poniendo lo siguiente:

En la sección DCconfig_smarthost DCconfig_satellite añadir:
send_via_gmail:
    driver = manualroute
    domains = ! +local_domains
    transport = gmail_smtp
    route_list = * smtp.gmail.com
Si tienes otro smathost definido con “domains = ! +local_domains” comenta o elimina ese smarthost.

En la seccion “begin authenticators” añadir:
gmail_login:
    driver = plaintext
    public_name = LOGIN
    client_send = : usuarioGmail@gmail.com : password

De nuevo asegurate que no hay mas "authenticators" con el mismo "public_name" (LOGIN). Si los hay eliminalos o comentalos

En la seccion “transport/30_exim4-config_remote_smtp_smarthost”. Añadir

gmail_smtp:
    driver = smtp
    port = 587
    hosts_require_auth = $host_address
    hosts_require_tls = $host_address
Ahora actualizamos la configuracion de exim ejecutando:
$update-exim4.conf
$/etc/init.d/exim4 restart
Para comprobar que todo ha ido bien testeamos mandando un email con el comando mail:
$mail user@example.com
Le damos un asunto al mensaje y pulsamos enter, le metemos algun contenido al email e intro de nuevo. introducimos una linea con un punto (.) enter de nuevo y por último dejamos el campo cc en blanco. Si el mensaje nos llega es que todo ha ido bien.

Paso2: Configurar Logwatch (gracias a Christer Edwards de Ubuntu Tutorials)
Logwatch es una herramienta que nos proporciona un reporte diario del estado de nuestro sistema en base a los logs de este; desde los paquetes nuevos instalados hasta los intentos de login fallidos pasando por informacion SMART de los discos.
Para configurar logwatch, primero lo instalamos
$aptitude install logwatch

Despues copiamos el archivo de configuración que trae de ejemplo a etc
cp /usr/share/logwatch/default.conf/logwatch.conf /etc/logwatch/conf/logwatch.conf

luego en este fichero de configuración localizado en cambiamos
MailTo = root
por
MailTo = correo@electronico.destino
y
Output = stdout
por
Output = mail
Con esto recibirás un correo todas las noches con lo más interesante de los logs del sistema.

1 comentario:

J. David L.R. dijo...

Muy útil, claro, y detallado.

Gracias! (lo aplicaré a mi servidor caserillo)