13

Click here to load reader

Servidor De Correo En Debian

Embed Size (px)

Citation preview

Page 1: Servidor De Correo En Debian

SERVIDOR DE CORREO EN DEBIAN

Por

Jesús Maria Taborda.Yeison Herrera Balbín.Hugo Alberto Alvarez.Victor Hugo Narvaez.Sergio Alexis Cano.

Jorge Jiménez. Stiven Marin.

David Echeverry

Grupo #2

Centro de Servicios y Gestión Empresarial.Sena

Medellín2008

Page 2: Servidor De Correo En Debian

Configuración Postfix + sasl + cyrus + imap.

Los paquetes a instalar son:

apt-get install

- cyrus-admin-2.2- cyrus-clients-2.2- cyrus-commons-2.2- libsasl2- libsasl2-2- libsasl2-modules- sasl2-bin

Configuración del Postfix.

Tendremos que agregar o modificar unas lineas en el archivo de configuración main.cf; este es un ejemplo de mi archivo de configuración el podría servir de guía

QuickSilver:/# nano /etc/postfix/main.cf

myhostname = QuickSilver alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases mydestination = mail, localhost, localhost.localdomain, localhost, victor.org mynetworks = 127.0.0.0/8 192.168.86.0/24 mailbox_command = procmail -a "$EXTENSION" mailbox_size_limit = 0 recipient_delimiter = + inet_interfaces = all

mydomain=victor.org myorigin=$mydomain

#Habilita el soporte de sasl en el postfix smtpd_sasl_auth_enable = yes smtpd_sasl_authenticated_header = yes smtp_sasl_auth_enable = no

##

smtpd_sasl_path = smtpd smtpd_sasl_local_domain = $myhostname

#no permitir usuarios anonimos en la autenticacion mediante sasl smtpd_sasl_security_options = noanonymous

Page 3: Servidor De Correo En Debian

#evitar que ciertos clientes no entiendan las lineas sasl broken_sasl_auth_clients = yes

smtpd_client_restrictions = permit_sasl_authenticated, permit_mynetworks,reject_unauth_destination

smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetwork, reject_unauth_destination

mailbox_transport = cyrus

Lo proximo a relizar seria agregar algunas lineas en el archivo de configuración master.cf

QuickSilver:/# nano /etc/postfix/master.cf

cyrus unix - n n - - pipe flags=R user=cyrus argv=/usr/sbin/cyrdeliver -e -m ${extension} ${user}

#esto nos dice que un programa llamado cyrdeliver entregará el correo

Continuamos configurando un ultimo archivo en postfix, sino lo encontramos lo podemos crear tranquilamente y seria smtpd.conf

QuickSilver:/# nano /etc/postfix/sasl/smtpd.conf

# método para la verificación de la clave de acceso

pwcheck_method: saslauthd

# mecanismos de encriptacion de la clave de acceso del usuario# a utilizar para la autenticación ante una conexión por smtp

mech_list: plain login

Cuentas (administrador y usuarios)

Podemos continuar con la creacion del usuario administrador de cyrus, en este caso se llamara cyrus.

QuickSilver:/# saslpasswd2 -c -u `postconf -h myhostname` cyrus

Para decirle al Cyrus IMAP que el administrador será cyrus cambio el archivo:

QuickSilver:/# nano /etc/imapd.conf

Page 4: Servidor De Correo En Debian

Y si esta comentada la linea admins: cyrus, simplemente la des comentamos

admins: cyrus

al igual las lineas siguientes, las descomentamos o madificamos

sasl_mech_list: PLAIN

sasl_pwcheck_method: auxprop

sasl_auxprop_plugin: sasldb

Creamos las cuentas de los usuarios, los cuales deberan estar en el sistema o en un sistema ldap o base de datos almacenados y que cyrus administrará, en este caso seran usuarios del sistema. Estas cuentas quiere decir que crea el buzon para el usuario.

QuickSilver:/# cyradm –user cyrus localhostIMAP Password:localhost> cm user.hugolocalhost> lmuser.hugo (\HasNoChildren)localhost>

localhost porque estamos trabajando en la maquina local donde esta el servidor de correo.

Agrego el usuario a la base de datos para que pueda recuperar el correo por IMAP

QuickSilver:/# saslpasswd2 -c -u `postconf -h myhostname` hugoPassword:Again (for verification):QuickSilver:/#

Autenticación con sasldb o PAM

Para este punto podemos tomar dos caminos, aunque la verdad debería ser uno para lo que estamos haciendo; los usuarios todavía hacen la autenticación contra pam porque así lo indica una archivo de configuración que veremos a continuación, pero si queremos que se autentiquen con la base de datos sasldb debemos hacer los siguiente:

QuickSilver:/#nano /etc/default/saslauthd

Y posteriormente agregamos a modificamos algunas lineas, las cuales son:

START=yesMECHANISMS="sasldb"OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd"

Page 5: Servidor De Correo En Debian

La linea de “START=yes” indica que el demonio saslauthd corra automaticamente en modo start, por defecto la opcion es “START=no”

La linea MECHANISMS="sasldb" es la que indica el mecanismo de autenticación el cual podría ser “pam”, a decir verdad es la que viene por defecto pero para este ejercicio utilizaremos la base de datos sasldb. Pero si queremos utilizar PAM tendriamos que crear el mismo usuario en el sistema con la misma clave que creamos anteriormente; en este caso fue el usuario “hugo”

Por ultimo la linea OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd"; por defecto viene OPTIONS="-c” y la cambiamos para los usuarios postfix. Hay que que tener en cuenta que la ruta:

/var/spool/postfix/var/run/saslauthd

en mucho casos no existe y nos presenta errores por esto y a veces no nos damos cuenta así que hay que asegurarnos de crearla si no se encuentra:

QuickSilver:/# mkdir -p /var/spool/postfix/var/run/saslauthd

Despues de reiniciar el servicio aquí se crearan varios archivos que en realidad no tenemos que tocar.

Configuración en el cyrus.conf

En realidad no tuve que tocar este archivo para nada pero si nos debemos asegurar que para que tenga soporte Imap o Pop3 le debe hacer referencia en este archivo:

QuickSilver:/# nano /etc/cyrus.conf

SERVICES {# --- Normal cyrus spool, or Murder backends ---# add or remove based on preferencesimap cmd="imapd -U 30" listen="imap" prefork=0 maxchild=100 #imaps cmd="imapd -s -U 30" listen="imaps" prefork=0 maxchild=100 pop3 cmd="pop3d -U 30" listen="pop3" prefork=0 maxchild=50 #pop3s cmd="pop3d -s -U 30" listen="pop3s" prefork=0 maxchild=50 nntp cmd="nntpd -U 30" listen="nntp" prefork=0 maxchild=100 #nntps

.

.

....

Hasta aquí seria la configuracion, solo nos restaria reiniciar los diferentes servicios

QuickSilver:/# /etc/init.d/postfix restartQuickSilver:/# /etc/init.d/saslauthd restartQuickSilver:/# /etc/init.d/cyrus2.2 restart

Integración de Antivirus y antispam al sistema de correo

Page 6: Servidor De Correo En Debian

En la integración utilizaremos básicamente 3 demonios:

AMaViS: Un explorador de correo que nos permitirá filtrar el contenido. AmaViS llamará a Clamav y a Spamassassin.

Clamav: Antivirus para Unix.

Spamassassin: Filtro de spam que emplea el análisis de texto basado en Perl. Lo primero que debemos hacer es instala los paquetes necesarios.

Lo primero que debemos hacer es instalar los paquetes necesarios para nuestra configuracion.

apt-get install

- amavisd-new- spamassassin- clamav- clamav-daemon- clamav-base- clamav-freshclam

Instalamos diversos decompresores para que el antivirus sea capaz de analizar ficheros comprimidos:

apt-get install

- unrar-free- lha- arj- unzoo- zip- unzip- bzip2- gzip- cpio- file- lzop- zoo

Instalamos los protectores colaborativos contra Spam, Pyzor y Razor. Ambos calculan un hash del mensaje y consultan a un servidor de internet si corresponde a un mail de publicidad. Este paso es opcional.

apt-get install

- pyzor- razor

Configuración de amavis

He encontrado dos tipos de configuración o mas bien diferentes tipos de archivos de configuración para el amavis, creo que eso depende de la version del amavis; en algunos casos solo tenemos que editar el archivo de configuracio amavis.conf:

QuickSilver:/# nano /etc/amavis/amavis.conf

Page 7: Servidor De Correo En Debian

En este caso toda la configuración se hara en este archivo, pero la configuración que se hara en este manual es diferente y la explicare a continuación.

El otro tipo de archivos se encuantran en la carpeta llamada conf.d:

QuickSilver:/# cd /etc/amavis/conf.d/

en realidad el archivo amavis.conf anteriormente mencionado es dividido en diferentes archivos de configuración los cuales son:

01-debian 15-av_scanners 25-amavis_helpers05-domain_id 15-content_filter_mode 30-template_localization05-node_id 20-debian_defaults 50-user

nosotros utilizaremos para efectos de este manual solo 3:

50-user15-av_scanners15-content_filter_mode

a continuación mostrare como quedaron mis archivos de configuración y explicare un poco para que sirve las lineas agregadas en estos.

Edicion del archivo; 50-user

QuickSilver:/# nano /etc/amavis/conf.d/50-user

##########lineas ingresadas por mi############## Útil para añadir a la cabecera del mail:# X-Virus-Scanned: by amavisd-new-20030616-p10 (Debian) at victor.org

$mydomain = 'victor.org';

# Enviara los mails analizados de vuelta al puerto 10025 de localhost.# where to forward checked mail

$forward_method = 'smtp:127.0.0.1:10025';$notify_method = $forward_method;

# Comentamos la siguiente linea para que los avisos de virus no los reciba una una persona concreta y si esta habilitada los avisos los recibirá el postmaster indicado

#$virus_admin = "postmaster\@$mydomain";

# Dejamos pasar los mails infectados, los filtraremos por procmail

$final_virus_destiny = D_PASS;

# aquí indicamos que hacer con el spam

Page 8: Servidor De Correo En Debian

$final_spam_destiny = D_PASS;

Para estas dos lineas anteriores hay varios valores los cuales podriamos indicarle entre los cuales están D_BOUNCE, D_PASS, D_DISCARD, etc y lo que hacen es tomar una decisión distinta con respecto a los virus o spam.

#AMaViS califica cada correo con una calificación de spam. Por lo general,#varia entre 5 y 10. Pero sólo mostrará la calificación en el encabezado si#ésta es superior a este valor.

$sa_tag_level_deflt = -1000;

#Si la calificación es superior a este valor, se añadirá un encabezado:#"X-Spam-Status: Yes"

$sa_tag2_level_deflt = 5.0;

#Si la calificación es superior a este valor, AMaViS tomará cartas en el#asunto. La acción a emprender se define en $final_spam_destiny.

$sa_kill_level_deflt = 10;

#Si deseas alterar el asunto de los correos catalogados como spam.

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

#Como no tenemos acceso a internet, lo dejaremos así; no obstante, es muy#recomendable que este habilitada para un mejor funcionamiento del#analizador de spam.

$sa_local_tests_only = 0;

Seguimos con la configuración de otro archivo; 15-av_scanners.

QuickSilver:/# nano /etc/amavis/conf.d/15-av_scanners

aquí encontraremos un segmento parecifo a este:

### http://www.clamav.net/ ['ClamAV-clamd', \&ask_daemon, ["CONTSCAN {}\n", "/var/run/clamav/clamd.ctl"], qr/\bOK$/, qr/\bFOUND$/, qr/^.*?: (?!Infected Archive)(.*) FOUND$/ ], # NOTE: remember to add the clamav user to the amavis group, and # to properly set clamd to init supplementary groups # When running chrooted one may prefer: ["CONTSCAN {}\n","$MYHOME/clamd"],

# ### http://www.clamav.net/ and CPAN (memory-hungry! clamd is preferred)# ['Mail::ClamAV', \&ask_clamav, "*", [0], [1], qr/^INFECTED: (.+)/],

Page 9: Servidor De Correo En Debian

en relaidad solo nos interesa el segmento donde esta la ruta: "/var/run/clamav/clamd.ctl" la cual debe coincidir exactamente con una que se encuentra en clamav para ser mas especificos en clamd.conf

QuickSilver:/# nano /etc/clamav/clamd.conf

aquí encontraremos varias lineas entre ellas algo parecido a esto:

LocalSocket /var/run/clamav/clamd.ctl

la linea anterior es la que debe conicidir si no es asi cambiamos la linea que se encuentra en /etc/amavis/conf.d/15-av_scanners; osea que esta linea varia dependiendo de lo que encontremos en /etc/clamav/clamd.conf

El ultimo archivo que editaremos; 15-content_filter_mode.

QuickSilver:/# nano /etc/amavis/conf.d/15-content_filter_mode

#Si esta opción esta comentada (tiene un # al inicio) entonces la revisión de virus esta habilitada.

#@bypass_virus_checks_acl = qw( . );

#Si esta opción esta comentada (tiene un # al inicio) entonces la revisión de spam esta habilitada.

#@bypass_spam_checks_acl = qw( . );

Si deseas emplear clamd, hay que agregar el usuario clamav al grupo amavis.

QuickSilver:/# adduser clamav amavis

Decirle a Postfix que use AmaViS.

Hay que establecer el filtrado global de contenido en /etc/postfix/main.cf

Agregamos o descomentamos las siguientes líneas

QuickSilver:/# nano /etc/postfix/main.cf

content_filter = amavis:[127.0.0.1]:10024receive_override_options = no_address_mappings

La opción content_filter hace que todo el correo sea enviado a un servicio llamado amavis, el cual definiremos en el archivo /etc/postfix/master.cf

QuickSilver:/# nano /etc/postfix/master.cf

amavis unix - - - - 2 smtp -o smtp_data_done_timeout=1200

Page 10: Servidor De Correo En Debian

-o smtp_send_xforward_command=yes 127.0.0.1:10025 inet n - - - - smtpd -o content_filter= -o local_recipient_maps= -o relay_recipient_maps= -o smtpd_restriction_classes= -o smtpd_client_restrictions= -o smtpd_helo_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworks,reject -o mynetworks=127.0.0.0/8 -o strict_rfc821_envelopes=yes -o receive_override_options = no_unknown_recipient_checks, no_header_body_checks

Lo único que nos queda es reiniciar los servicios respectivos

QuickSilver:/# /etc/init.d/amavis restart

QuickSilver:/# /etc/init.d/postfix restart

NOTA: la implementación del antivirus debera funcionar tanto en la configuración hecha con cyrus como en la que se haya hecho con dovecot, asi que se podran guiar igualmente para incorporarle el antivirus los que hayan trabajado con dovecot