Archivo

Archive for the ‘Mail Server’ Category

Aplicaciones para montar tu propio webmail

Los webmail como su nombre lo indica son aplicaciones basados en una plataforma web, que te permite verificar tus mensajes de correo electrónico, utilizando tu navegador de Internet. Estas herramientas te permiten acceder a tu cuenta de correo alojado en un servidor gratuito, de pago o empresarial.

Estos utilizan los protocolos de comunicación IMAP o POP3. Mediante la utilización de los webmail, no es necesario instalar algún cliente de correo, ni descargar tus mensajes a tu ordenador, solo basta con tener una conexión. Los webmails son vinculados a un servidor de correo.

Los webmail facilitan a los usuarios hacer uso de su correo electrónico de una forma fácil, utilizando un diseño amigable al usuario, brindándole la posibilidad de no depender de un único ordenador.

Características

Entre las principales características de un webmail están: redactar, listar, ver, eliminar mensajes, así como administrar nuestros contactos, crear filtros en los mensajes, crear carpetas.

  • Ventajas: administrar mensajes desde cualquier, mensajes disponibles desde cualquier ordenador, los mensajes no se descargan, por lo que no consume espacio de nuestro ordenador.
  • Desventajas: poco espacio, en dependencia del proveedor de este servicio, se requiere de una conexión Internet, para acceder a su cuenta de correo, velocidad en dependencia del ancho de banda, se requiere que las peticiones realizadas vía web se completen, los mensajes no se guardan en nuestro ordenador. se requiere de mayor espacio en el servidor, pueden presentar fallas de seguridad.

¿Qué necesito para montar un Webmail en mi servidor?

Los principales requisitos que se necesitan para poder instalar o configurar un webmail en nuestro servidor, es primeramente un servidor web. Para crear nuestro servidor web podemos utilizar IIS o Apache. El tipo de servidor web a seleccionar es directamente proporcional al webmail que deseamos montar. Estos webmail pueden estar desarrollados para una plataforma específica.

RoundCube

roundcubeRoundCube es un proyecto Opensource, utilizado para verificar los correos electrónicos utilizando tu navegador. Este proyecto se encuentra alojado en Sourceforge. La apariencia de esta aplicación es bastante agradable, sus desarrolladores hacen uso de PHP, MySQL, AJAX. Permite organizar los mensajes con tan solo arrastrarlos hacia donde deseamos.

RoundCube incluye libreta de direcciones, administración de carpetas, soporte para MIME, búsqueda de mensajes. Compatible con Windows y Linux. Compatible con aquellos navegadores que soporten javascript.

Requerimientos:

  • Permiso de escritura en el directorio que se descomprimió.
  • Servidor web.
  • PHP 4.3.1 o superior.
  • Base de datos Mysql, Postgresql, SQLite.
  • La base de datos debe tener permisos para crear tablas.

¿Cómo instalar RoundCube?

Primeramente debemos acceder al sitio y descargarlo en nuestro ordenador. Luego descomprimirlo hacia un directorio en nuestro servidor web. Al descomprimir el paquete encontraremos un directorio llamado “SQL” donde encontraremos el script/código de nuestra base de datos. En nuestro caso utilizaré MySQL5, por lo que seleccionare el archivo “mysql5.initial.sql”. Definir permisos de escritura a los directorios: logs y temp.

Crear Base de datos:

Mediante un cliente de base de datos nos conectamos a nuestra base de datos ejemplo: phpMyadmin. Creamos una base de datos con el nombre que deseemos “roundcube”, vamos a la opción SQL o QUERY del cliente y pegamos el código SQL de nuestra base de datos, luego oprimimos “Continuar”, seguidamente el script se correrá y serán creadas las tablas necesarias.

Configuración de archivos:

Dentro encontraremos un directorio llamado “Config”, dentro se encuentran los archivos db.inc.php.dist y main.inc.php.dist los cuales deben ser renombrados hacia db.inc.php y main.inc.php eliminando “.dist”. Entre las principales variables de configuración podemos encontrar:

db.inc.php: debemos configurar la variable de la siguiente manera en dependencia del servidor de base de datos a usar.

  • MySql: $rcmail_config['db_dsnw'] = 'mysql://root:root@localhost/roundcube';
  • Postgre: 'pgsql://root:root@localhost/roundcube';
  • Para entenderlo mejor podemos definirlo de la siguiente manera: tipo de base de 'datos://usuario:clave@servidor/base de datos';
  • SQLite:'sqlite://./sqlite.db?mode=0646';

Si la configuración se ha realizado correctamente podremos visualizar nuestro webmail y acceder a nuestro correo, introduciendo usuario, clave y servidor de correo.

main.inc.php: en la siguiente variable podemos definir un host o servidor de correo por defecto, los usuarios no tendrán que introducirlo, solamente se conectaran a el con solamente introducir el usuario y clave.

$rcmail_config['default_host'] = 'miempresa.com';

Puerto usado para aceptar las conexiones IMAP
$rcmail_config['default_port'] = 143;

Nombre del Producto
$rcmail_config['product_name'] = 'Mi empresa';

Finalmente podremos acceder a nuestro correo electrónico mediante el nuevo webmail utilizando la URL elegida http://localhost/roundcube/.

SquirrelMail

SquirrelMailSquirrelMail es un webmail desarrollado en PHP, con soporte para IMAP y SMTP. Fue creado por Nathan y Luke Ehresman. Posee licencia opensource. Este webmail es compatible con la mayoría de los navegadores. Sigue el standard HTML 4.0.

Se puede encontrar más información en su sitio web oficial, donde también podemos descargarlo. A continuación veremos como instalarlo. Cuenta con un gran número de lenguajes y también con plugins.

Se debe descomprimir el paquete descargado hacia un directorio en nuestro servidor web. En el directorio “Config” contraremos ficheros de configuración para PERL y PHP. En nuestro caso seleccionaremos PHP. Tomaremos el archivo con el nombre “config_default.php” y lo renombraremos con el nombre “config.php”. Se debe dar permiso de escritura al directorio “data”.

Requerimientos

  • PHP 4 o superior
  • Servidor web.
  • Servidor IMAP.

Configuración del archivo config.php Mostraremos las principales variables de configuración de SquirrelMail, que deben ser modificadas.

Esta variable contiene la versión del webmail:
$config_version = '1.4.0';

Preferencias organizacionales:
$org_name = "SquirrelMail";

Ruta de la imagen que se mostrará:
$org_logo = SM_PATH . 'images/sm_logo.png';

Tamaño de ancho del logo:
$org_logo_width = '308';

Tamaño de alto del logo:
$org_logo_height = '111';

Titulo del webmail:
$org_title = "SquirrelMail $version";

Definimos si utilizaremos Sendmail como servidor de correo.(True=SI, False = NO):
$useSendmail = false;

Configuracion del servidor SMTP y del Puerto:
$smtpServerAddress = 'localhost';
$smtpPort = 25;

Ruta del directorio de sendmail:
$sendmail_path = '/usr/sbin/sendmail';

Nombre o IP del servidor IMAP y Puerto:
$imapServerAddress = 'localhost';
$imapPort = 143;

Luego podemos acceder al webmail desde nuestro navegador y acceder a nuestro correo electrónico, si las configuraciones se han realizado correctamente.

NOCC Webmail

El webmail NOCC está desarrollado en PHP. Es una aplicación Opensource, distribuida bajo la licencia GPL. Permite el envío de correos electrónicos usando Sendmail o SMTP. Disponible en más de 36 idiomas y temas de apariencia. No utiliza frames, tampoco requiere tener habilitadas las cookies. Tampoco requiere de base de datos, compatible con Windows y Linux.

Nocc

Requerimientos

  • Versiones superiores a PHP 4.1.0
  • Servidor IMAP o POP3.
  • Servidor web.

¿Cómo instalar NOCC?

El primer paso para instalar NOCC es descargarlo en nuestro ordenador y luego descomprimirlo hacia un directorio de nuestro servidor web. En el directorio encontraremos un archivo de configuración llamado conf.php.dist que demos renombrar hacia conf.php.

Configuración del archivo conf.php:

Dirección del servidor y el puerto SMTP por defecto.
$conf->default_smtp_server = 'hvil.hlg.sld.cu';
$conf->default_smtp_port = 25;

Ruta del directorio temporal
$conf->tmpdir = '/tmp';

Lenguaje por defecto
$conf->default_lang = 'es';

Tema del webmail por defecto
$conf->default_theme = 'standard';

Reporte de errores y alertas
$conf->debug_level = E_ALL & ~E_NOTICE;

Cantidad de mensajes por página
$conf->msg_per_page = '25';

Firma de los mensajes salientes elaborados por los usuarios que utilicen nuestro webmail
$conf->ad = "¨Nuestra Empresa";

Tamaño máximo de los adjuntos
$conf->memory_limit="20M";

Al terminar la configuración podemos acceder a nuestro webmail. Introduciendo nombre de usuario, contraseña, dirección del servidor de correo a conectar. También seleccionaremos el tipo de protocolo y el puerto. Así como el lenguaje y el tema del webmail.

Anuncios
Categorías:Hosting, Mail Server

Instalacion y configuracion de Roundcube en Ubuntu

Roundcube es un cliente de correo web que nos permite enviar y
recibir correos. Es necesario tener instalado antes un servidor IMAP y
un LAMP, para que el servidor funciones correctamente.

Pasemos a su instalación:

sudo apt-get install roundcube-webmail

Tras la instalacion y pedida de contraseña, tedremos que crear la base de datos, pero antes entraremos en MySQL:

mysql -u root -p

Sabremos si estamos dentro de MySQL porque veremos “mysql>” al principio de cada líneas de comando. Creamos la base de datos:

create database nombre_base_de_datos;

Y creamos un usuario para dicha base de datos:

create user nombre_usuario identified by ‘contraseña_usuario’;

Y le damos todos los permisos:

grant all on nombre_base_de_datos.* to ‘nombre_usuario’@’127.0.0.1’;

Saldremos de MySQL con un “quit”.

Ahora debemos crear la estructura:

mysql -u root -p nombre_base_de_datos </usr/share/roundcube-webmail/SQL/mysql.initial.sql

Y renombramos los 2 siguientes archivos.

sudo mv /usr/share/roundcube-webmail/config/db.inc.php.dist /usr/share/roundcube-webmail/config/db.inc.php

sudo mv /usr/share/roundcube-webmail/config/main.inc.php.dist /usr/share/roundcube-webmail/config/main.inc.php

Para ir terminando, editamos el siguiente fichero de configuracion:

sudo nano /usr/share/roundcube-webmail/config/db.inc.php

Buscamos la linea nº21 y la cambiamos por:

&rcmail_config[‘db_dsnw’] = ‘mysql:

Categorías:Hosting, Mail Server

Instalación de Squirrelmail en Ubuntu

julio 20, 2010 2 comentarios

Hola a todos en este tutorial vamos a explicar como instalar Squirrelmail en Ubuntu.
Antes de todo, ¿Qué es Squirrelmail?
– Squirrelmail es una aplicación que por medio de una interfaz web nos permite enviar correo desde nuestro servidor de correo electrónico.

Antes de instalar Squirrelmail debemos de instalar otras cosas como Postfix que es el servidor de correo, también instalaremos Dovecot, Apache2 y Php5.
Se puede instalar desde el terminal o desde el Synaptic (Yo lo he hecho desde el terminal).
Para instalar todos los paquetes anteriores:

sudo aptitude install postfix dovecot-imapd apache2 php5

Cuando se esté instalando Postfix nos pedirá que elijamos el servicio le ponemos sitio de Internet y luego nos pedirá el nombre del dominio ponemos el nombre de nuestro pc (ponemos hostname en consola para averiguarlo).

Al instalar dovecot-imapd nos saldrá el siguiente error “adduser: Precaución: el directorio personal `/usr/lib/dovecot’ no pertenece al usuario que se esta creando actualmente”.
Para remediar ese error solo tendríamos que poner la siquiente linea en el terminal:

sudo chown -R dovecot /usr/lib/dovecot

Y el error estaría solucionado.
Una vez instalados todos los paquetes procederemos a la instalacion de Squirrelmail:

sudo aptitude install squirrelmail

Ahora tendremos instalado Squirrelmail en nuestro sistema, ahora para ejecutarlo tenemos que crear un enlace. Para ello nos situamos en el directorio.

cd /var/www

y creamos el enlace a la ruta (usr/share/squirrelmail).
Para realizar todo esto ejecutamos:

sudo ln -s /usr/share/squirrelmail correo

Para acceder a Squirrelmail abrimos firefox y ponemos:

http://127.0.0.1/correo


Para logearte solo hace falta que pongas un usuario del sistema (en mi caso es javi porque es un usuario de mi equipo).
Una vez logeado nos deberá salir la pagina principal de Squirrelmail:


Ahora solo nos queda comprobar si nos podemos mandar correos a nosotros mismos (para ello tendremos que poner nombredelequipo@hostnamedelamaquina):


El contenido de los log se encuentra en:
a) /var/log/mail.err
b) /var/log/mail.info
c) /var/log/mail.log
d) /var/log/mail.warn
Bueno con esto ya he terminado el tutorial de Squirrelmail espero que halla servido de gran ayuda, un saludo.

Categorías:Hosting, Mail Server

Instalacion y configuracion de Squirrelmail sobre Linux

Webmail es un software que le permite consultar el correo electrónico desde cualquier ordenador, en cualquier lugar del mundo, a través de su navegador web. Squirrelmail es un simple, rápido y popular paquete de correo web. Esta guía le permitirá la configuración del correo web en su servidor, ya sea para su uso dentro de su red propia, o en el exterior.

Preparación

Antes de realizar la instalacion es necesario contar con los siguientes servicios funcionando en nuestra red:

  • Servidor de Transferencia de Correo (MTA)
  • Agente de Entrega de Correo IMAP
  • Un servidor de paginas de internet

Si cumplimos con los requerimientos anteriores procedemos a la instalacion del correo web.

Instalacion

La instalacion del servicio de squirrelmail es muy facil, solo tecleamos:

:~$ sudo aptitude install squirrelmail

Configuracion

Squirrelmail

Squirrelmail viene con un menu de configuracion integrado. Para ejecutarlo, tecleamos:

:~$ sudo squirrelmail-configure

Pueden navegar el menu a traves de numero sy letras. No es necesario editar todas las opciones, tan solo con verificar que los valores del Menu 2 (mail server settings) esten correctos es suficiente. Es perfectamente seguro usar imap en la misma maquina donde correo squirrelmail.

Apache

Squirrelmail viene con una configuracion de ejemplo para apache en /etc/squirrelmail/apache.conf.Pueden copiar este archivo y luego crear el link simbolico ejecutando los siguientes comandos:

:~$ sudo cp /etc/squirrelmail/apache.conf /etc/apache2/sites-available/squirrelmail
:~$ sudo ln -s /etc/apache2/sites-available/squirrelmail /etc/apache2/sites-enabled/squirrelmail

Tambien podemos activar el sitio con el comando:

sudo a2ensite squirrelmail

Forzamos la recarga de la configuracion de Apache:

:~$ sudo /etc/init.d/apache2 force-reload

Ahora podemos utilizar nuestro navegador web para ingresar en la direccion http://localhost/squirrelmail donde sera desplegada la pagina de login de Squirrelmail.

Categorías:Hosting, Mail Server

Postfix y Postfix Admin GUI

julio 13, 2010 2 comentarios

http://tuxjm.net/docs/mailserver-howto/mysql-based/xhtml/ch04s04.html

Test mail

telnet ipdelservidor 25
helo test
mail from: tudireccion@ferretools.com
rcpt to: tudireccion@ferretools.com
data
Subject: Test de email

.

(termina con dos ENTERS un punto y dos ENTERS de nuevo)

Instalación de postfix

Hay muchos Servidores de Correo. Algunos: sendmail, exim, qmail, postfix. Éste es el elegido. Instalamos postfix:

[root@3000xp ~]# urpmi postfix
Para satisfacer las dependencias, se instalarán los paquetes siguientes:
libpostfix1-2.2.5-7mdk.i586
postfix-2.2.5-7mdk.i586
¿Está todo bien? (S/n) s
…………………………………….
Terminando el registro del núcleo: [ OK ]
Terminando el registro del sistema: [ OK ]
Iniciando el registro del sistema: [ OK ]
Iniciando el registro del núcleo: [ OK ]

Lo ponemos en marcha y vemos que va todo bien:

root@3000xp ~]# /etc/init.d/postfix start
Iniciando postfix: [OK]

Puertos en escucha:

# netstat -puta
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 web:10026 *:* LISTEN 19274/master
tcp 0 0 web:smtp *:* LISTEN 19274/master

Vemos que master (postfix) está escuchando en el puerto smtp (25) del servidor. El otro (10026) lo veremos al estudiar los filtros.

Echemos un vistazo a archivos y directorios importantes:

* /etc/postfix/main.cf, que es el fundamental de configuración de postfix
* /etc/postfix/master.cf, el segundo fundamental y complejo (mejor no toquetearlo)
* /etc/postfix/aliases, que es el archivo para crear alias (redirecciones de correo). Por ejemplo, el correo dirigido a root debería leerlo un usuario del sistema, como puede ser pepito.
* /etc/postfix/sasl/smtp.conf es el archivo para configurar la autenticación ante el servidor de los usuarios
* /var/spool/postix/ es el directorio donde trabaja enjaulado Postfix. Observa cómo ha copiado hasta los archivos básicos de /etc que necesita para funcionar.

Prueba de funcionamiento

Ahora vamos a enviar un correo a pelo: nos conectaremos al puerto 25 (smtp) diremos que somos loli (y se lo creerá) y le enviaremos un correo al usuario colego (ambos son usuarios del sistema donde se ha instalado postfix). Esto hará que se cree en el directorio /var/spool/mail/ un fichero llamado colego que contendrá ese correo. Éste es el buzón de correo del usuario, y tal y como está configurado postfix ahora ahí vendrán a parar todos los correos, añadiéndose al final del archivo de cada usuario, engordando ilimitadamente si no vamos borrando los sucesivos mensajes que recibamos, y si no configuramos cuotas.

$telnet localhost 25
Trying 127.0.0.1…
Connected to web.iesdelgadohernandez.es (127.0.0.1).
Escape character is ‘^]’.
220 web.iesdelgadohernandez.es ESMTP Postfix (2.2.5) (Mandriva Linux)
helo localhost
250 web.iesdelgadohernandez.es
mail from: loli
250 Ok
rcpt to: colego
250 Ok
data
354 End data with .
subject: primer correo enviado de prueba
from: loli
to: colego
Este es el primer correo que te envio. Es una prueba. Adios.
.
250 Ok: queued as 830FE136DD4
quit
221 Bye
Connection closed by foreign host.

Ahora se conecta colego:

$ su colego
You have mail in /var/spool/mail/colego

Fijémonos cómo nos avisa de que tenemos un correo. Vamos a leerlo:

$ cat /var/spool/mail/colego
From loli@web.iesdelgadohernandez.es Mon Feb 13 21:32:57 2006
Return-Path:
X-Original-To: colego
Delivered-To: colego@web.iesdelgadohernandez.es
Received: from localhost (web.iesdelgadohernandez.es [127.0.0.1])
by web.iesdelgadohernandez.es (Postfix) with SMTP id 830FE136DD4
for ; Mon, 13 Feb 2006 21:31:47 +0100 (CET)
subject: primer correo enviado de prueba
from: loli@web.iesdelgadohernandez.es
to: colego@web.iesdelgadohernandez.es
Message-Id: <20060213203147.830FE136DD4@web.iesdelgadohernandez.es>
Date: Mon, 13 Feb 2006 21:31:47 +0100 (CET)

Este es el primer correo que te envio. Es una prueba. Adios.

Todo va bien (por ahora). Ya podemos mandar correo donde queramos desde nuestro servidor. Pero vamos a configurarlo un poco y a protegerlo.
Alias

Bueno, algo que debe configurarse son los alias o redirecciones que correo. El superusuario root va a recibir muchos mensajes que, por seguridad, nunca recibirá. ¿Quién los recibe ahora? Pues el usuario postfix (sí, se crea el usuario postfix del mismo modo que al instalar el servidor web apache se crea el usuario apache). La idea es que el administrador nunca se conecte como root, sino como un usuario normal y corriente; digamos pealfa.

Todo ello se consigue a través del archivo /etc/aliases y del comando newaliases. Vamos al archivo de alias mencionado y allí cambiamos:

root: postfix

por

root: pealfa

y ejecutamos el comando newaliases
# newaliases
Configuración básica

Debemos modificar algunos parámetros. Para ello dejamos al archivo /etc/postifix/main.cf como sigue:

# CREADO POR EL SCRIPT DE INSTALACIÓN. NO TOCAMOS
readme_directory = /usr/share/doc/postfix-2.2.5/README_FILES
html_directory = /usr/share/doc/postfix-2.2.5/html
sendmail_path = /usr/sbin/sendmail.postfix
setgid_group = postdrop
command_directory = /usr/sbin
manpage_directory = /usr/share/man
daemon_directory = /usr/lib/postfix
newaliases_path = /usr/bin/newaliases
mailq_path = /usr/bin/mailq
queue_directory = /var/spool/postfix
mail_owner = postfix
# PARÁMETROS CONFIGURABLES POR EL USUARIO
delay_warning_time = 4h
smtpd_banner = $myhostname ESMTP $mail_name ($mail_version) (Mandriva Linux)
unknown_local_recipient_reject_code = 450
smtp-filter_destination_concurrency_limit = 2
lmtp-filter_destination_concurrency_limit = 2
# USAMOS EL FORMATO DE BUZÓN MAILDIR. SERÁ EL BUZÓN PERSONAL DE CADA USUARIO.
home_mailbox = Mail/
# INTERFACES POR LA QUE ESCUCHARÁ PETICIONES(localhost, eth0, all):
inet_interfaces = all
# PARÁMETROS DEL HOST Y DEL DOMINIO
myhostname = web.iesdelgadohernandez.es
mydomain = iesdelgadohernandez.es
# AL ENVIAR UN CORREO, QUÉ QUEREMOS QUE APAREZCA COMO ORIGEN DEL CORREO: $myhostname, $mydomain O LO QUE SEA
myorigin= $mydomain
# EQUIPOS A LOS QUE SE PERMITIRÁ ENVIAR LIBREMENTE EL CORREO. SER RESTRICTIVOS AQUÍ. Y DOMINIOS A ADMINISTRAR:
mynetworks = 127.0.0.0/8
mydestination = localhost, $myhostname, localhost.$mydomain, $mydomain
# LIMITES PARA BUZON Y MENSAJE (20 MB / 5 MB). POR DEFECTO ESTÁ EN (50 / 10 MB).
#mailbox_siza_limit = 20480000
#message_size_limit = 5120000
Atenticación, cifrado y controles anti-spam.

Mantener en funcionamiento un servidor de correo es complejo y una gran responsabilidad. Nada más abrir el puerto 25 en nuestro sistema nos encontraremos un aluvión de intentos de usarlo como open-relay: quieren usarnos como retransmisores de correo basura. El procurar que esto no suceda es NUESTRA RESPONSABILIDAD. Por ello debemos procurar tomas todas las medidas a nuestro alcance para evitarlo. Lo de menos es ser receptores de spam. Lo que debemos procurar es que nuestro servidor no sea un zombi que rápidamente sea incluido en las listas negras como productor de correo no deseado. Aquí vamos a comentar medidas al nivel smtp, que nos dará problemas, pues mi postfix ha rechazado mensajes de servidores mal configurados (por ejemplo, del servicio técnico de empresas que se dedican a productos para redes) al aplicarle las restricciones. Señalo que, por supuesto, he pasado el test de ORDB.org y comprobado que no somos un open-relay.

Vamos a dar soporte a nuestro servidor para SASL (método de autenticación) y TLS (cifrado e integridad para los correos). Esto permitiría usar nuestro Servidor de Correo por aquellos clientes que se identifican mediante un usuario+contraseña ante el servidor smtp y, además, conseguir que tanto esa identificación como toda la comunicación se realice cifrada. Lo he añadido como una capacidad más, pero teniendo en cuenta que lo que pretendemos es dar un servicio de CorreoWeb, no es necesario para resolver el problema de la itinerancia.

Esto se ha realizado siguiendo instrucciones que podemos encontrar en la propia web de mandriva.

A instalar:

# urpmi cyrus-sasl libsasl2 libsasl2-devel libsasl2-plug-plain libsasl2-plug-anonymous libsasl2-plug-crammd5 libsasl2-plug-digestmd5 libsasl2-plug-gssapi libsasl2-plug-login

Bien. Para gestionar los usuarios y las contraseñas hay muchas formas: usando bases de datos mysql, usando el método auxprop (con el que cyrus-sasl mantiene un archivo independiente) y saslauth (se usarán las cuentas del sistema Linux). Este método es el más inseguro y sólo sirve para pocos usuarios. Es precisamente el que vamos a usar porque es el más simple. Y porque tendremos pocos usuarios, no tendrán acceso a la shell, no podrán iniciar sesión y sólo se podrán conectar remotamente vía ssh desde determinados puestos de la intranet… buff esto ya mejora algo la seguridad. De todas formas, estoy pensando lo de implementar en el futuro el uso de mysql.

# cat /etc/postfix/sasl/smtpd.conf
mech_list: plain login
pwcheck_method: saslauthd
saslauthd_path: /var/lib/sasl2/mux

Ahora vamos a utilizar ssl para crear los certificados y poder exigir autenticación tls ante el servidor smtp (postfix) para conectarse a él:

# mkdir /etc/postfix/ssl
# cd /etc/postfix/ssl

# openssl genrsa -des3 -rand /etc/hosts -out smtpd.key 1024
……………………
Enter pass phrase for smtpd.key:
Verifying – Enter pass phrase for smtpd.key:

# chmod 600 smtpd.key

# openssl req -new -key smtpd.key -out smtpd.csr
Enter pass phrase for smtpd.key:
……………………
Country Name (2 letter code) [AU]:ES
State or Province Name (full name) [Some-State]:Andalucia
Locality Name (eg, city) []:Bollullos del Condado
Organization Name (eg, company) [Internet Widgits Pty Ltd]:IES Delgado Hernández
Organizational Unit Name (eg, section) []:IES Delgado Hernández
Common Name (eg, YOUR name) []:web.iesdelgadohernandez.es
Email Address []:root@iesdelgadohernandez.es
Please enter the following ‘extra’ attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

# openssl x509 -req -days 3650 -in smtpd.csr -signkey smtpd.key -out smtpd.crt
…………………….
Enter pass phrase for smtpd.key:

# openssl rsa -in smtpd.key -out smtpd.key.unencripted
Enter pass phrase for smtpd.key:
writing RSA key

# mv -f smtpd.keyunencripted smtpd.key

# openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 3650
…………………….
Country Name (2 letter code) [AU]:ES
State or Province Name (full name) [Some-State]:Andalucia
Locality Name (eg, city) []:Bollullos del Condado
Organization Name (eg, company) [Internet Widgits Pty Ltd]:IES Delgado Hernández
Organizational Unit Name (eg, section) []:IES Delgado Hernández
Common Name (eg, YOUR name) []:web.iesdelgadohernandez.es
Email Address []:root@iesdelgadohernandez.es

Veamos lo que añadimos ahora a /etc/postfix/main.cf. Observa las medidas anti UBE:

# SASL = “Simple Authentication and Security Layer” o “Capa de Simple de autenticación y seguridad”.
# Esto es un método para añadir soporte autenticación a SMTP
smtpd_sasl_path = /etc/postfix/sasl:/usr/lib/sasl2
#smtp_sasl_auth_enable = yes
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $myhostname
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
# TLS
smtp_use_tls = yes
smtp_tls_note_starttls_offer = yes
smtpd_use_tls = yes
smtpd_tls_auth_only = yes
smtpd_tls_key_file = /etc/postfix/ssl/smtpd.key
smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.crt
smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem
smtpd_tls_loglevel = 1
smtpd_tls_receveid_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom
# CONTROL DEL CORREO ENTRANTE / SALIENTE
# INCLUYE MANEJO DE SAPAM, LISTAS NEGRAS Y RESTRICCIONES EN HELO
# EXIGIMOS HELO Y CUMPLIMIENTO DE LA NORMA RFC821:
smtpd_helo_required = yes
strict_rfc821_envelopes = yes
# RESTRICCIONES
# smtpd_client_restrictions =
# permit_sasl_authenticated,
# permit_mynetworks,
# reject_unknown_client

# smtpd_helo_restrictions =
# reject_invalid_hostname,
# reject_unknown_hostname,
# reject_non_fqdn_hostname

smtpd_sender_restrictions=
check_sender_access hash:/etc/postfix/lista_blanca

smtpd_recipient_restrictions =
reject_invalid_hostname,
reject_non_fqdn_hostname,
reject_non_fqdn_sender,
reject_unknown_sender_domain,
reject_unknown_recipient_domain,
permit_mynetworks,
permit_sasl_authenticated,
reject_unauth_destination,
reject_rbl_client relays.ordb.org

#Otras posibles listas opm.blitzed.org, list.dsbl.org, sbl.spamhaus.org, relays.mail-abuse.org, cbl.abuseat.org
Reinicio y comprobación:

# /etc/init.d/postfix restart Terminando postfix: [ OK ]
Iniciando postfix: [ OK ]
# /etc/init.d/saslauthd restart
saslauthd no está corriendo
Iniciando saslauthd [ OK ]
Creando enlace duro desde /var/lib/sasl2/mux a /var/spool/postfix/var/lib/sasl2/

Importante esto último: como postfix está enjaulado, se crea ese enlace duro para que pueda autenticar. Nosotros no debemos hacer nada al respecto. Al cerrarse el sistema se borrará y al iniciarse se creará automáticamente

Sabremos que tenemos el soporte TLS porque ahora al conectarnos al sistema apararecerá starttls:

# telnet localhost 25
Trying 127.0.0.1…
Connected to web.iesdelgadohernandez.es (127.0.0.1).
Escape character is ‘^]’.
220 web.iesdelgadohernandez.es ESMTP Postfix (2.2.5) (Mandriva Linux)
ehlo localhost
250-web.iesdelgadohernandez.es
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250 8BITMIME
quit
221 Bye
Connection closed by foreign host.

No aparece nada sobre AUTH porque hemos señalado smtpd_tsl_auth_only = yes. Si hubiésemos aceptado comunicación sin exigir tls, colocando smtpd_tsl_auth_only = no entonces aparecería lo que sigue. Obsérvese como la autenticación aparece después de starttls. La autenticación se realiza a través de texto plano en claro, pero no hay problema pues la comunicación ya va encriptada por tls:

# telnet localhost 25
Trying 127.0.0.1…
Connected to web.iesdelgadohernandez.es (127.0.0.1).
Escape character is ‘^]’.
220 web.iesdelgadohernandez.es ESMTP Postfix (2.2.5) (Mandriva Linux)
ehlo localhost
250-web.iesdelgadohernandez.es
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN PLAIN
250 8BITMIME
quit
221 Bye
Connection closed by foreign host.

Veamos si hay errores o advertencias:

# cat /var/log/mail/errors
# cat /var/log/mail/warnings

Nada de nada. Todo parece correcto.
Puertos

Ya hemos repetido unas cien veces que la conexión a un servidor smtp se realiza por defecto a través del puerto 25. Asegurémosnos de que éste está abierto en nuestro cortafuegos si queremos que se acceda a nuestro Servidor de Correo desde el exterior. Porque hasta ahora está listo para enviar correos, pero no para recibirlos.

Categorías:Hosting, Mail Server