Los paquetes a instalar son:
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.
# 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.
# nano /etc/postfix/main.cf
myhostname = nombre_de_host
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
#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_destinationmailbox_transport = cyrus
Lo proximo a relizar seria agregar algunas lineas en el archivo de configuración master.cf
# nano /etc/postfix/master.cf
#esto nos dice que un programa llamado cyrdeliver entregará el correocyrus unix - n n - - pipeflags=R user=cyrus argv=/usr/sbin/cyrdeliver -e -m ${extension} ${user}
Continuamos configurando un ultimo archivo en postfix, sino lo encontramos lo podemos crear tranquilamente y seria smtpd.conf
# 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. Ingresamos el siguiente conamdo.
# saslpasswd2 -c -u `postconf -h myhostname` cyrus
Para decirle al Cyrus IMAP que el administrador será cyrus cambio el archivo:
# nano /etc/imapd.conf
Y si esta comentada la linea admins: cyrus, simplemente la descomentamos
admins: cyrus
Al igual las lineas siguientes, las descomentamos o madificamos
sasl_mech_list: PLAIN
sasl_pwcheck_method: auxpropsasl_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.
# cyradm –user cyrus 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 IMAPIMAP Password:
localhost> cm user.hugo
localhost> lm
user.hugo (\HasNoChildren)localhost>
# saslpasswd2 -c -u `postconf -h myhostname` hugo
Password:
Again (for verification)
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:
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:
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.
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 rchivo.
Hasta aquí seria la configuracion, solo nos restaria reiniciar los diferentes servicios.
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 instalar los paquetes necesarios para nuestra configuracion.
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.
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:
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:
en realidad el archivo amavis.conf anteriormente mencionado es dividido en diferentes archivos de configuración los cuales son:
nosotros utilizaremos para efectos de este manual solo 3:
A continuacion mostrare como quedaron mis archivos de configuracion y explicare up poco del para que sirven las lineas agragadas
#nano /etc/default/saslauthdY posteriormente agregamos o modificamos algunas lineas, las cuales son:
START=yesLa linea de “START=yes” indica que el demonio saslauthd corra automaticamente en modo start, por defecto la opcion es “START=no"
MECHANISMS="sasldb"OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd"
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.
# mkdir -p /var/spool/postfix/var/run/saslauthdDespues 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 rchivo.
# nano /etc/cyrus.conf
SERVICES {
# --- Normal cyrus spool, or Murder backends ---
# add or remove based on preferences
imap 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.
# /etc/init.d/postfix restart
#/etc/init.d/saslauthd
# /etc/init.d/cyrus2.2 restart
Integración de Antivirus y antispam al sistema de correo
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 instalar los paquetes necesarios para nuestra configuracion.
#apt-get install amavisd-new spamassassin clamav clamav-daemon clamav-base clamav-freshclamInstalamos diversos decompresores para que el antivirus sea capaz de analizar ficheros comprimidos:
#apt-get install unrar-free 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:
# nano /etc/amavis/amavis.conf
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:
# 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_helpers 05-domain_id 15-content_filter_mod 30-template_localization 05-node_id 20-debian_defaults 50-user
nosotros utilizaremos para efectos de este manual solo 3:
20_debian_defaults
15-av_scanners
15-content_filter_mode
A continuacion mostrare como quedaron mis archivos de configuracion y explicare up poco del para que sirven las lineas agragadas
Edicion del archivo; 20_debian_defaults
Zero@configurE: Postfix# nano /etc/amavis/conf.d/20_debian_defaultsEl archivo como tal debe funcionar sin ningun cambio ni problema, mostrare algunas de las configuraciones mas importantes del archivo:
$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_BOUNCE;
$final_bad_header_destiny = D_PASS; # False-positive prone (for spam)
$virus_admin = "zero\@$mydomain"; # due to D_DISCARD default
en fin, tratare de explicar algunas
#Si deseas alterar el asunto de los correos catalogados como spam.
$sa_spam_subject_tag = '***SPAM***';
#Para las 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.
#La siguiente linea $virus_admin = "postmaster\@$mydomain"; es para que los avisos de virus los reciba una una persona concreta y si esta habilitada los avisos los recibirá el postmaster indicado
# 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;
#Para las 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.
#La siguiente linea $virus_admin = "postmaster\@$mydomain"; es para que los avisos de virus los reciba una una persona concreta y si esta habilitada los avisos los recibirá el postmaster indicado
#AMaViS califica cada correo con una calificación de spam. Por lo general, varia entre 0 y 10. Pero sólo mostrará la calificación en el encabezado si ésta es superior a este valor.
$sa_tag_level_deflt = 2.0;
#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;
# 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;
Seguimos con la configuración de otro archivo; 15-av_scanners.
# 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: (.+)/],
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
# nano /etc/clamav/clamd.confaquí 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.
# 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_maps = (
# \%bypass_virus_checks, \@bypass_virus_checks_acl, \$bypass_virus_checks_re);
#Si esta opción esta comentada (tiene un # al inicio) entonces la revisión de spam esta habilitada.
#@bypass_spam_checks_maps = (
# \%bypass_spam_checks, \@bypass_spam_checks_acl, \$bypass_spam_checks_re);
Si deseas emplear clamd, hay que agregar el usuario clamav al grupo amavis.
# adduser clamav amavis
Decirle a Postfix que use AmaViS.
Hay que establecer el filtrado global de contenido en /etc/postfix/main.cf para esto agregamos o descomentamos las siguientes lineas.
# nano /etc/postfix/main.cf
content_filter = amavis:[127.0.0.1]:10024
receive_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
# nano /etc/postfix/master.cf
smtp-amavis unix - - y - 2 smtp -o smtp_data_done_timeout=1200 -o smtp_send_xforward_command=yes -o disable_dns_lookups=yes -o max_use=20 127.0.0.1:10025 inet n - y - - smtpd -o content_filter= -o local_recipient_maps= -o relay_recipient_maps= -o smtpd_restriction_classes= -o smtpd_delay_reject=no -o smtpd_client_restrictions=permit_mynetworks,reject -o smtpd_helo_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworks,reject -o smtpd_data_restrictions=reject_unauth_pipelining -o smtpd_end_of_data_restrictions= -o mynetworks=127.0.0.0/8 -o smtpd_error_sleep_time=0 -o smtpd_soft_error_limit=1001 -o smtpd_hard_error_limit=1000 -o smtpd_client_connection_count_limit=0 -o smtpd_client_connection_rate_limit=0 -o receive_override_options=no_header_body_checks,no_unknown_recipient_checks
Lo único que nos queda es reiniciar los servicios respectivos
# /etc/init.d/clamav-daemon restart
# /etc/init.d/amavis restart
# /etc/init.d/postfix restart
NOTA1: Si al reiniciar amavis no sale un error parecido a este:
Starting amavisd: The value of variable $myhostname is " " but should have been
a fully qualified domain name; perhaps uname(3) did not provide such.
You must explicitly assign a FQDN of this host to variable $myhostname
in /etc/amavis/conf.d/05-node_id, or fix what uname(3) provides as a host's
network name!
(failed).
a fully qualified domain name; perhaps uname(3) did not provide such.
You must explicitly assign a FQDN of this host to variable $myhostname
in /etc/amavis/conf.d/05-node_id, or fix what uname(3) provides as a host's
network name!
(failed).
Lo que debemos hacer o por lo menos la solucion que yo le di a este problemita fue:
Editemos el archivo /etc/amavis/conf.d/05-node_id:
# nano /etc/amavis/conf.d/05-node_id
comentamos la linea que dice :
#chomp($myhostname = `hostname --fqdn`);
si comentamos la anterior debemos habilitar otra en el mismo archivo la cual se encuentra un poco mas abado que esta y debera quedar asi:
$myhostname = "mi_dominio";
En la parte que dice mi_dominio pues la cambiamos por nuestro dominio, sea pepito.net o juanita.org, en fin depende de lo que tengas :)
NOTA2: la implementación del antivirus debera funcionar tanto en la configuración hecha con cyrus como el la que sa haya hecho con dovecot, asi que se podran guiar igualmente para incorporarle el antivirus los que hayan trabajado con dovecot
Imprimir
2 comentarios:
compañero estaba realizando el servidor de postfix +cyrus+spam+clamav...
realice todo a como lo tenes y de una agradesco y buen aporte
cambiando la ip que establesi y mi dominio como es debido
pero me surgio un problema con el amavis el cual es el sigiente
stop bien
startting(aca el problema) amavisd: head: no se puede abrir <> para elctura: No existe el fichero o el directorio
amavisd-new espero tu pronta respuesta aver que me podes decir mi correo es shadowhunterdj@hotmail.com
compañero soy el de arriba no se porke no salio pero lo q va entre <> es /etc/mailname esto fue cuanto reinicie el el ultimo paso de reiniciar los servicios
Publicar un comentario