miércoles, febrero 13, 2019

instalacion y configuracion de servidor de correo en Debian GNU / Linux Stretch

En este articulo voy a vincular las diferentes configuraciones para instalar un arreglo de servidores de correo en Debian Stretch utilizando postfix, dovecot, sasl, spamassassin, opendkim, opendmarc, policyd-spf, postfwd, fail2ban y el directorio activo de windows.

La idea es la siguiente voy a instalar 2 servidores, en uno de los cuales tendré los usuarios de la oficina principal y en el otro los usuarios de una oficina remota, ambos se replicaran entre si y servirán de respaldo uno del otro.  Voy a utilizar y activar los protocolos imap4 y pop3 para los clientes pero he decidido que mis clientes utilicen pop3 para descarga de sus correos y realizaré copia de los correos que envían mis usuario para que queden en su propio buzón porque ustedes saben que pop3 no deja copia de los correos que enviamos y cuando nos conectamos por ejemplo al un webmail no se puede ver los correos que hemos enviado, voy a tratar de superar esta función veremos como me va.

PREPARACIÓN DEL SERVIDOR

Por el momento he instalado Debian GNU/Linux 9.7.0 sin ningún paquete adicional es decir solo la instalación base, configure el servicio ntp de una vez en la instalación

Coloco mis dns en /etc/resolv.conf
He probado mi red y ya tengo internet
He particionado de la siguiente manera
df -kh

S.ficheros     Tamaño Usados  Disp Uso% Montado en
udev              16G      0   16G   0% /dev
tmpfs            3.2G   8.7M  3.2G   1% /run
/dev/sda1         18G   574M   17G   4% /
tmpfs             16G      0   16G   0% /dev/shm
tmpfs            5.0M      0  5.0M   0% /run/lock
tmpfs             16G      0   16G   0% /sys/fs/cgroup
/dev/sdb1        2.0G   6.1M  1.9G   1% /tmp
/dev/sdc1        1.5T   277M  1.5T   1% /var

he instalado algunos paquetes
apt install openssh-server vim
pueden hacer un dpkg -l para ver los paquetes instalados

coloqué el nombre a mi servidor
hostnamectl set-hostname mail3.midominio.com

Configure ssh para conexión remota y por el momento lo voy a dejar hasta aquí

Ya tengo un servidor dns configurado y espero omitir esa instalación porque deseo que en mi servidor haya solo paquetes relacionados al correo, si alguien desea hacer la instalación del dns pueden buscar un manual en este mismo blog.

ah por si acaso les dejo acá los servicios levantados hasta el momento, entre menos servicios tengamos levantados menos susceptibles nos volvemos a los ataques, así que tratare de solo levantar lo necesario.

root@mail3:~# ss -tan
State       Recv-Q Send-Q    Local Address:Port                   Peer Address:Port             
LISTEN      0      128                   *:22                                *:*                 
LISTEN      0      128                  :::22                               :::*                 


Espero que este manual les ayude a instalar su propio servidor de correo, saludos y bendiciones

1. Instalación y configuracion de postfix, sasl y directorio activo de windows Debian GNU/Linux Stretch

lunes, noviembre 13, 2017

Crear llaves para Data Protector linux installation server

ssh-keygen -t rsa
/usr/bin/ssh-copy-id -i /root/.ssh/id_rsa.pub srvdpis.ine.local

vi /opt/omni/.omnirc

OB2_SSH_ENABLED=1
/etc/init.d/openbsd-inetd restart


eliminar un cliente manualmente en el siguiente archivo
C:\ProgramData\OmniBack\Config\Server\cell\cell_info

jueves, noviembre 09, 2017

Debian Jessie - SPF DKIM con Postfix y Spamassassin

En este articulo voy a documentar la forma de configurar SPF (Sender Policy Framework) y DKIM (DomainKeys Identified Mail) en Debian Jessie con Postfix y Spamassassin para evitar la sumplatanción de correos.

Suponemos que mi servidor de correo esta bajo el dominio dominio.com y el nombre del host es correo.dominio.com.

Configurando SPF
SPF es el responsable de identificar mediante la IP y por medio de los registros del DNS, a los servidores de correo SMTP autorizados para el envío de mensajes de un dominio concreto.
Agregamos  al archivo /var/bind9/chroot/var/lib/bind/db.dominio.com las siguientes lineas

@          IN  TXT "v=spf1 ip4:10.10.10.0/29 a mx ~all"
correo                   IN      TXT     "v=spf1 a mx -all"

# Reiniciamos
systemctl restart bind9

# Probamos nuestra configuracion
host -t txt dominio.com
host -t txt correo.dominio.com

# Activamos nuestro registro SPF en postfix

# Instalamos los paquetes postfix-policyd-spf-python postfix-pcre
apt-get install postfix-policyd-spf-python postfix-pcre

Creamos el archivo /etc/postfix-policyd-spf-python/policyd-spf.conf con el siguiente contenido

### inicio archivo policyd-spf.conf
#  For a fully commented sample config file see policyd-spf.conf.commented

debugLevel = 1
defaultSeedOnly = 1

HELO_reject = False
Mail_From_reject = False

PermError_reject = False
TempError_Defer = False

skip_addresses = 127.0.0.0/8,::ffff:127.0.0.0/104,::1

### fin archivo policyd-spf.conf

# Editamos el archivo /etc/postfix/main.cf
# agregamos la siguiente linea

check_policy_service unix:private/policyd-spf,

# en la secion smtpd_recipient_restrictions después de reject_unauth_destination,

#  se vera de la siguiente manera
smtpd_recipient_restrictions =
        permit_mynetworks,
        permit_sasl_authenticated,
        reject_non_fqdn_recipient,
        reject_unauth_destination,
        check_policy_service unix:private/policyd-spf,

# además agregamos la linea siguiente al final del archivo main.cf
policyd-spf_time_limit = 3600

#  agregamos en el archivo /etc/postfix/master.cf la siguiente linea
policyd-spf  unix  -       n       n       -       0       spawn
    user=policyd-spf argv=/usr/bin/policyd-spf


# reiniciamos postfix
systemctl restart postfix

### con esto queda finalizado la configuracion de nuestro registro SPF

Configurando DKIM

# instalación opendkim
apt-get install opendkim opendkim-tools

# agregamos el usuario postfix al grupo opendkim
adduser postfix opendkim

# Modificamos el archivo /etc/opendkim.conf para que quede de la siguiente forma
### inicio archivo opendkim.conf

Syslog            yes
Domain            dominio.com
KeyFile            /etc/opendkim/keys/201711.private
Selector        201711
Canonicalization    simple
Mode            sv
SubDomains        no
LogWhy                  yes
UMask                   002
PidFile /var/run/opendkim/opendkim.pid
SignatureAlgorithm rsa-sha256
UserID                  opendkim:opendkim

OversignHeaders        From

KeyTable                /etc/opendkim/key.table
SigningTable            refile:/etc/opendkim/signing.table
ExternalIgnoreList      /etc/opendkim/trusted.hosts
InternalHosts           /etc/opendkim/trusted.hosts

### fin archivo opendkim.conf

# asegúrese del parámetro SigningTable quede con el prefijo refile:

# creamos las carpetas y archivos según se detalla a continuación
mkdir /etc/opendkim
mkdir /etc/opendkim/keys

root@srvcorreo:/etc/opendkim# cat signing.table
*@dominio.com     dominio

root@srvcorreo:/etc/opendkim# cat key.table
dominio     dominio.com:201711:/etc/opendkim/keys/201711.private

root@srvcorreo:/etc/opendkim# cat trusted.hosts
127.0.0.1
::1
localhost
201711  # este es el registro para la clave a generar
correo.dominio.com
dominio.com


# Generamos la clave dkim 201711
opendkim-genkey -s 201711 -d dominio.com -D /etc/opendkim/keys/ -vvv


# Damos los permisos a las carpetas y archivos

cd /etc/opendkim

chown -R opendkim:opendkim /etc/opendkim
chmod 644 /etc/opendkim/*
chmod 700 /etc/opendkim/keys
chmod 600 /etc/opendkim/keys/*

# Reiniciamos el servicio
systemctl restart opendkim

# Revisamos la clave generada
cd /etc/opendkim/keys

root@srvcorreo:/etc/opendkim/keys# cat 201711.txt
201711._domainkey    IN    TXT    ( "v=DKIM1; k=rsa; "
      "p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC+wVtgfP7+gPfm9oTUHQAxFl+2E03LTVlPBOMRVAcXeEz1ruZ6q8T9hTRsGdXcHxJo0pukQ5kx2/oR36QwHTKVd1aLpTFGp+d7AEvIm5O+zyZZWBmoTGgbwTo8zKavGwWy9Vn2/GTsaXtC4RPD+PwtB4IuYjiiYq85Rrj5kRqIQQIDAQAB" )  ; ----- DKIM key 201711 for dominio.com

# El registro para DNS deberá quedar de la siguiente manera, elimina los parentesis y los signos " que estan de mas se deberá ver de la siguiente manera
201711._domainkey    IN    TXT    "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC+wVtgfP7+gPfm9oTUHQAxFl+2E03LTVlPBOMRVAcXeEz1ruZ6q8T9hTRsGdXcHxJo0pukQ5kx2/oR36QwHTKVd1aLpTFGp+d7AEvIm5O+zyZZWBmoTGgbwTo8zKavGwWy9Vn2/GTsaXtC4RPD+PwtB4IuYjiiYq85Rrj5kRqIQQIDAQAB"   ; ----- DKIM key 201711 for dominio.com
# Agregamos la clave anterior a nuestro DNS en el archivo /var/bind9/chroot/var/lib/bind/db.dominio.com

# Reiniciamos los servicios
systemctl restart opendkim bind9

# Probamos nuestra clave
opendkim-testkey -d dominio.com -s 201711 -vvv

# Veremos lo siguiente:
opendkim-testkey: using default configfile /etc/opendkim.conf
opendkim-testkey: key loaded from /etc/opendkim/keys/201711.private
opendkim-testkey: checking key '201711._domainkey.dominio'
opendkim-testkey: key not secure
opendkim-testkey: key OK

## Puede verificar la clave desde fuera de su red en la siguiente dirección http://dkimcore.org/c/keycheck

## Puede revisar la respuesta de su DNS en http://network-tools.com/nslook/Default.asp utilice la clave 201711._domainkey.dominio.com

# Activamos nuestra clave DKIM en postfix

# Creamos la carpeta del socket y le damos los permisos
mkdir /var/spool/postfix/opendkim
chown opendkim:postfix /var/spool/postfix/opendkim


# Configuramos el socket
root@srvcorreo:/etc/opendkim# cat /etc/default/opendkim
SOCKET="local:/var/spool/postfix/opendkim/opendkim.sock"

# Agregamos las siguientes lineas al archivo /etc/postfix/main.cf
milter_default_action = accept
milter_protocol = 6
smtpd_milters = unix:/opendkim/opendkim.sock, unix:spamass/spamass.sock
non_smtpd_milters = unix:/opendkim/opendkim.sock, unix:spamass/spamass.sock

# Note las ultimas 2 lineas hay 2 sockets uno para spamassassin y el otro para opendkim

# Reiniciamos los servicios
systemctl restart opendkim postfix

# Enviamos  correo de prueba a la siguiente dirección check-auth@verifier.port25.com y si todo esta bien, tendremos una respuesta similar a la siguiente:

==========================================================
Summary of Results
==========================================================
SPF check:          pass
DKIM check:         pass
SpamAssassin check: ham

==========================================================
Details:
==========================================================

# Agregamos el siguiente registro TXT al dns en el archivo /var/bind9/chroot/var/lib/bind/db.dominio.com
_adsp._domainkey    IN    TXT    "dkim=all"

# Si todo esta bien podemos agregar DMARC para recibir reportes de nuestro servidor de correos agregando otro registro TXT a nuesto DNS como el siguiente
_dmarc            IN    TXT    "v=DMARC1;p=quarantine;sp=quarantine;adkim=r;aspf=r;fo=1;rf=afrf;rua=mailto:dmarc@dominio.com"

Espero que este tuturial les sirva reciban bendiciones de el Señor Jesús


Fuentes:
Configure SPF and DKIM With Postfix on Debian 8
https://www.linode.com/docs/email/postfix/configure-spf-and-dkim-in-postfix-on-debian-8

Que es el Mail Spoofing y como evitarlo usando SPF
https://www.webempresa.com/blog/que-es-el-mail-spoofing-y-como-evitarlo-usando-spf.html


martes, enero 10, 2017

Debian stretch 64 bits instalacion cisco packet tracer

Por aca les documento como instalar  Cisco Packet Tracer 7 en debian Stretch ya que hay un pequeño problema y no corre por defecto, esta es la solución que encontré. 

0. El requerimiento de este software es java así que nos podemos asegurar que java esta instalado y configurado con el comando 
java -version
java version "1.8.0_91"
Java(TM) SE Runtime Environment (build 1.8.0_91-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)

1. Se descarga Cisco Packet Tracer 7 la versión Ubuntu 14.04 supported for 64 bit de Cisco Networking Academy

2. Descargamos la librería libssl1.0.0 de la siguiente dirección: https://packages.debian.org/jessie/libssl1.0.0

3. Instalamos la libreria
dpkg -i libssl1.0.0_1.0.1t-1+deb8u5_amd64.deb
(Leyendo la base de datos ... 257182 ficheros o directorios instalados actualmente.)
Preparando para desempaquetar libssl1.0.0_1.0.1t-1+deb8u5_amd64.deb ...
Desempaquetando libssl1.0.0:amd64 (1.0.1t-1+deb8u5) ...
Configurando libssl1.0.0:amd64 (1.0.1t-1+deb8u5) ...

4. Descomprimimos el tar de packet tracert e instalamos ./install
tar xvf PacketTracer70_64bit_linux.tar.gz 
cd  PacketTracer70
./install

Espero que les sirva, bendiciones


viernes, octubre 21, 2016

Postfix creación de lista de correo desde grupo de AD

Postfix creación de lista de correo desde grupo de AD

Creamos el archivo /etc/postfix/ldap_virtual_groups.cf con el siguiente contendo
server_host = 172.16.112.250
search_base = OU=Listas de Correo,DC=midominio,DC=local
version = 3
query_filter = (&(objectClass=group)(mail=%s))
leaf_result_attribute = mail
special_result_attribute = member
bind = yes


bind_dn         = CN=correo,OU=Usuarios,DC=midominio,DC=local
bind_pw = clave

Lo agregamos a la configuracion postfix tomando en cuenta el alias que ya teníamos para la redirección de correos.
postconf virtual_alias_maps=proxy:ldap:/etc/postfix/ldap_virtual_groups.cf,
proxy:ldap:/etc/postfix/ldap_virtual_aliases.cf

martes, octubre 04, 2016

Servidor de correo Debian 8 Jessie: Instalación de Postfix, Dovecot y Roundcube con autenticacion AD


Este es el cuarto de una serie de artículos para la instalación completa de un servidor de correos con Debian Jessie 8.5.

Instalación del software.


INSTALACIÓN DE MYSQL

Instalamos un generador de contraseñas
apt install pwgen pwgen -s 30 1
AlK8MmQ0AgZReUGaqE8IjwDkrdr5Xl

Instalamos MySQL, utilicemos la contraseña generada AlK8MmQ0AgZReUGaqE8IjwDkrdr5Xl para el usuario root de MySQL
apt install mysql-server

Creamos archivo de conexión para ingresar a MySQL sin tener que escribir la contraseña.

vi /root/.my.cnf
[client] password=AlK8MmQ0AgZReUGaqE8IjwDkrdr5Xl

Damos permisos
chmod u=rw,go= /root/.my.cnf

probamos la conexión
mysql

Podemos ejecutar el script mysql_secure_installation para mejorar la seguridad MySQL
mysql_secure_installation

INSTALACIÓN APACHE

apt install apache2

Editamos el archivo /etc/apache2/sites-available/default-ssl.conf
y cambiamos los siguientes parametros con el certificado para el servidor
SSLCertificateFile /etc/ssl/certs/mail.midominio.sv.pem
SSLCertificateKeyFile /etc/ssl/private/mail.midominio.sv.key

habilitamos la encriptación y reiniciamos
a2enmod ssl
a2ensite default-ssl

systemctl reload apache2

Probamos apache desde un navegador
http://server01/
https://server01/

Hacemos redirección permanente hacia https
Editamos el archivo /etc/apache2/sites-available/000-default.conf

Agregamos la linea
Redirect permanent / https://server01/
...

systemctl reload apache2


INSTALAR POSTFIX

apt install postfix postfix-pcre postfix-ldap
Deberá colocar el nombre del sitio en internet.

apt --purge remove 'exim4*'
apt install spamassassin spamass-milter

INSTALAR DOVECOT

apt-get install dovecot-core dovecot-imapd dovecot-pop3d dovecot-lmtpd dovecot-ldap dovecot-managesieved dovecot-sieve

INSTALAR ROUNDCUBE


Agregamos el repositorio backports al archivo /etc/apt/sources.list
deb http://http.debian.net/debian jessie-backports main
apt update

Generamos una clave para roundcube

root@server01:~# pwgen -s 30 1
uTHpbYmQ8aUAF8R1L5qrjszA9joTKN

apt install roundcube roundcube-plugins

Instalamos paquetes Php y paquetes adicionales adicionales utilizados por roundcube
apt install php5 php5-mysql php5-mcrypt php5-intl php-pear php5-ldap libapache2-mod-php5 php-net-ldap2 php-net-ldap3

Verificamos los puertos abiertos
lsof -Pni

Configuración de Postfix

Para evitar ataques de aquellos que fingen no soportar los métodos modernos de encriptación
postconf 'smtpd_tls_mandatory_protocols=!SSLv2,!SSLv3'

Escribir los dominios virtuales en el archivo /etc/postfix/virtual_domains de la siguiente manera
root@srvserver01:/etc/postfix# cat virtual_domains
midominio.com OK
midominio.sv  OK

Crear archivo binario.
postmap hash:/etc/postfix/virtual_domains

Configuramos Postfix para que utilice el archivo creado de la siguiente manera:
postconf virtual_mailbox_domains=hash:/etc/postfix/virtual_domains

Probamos la configuración
postmap -q midominio.sv hash:/etc/postfix/virtual_domains

Configuración de los archivos para la base de direcciones de correo, esta configuracion hará la consulta en un servidor AD windows 2008 y comprobará la dirección de correo.
Se crea el archivo /etc/postfix/ldap_virtual_recipients.cf

root@srvserver01:/etc/postfix# cat ldap_virtual_recipients.cf
server_host     = 172.16.112.250
server_port     = 389
version         = 3
bind            = yes
startt_tls      = no
bind_dn         = CN=correo,OU=Usuarios,DC=midominio,DC=local
bind_pw         = clave
search_base     = ou=Usuarios,dc=midominio,dc=local
scope           = sub
query_filter    = (&(mail=%s)(objectclass=person)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))
result_attribute= mail
#result_format   = %d/%u/Maildir/
#debuglevel      = 0

Se crea el archivo /etc/postfix/ldap_virtual_aliases.cf
root@srvserver01:/etc/postfix# cat ldap_virtual_aliases.cf
server_host     = 172.16.112.250
server_port     = 389
version         = 3
bind            = yes
start_tls       = no
bind_dn         = CN=correo,OU=Usuarios,DC=midominio,DC=local
bind_pw         = clave
search_base     = OU=Usuarios,DC=midominio,DC=local
scope           = sub
query_filter    = (&(mailNickname=%s)(objectclass=person)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))
result_attribute= mail, mailNickname
#debuglevel      = 0

Se le indica a postfix como utilizar estos archivos
postconf virtual_mailbox_maps=proxy:ldap:/etc/postfix/ldap_virtual_recipients.cf
postconf virtual_alias_maps=proxy:ldap:/etc/postfix/ldap_virtual_aliases.cf

Cambiamos los permisos
chgrp postfix /etc/postfix/ldap_*.cf
chmod u=rw,g=r,o= /etc/postfix/ldap_*.cf

Probamos la configuraciones de los archivos
postmap -q sosorio@midominio.sv ldap:/etc/postfix/ldap_virtual_recipients.cf
postmap -q sosorio@ midominio.com ldap:/etc/postfix/ldap_virtual_aliases.cf


Configuramos certificados
Autoridad Certificadora
postconf smtpd_tls_CAfile=/etc/ssl/certs/dominio-ca.pem

Certificado publico
postconf smtpd_tls_cert_file=/etc/ssl/certs/mail.dominio.sv.pem

Clave privada sin clave
postconf smtpd_tls_key_file=/etc/ssl/private/mail.dominio.sv.key


Configuración Dovecot

Creación de grupo y usuario.
root@srvserver01:/etc/postfix# addgroup --system --gid 5000 vmail
Añadiendo el grupo `vmail' (GID 5000) ...
Hecho.

root@srvserver01:/etc/postfix# adduser --system --home /var/vmail --uid 5000 --gid 5000 --disabled-password --disabled-login vmail
Añadiendo el usuario del sistema `vmail' (UID 5000) ...
Añadiendo un nuevo usuario `vmail' (UID 5000) con grupo `vmail' ...
Creando el directorio personal `/var/vmail' ...

Cambiamos los permisos
chown -R vmail.vmail /var/vmail

Cambiemos las siguientes opciones en el archivo /etc/dovecot/conf.d/10-auth.conf
disable_plaintext_auth = yes
auth_mechanisms = plain login

#!include auth-system.conf.ext
#!include auth-sql.conf.ext
!include auth-ldap.conf.ext
#!include auth-passwdfile.conf.ext
#!include auth-checkpassword.conf.ext
#!include auth-vpopmail.conf.ext
#!include auth-static.conf.ext

Cambiamos las siguientes opciones en el archivo /etc/dovecot/conf.d/10-mail.conf
mail_location = maildir:/var/vmail/%d/%n/Maildir
mail_privileged_group = vmail
mail_uid = 5000
mail_gid = 5000

Cambiamos las siguientes opciones en el archivo /etc/dovecot/conf.d/10-master.conf
# Postfix smtp-auth
unix_listener /var/spool/postfix/private/auth {
  mode = 0660
  user = postfix
  group = postfix
}

Este archivo de configuración que maneja los servicios que permiten la comunicación con otros procesos.

Cambiamos las siguientes opciones en el archivo /etc/dovecot/conf.d/10-ssl.conf
#Activamos la encriptación TLS/SSL
ssl = yes
#Colocamos nuestros certificados para el servidor.
ssl_cert =
ssl_key =
Modificamos el archivo /etc/dovecot/conf.d/15-mailboxes.conf de la siguiente manera:
namespace inbox {
inbox = yes
list = yes
location =
prefix = INBOX.
mailbox Drafts {
special_use = \Drafts
auto=subscribe
}
mailbox Junk {
special_use = \Junk
}
mailbox Spam {
special_use = \Junk
auto=subscribe
}
mailbox Trash {
special_use = \Trash
auto=subscribe
}
mailbox Sent {
special_use = \Sent
auto=subscribe
}
mailbox "Sent Messages" {
special_use = \Sent
}
mailbox Archive {
special_use = \Archive
}
mailbox "Archives" {
special_use = \Archive
auto=subscribe
}
}

Agregamos las siguientes opciones en el archivo /etc/dovecot/dovecot-ldap.conf.ext
hosts = 172.16.112.250 # Windows Active Directory
dn = CN=correo,OU=Usuarios,DC=midominio,DC=local
dnpass = clave
tls = no
auth_bind = yes
ldap_version = 3
base = OU=Usuarios,DC=midominio,DC=local
scope = subtree
user_attrs = \
=home=/var/vmail/%d/%{ldap:sAMAccountName}, \
=mail=maildir:/var/vmail/%d/%{ldap:sAMAccountName}/Maildir
user_filter = (&(mail=%u)(objectClass=person)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))
pass_filter = (&(mail=%u)(objectClass=person)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))
iterate_attrs = mail=user
iterate_filter = (objectClass=person)

cambiamos los permisos
root@srvserver01:/# chown root:root /etc/dovecot/dovecot-ldap.conf.ext
root@srvserver01:/# chmod go= /etc/dovecot/dovecot-ldap.conf.ext

reiniciamos dovecote
root@srvserver01:/# systemctl restart dovecot

Cambiamos las siguientes opciones en el archivo /etc/dovecot/conf.d/10-logging.conf
log_path = syslog
syslog_facility =mail
auth_debug = yes

Cambiamos las siguientes opciones en el archivo /etc/dovecot/conf.d/10-master.conf
service lmtp {
unix_listener /var/spool/postfix/private/dovecot-lmtp {
group = postfix
mode = 0660
user = postfix
}
}
unix_listener auth-userdb {
    mode = 0660
    user = vmail
    group = vmail
}

Configuramos Postfix para comunicarse con Dovecot utilizando LMTP
postconf virtual_transport=lmtp:unix:private/dovecot-lmtp

Cambiamos las siguientes opciones en el archivo /etc/dovecot/conf.d/20-lmtp.conf
mail_plugins = $mail_plugins sieve

Modificamos las siguientes opciones en el archivo /etc/postfix/master.cf:
submission inet n - - - - smtpd
-o syslog_name=postfix/submission
-o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
-o smtpd_sasl_type=dovecot
-o smtpd_sasl_path=private/auth
-o smtpd_sasl_security_options=noanonymous
-o smtpd_sender_login_maps=ldap:/etc/postfix/ldap_virtual_recipients.cf
-o smtpd_sender_restrictions=reject_sender_login_mismatch
-o smtpd_sasl_local_domain=$myhostname
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
-o smtpd_recipient_restrictions=reject_non_fqdn_recipient,reject_unknown_recipient_domain,permit_sasl_authenticated,reject

smtps inet n - - - - smtpd
-o syslog_name=postfix/smtps
-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes
-o smtpd_reject_unlisted_recipient=no
-o smtpd_recipient_restrictions=
-o smtpd_relay_restrictions=permit_sasl_authenticated,reject
-o milter_macro_daemon_name=ORIGINATING
...
#al final del archivo agregamos la siguiente linea
dovecot unix - n n - - pipe
flags=ODRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -e -f ${sender} -d ${recipient}

reiniciamos el servicios
systemctl restart dovecot postfix

Instalacion y configuracion SASL (Cyrus)

Instalamos el software
apt-get install libsasl2-2 sasl2-bin

Agregamos las siguientes opciones al archivo /etc/postfix/sasl/smtpd.conf
log_level: 3
pwcheck_method: saslauthd
mech_list: PLAIN LOGIN

Cambiamos las siguientes opciones en el archivo /etc/default/saslauthd
START=yes
MECHANISMS="ldap"
OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd"

Creamos el siguiente archivo /etc/saslauthd.conf con el siguiente contenido.
ldap_servers: ldap://172.16.112.250/
ldap_search_base: ou=Usuarios,dc=midominio,dc=local
ldap_timeout: 10
ldap_filter: sAMAccountName=%U
ldap_bind_dn: CN=correo,OU=Usuarios,DC=midominio,DC=local
ldap_password: clave
ldap_deref: never
ldap_restart: yes
ldap_scope: sub
ldap_use_sasl: no
ldap_start_tls: no
ldap_version: 3
ldap_auth_method: bind
Cambiamos los permisos
chown root:sasl /etc/saslauthd.conf
chmod 644 /etc/saslauthd.conf

agregamos el usuario postfix al grupo  sasl
adduser postfix sasl

Reiniciamos el servicio
systemctl restart saslauthd

Probamos la conexión.
testsaslauthd -u sosorio@dominio.sv -p secret -f /var/spool/postfix/var/run/saslauthd/mux


Configuracion Postfix y Seguridad sasl

postconf myhostname=mail.midominio.sv
postconf smtp_tls_note_starttls_offer=yes
postconf smtpd_tls_loglevel=0
postconf smtpd_tls_received_header=yes
postconf broken_sasl_auth_clients=yes
postconf smtpd_sasl_auth_enable=yes
postconf smtpd_tls_security_level=may
postconf smtpd_client_new_tls_session_rate_limit=10
postconf 'smtpd_tls_session_cache_database=btree:${data_directory}/smtpd_scache'
postconf smtpd_sasl_authenticated_header=yes

postconf smtpd_tls_auth_only=yes
postconf smtp_use_tls=yes
postconf smtpd_sasl_auth_enable=yes
postconf smtpd_sasl_type=dovecot
postconf local_recipient_maps=
postconf smtpd_use_tls=yes
postconf smtp_tls_note_starttls_offer=yes
postconf smtpd_tls_loglevel=1
postconf smtpd_tls_received_header=yes
postconf smtpd_tls_session_cache_timeout=3600s
postconf tls_random_source=dev:/dev/urandom

postconf smtpd_sasl_type=dovecot
postconf smtpd_sasl_path=private/auth
postconf queue_directory=/var/spool/postfix


postconf smtpd_use_tls=yes
postconf ‘smtpd_tls_session_cache_database=btree:${data_directory}/smtpd_scache’
postconf ‘smtp_tls_session_cache_database=btree:${data_directory}/smtp_scache’
postconf ‘smtpd_tls_exclude_ciphers =EXP EDH-RSA-DES-CBC-SHA ADH-DES-CBC-SHA DES-CBC-SHA SEED-SHA’

# Diffie-Hellman Parameters for Perfect Forward Secrecy
# Can be created with:
# openssl dhparam -2 -out dh_512.pem 512
# openssl dhparam -2 -out dh_1024.pem 1024
postconf ‘smtpd_tls_dh512_param_file=${config_directory}/certs/dh_512.pem’
postconf ‘smtpd_tls_dh1024_param_file=${config_directory}/certs/dh_1024.pem’

Creamos el directorio
mkdir /etc/postfix/certs/
cd /etc/postfix/certs/

Luego generamos los certificados de la siguiente manera:
root@server01:/etc/postfix/certs# openssl dhparam -2 -out dh_512.pem 512
root@server01:/etc/postfix/certs# openssl dhparam -2 -out dh_1024.pem 1024

Reiniciamos los servicios
systemctl restart dovecot postfix saslauthd
systemctl status dovecot postfix saslauthd

Configuracion SpamAssassin

apt install swaks

postconf smtpd_milters=unix:/spamass/spamass.sock
postconf ‘milter_connect_macros="i j {daemon_name} v {if_name} _"’

modificamos en el archivo /etc/default/spamassassin las siguientes opciones:


OPTIONS="--create-prefs -x --max-children 5 --helper-home-dir /var/lib/spamassassin -u debian-spamd --virtual-config-dir=/var/lib/spamassassin/users/%d/%l"
CRON=1

habilitamos el servicio
systemctl enable spamassassin

Cambiamos los siguientes permisos

chmod 775 /var/lib/spamassassin


Agregamos el usuario spamass-milter al grupo debian-spamd y el usuario debian-spamd al grupo spamd
adduser spamass-milter debian-spamd

adduser debian-spamd spamd

systemctl restart spamassassin spamass-milter

probamos la detección de spam
swaks --to sosorio@midominio.sv --server localhost --data /usr/share/doc/spamassassin/examples/sample-spam.txt

Enviamos los spam detectados a la carpeta Spam.

Modificamos en el archivo /etc/dovecot/conf.d/90-sieve.conf la siguiente opción
sieve_after = /etc/dovecot/sieve-after

Creamos la carpeta
mkdir /etc/dovecot/sieve-after

Creamos el archivo /etc/dovecot/sieve-after/spam-to-folder.sieve con el siguiente contenido

require ["fileinto","mailbox"];
if header :contains "X-Spam-Flag" "YES" {
 fileinto :create "INBOX.Spam";
 stop;
}

Compilamos el script
sievec /etc/dovecot/sieve-after/spam-to-folder.sieve

Reiniciamos dovecot
systemctl restart dovecot

probamos el redireccionamiento de los spam
swaks --to sosorio@midominio.sv --server localhost --data /usr/share/doc/spamassassin/examples/sample-spam.txt


Configuracion roundcube

Insertar en el archivo /etc/apache2/sites-available/default-ssl.conf las siguientes lineas entre los tag’s y

Include /etc/roundcube/apache.conf
Alias / /var/lib/roundcube/

Reiniciamos el servicio
systemctl restart apache2

En un navegador podemos colocar la direccion del servidor y nos debe aparecer la pantalla de ingreso de roundcube.
https://server01/

modificamos /etc/roundcube/config.inc.php para que nos quede de la siguiente manera:
//…
$config['default_host'] = 'localhost';
//...
// List of active plugins (in plugins/ directory)
$config['plugins'] = array(
'archive',
'zipdownload',
 'managesieve',         
 'password',            
);

// skin name: folder from skins/
$config['skin'] = 'larry';

$config['session_lifetime'] = 60;
$config['skin_logo'] = './logo_midominio.png';

// configuracion de la libreta de direcciones

$config['ldap_public'] = array(
    'midominio_Ldap' =>array (
        'name' => 'Contactos midominio',
        'hosts' => array('172.16.112.250'),
        'sizelimit' => 6000,
        'port' => 389,
        'use_tls' => false,
        'user_specific' => true,
        'base_dn' => 'OU=Usuarios,DC=midominio,DC=local',
        'bind_dn' => 'CN=correo,OU=Usuarios,DC=mmidominio,DC=local',
        'bind_pass' => 'clave',
        'writable' => false,
        'ldap_version' => 3,
        'search_fields' => array(
           'mail',
           'cn',
        ),
      'fieldmap' => array(
        'name'        => 'cn',
        'surname'     => 'sn',
        'firstname'   => 'givenName',
        'email'       => 'mail',
        'department'  => 'physicalDeliveryOfficeName',
        'jobtitle'    => 'title',
        'phone:home'  => 'homePhone',
        'phone:work'  => 'telephoneNumber',
        'phone:mobile' => 'mobile',
               'phone.work2' => ipphone,
         'country'     => 'c',
         'organization' => 'company',
         'notes'       => 'description',
        ),
        'sort' => 'sn',
        'scope' => 'sub',
        'filter' => '(&(mail=*)(|(&(objectClass=user)(!(objectClass=computer)))(objectClass=group)))',
        'global_search' => true,
        'fuzzy_search' => true
    ),
);

Reiniciamos el servicio
systemctl restart apache2

Fuente
Workaround.org: ISPmail guide for Debian Jessie
Acidx's blog: Installing a Mailserver with Postfix, Dovecot, SASL, LDAP & Roundcube

Indice.
1. Servidor de correo Debian 8 Jessie: Instalacion del sistema operativo y asegurar las conexiones ssh por medio de llaves.
2. Servidor de correo Debian 8 Jessie: Instalación de servicio DNS seguro.
3. Servidor de correo Debian 8 Jessie: Instalación certificados generados por autoridad certificadora (CA) windows.
4. Servidor de correo Debian 8 Jessie: Instalación de Postfix, Dovecot y Roundcube con autenticacion AD

Servidor de correo GNU/Debian Jessie: Postfix, Bind9, Dovecot, Sasl, Apache, Roundcube con autenticacion LDAP

miércoles, septiembre 21, 2016

Servidor de correo Debian 8 Jessie: Instalación certificados generados por autoridad certificadora (CA) windows


Este es el segundo de una serie de artículos para la instalación completa de un servidor de correos con Debian Jessie 8.5. Instalación certificados generados por CA windows.

Esta es mi realidad trabajo con una red mixta con equipos gnu/linux y windows y la de muchos en mi país, así que esta es la motivación de la publicación de este artículo, Bendiciones.

Instalación certificado CA de una autoridad certificadora (CA) Windows.


En primer lugar,  se debe exportar el certificado raiz de la autoridad certificadora (CA):  se debe utilizar la opción [Base-64 encoded X.509 (CER)] y la extensión debe ser crt.

Luego copiamos el certificado micert-ca.crt hacia el servidor de correos.

Copiamos micert-ca.crt hacia el directorio /usr/local/share/ca-certificates/

cp micert-ca.crt /usr/local/share/ca-certificates/ 

Actualizamos la base de certificados

root@server01:~# update-ca-certificates
Updating certificates in /etc/ssl/certs... 1 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d....done. 

Instalación certificado para el servidor de correos generado por una autoridad certificadora (CA) window.

 
En primer lugar, generamos el certificado para nuestro dominio, luego lo exportamos el certificado e incluimos las claves privadas (Yes, export the private key), Siguiente y colocamos una contraseña.

Luego copiamos el certificado mail-midominio.pfx hacia el servidor de correos.

Generar todos los certificados incluyendo la clave privada de la siguiente manera:

root@server01:~# openssl pkcs12 -in mail-midominio.pfx -out mail.midominio.sv.txt -nodes


Generar el certificado sin la clave privada
root@server01:~# openssl pkcs12 -in mail-midominio.pfx -out mail.midominio.sv.pem


Generar la clave privadas
root@server01:~# openssl rsa -in mail.midominio.sv.txt -out mail.midominio.sv.key

Finalmente, copie el certificado y la clave privada a las ubicaciones correctas.
root@server01:~# cp mail.midominio.sv.pem /etc/ssl/certs/mail.midominio.sv.pem
root@server01:~# cp mail.midominio.sv.key /etc/ssl/private/mail.midominio.sv.key

Fuente:

instalacion y configuracion de servidor de correo en Debian GNU / Linux Stretch

En este articulo voy a vincular las diferentes configuraciones para instalar un arreglo de servidores de correo en Debian Stretch utilizando...