Está en la página 1de 17

Monitorización Nagios.

Índice de contenido

Monitorización Nagios

1

1.Instalación de Nagios

1

2.Entrar en la interface Web

4

3.Monitorizar los servicios

5

4.Modificar el fichero de configuración

10

5.Configurar

cuenta de correo

12

6.Configurar postfix a través de un relay host autenticado (Gmail)

13

7.Otras herramientas de monitorización a probar

17

1. Instalación de Nagios

Paso 1. Antes de empezar a instalar Nagios en Ubuntu es necesario instalar otros paquetes:

Apache 2 (instalado)

PHP (instalado)

GCC: librerías de desarrollo y compilación (instalado)

GD: librerías de desarrollo. Instalamos el siguiente paquete

$ sudo apt-get install libgd2-xpm-dev

$ sudo /etc/init.d/apache2 restart

Paso 2. Crear información de cuenta de usuario

Después, para poder instalar Nagios en Ubuntu lo primero que debemos hacer es entrar como root:

$ sudo su

Creamos una nueva cuenta de usuario "nagios" y contraseña:

$ /usr/sbin/useradd -m -s /bin/bash nagios

Con la opción "/bin/bash" indicamos que intérprete de comandos usaremos.

Le damos un password, que introduciremos dos veces (la misma que moodle):

$ passwd nagios

Para versiones anteriores a la 6.01 es necesario crear un grupo (los que tenéis versiones posteriores podeis saltaros y pasar a crear el siguiente grupo, ya que Ubuntu lo hace automáticamente)

$ /usr/sbin/usermod -G nagios nagios

Creamos un nuevo grupo nagcmd, para permitir comandos externos:

$ /usr/sbin/groupadd nagcmd

Metemos al usuario nagios en el grupo nagcmd:

$ /usr/sbin/usermod -a -G nagcmd nagios

Metemos al usuario de apache www-data en el grupo nagcmd, ya que la aplicación lo necesita para hacer sus gestiones:

$ /usr/sbin/usermod -a -G nagcmd www-data

Paso 3 - Compilar e Instalar Nagios en Ubuntu

Una vez que ya hemos preparado el sistema para instalar Nagios en Ubuntu podemos empezar con la compilación e instalación del mismo.

Vamos a donde hemos instalado los paquetes. Descomprimimos el paquete de nagios (buscar la última versión):

$

wget

http://downloads.sourceforge.net/project/nagios/nagios-3.x/nagios-3.4.1/nagios-

3.4.1.tar.gz

 

$

tar xzf

nagios-3.4.1.tar.gz

 

Accedemos a la carpeta que acabamos de descomprimir:

$ cd nagios

Ejecutamos el script de configuración de Nagios pasándole el nombre del grupo que acabamos de crear:

$ ./configure --with-command-group=nagcmd

Compilamos el código fuente de Nagios:

$ make all

Por último, instalamos los archivos binarios de Nagios en Ubuntu:

$ make install

Ahora vamos instalar otros scripts y configuraciones que nos serán de utilidad más adelante. Instalar script de inicio:

$ make install-init

Instalar ejemplos de ficheros de configuracion:

$ make install-config

Dar permisos al directorio de comandos externos:

$ make install-commandmode

Paso 4 - Configurar la Interfaz Web

Ahora debemos configurar Nagios para poder acceder a él vía interfaz web.

Instalamos el archivo de configuración de Nagios para Apache. Con esto conseguimos poder ver la interfaz web de Nagios en Apache:

$ make install-webconf

Creamos un usuario (

en Apache: $ make install-webconf Creamos un usuario ( nagiosadmin) que pueda acceder vía web a

nagiosadmin) que pueda acceder vía web a Nagios:

nagiosadmin

$ htpasswd -c /usr/local/nagios/etc/htpasswd.users

NOTA: no olvidar el password ya que lo necesitaremos luego Reiniciamos apache para que los cambios surtan efecto:

$ /etc/init.d/apache2 reload

Paso 5 - Compilar e Instalar los plugins de Nagios

Una vez que hemos configurado e instalado Nagios en Ubuntu vamos a la carpeta donde tenemos el paquete de los plugins y descomprimimos el paquete de la misma forma que lo hemos hecho antes para poder instalarlos:

$ cd

$ wget

http://downloads.sourceforge.net/project/nagiosplug/nagiosplug/1.4.16/nagios-plugins-

1.4.16.tar.gz

 

$

tar xzf

nagios-plugins-1.4.16.tar.gz

 

Entramos a la carpeta que acabamos de descomprimir:

$ cd

nagios-plugins-1.4.16

Compilamos e instalamos los plugins:

$ ./configure --with-nagios-user=nagios --with-nagios-group=nagios --with- openssl=/usr/bin/openssl --enable-perl-modules

Con "with openssl" habilitamos el soporte para SSL. Con "enable-perl-modules" habilitamos los módulos de perl para poder trabajar con perl.

Por último, instalamos:

$ make

$ make install

Paso 6 - Inicio de Nagios en Ubuntu

Ahora vamos a configurar Nagios para que se inicie automáticamente junto con Ubuntu. Para ello usamos el script que hemos generado antes con "make install-init":

$ ln -s /etc/init.d/nagios /etc/rcS.d/S99nagios

Verificamos que las configuraciones e instalación de Nagios en Ubuntu están bien, si hubieramos configurado algo mal durante la instalación sería en este punto donde aparecerían los errores:

$ /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg Total Warnings: 0

Total Errors:

0

Si no tenemos errores iniciamos Nagios:

$ /etc/init.d/nagios start

2.

Entrar en la interface Web

Si todo ha ido bien ahora tendríamos que poder entrar a Nagios por un explorador Web. Abrimos un explorador web y entramos en (poner tu ip/localhost o nombre de dominio):

y entramos en (poner tu ip/localhost o nombre de dominio): http:// www.iessietepalmas.com /nagios/ Nos pedirá el

Nos pedirá el nombre de usuario (

/nagios/ Nos pedirá el nombre de usuario ( nagiosadmin) con la contraseña que hemos elegido en

nagiosadmin) con la contraseña que hemos elegido en el paso 4.

con la contraseña que hemos elegido en el paso 4. Si vamos a "Services" (lo podéis

Si vamos a "Services" (lo podéis encontrar en el menú izquierdo) veremos el estado de los servicios que se están ejecutando.

Los servicios en Nagios tienen 4 estados diferentes:

OK: Todo en orden WARNING: Se ha alcanzado el umbral de alerta, pero no se ha llegado al umbral de crítico CRITICAL: Se ha superado el umbral crítico o el plugin interrumpe el test después de un tiempo UNKNOWN: Ha ocurrido un error en el plugin. Por ejemplo, se ha utilizado un parámetro erróneo.

Si tenemos un estado en critical puede ser porque no este instalado o que no este iniciado.

un parámetro erróneo. Si tenemos un estado en critical puede ser porque no este instalado o

3.

Monitorizar los servicios

Realizamos modificaciones en los ficheros para monitorizar el

localhost, también añadiremos más servicios a monitorizar y los routers.

servidor7p ( 172.31.22.100
servidor7p
(
172.31.22.100

) y quitar

Empezaremos chequeando el servidor por su dirección IP, y testearemos todos los servicios instalados en los apartados anteriores, más algunos del sistema.

Todo servicio hay que añadirle el comando apropiado, por eso tenemos que ir al archivo commands.cfg. Ejemplo para el SSH estará el comando

$ cat /usr/local/nagios/etc/objects/commands.cfg

# 'check_ssh' command definition define command{

command_name

command_line $USER1$/check_ssh $ARG1$ $HOSTADDRESS$

}

check_ssh
check_ssh

Ejemplo crear un nuevo chequeo para el squid

define command{ command_name command_line

-e 'HTTP/1.0 200 OK'

check_squid

$USER1$/check_http -H $HOSTADDRESS$ -p 3128 -u http://www.google.es

}

Podemos hacer nuestros ejemplos de chequeos antes de ponerlos en el fichero de la siguiente forma, por ejemplo el servicio proxy:

$ cd /usr/local/nagios/libexec

$ ./check_http -H

HTTP OK: La salida de línea de estado concuerda «HTTP/1.0 200 OK» - 13905 bytes en 0,600 segundo tiempo de respuesta |time=0,599646s;;;0,000000 size=13905B;;;0

172.31.22.100

-p 3128 -u http://www.google.es -e 'HTTP/1.0 200 OK'

Si paramos el servicio:

./check_http -H

Conexión rehusada HTTP CRÍTICO - Imposible abrir el zócalo TCP

172.31.22.100

-p 3128 -u http://www.google.es -e 'HTTP/1.0 200 OK'

Comando para chequear HTTPS

define command{ command_name command_line

check_https $USER1$/check_http -H $HOSTADDRESS$ -S

}

Comandos para chequear los ping a los alias

# 'check_ping11100' Ping a 172.31.11.100 command definition define command{

command_name

check_ping11100

command_line

$USER1$/check_ping -H 172.31.11.100 -w 100.0,20% -c 500.0,60% -p 5

}

# 'check_ping12100' Ping a 172.31.12.100 command definition define command{

command_name

check_ping12100

command_line

$USER1$/check_ping -H 172.31.12.100 -w 100.0,20% -c 500.0,60% -p 5

}

# 'check_ping11100' Ping a 172.31.21.100 command definition

define command{ command_name command_line

}

check_ping21100

$USER1$/check_ping -H 172.31.21.100 -w 100.0,20% -c 500.0,60% -p 5

# 'check_ping11100' Ping a 172.31.22.100 command definition define command{

command_name

check_ping22100

command_line

$USER1$/check_ping -H 172.31.22.100 -w 100.0,20% -c 500.0,60% -p 5

}

Comando para chequear el DNS

define command{ command_name command_line

}

check_dns $USER1$/check_dns -H $ARG1$ -a $ARG2$

Comando para comprobar las carpetas compartidas

define command { command_name command_line $ARG3$ -w 85 -c 95

}

check_samba_disk $USER1$/check_disk_smb -H $HOSTADDRESS$ -s $ARG1$ -u $ARG2$ -p

Por último hacemos una prueba de descargar un comando que no está e instalarlo, en este caso para testear una base de datos necesitaremos el comando check_mysql

$ wget

$ tar -zxf

$ cd

$ sudo ./configure --prefix=/usr/local/nagios --with-nagios-user=nagios --with-nagios-group=nagios --with-perl=/usr/bin/perl

$ sudo make

$ sudo make install

$ ls /usr/local/nagios/libexec/ | grep mysql check_mysql_health

http://labs.consol.de/wp-content/uploads/2011/08/check_mysql_health-2.1.7.tar.gz

check_mysql_health-2.1.7.tar.gz

check_mysql_health-2.1.7/

Ahora lo utilizamos para testear una base de datos, para ello creamos el comando en el mismo fichero que antes (commands.cfg).

define command { command_name command_line

$ARG3$ --port $ARG4$ --mode $ARG5$

check_mysql

$USER1$/check_mysql_health -H $ARG1$ --username $ARG2$ --password

}

Ejemplo de uso:

$ ./check_mysql_health -H 127.0.0.1 --username connection-time

OK - 0.03 seconds to connect as

usuario
usuario

--password

contraseña
contraseña
usuario
usuario

| connection_time=0.0295s;1;5

--port 3306 --mode

Servidor7p.

Los servicios que vamos a chequear, y están señalados en el fichero

$ cp /usr/local/nagios/etc/objects/localhost.cfg /usr/local/nagios/etc/objects/

$ chown nagios: /usr/local/nagios/etc/objects/

$ chmod 664 /usr/local/nagios/etc/objects/

servidor7p.cfg servidor7p.cfg
servidor7p.cfg
servidor7p.cfg

servidor7p.cfg

$ vim /usr/local/nagios/etc/objects/

servidor7p.cfg

define host{

use

linux-server

; Name of host template to use

host_name

servidor7p
servidor7p

alias

linux

 

icon_image

linux40.jpg

statusmap_image

linux40.jpg

address

172.31.22.100

 

}

define hostgroup{ hostgroup_name nagios ; The name of the hostgroup

#

alias

members

}

linux ; Long name of the group

servidor7p
servidor7p

; Comma separated list of hosts that belong to this group

Ping a la máquina local

define service{

use

host_name

service_description

local-service

; Name of service template to use

servidor7p

PING

172.31.22.100

check_command

check_ping!100.0,20%!500.0,60%

}

Ping a cada uno de los alias define service{

use

local-service

 

; Name of service template to use

host_name

servidor7p

service_description

PING

172.31.11.100

 

check_command

}

define service{

use

host_name

service_description

check_command

}

define service{

use

host_name

service_description

check_command

}

check_ping11100!100.0,20%!500.0,60%

local-service

; Name of service template to use

servidor7p

PING

172.31.12.100

check_ping12100!100.0,20%!500.0,60%

local-service

; Name of service template to use

servidor7p

PING

172.31.21.100

check_ping21100!100.0,20%!500.0,60%

Chequeamos el espacio en disco de la partición root (/). Warning si tenemos menos del 20% libre y crítico si tenemos menos del 10% libre.

define service{

use

host_name

local-service

servidor7p
servidor7p

; Name of service template to use

service_description

check_command check_local_disk!20%!10%!/

}

Root Partition

Chequeamos el espacio en disco de la partición home (/home). Warning si tenemos menos del 20% libre y crítico si tenemos menos del 10% libre.

define service{ use host_name service_description

local-service

servidor7p
servidor7p

; Name of service template to use

Home Partition

check_command check_local_disk!20%!10%!/home

}

Chequeamos el espacio en disco de la partición home (/copias). Warning si tenemos menos del 20% libre y crítico si tenemos menos del 10% libre.

define service{ use host_name service_description

local-service

servidor7p
servidor7p

; Name of service template to use

Home Partition

check_command check_local_disk!20%!10%!/copias

}

Chequeamos número de usuarios logeados en el sistema. Warning si es > 20 usuarios y crítico si es >50 usuarios.

define service{ use host_name service_description

local-service

servidor7p
servidor7p

; Name of service template to use

Current Users

check_command check_local_users!20!50

}

Chequeamos el número de procesos en la máquina. Warning si es > 250 y crítico si es mayor de 400.

define service{ use host_name service_description

local-service

servidor7p
servidor7p

; Name of service template to use

Total Processes

check_command check_local_procs!250!400!RSZDT

}

Chequeamos la carga actual

define service{ use host_name service_description

local-service

servidor7p
servidor7p

; Name of service template to use

Current Load

check_command check_local_load!5.0,4.0,3.0!10.0,6.0,4.0

}

Chequeamos la swap. Warning si queda menos del 20% y crítica si queda menos del 10%.

define service{ use host_name service_description

local-service

servidor7p
servidor7p

Swap Usage

; Name of service template to use

check_command check_local_swap!20!10

}

Chequeamos el servicio SSH

define service{

use

host_name

local-service

servidor7p
servidor7p

service_description

SSH

check_command

check_ssh

}

Chequeamos el servicio HTTP

define service{

use

local-service

host_name

servidor7p
servidor7p

service_description

HTTP

check_command

check_http

}

; Name of service template to use

; Name of service template to use

Chequeamos el servicio HTTPS

define service{

use

host_name

service_description

check_command

}

local-service

servidor7p
servidor7p

HTTPS

; Name of service template to use

check_https

Chequeamos el servicio SQUID

define service{

use

host_name

local-service

servidor7p
servidor7p

; Name of service template to use

service_description

Proxy_Squid

check_command

check_squid

}

Chequeamos el servicio FTP

define service{

use

host_name

service_description

local-service

servidor7p
servidor7p

FTP

check_command

check_ftp

}

Chequeamos el servicio POP

define service{ use host_name service_description check_command

}

local-service

servidor7p
servidor7p

POP

check_pop

; Name of service template to use

; Name of service template to use

Chequeamos el servicio IMAP

define service{ use host_name service_description check_command

local-service

servidor7p
servidor7p

IMAP

; Name of service template to use

check_imap

}

Chequeamos el servicio SMTP

define service{

use

host_name

service_description

local-service

servidor7p
servidor7p

SMTP

; Name of service template to use

check_command

check_smtp

}

Chequeamos el servicio DNS define service{

use

local-service

; Name of service template to use

host_name

servidor7p

service_description

DNS

check_command

}

check_dns!

www.iessietepalmas.com

! 127.0.0.1
!
127.0.0.1

Chequeamos el servicio Mysql define service{

use

host_name

service_description

check_command

connection-time

}

local-service servidor7p MYSQL usuario
local-service
servidor7p
MYSQL
usuario

check_mysql!127.0.0.1!

usuario !
usuario
!

contraseña!3306!

Chequeamos las carpetas compartidas. Solo voy a chequear una, la de utilidades, si está compartida se asume que las demás también lo están. define service{

use

local-service

; Name of service template to use

host_name

servidor7p

service_description

check_command

}

SAMBA utilidades check_samba_disk!utilidades!

usuario ! contraseña
usuario
! contraseña

4. Modificar el fichero de configuración

En el fichero de configuración cambiamos y añadimos las siguientes líneas

$ vim /usr/local/nagios/etc/nagios.cfg

# Definitions for monitoring the local (Linux) host #cfg_file=/usr/local/nagios/etc/objects/localhost.cfg

host # cfg_file=/usr/local/nagios/etc/objects/localhost.cfg cfg_file=/usr/local/nagios/etc/objects/servidor7p.cfg

cfg_file=/usr/local/nagios/etc/objects/servidor7p.cfg

Reiniciamos el servicio y después de los chequeos si está todo ok tendríamos el siguiente resultado

$ /etc/init.d/nagios restart

Hacemos lo mismo para testear la ADSL $ cp /usr/local/nagios/etc/objects/switch.cfg

Hacemos lo mismo para testear la ADSL

$ cp /usr/local/nagios/etc/objects/switch.cfg /usr/local/nagios/etc/objects/router.cfg

$ chmod 664 /usr/local/nagios/etc/objects/router.cfg

$ chown nagios: /usr/local/nagios/etc/objects/router.cfg

$ vim /usr/local/nagios/etc/objects/router.cfg

Voy a añadir un comando para chequear si hay internet, y aunque lo ponga en el host router, realmente lo estamos comprobando en el host del servidor, pero es para que se vea más claro define command{

command_name

check_internet

command_line

$USER1$/check_http -H google.es -u http://www.google.es

El fichero del router finalmente quedará así (nota no tienes acceso a la adsl del centro, dará crítico)

$ cat /usr/local/nagios/etc/objects/router.cfg define host{

use generic-switch host_name routermov ; Inherit default values from a template ; The name we're
use
generic-switch
host_name
routermov
; Inherit default values from a template
; The name we're giving to this switch
alias
Router Movistar ; A longer name associated with the switch
address
172.30.0.1
; IP address of the switch

icon_image

statusmap_image

router40.jpg

router40.jpg

hostgroups

switches

; Host groups this switch is associated with

}

define service{

use

generic-service ; Inherit values from a template

host_name

routermov

; The name of the host the service is associated with ; The service description

service_description

PING

check_command

check_ping!200.0,20%!600.0,60%

normal_check_interval

retry_check_interval

}

define service{

1

5

use

local-service

; Name of service template to use

host_name

routermov

service_description

check_command

}

El gráfico quedará así.

INTERNET

check_internet

} El gráfico quedará así. INTERNET check_internet Más cosas a monitorizar podría ser la otra ADSL

Más cosas a monitorizar podría ser la otra ADSL y los puntos de acceso Wifi.

5. Configurar cuenta de correo.

Falta solo configurar para que llegue los mensajes de error al correo. Para eso tenemos que definir el contacto en el archivo contacts.cfg

$ vim /usr/local/nagios/etc/objects/contacts.cfg define contact{

contact_name

nagiosadmin generic-contact Nagios Admin

; Short name of user

use

alias

; Full name of user

email

cuentadecorreo@gmail.com

 

}

$ /etc/init.d/nagios restart

Nota: para que llegue debe estar correctamente configurado el servidor de correo (postfix, en este caso estamos utilizando el relayhost de gmail).

Ejemplo, si paramos el servicio de samba, en nagios aparecerá:

si paramos el servicio de samba, en nagios aparecerá: Nos llegará el siguiente correo (para ello

Nos llegará el siguiente correo (para ello debe estar bien configurado el servidor de correo, será necesario realizar el siguiente apartado):

Para chequear la configuración de nagios, y ver la versión y demás ejecutaremos lo siguiente:

Para chequear la configuración de nagios, y ver la versión y demás ejecutaremos lo siguiente:

$ sudo /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

6. Configurar postfix a través de un relay host autenticado (Gmail).

En principio sería posible instalar un servidor de correo en cualquier equipo conectado a Internet con una dirección IP pública, pero debido al problema del spam, mucho de los servidores de correo de Internet bloquean el correo no autenticado que venga de direcciones IP dinámicas, que son las habituales en conexiones domésticas, que es el caso del instituto.

Una solución es instalar un servidor de correo que no envíe directamente el correo al servidor destino, sino que utilice el equipo smtp.gmail.com para que retrasmita (relay) sus mensajes.

Si tratamos de enviar un correo desde efren@iessietepalmas.com a recibiremos el siguiente correo desde gmail:

tucorreo
tucorreo
de enviar un correo desde efren@iessietepalmas.com a recibiremos el siguiente correo desde gmail: tucorreo @gmail.com

Que viene a decir si hacemos clic en el enlace:

"La dirección IP que utilizas para enviar correos electrónicos no está autorizada

"

Gmail rechaza el correo cuando la dirección IP de envío no coincide con el dominio de envío a fin de evitar el spam. Para enviar correo desde tu servidor a Gmail, te sugerimos que utilices el relevo SMTP1 que te haya proporcionado el ISP. Ten en cuenta que no podemos crear una lista blanca de direcciones IP ni hacer excepciones en este momento.

Así que eso es lo que vamos a hacer, utilizar el servidor SMTP de gmail para reenviar nuestro correo, y al final realizaremos la prueba.

Características de la conexión

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 (en este caso Thawte, aunque parece que ahora utilizar Equifax como autoridad certificadora) y autenticada, para lo que utilizaremos un nombre de usuario (dirección de correo) y contraseña del servicio.

Empezamos: configuración de main.cf

Modificamos las siguientes líneas:

$ sudo vim /etc/postfix/main.cf

relayhost = [smtp.gmail.com]:587

Donde indicamos el nombre del equipo que retransmitirá nuestro mensajes (los corchetes ([ ]) son para que no haga la resolución MX) y el puerto de la conexión es el que se utiliza para la conexión entre un cliente y un servidor SMTP (587/TCP message submission).

smtp_use_tls=yes smtp_tls_CAfile = /etc/postfix/certs/cacert.pem

Para que utilice TLS al enviar correo y confíe en las autoridades certificadoras que se añadan al fichero cacert.pem smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_sasl_security_options = noanonymous

donde le decimos a postfix que debe autenticarse mediante SASL y especificamos la ubicación del fichero con la información del nombre de usuario y contraseña.

Datos de autenticación

Creamos el fichero /etc/postfix/sasl_passwd con el siguiente contenido:

$ sudo su

$ vim /etc/postfix/sasl_passwd

[smtp.gmail.com]:587

tucorreo
tucorreo

@gmail.com:

password
password

$ 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, que creará el fichero /etc/postfix/sasl_passwd.db

$ postmap /etc/postfix/sasl_passwd

Crear archivo de alias, /etc/postfix/generic

$ vim /etc/postfix/generic

efren@iessietepalmas.com

tucorreo
tucorreo

@gmail.com

$ chmod 600 /etc/postfix/generic

$ postmap /etc/postfix/generic

Como he realizado bastantes cambios, pongo cual es finalmente el contenido entero del fichero.

$ cat /etc/postfix/main.cf

# See /usr/share/postfix/main.cf.dist for a commented, more complete version

smtpd_banner = $myhostname ESMTP $mail_name biff = no

# appending .domain is the MUA's job. append_dot_mydomain = no

# Uncomment the next line to generate "delayed mail" warnings #delay_warning_time = 4h

readme_directory = no

inet_interfaces = all

myhostname =

myorigin = /etc/mailname

mydestination =

mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128

#192.168.100.100

servidor7p.iessietepalmas.com

iessietepalmas.com

, servidor7p, localhost.localdomain, localhost

alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases mailbox_size_limit = 0 recipient_delimiter = +

# SMTP relayhost

relayhost = [smtp.gmail.com]:587 #relayhost =

## TLS Settings smtp_tls_loglevel = 1 smtp_tls_CAfile = /etc/postfix/certs/CAcert.pem smtp_tls_cert_file = /etc/postfix/certs/mycert.pem smtp_tls_key_file = /etc/postfix/certs/mykey.pem

smtp_use_tls = yes smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

# configuracao tls

#smtp_use_tls = yes smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_sasl_security_options = noanonymous smtp_sasl_tls_security_options = noanonymous

smtpd_tls_CAfile = /etc/postfix/certs/CAcert.pem smtpd_tls_cert_file = /etc/postfix/certs/mycert.pem smtpd_tls_key_file = /etc/postfix/certs/mykey.pem #smtpd_tls_received_header = yes smtpd_use_tls = yes smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache

# alias de mapeamento interno para externo smtp_generic_maps = hash:/etc/postfix/generic

smtpd_sasl_type = dovecot smtpd_sasl_path = private/dovecot-auth smtpd_sasl_authenticated_header = yes #smtpd_sasl_security_options = noanonymous smtpd_sasl_local_domain = $myhostname broken_sasl_auth_clients = yes smtpd_recipient_restrictions = reject_unknown_sender_domain, reject_unknown_recipient_domain, reject_unauth_pipelining, permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination smtpd_sender_restrictions = reject_unknown_sender_domain mailbox_command = /usr/lib/dovecot/deliver -c /etc/dovecot/conf.d/01-mail-stack- delivery.conf -m "${EXTENSION}" smtpd_tls_received_header = yes smtpd_tls_mandatory_protocols = SSLv3, TLSv1 smtpd_tls_mandatory_ciphers = medium smtpd_tls_auth_only = yes tls_random_source = dev:/dev/urandom

Creamos los certificados

Durante la creación de los certificados serán consultados algunos datos de manera interactiva, el único dato que el obligatorio es Country Name (2 letter code) [AU]:CL

$ mkdir /etc/postfix/certs/

$ cd /etc/postfix/certs/

$ openssl dsaparam 1024 -out dsa1024.pem

$ openssl req -x509 -nodes -days 3650 -newkey dsa:dsa1024.pem -out mycert.pem -keyout

mykey.pem

$ ln -s

$ openssl req -x509 -new -days 3650 -key /etc/postfix/certs/mykey.pem

mycert.pem

CAcert.pem

3650 -key /etc/postfix/certs/mykey.pem mycert.pem CAcert.pem /etc/postfix/certs/mycert.pem $ rm dsa1024.pem Utilización
3650 -key /etc/postfix/certs/mykey.pem mycert.pem CAcert.pem /etc/postfix/certs/mycert.pem $ rm dsa1024.pem Utilización

/etc/postfix/certs/mycert.pem

$ rm dsa1024.pem

Utilización del certificado adecuado

-out

Para añadir la autoridad certificadora Thawte (y Equifax) al fichero de certificados que utilizará postfix, hacemos:

$ cat /etc/ssl/certs/Thawte_Premium_Server_CA.pem >> /etc/postfix/certs/

$ cat /etc/ssl/certs/Equifax_Secure_CA.pem >> /etc/postfix/certs/

CAcert.pem CAcert.pem
CAcert.pem

CAcert.pem

CAcert.pem CAcert.pem
CAcert.pem

CAcert.pem

y reiniciamos el demonio de postfix (bastará hacer reload).

$ /etc/init.d/postfix restart

Pruebas de funcionamiento. Podemos realizarla desde consola o desde la aplicación horde.

$ echo "contenido correo" | mail -s "asunto"

correo@yahoo.es

La desventaja es que envíe quien envíe el correo al remitente siempre le va a aparecer la dirección que se utiliza en el relay, y no la verdadera, con lo que no podrá recibir la respuesta correctamente.

7. Otras herramientas de monitorización a probar.

Sería interesante seguir la guía de ubuntu y probar otras herramientas de monitorización (posibles trabajos de integración como:

Munin.

Ossim.

Zabbix.