Juan Díez-Yanguas Barber
Correo Electrónico Avanzado Contenidos
Introducción
Configuración de Postfix y Dovecot
Postfix Admin. Usuarios y dominios
virtuales
Webmail. RoundCube Mail
AntiSpam - Antivirus
Introducción
Servicio de red que tiene como
obejtivo el envío y recepción de
mensajes
Permite el envío de texto y otro tipo de
documentos adjuntos (Extensiones
MIME)
Introducción
Relay
NO
Entrega
Local
SI
User Agent
IN A
DNS
MX
SMTP
25/TCP
Message
Transfer Agent
POP3/IMAP
Introducción
Componentes
Protocolo de envío: SMTP
Gestión de buzones: POP3 / IMAP
Herramientas de administración
Servicio Webmail
AntiSpam - Antivirus
Respuestas automáticas ...
Introducción
Cliente en terminal
$mail
Cola de salida postfix
$posqueue
-‐p
Formato de Buzones
MailBox /var/spool/mail
Maildir $HOME
Nuevo certificado
openssl
req
-‐new
-‐x509
-‐nodes
-‐out
cert.pem
-‐keyout
key.pem
-‐days
3650
Introducción
TLS: Sucesor de SSL. Securización de
las conexiones de red mediante
métodos criptográficos
STARTTLS: Extensión a los
protocolos de comunicación en texto
plano. Permite comunicación cifrada
usando los mismos sin necesidad de
usar otros puertos.
Postfix
Instalación
yum
install
postfix
Configuración
/etc/postfix/main.cf
/etc/postfix/master.cf
Configuración
service
postfix
start
service
saslauthd
start
Postfix - Main.cf
myhostname
Nombre del host
Por defecto: gethostname()
mydomain
Nombre de dominio
Por defecto $myhostname menos
primer componente
Postfix - Main.cf
myorigin
Dominio de origen de los mensajes
enviados
Por defecto: $myhostname
inet_interfaces
Interfaces en las que escucha el servidor
Por defecto: all
Postfix - Main.cf
mydestination
Dominios seleccionados como entrega local
mynetworks,
mynetworks_style
Orígenes de confianza: relay
relay_domains
Dominios de relay permitidos a cualquier
usuario
Por defecto: $mydestination
Postfix - Main.cf
disable_vrfy_command
Deshabilita comando VRFY. Preguntar si
una cuenta de correo existe o no
smtpd_use_tls
Servidor admite STARTTLS. No obliga a su
uso
smtpd_tls_auth_only
Las conexiones SMTP-AUTH se realizarán
solo mediante canales seguros
Postfix - Main.cf
smtpd_tls_cert_file/smtpd_tls_key_file
Certificado y clave privada del servidor
smtpd_sasl_auth_enable
Activa SMTP-AUTH
broken_sasl_auth_clients
Política a seguir con clientes sin
soporte para SMTP-AUTH
Postfix - Main.cf
smtpd_sasl_security_options
Opciones en caso de fallo de los
métodos de autenticación.
Recomendado: nonanonymous
tls_random_source
Recomendado: dev:/dev/urandom
Postfix - Main.cf
smtpd_recipient_restrictions
=
permit_sasl_authenticated,
permit_mynetworks,
reject_unauth_destination
Relay habilitado para usuarios
autenticados
Postfix - Configuración Cliente
Dovecot
Dovecot
Instalación
yum
install
dovecot
Configuración
/etc/dovecot.conf
Certificados instalados. Crea PKI completa en la instalación
/etc/pki/dovecot
Servicios
service
dovecot
start
Inicio de Sesion
openssl
s_client
-‐connect
mail.sample.com:pop3s
Dovecot
Dovecot - Configuración
Dovecot - Configuración
protocols
Protocolos activos: pop3(s), imap(s)
mail_location
Formato y ubicación de los buzones
Ejemplo: ~/Maildir
pop3_uidl_format
UIDL (Unique Mail Identifier)
%08Xu%08Xv: Requerido en Outlook 2003 vía
POP3
Dovecot - Configuración
Dovecot - Configuración
ssl_disable
Seguridad de Dovecot
Activar seguridad: ssl_disable=no
ssl_cert_file
/
ssl_key_file
Certificados de SSL
Posibilidad de ser diferentes para los
distintos protocolos: protocol
imap
{...}
Dovecot - Configuración
disable_plaintext_auth
=
yes
Deshabilita autenticación con texto
plano salvo que se haya establecido
primero un canal seguro SSL/TLS
Inicios de sesión que no son en texto
plano han sido diseñados para ser
seguros incluso si capa de seguridad
SSL dado que usan hashes MD5 y DES
Dovecot - Configuración del
cliente
Postfix Admin
Postfix con soporte para MySQL
postconf
-‐m
Instalación de MySQL
yum
install
mysql-‐server
mysqladmin
-‐u
root
password
root
Postfix Admin
Configuración MySQL
create
database
postfix;
CREATE
USER
postfixu
IDENTIFIED
BY
'postfix';
GRANT
ALL
PRIVILEGES
ON
*
.
*
TO
postfixu;
FLUSH
PRIVILEGES;
mysqladmin
-‐u
postfixu
password
postfix
Postfix Admin
Instalación (tar.gz)
Directorio: /usr/share/
wget
tar
-‐xvzf
mv
postfixadmin-‐2.3.6
postfixadmin
Configuración
/usr/share/postfixadmin/config.inc.php
Postfix Admin
$CONF[‘configured’]
=
true;
Configurado y listo para iniciar
$CONF[‘postfix_admin_url’]
=
‘/
mailadmin’;
URL de acceso a la administración
$CONF[‘domain_path’]
=
‘YES’;
Buzones guardados separados por
dominios
Postfix Admin
Configuración de acceso a MySQL
$CONF[‘database_type’]
=
‘mysql’;
$CONF[‘database_host’]
=
‘localhost’;
$CONF[‘database_user’]
=
‘postfixu’;
$CONF[‘database_password’]
=
‘postfix’;
$CONF[‘database_name’]
=
‘postfix’;
Postfix - Admin
$CONF[‘encrypt’]
=
‘md5crypt’;
Activa encriptación de las
contraseñas de acceso
$CONF[‘emailcheck_resolve_domain’]
=‘NO’;
Verifica la resolución de dominios al
crear nuevas cuentas
Postfix Admin
Configuración Apache
Configuración: /etc/httpd/conf/httpd.conf
Alias
/mailadmin
/usr/share/postfixadmin
<Directory
“/usr/share/postfixadmin”>
Order
allow,deny
Allow
from
all
</Directory>
Instalación de PHP
yum
install
php
php-‐mysql
php-‐imap
php-‐mbstring
Inicio del servidor web y MySQL
service
httpd
start
service
mysqld
start
Postfix Admin
Configuración de Password para setup
$CONF[‘setup_password’]
Crear cuenta de administración
Crear dominios virtuales
Crear buzones virtuales
Postfix Admin
Postfix Admin
Nuevo Dominio virtual
Postfix Admin
Nuevo Buzón virtual
Postfix - Servidores y cuentas
virtuales
Crear usuario real de soporte
useradd
vmail
-‐p
vmail
UID: 505
GID: 505
Home: /home/vmail/
Postfix - Servidores y cuentas
virtuales
Dominios Virtuales: /etc/postfix/mysql-domains.cf
hosts
=
localhost
user
=
postfixu
password
=
postfix
dbname
=
postfix
table
=
domain
select_field
=
domain
where_field
=
domain
additional_conditions
=
and
backupmx
=
'0'
and
active
=
'1'
Postfix - Servidores y cuentas
virtuales
Usuarios virtuales: /etc/postfix/mysql-users.cf
hosts
=
localhost
user
=
postfixu
password
=
postfix
dbname
=
postfix
table
=
mailbox
select_field
=
maildir
where_field
=
username
additional_conditions
=
and
active
=
'1'
result_format
=
%sMaildir/
%s ----> dominio/usuario@dominio/Maildir/.
%u/Maildir ---->/dominio/usuario/Maildir/.
Postfix - Servidores y cuentas
virtuales
Alias virtuales: etc/postfix/mysql-aliases.cf
hosts
=
localhost
user
=
postfixu
password
=
postfix
dbname
=
postfix
table
=
alias
select_field
=
goto
where_field
=
address
additional_conditions
=
and
active
=
'1'
Postfix - Servidores y cuentas
virtuales
Test de configuración
$postmap
-‐q
efirel.com
mysql:mysql-‐
domains.cf
-‐>efirel.com
$postmap
-‐q
[email protected] mysql:mysql-‐
users.cf
-‐>efirel.com/
[email protected]/Maildir/
$postmap
-‐q
[email protected]
mysql:mysql-‐aliases.cf
-‐>
[email protected]
Postfix - Servidores y cuentas
virtuales
Configuración en Main.cf
virtual_mailbox_domains
=
mysql:/etc/postfix/mysql-‐domains.cf
virtual_mailbox_maps
=
mysql:/etc/postfix/mysql-‐users.cf
virtual_alias_maps
=
mysql:/etc/postfix/mysql-‐aliases.cf
virtual_mailbox_base
=
/home/vmail
virtual_uid_maps
=
static:505
virtual_gid_maps
=
static:505
Postfix - Servidores y cuentas
virtuales
mydestination
=
$myhostname,
localhost.
$mydomain,
localhost
No debe aparecer $mydomain, los dominios
ahora están en la BD. De ponerlo no llega a
buscar en la BD
#home_mailbox
=
Maildir/
Ahora los directorios de los buzones vienen de
la BD
Dovecot - Servidores y cuentas
virtuales
auth_username_format
=
%Lu
Formato de búsqueda del usuario en
la base de datos, tratamiento anterior
a la búsqueda.
%Lu: Cambio a minúsculas
Dovecot - Servidores y cuentas
virtuales
Configuración con MySQL
passdb
sql
{
args
=
/etc/dovecot-‐mysql.conf
}
Configuración del usuario real de soporte
userdb
static
{
args
=
uid=505
gid=505
home=/home/vmail/%d/%u
}
#Ser
coherente
con
la
configuración
de
Postfix
en
la
ubicación
de
los
buzones
%d ->Dominio
%u ->Usuario (usuario@dominio)
%n ->Usuario (usuario sin dominio)
Dovecot - Servidores y cuentas
virtuales
Posible problema: Incoherencia en la
ubicación de los buzones
Ser coherente
mail_location
=
maildir:/
home/vmail/%d/%u/Maildir
Comentar configuración anterior
#mail_location
=
maildir:~/
Maildir
Dovecot - Servidores y cuentas
virtuales
Fichero de configuración de acceso a
MySQL
driver
=
mysql
connect
=
host=localhost
dbname=postfix
user=postfixu
password=postfix
default_pass_scheme
=
CRYPT
password_query
=
SELECT
password
FROM
mailbox
WHERE
username
=
'%u'
AND
active
=
'1'
Posible fallo: Formato de la contraseña
Ser coherente con la configuración de la
Base de Datos
Formato de la contraseña, en la BD está como MD5, si se pone PLAIN falla por no hacer la
huella MD5 en la comparación
Webmail - RoundCube
Instalación (tar.gz)
Directorio: /usr/share/
wget
tar
-‐xvzf
mv
roundcubemail-‐0.9.0
roundcubemail
Configuración
/usr/share/roundcubemail/config/main.inc.php
/usr/sh
Comentarios de: Correo Electrónico Avanzado (0)
No hay comentarios