Servidor Correo Postfix Courier Maildir Sasl Squirrelmail Spamassassin

7
Inicio Servidor Correo Postfix Courier Maildir Sasl Squirrelmail Spamassassin Instalación y configuración de los distintos programas. Instalación simple y rápida, sólo usuarios del sistema, con o sin acceso y directorio de trabajo /home/usuario. Primero un poquito de conocimientos. Definiciones: MUA (Mail User Agent): Es el programa usado por el usuario para enviar, recibir, leer y escribir emails. P.e.: Mozilla Thunderbird, Outlook, etc. MTA (Mail Transfer Agent): Parte del servidor de correo responsable de la recepción del mismo y del envío y recepción de otros servidores. P.e.: Postfix, sendmail, Exim, Qmail, etc MDA (Mail Delivery Agent): Programa responsable de la entrega del correo al usuario local. P.e.: Procmail, Maildrop. La mayoría de MTA (Mail Tranfer Agent) pueden entregar el correo al usuario local ellos mismos. Por lo que no siempre es necesario el uso de un MDA. PROCMAIL Por lo general esto ya viene instalado pero si no fuese así instalelo con el siguiente comando: root@colombialinux:~# apt-get install procmail POSTFIX #/usr/bin/apt-get install postfix Para reconfigurar Postfix podemos utilizar: #/usr/bin/dpkg-reconfigure postfix * Configuración Postfix o Si tenemos conexión con internet seleccionar 'Internet Site' de lo contrario bastará con 'Local Mode' en Tipo genérico de configuración. o En Nombre de Correo, indicar la parte de la dirección de correo que va seguida de @, p.e. [email protected], aquí pondremos ejemplo.com o En Otros destinos para los cuales aceptar correo, hay que completar la lista de dominios para los cuales aceptar el correo, p.e. localhost.ejemplo.com, localhost, ejemplo1.ejemplo.com, ejemplo1 o En Redes locales: 127.0.0.0/8,a.b.c.d/ef donde la red a.b.c.d/ef sera la red local (LAN o WLAN) de la cual formará parte el servidor (no dejar espacios blancos entre la coma). o Marcar 'Sí' en Usar procmail para la entrega local o De las otras características nos ocuparemos más adelante, dejar las por defecto. Todos estos cambios de configuración se guardan en /etc/postfix/main.cf, siempre podemos editar, modificar y relanzar postfix (/etc/init.d/postfix restart) para que tomen efecto. COURIER #/usr/sbin/apt-get install courier-authdaemon Instala por defecto courier-base #/usr/bin/apt-get install courier-pop #/usr/bin/apt-get install courier-imap Como COURIER trabaja con el formato Maildir, deberemos añadir al directorio /etc/skel un archivo de recursos para procmail y el directorio donde se almacenarán los correos de cada uno de los usuarios. #/bin/echo -ne "PATH=/usr/bin:/bin:/usr/local/bin:.\n\ MAILDIR=\$HOME/Maildir\nDEFAULT=\$MAILDIR/" > /etc/skel/.procmailrc Colombia Linux

Transcript of Servidor Correo Postfix Courier Maildir Sasl Squirrelmail Spamassassin

Page 1: Servidor Correo Postfix Courier Maildir Sasl Squirrelmail Spamassassin

Inicio

Servidor Correo Postfix Courier Maildir Sasl Squirrelmail Spamassassin

Instalación y configuración de los distintos programas. Instalación simple y rápida, sólo usuarios del sistema, con o sin

acceso y directorio de trabajo /home/usuario.

Primero un poquito de conocimientos. Definiciones:

MUA (Mail User Agent): Es el programa usado por el usuario para enviar, recibir, leer y escribir emails. P.e.: Mozilla

Thunderbird, Outlook, etc.

MTA (Mail Transfer Agent): Parte del servidor de correo responsable de la recepción del mismo y del envío y recepción de

otros servidores. P.e.: Postfix, sendmail, Exim, Qmail, etc

MDA (Mail Delivery Agent): Programa responsable de la entrega del correo al usuario local. P.e.: Procmail, Maildrop.

La mayoría de MTA (Mail Tranfer Agent) pueden entregar el correo al usuario local ellos mismos. Por lo que no siempre es

necesario el uso de un MDA.

PROCMAIL

Por lo general esto ya viene instalado pero si no fuese así instalelo con el siguiente comando:

root@colombialinux:~# apt-get install procmail

POSTFIX

#/usr/bin/apt-get install postfix

Para reconfigurar Postfix podemos utilizar:

#/usr/bin/dpkg-reconfigure postfix

* Configuración Postfix

o Si tenemos conexión con internet seleccionar 'Internet Site' de lo contrario bastará con 'Local Mode' en Tipo genérico de

configuración.

o En Nombre de Correo, indicar la parte de la dirección de correo que va seguida de @, p.e. [email protected], aquí

pondremos ejemplo.com

o En Otros destinos para los cuales aceptar correo, hay que completar la lista de dominios para los cuales aceptar el correo,

p.e. localhost.ejemplo.com, localhost, ejemplo1.ejemplo.com, ejemplo1

o En Redes locales: 127.0.0.0/8,a.b.c.d/ef donde la red a.b.c.d/ef sera la red local (LAN o WLAN) de la cual formará parte el

servidor (no dejar espacios blancos entre la coma).

o Marcar 'Sí' en Usar procmail para la entrega local

o De las otras características nos ocuparemos más adelante, dejar las por defecto.

Todos estos cambios de configuración se guardan en /etc/postfix/main.cf, siempre podemos editar, modificar y relanzar

postfix (/etc/init.d/postfix restart) para que tomen efecto.

COURIER

#/usr/sbin/apt-get install courier-authdaemon

Instala por defecto courier-base

#/usr/bin/apt-get install courier-pop

#/usr/bin/apt-get install courier-imap

Como COURIER trabaja con el formato Maildir, deberemos añadir al directorio /etc/skel un archivo de recursos para procmail

y el directorio donde se almacenarán los correos de cada uno de los usuarios.

#/bin/echo -ne "PATH=/usr/bin:/bin:/usr/local/bin:.\n\

MAILDIR=\$HOME/Maildir\nDEFAULT=\$MAILDIR/" > /etc/skel/.procmailrc

Colombia Linux

Page 2: Servidor Correo Postfix Courier Maildir Sasl Squirrelmail Spamassassin

#/usr/bin/maildirmake /etc/skel/Maildir

Con estos cambios cada vez que creemos un usuario nuevo en el sistema, automáticamente se le creara en $HOME el

directorio Maildir y el archivo .procmailrc

Siempre adicione un usuario en el sistema sera con el comando adduser para que tome el skel que acabamos de configurar,

recuerde ademas de cambiar en el archivo /etc/passwd en el bash del usuario o sea al final de la linea del usuario creado que

aparece como :/bin/bash por :/bin/false, tenga en cuenta que esto es solo si el usuario va a ser de correo, si va a ser usuario

de correo y del sistema no modifique nada del usuario en el archivo /etc/passwd

Si va a ser un servicio de correo dedicado debería crear un grupo como por ejemplo correo y agregar todos los usuarios del

servicio de correo a este grupo, eliminando los grupos que se adicionan por cada usuario cuando se crea este con el

comando adduser; ademas puede darle a este grupo un GID por ejemplo 5000, para esto en /etc/postfix/main.cf seria

agregar:

virtual_uid_maps = static:5000

# Id del grupo que tiene permiso en los buzones,

# también el que creamos.

virtual_gid_maps = static:5000

Si ya hay usuarios en el sistema, habrá que copiar archivo y directorio uno a uno, dándole la propiedad de cada usuario. Con

todo lo expuesto ya debería de funcionar el correo.

SQUIRRELMAIL

Vamos a instalar ahora un visor de correo Webadmin.

#/usr/bin/apt-get install squirrelmail

Para que funcione con distintos idiomas hace falta instalar 'squirrelmail-locales' y que esten definidos en el sistema

'/usr/bin/locale'

#/usr/bin/apt-get install squirrelmail-locales

Por ejemplo para incluir el locale colombia hacemos:

(mirar en /etc/locales.alias para ver los idiomas soportados)

#dpkg-reconfigure locales

[ ] es_CL ISO-8859-1

[ ] es_CL.UTF-8 UTF-8

[*] es_CO ISO-8859-1

[*] es_CO.UTF-8 UTF-8

[ ] es_CR ISO-8859-1

[ ] es_CR.UTF-8 UTF-8

[ ] es_DO ISO-8859-1

[ ] es_DO.UTF-8 UTF-8

[ ] es_EC ISO-8859-1

[ ] es_EC.UTF-8 UTF-8

[*] es_ES ISO-8859-1

[*] es_ES.UTF-8 UTF-8

[ ] es_ES@euro ISO-8859-15

[ ] es_GT.UTF-8 UTF-8

[ ] es_HN.UTF-8 UTF-8

Generating locales...

es_CO.ISO-8859-1... done

Generation complete.

Y para listar los incluidos:

# locale -a

C

Page 3: Servidor Correo Postfix Courier Maildir Sasl Squirrelmail Spamassassin

es_CO

es_CO.iso88591

es_CO.utf8

es_ES

es_ES.iso88591

es_ES.utf8

POSIX

spanish

Incluir un idioma NO presupone que tenga soporte para Squirrelmail.

Hasta aquí,

Vamos a incorporar las herramienta de filtrado antiSPAM y antiVIRUS desde POSTFIX.

AMAVISD-NEW, CLAMAV, CLAMAV y CLAMAV-DAEMON

Instalaremos primero todos los programas:

#/usr/bin/apt-get install amavisd-new

#/usr/bin/apt-get install clamav

#/usr/bin/apt-get install clamav-daemon

La instalación de estos programas nos sugiere la instalación también de algún descompresor: arj, zoo, etc. Se recomienda

su instalación.

Empecemos .....

1.- Comprobar que el LocalSocket 'clamd.ctl' de clamd.conf y de 15-av_scanners apuntan al mismo lugar.

Vease pues /etc/clamav/clamd.conf donde ponemos:

LocalSocket /var/run/clamav/clamd.ctl

tiene que coincidir con el contenido /etc/amavis/conf.d/15-av_scanners

['Clam Antivirus-clamd',

\&ask_daemon,["CONTSCAN{}\n","/var/run/clamav/clamd.ctl"],

qr/\bOK$/, qr/\bFOUND$/,

qr/^.*?:(?!Infected Archive)(.*)FOUND$/],

Si se fijan, es correcto. Los dos apuntan al mismo sitio.

2.- El usuario de amavisd y clamad han de ser el mismo sino no funcionan las cosas.

Para ello editamos /etc/clamav/clamd.conf y cambiamos:

User clamav por User Amavis

Ahora hay que cambiar la propiedad de los directorios y subdirectorios correspondientes:

#/bin/chown -R amavis:amavis /var/run/clamav

#/bin/chown -R amavis:amavis /var/lib/clamav

#/bin/chown -R amavis:amavis /var/log/clamav

3.- El programa de actualizaciones de la base de datos con la definición de virus 'freshclam' también tiene un archivo de

configuración que hay que modificar.

Abrir /etc/clamav/freshclam.conf y fijese en estas dos líneas:

DatabaseOwner clamav

UpdateLogFile /var/log/clamav/freshclam.log

En la primera hay que cambiar clamav po amavis. Y en la segunda, observar que freshclam.log cuelgue de /var/log/clamv/,

si no es así, basta con cambiar la propiedad de freshclam.log a amavis.

4.- Hay dos archivos más que tienen que ser modificados. Son /etc/logrotate.d/clamav-daemon y /etc/logrotate.d/clamav-

freshclam, dos archivos de control y mantenimiento de los 'log'.

Editar /etc/logrotate.d/clamav-daemon y cambiar 'create 640 clamav adm' por 'create 640 amavis adm' y en

Page 4: Servidor Correo Postfix Courier Maildir Sasl Squirrelmail Spamassassin

/etc/logrotate.d/clamav-freshclam, cambiar 'create 640 clamav adm' por 'create 640 amavis adm'

Hasta aquí con la configuración de AMAVIS y CLAMAV...pero hay más.

SPAMASSASSIN

#/usr/bin/apt-get install spamassassin

Spamassassin viene desactivado por defecto, hay que activarlo. Para ello editar /etc/default/spamassassin y cambiar

ENABLED=0 por ENABLED=1 y habilitar NICE="--nicelevel 15"

Editar /etc/spamassassin/local.cf y quitar la # de rewrite_header Subject *****SPAM*****

Y reescribir /etc/procmailrc si no existe se crea para que quede:

DROPPRIVS=yes

:0fw

| /usr/bin/spamassassin

Últimas configuraciones

Editar /etc/amavis/conf.d/15-content_filter_mode y quitar las # en las siguientes líneas para habilitar el control antiVIRUS y

antiSPAM:

@bypass_virus_checks_maps = (

\%bypass_virus_checks, \@bypass_virus_checks_acl, \$bypass_virus_checks_re);

@bypass_spam_checks_maps = (

\%bypass_spam_checks, \@bypass_spam_checks_acl, \$bypass_spam_checks_re);

En /etc/amavis/cond.d/20-debian_defaults comprobar estas líneas:

$inet_socket_port = 10024; # default listenting socket

$sa_spam_subject_tag = '***SPAM*** ';

$sa_tag_level_deflt = 2.0; # add spam info headers if at, or above that level

$sa_tag2_level_deflt = 6.31; # add 'spam detected' headers at that level

$sa_kill_level_deflt = 6.31; # triggers spam evasive actions

$sa_dsn_cutoff_level = 10; # spam level beyond which a DSN is not sent

$final_virus_destiny = D_DISCARD; # (data not lost, see virus quarantine)

$final_banned_destiny = D_BOUNCE; # D_REJECT when front-end MTA

$final_spam_destiny = D_PASS;

$final_bad_header_destiny = D_PASS; # False-positive prone (for spam)

Fijese que $final_spam_destiny = D_PASS; significa que los mensajes con contenido SPAM llegan a su destinatario, pero

agregando en el SUBJECT la palabra ***SPAM***. Siendo ya responsable de su borrado el usuario final, evitando así la

pérdida de falsos positivos.

Ya por último sólo nos queda configurar (de nuevo) Postfix para que tengan efecto todas estas modificaciones y nuevas

herramientas. Para ello editamos

#/etc/postfix/main.cf y añadimos la siguiente línea:

content_filter = smtp_amavis:[localhost]:10024

Y en /etc/postfix/master.cf:

smtp_amavis unix - - y - 2 smtp

-o smtp_data_done_timeout=1200

-o disable_dns_lookups=yes

127.0.0.1:10025 inet n - y - - smtpd

-o content_filter=

-o local_recipient_maps=

-o relay_recipient_maps=

-o smtpd_restricti_classes=

-o smtpd_client_restrictions=

-o smtpd_helo_restrictions=

Page 5: Servidor Correo Postfix Courier Maildir Sasl Squirrelmail Spamassassin

-o smtpd_sender_restrictions=

-o smtpd_recipient_restrictions=permit_mynetworks,reject

-o mynetworks=127.0.0.0/8,a.b.c.d/fg

-o strict_rfc821_envelopes=yes

Creo que ya está todo, reiniciamos cada uno de los programas o mejor reiniciamos el sistema y listo.

Soporte SASL y SSL. Protección frente a los SPAMMERS

A groso modo, SASL nos sirve para la autenticación en protocolos de internet y SSL para cifrar el contenido que se

transfiere.

Instalamos todo lo siguiente (la versión 2.2.10-1 de postfix, y las nuevas, lleva integrado postfix-tls, por lo que nos es

necesaria su instalación):

#/usr/bin/apt-get install openssl

#/usr/bin/apt-get install courier-ssl

#/usr/bin/apt-get install courier-imap-ssl

#/usr/bin/apt-get install courier-pop-ssl

#/usr/bin/apt-get install libsasl2-2

#/usr/bin/apt-get install libsasl2-modules

#/usr/bin/apt-get install sasl2-bin

Primero vamos a crear un usuario autenticado en el servicio saslpaswd2, que es el equivalente de los buzones en el servicio

de correo, para ello ejecutar:

#/usr/sbin/saslpasswd2 -c nombre_de_usuario

cuando nos pregunte por el password, responder y volver a confirmar, tener en cuenta que esta clave debe ser igual a la

que se dio cuando se creo el usuario con el comando adduser, si esto no se hace así, tendrá problemas para la cuenta de

correo creada.

Para ver el listado de usuarios en el servicio saslpaswd2, podemos ejecutar:

#sasldblistusers2

Para que funcionen las cosas hay que realizar algunas modificaciones en algunos archivos:

- En /etc/default/saslauthd, descomentar la línea START=yes y modificar MECHANISMS="lo_que_sea" por

MECHANISMS="sasldb"

- Agregar el usuario postfix al grupo sasl, #/usr/sbin/adduser postfix sasl

- Modificar usuario y grupo del archivo /etc/sasldb2: #/bin/chown root.sasl /etc/sasldb2

- Editar /etc/postfix/sasl/smtpd.conf, si no existe crearlo, y dejar el contenido de esta manera:

mech_list: PLAIN LOGIN

pwcheck_method: saslauthd

saslauthd_path: /var/run/saslauthd/mux

- Arrancar SASL, #/etc/init.d/saslauthd start

Un detalle a tener en cuenta es que postfix se ejecuta en un entorno chroot (por defecto), por lo que la solución más rápida

(no la mejor), para no tener problemas, es sacarlo de la jaula. Para ello modificamos las siguientes líneas en

/etc/postfix/master.cf :

#

==========================================================================

# service type private unpriv chroot wakeup maxproc command + args

# (yes) (yes) (yes) (never) (100)

#

==========================================================================

smtp inet n - n - - smtpd

Page 6: Servidor Correo Postfix Courier Maildir Sasl Squirrelmail Spamassassin

smtps inet n - n - - smtpd

-o smtpd_tls_wrappermode=yes -o smtpd_sasl2_auth_enable=yes

Si se da cuenta en las dos líneas (debajo de donde pone chroot(yes)) he modificado el guíon (-) por una 'n', así de fácil.

Ya por último nos queda modificar /etc/postfix/main.cf agregando lo siguiente:

----------------------------------------------------------------------------------

## SOPORTE SASL

smtp_sasl_auth_enable=no

smtpd_sasl_auth_enable=yes

smtpd_sasl_security_options=noanonymous

broken_sasl_auth_clients=yes

smtpd_sasl_local_domain=

smtpd_helo_required=yes

disable_vrfy_command=yes

smtpd_sender_restrictions = permit_sasl_authenticated, permit_mynetworks

smtpd_recipient_restrictions=permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination

## SOPORTE TLS

smtpd_use_tls=yes

smtpd_tls_auth_only=yes

smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem

smtpd_tls_key_file=/etc/ssl/private/ssl_cert-snakeoil.key

smtpd_tls_loglevel=1

smtpd_tls_received_header=yes

---------------------------------------------------------------------------------

No me he molestado en crear los certificados, he aprovechado los que veienen con 'openssl' pero si quiere crear sus propios

certificados este link le servirá http://www.postfix.org/TLS_README.html

Reiniciamos Postfix, #/etc/init.d/postfix restart y ya tenemos el equipo listo para usar la autenticación y la encriptación de

datos.

Vamos a comprobar como el servidor smtp acepta comunicaciones cifradas al validarse:

root@colombialinux:~# telnet localhost 25

Trying 127.0.0.1...

Connected to localhost.

Escape character is '^]'.

220 colombialinux.org ESMTP Postfix (Debian/GNU)

ehlo localhost

250-colombialinux.org

250-PIPELINING

250-SIZE 10240000

250-ETRN

250-STARTTLS

250 8BITMIME

starttls

220 Ready to start TLS

quit

quit

Connection closed by foreign host.

Colombia Linux

Navegación

Page 7: Servidor Correo Postfix Courier Maildir Sasl Squirrelmail Spamassassin

OAuth test 1 - Token Request

OAuth test 2 - Token Access

OAuth test 3 - Web Service

Envíos recientes