INST ALACIÓN Y CON FIGURACIÓN DE UN SERVIDOR DE CORREO MED IANTE POSTFIXINSTALACIÓN DEL SERVIDOR POP3 E IMAP Ha bi en do consid er ado di ferentes opci ones, fi na lmente se real izar án las instalaciones basadas en Dovecot como servidor pop/imap. Dicho servidor está disponible en los repositorios tanto en Ubuntu como en Debian y también en otras distribuciones, y ha sido el escogido debido a su sencilla configuración. CREACIÓN DEL FICHERO/etc/dovecot/c-client.cfl fichero/etc/dovecot/c-client.cfno e!iste, pero tiene "ue ser creado escribiendo las siguientes frases en él# I accept the riskset disable-plaintext nilEDICIÓN DEL FICHERO DE CONFIGURACIÓN/etc/dovecot/dovecot.conf n el fichero /etc/dovecot/dovecot.conf se editan primero las l$neas correspondientes a la configuración básica de los protocolos de los "ue se encarga# protocols = imap pop3 pop3s imaps imap_listen=*pop3_listen=*imaps_listen=*pop3s_listen=*disable_plaintext_auth=no %ras realizar los cambios básicos en el archivo de configuración del Dovecot, se reinicia el servicio/etc/init.d/dovecot restartHay "ue asegurarse de "ue no haya corriendo ning&n otro servidor '(') o *+' editando inetd.conf. %ambién hay "ue indicar "ue al instalar Dovecot desinstalará otros servidores '(') e *+' -tales como U. l me0or modo de comprobar "ue Dovecot funciona correctamente es realizando un telnet al puerto correspondiente, al puerto 1 12# telnet 12.!.!.1 1 1!INSTALAR EL SERVIDOR SMTP 3omo bien se ha indicado antes 'ostfi! será el servidor 4+%' "ue se utilizará para las instalaciones debido a los amplios motivos a su favor, tales como la sencillez a la hora de su configuración, su cada d$a mayor e!tensión5 1/1 7
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
INSTALACIÓN Y CONFIGURACIÓN DE UN SERVIDOR DE CORREO MEDIANTEPOSTFIX
INSTALACIÓN DEL SERVIDOR POP3 E IMAP
Habiendo considerado diferentes opciones, finalmente se realizarán lasinstalaciones basadas en Dovecot como servidor pop/imap. Dicho servidor está disponibleen los repositorios tanto en Ubuntu como en Debian y también en otras distribuciones, yha sido el escogido debido a su sencilla configuración.
CREACIÓN DEL FICHERO /etc/dovecot/c-client.cf
l fichero /etc/dovecot/c-client.cf no e!iste, pero tiene "ue ser creado escribiendolas siguientes frases en él#
I accept the risk set disable-plaintext nil
EDICIÓN DEL FICHERO DE CONFIGURACIÓN /etc/dovecot/dovecot.conf
n el fichero /etc/dovecot/dovecot.conf se editan primero las l$neascorrespondientes a la configuración básica de los protocolos de los "ue se encarga#
%ras realizar los cambios básicos en el archivo de configuración del Dovecot, sereinicia el servicio /etc/init.d/dovecot restart
Hay "ue asegurarse de "ue no haya corriendo ning&n otro servidor '(') o *+'editando inetd.conf. %ambién hay "ue indicar "ue al instalar Dovecot desinstalará otros
servidores '(') e *+' -tales como U.
l me0or modo de comprobar "ue Dovecot funciona correctamente es realizando untelnet al puerto correspondiente, al puerto 112#
telnet 12.!.!.1 11!
INSTALAR EL SERVIDOR SMTP
3omo bien se ha indicado antes 'ostfi! será el servidor 4+%' "ue se utilizará para
las instalaciones debido a los amplios motivos a su favor, tales como la sencillez a la horade su configuración, su cada d$a mayor e!tensión5
ntes de nada hay "ue instalar el pa"uete 'ostfi! de los repositorios. Una vezinstalado 'ostfi! en el e"uipo, son dos los archivos de configuración "ue habrá "ue tener
en cuenta a la hora de configurar 'ostfi! del modo "ue me0or nos convenga. 6a mayorparte de la configuración se lleva a cabo en el fichero main.cf, ya "ue la funcionalidadprimordial del master.cf es la de definir cómo un programa se conecta a un servicio y "uedominio corre cuando un servicio es solicitado.
6a configuración básica del archivo main.cf es muy sencilla, basta con configurarlas siguientes l7ines de forma correcta#
1.- specificar el Hostname y el Dominio de la má"uina#
m"hostname = mail.pfc-server.com
2.- *ndicar el dominio del cual llega el correo local#
m"ori#in = $m"domain
3.- *ndicar en "ue interfaces estará 'ostfi! escuchando en el puerto 89. 4i no se le indicanada solo escuchará por defecto en localhost#
inet_interfaces = all
4.- *ndicar la lista de dominios "ue la má"uina considerará como destino final para el "ue
5.- *ndicar cual es el fichero donde se almacenan los alias. 6os alias son cuentas noreales, es decir, "ue no e!isten como tal en :;U/6inu!, pero "ue pueden ser asociadas auna o varias cuentas de correo reales del sistema. 0emplo del archivo alias#
sistemas& na#ore% bor'a% andoni% a#ustindesarrollo& ala"n% cristina% ibon% mikel
6os alias en este caso son sistemas y desarrollo. l enviar un mail cuyo destinatariosea sistemas, dicho mail en realidad se enviará a los usuarios listados dentro de dichoalias.
l fichero alias puede disponer de muchas entradas, con lo cual tiene "ue serinde!ado en formato base de datos de <er=ley, y hay "ue hacerlo cada vez "ue semodifi"ue, mediante el comando ne>aliases. ste comando genera un fichero aliases.db"ue es el "ue usará 'ostfi!.
6.- 'ara "ue los clientes de nuestro servidor de correo puedan enviar correos a través denuestro servidor, debe de habilitarse el relay en la variable mynet>or=s#
n este punto cabe aclarar lo "ue es un open relay, ya "ue es algo muy peligroso"ue se ha de evitar a toda costa. Un open relay es cuando un servidor 4+%' permiteenviar correo a destinatiarios "ue no pertenecen a nuestro dominio. Un servidor solo hade ser open relay para sus redes de confianza y redes locales, ;U;3 para *'?s "ue noson de nuestra red, es decir, para los "ue no estén en la variable mynet>or=s.
4i se "uieren a@adir más *'?s de oficinas remotas o clientes "ue tienen *'?s fi0aspueden a@adirse en el fichero access. demás en en fichero access también puedenindicarse la direcciones a las "ue espec$ficamente no se les permiten cone!iones connuestro servidor#
0emplo del fichero access#
,/etc/postfix/access, edes a las ue se permite hacer rela"
, e le permite hacer rela" a la red interna1)2.1+ 0
, e denie#an direcciones de spamers conocidas4.1).+) 506 no se aceptan mails de spammers
spammer7spammerland.com 506 no se aceptan mails de spammersspammerland.com 506 no se aceptan mails de spammers
%ras a@adir las l$neas necesarias al fichero es necesario inde!arlo del mismo modo"ue hac$a falta para el fichero aliases, salvo "ue en este caso el mandato a e0ecutar no esne(aliases sino postmap# postmap access
'ara "ue 'ostfi! utilice el fichero access además de los valores indicados enmynet>or=s, deben a@adirse las siguientes lineas al fichero main.cf #
:onnected to 12.!.!.1.0scape car;cter is <>?.22! mail.pfc-server.com 0@8A Aostfix mail from& admin.7pfc-server.com24! Bk rcpt to& admin.7pfc-server.com24! Bk data34C 0nd data (ith D:EDFED:EDFEArueba de envGo de correo manual .
Haciendo cat /var/spool/mail/admin 'odrá comprobarse si el correo ha llegado alusuario local admin.
9.- +odificación del sistema de buzones de +ailbo! a +aildir.
6a diferencia entre +ailbo! y +aildir es "ue +ailbo! guarda los mensa0es en un&nico fichero y +aildir guarda los mensa0es es una estructura de ficheros y directorios,
con lo cual no re"uiere blo"ue de ficheros para mantener la integridad de los mensa0es. 4ibien ambos formatos están ampliamente e!tendidos y son eficaces, el "ue se utilizaráserá +aildir, debido en gran parte a la comodidad e independencia de los mensa0es "ueaporta la estructuración en directorios.
'or defecto tanto Dovecot como 'ostfi! están predeterminadas a utilizar +ailbo!,con lo cual, para habilitar maildir habrá "ue modificar los ficheros /etc/postfix/main.cf y /etc/dovecot/dovecot.conf #
'ese a haber modificado las directrices "ue indican "ue ha cambiado el sistema dearchivo, es primordial el cambiar el formato de buzones a los mensa0es ya almacenadosen el sistema, para ello se puede utilizar el programa mb8md.pl -mailbo! to maildir,disponible en los repositorios# aptitude install mb2md
Una vez se tenga el script m%*m.+( , deberá e0ecutarse como cada usuario -nocomo root# mb2md.pl Js /var/spool/mail/admin. /home/admin/@aildir
n 'ostfi! tiene "ue crearse un fichero con una tabla de usuarios virtuales. 6adirectiva para indicarle a 'ostfi! cuales son los usuarios es la siguiente#
, Aara los 5ominios Kirtualesvirtual_alias_maps = hash&/etc/postfix/virtual
sto significa "ue cuando se env$e un correo a la cuenta adminBzerbitzaria.com,el correo se entregará al usuario local admin.zerbitzaria. ste formato permite tener unusuario llamado admin. -perteneciente al dominio principal y otro usuario llamadoadmin..zerbitzaria destinado al dominio virtual zerbitzaria.com.
'ara "ue 'ostfi! pueda leer el fichero virtual, éste debe de estar en forma de basede datos de <erc=ley, para ello se e0ecutará el comando postmap virtual.
AUTENTICACIÓN SMTP CON SASL
12.- *nstalación de pa"uetes necesarios.
'ara poder garantizar la autenticación 4+%' y ponerla en funcionamiento, primerohemos de asegurarnos de "ue en el sistema se tienen instalados los siguientes pa"uetesnecesarios, P&$-fi)-($/ (i%$a$(*/ (i%$a$(*m&0(e$/ $a$(*%in/ (i%1$a$(2/ &+en$$(/(i%$$(3.4.2/ $$(ce!-/ (i%ne-$$(ea'+e!(
13.- 3onfiguración del fichero saslauthd M/etc/default/saslauthd
88 = "es@0:N = pam
14.- 3rear el fichero /etc/postfix/sasl/smtpd.conf con el siguiente contenido, "ue permiteautenticar contra usuarios del sistema#
p(check_method& saslauthd
15.- Ceiniciar el servicio /etc/init.d/saslauthd restart
CORREO SEGURO CON SLS Y TLS
16.- 3rear la autoridad de certificación y los certificados
cd demo:mv cacert.pem ne(ca.pemopenssl x4!) Jin ne(ca.pem Jda"s 34! Jout cacert.pem si#nke" private/cake".pem
'ara poder ver el contenido del certificado y comprobar "ue se ha realizadocorrectamente#
Bpenssl x4!) Jtext-noout D demo:/cacert.pem
+etemos los campos .92E del certificado de nuestra 3 y firmamos el certificado,esto crea ba0o el directorio demo3 estos ficheros#
cacert.pem clave p&blicacake".pem clave privada
hora se crea el certificado del servidor '(') e *+'#
./:.pl --ne(re
4e meten los campos .92E, teniendo en cuenta "ue cuando se solicite el campo3ommon ;ame hemos de indicar el hostname de la má"uina.
6uego ya firmamos el certificado del servidor con la clave privada de nuestra 3#
./:.pl --si#n
sto genera los siguientes ficheros#
ne(cert.pem certificado del servidor ne(re.pem clave privada encriptada del servidor
hora se debe de desencriptar la clave privada del servidor para "ue no nospregunte por la palabra secreta "ue hemos introducido al crear el certificado#
Bpenssl rsa --in ne(re.pem --out server.ke"
Cenombramos el fichero certificado del servidor con el nombre $e!5e!.c!- ycopiamos en fichero server.=ey como ima+.+em.
mv ne(cert.pem server.crt cd server.ke" imapd.pem
l fichero imapd.pem hay "ue a@adirle la parte del certificado de server.crt "uecomienza con H0OI6 :08IFI:80 y finaliza con H0OI6 AIK80 P0.
3reamos un enlace simbólico entre imapd.pem e ipop).pem
'reviamente habremos copiado el certificado en ese path.
NOTA 'ara "ue nuestro cliente de correo -%hunderbird, volution, (utloo= 5 reconozca el certificado delservidor, debemos importar el certificado de la autoridad certificadora cacert.pem. 4i se trata de un clienteindo>s, hay "ue convertir el formato del fichero#
openssl baseC Jd Jin cacert.pem Jout cacert.bin
l formato binario .bin será reconocido por indo>s sin problemas.
POSTFIX CON SOPORTE TLS
18.- Habilitar el soporte %64 en 'ostfi! en main.cf
ntes de reiniciar 'ostfi! hay "ue copiar el fichero ipo)p.pem o imapd.pem como +&$-fi).+em en el directorio /etc/postfi!. 'ara comprobar "ue 'ostfi! acepta %64 puede
verse conectándose via telnet al puerto 89 y e0ecutando el comando EHLO #
telnet 12.!.!.1 24 8r"in# 12.!.!.1 9:onnected to 12.!.!.1.0scape car;cter is <>?.22! mail.pfc-server.com 0@8A Aostfix eh(& (&ca(h&$- 24!-pfc-server.com24!-AIA0I6I6O24!-IQ0 12!!!!!
NOTA IMPORTANTE, as restricciones incluidas tanto en smtpd_recipient_restrictions%
smtpd_sender_restrictions o smtpd_client_restrictions se e'ecutan por orden de apariciSn " es la primeraue se cumple la ue se e'ecuta% sin hacer caso de las si#uientes.
$m-+"!eci+ien-"!e$-!ic-i&n$ se aplican al destinatario% es decir% al comando RCPT TO . Aor defectoAostfix acepta los clientes cu"as direcciones coinciden con la variable $m"net(orks o acepta el correo dedestinos remotos ue coinciden con la variable $rela"_domains o correo a destinos locales ue coincidencon $inet_interfaces o $prox"_interfaces% $m"destination% $virtual_alias_domains o$virtual_mailbox_domains.
$m+-"$ene!"!e$-!ic-i&n$ son restricciones opcionales Mnin#una por defectoT ue se aplican al comandoMAIL FROM . 0l defecto es permitir cualuier cosa. 0n esta confi#uraciSn base aplicable a cualuier caso#eneral se ase#ura ue el dominio del sender exista en los 56 de Internet " se verifica cualuier otrarestricciSn indicada en el fichero access.
$m-+"c(ien-"!e$-!ic-i&n$ son restricciones opcionales ue se aplican a la solicitud de conexiSn de uncliente @8A. 0l defecto es permitir cualuier conexiSn% pero en este caso% se permite la conexiSn dem"net(orks " del resto pero tras consultar con las listas ne#ras.
20.- Usando la directiva smtpd_sender_restrictions se pueden limitar los mensa0es cuyasdirecciones sean las de spammers conocidos. 'ara ello basta con ba0arse el fichero $a %(ac#(i$-.c0!!en-.!e7ec- del proyecto http#//>>>.sa7blac=list.stearns.org/sa7blac=list/, "uepese a no ser totalmente eficiente ya "ue a diferencia de pamhaus éste no filtra por *'s,siempre ayuda a evitar a los temidos spammers.
21.- 3reación de un script -sa7blac=list "ue se ba0a el fichero, crea el mapa y reinicia'ostfi!#
*nstalación de los pa"uetes necesarios# S+ama$$a$$in ' $+amc
6os ficheros de configuración a tener en cuenta son los siguientes#
• /etc/pamassassin/local.cf fichero de configuración principal
• V/.pamassassin/user_prefs fichero de configuración de los usuarios
• /usr/share/pamassassin directorio donde están los ficheros con las reglas
-ficheros con la e!tensión .cf
l fichero de configuración principal es (&ca(.cf y estas son sus opciones básicas
de configuración#
• !e80i!e"$c&!e 9n0m: 4core o puntuación total. 4i las reglas aplicadas suman
más "ue el valor fi0ado a"u$, del mensa0e será considerado spam. Aalores másaltos a"u$ evitan falsos positivos, pero también pueden permitir "ue entre másspam sin marcar.
• !e+&!-"$afe ; indica como 4pamassassin modifica los mensa0es catalogados
como spam. 4i se activa esta opción, 4pamassassin a@ade tres cabeceras#o 74pam76evel con F "ue representan la puntuación
o 74pam74tatus l$nea con la descripción del spam y los test coincidentes
o d0unto +*+ el informe del spam
• !e+&!-"$afe 3 se de0a el cuerpo del mensa0e sin tocar y se a@ade la cabecera
74pam7Ceport con la descripción detallada de las reglas "ue coinciden.
• Re<!i-e"heae! S0%7ec- 9SPAM: Cescribe la l$nea de asunto y le a@ade el
te!to G4'+. sto permite marcar los mensa0es como spam y as$ poder poner unfiltro en el cliente de correo para mover los mensa0es de spam a una carpetadestinada a ello.
SPAMASSASSIN EN MODO DEMONIO SPAMD$SPAMC
4pamassassin es un script en perl. 4i se tienen bastantes mensa0es, el proceso dearran"ue del intérprete de perl cada vez puede sobrecargar mucho al servidor. 3omoalternativa e!iste la versión demonizada 4pamd. 3orreo como demonio y usa módulos deperl "ue se cargan en el proceso de arran"ue del demonio. l cliente 4pamc se invocacon cada mensa0e filtrado y se los pasa al deminio spamd.
ntes de e0ecutar spamd ha de crearse un usuario filter# a0$e! fi(-e!
l modo más sencillo de integrar 4pamassassin con 'ostfi! es hacerlo a modo defiltro e!terno. s$, el filtro antispam se e0ecuta para todos los usuarios y no hace falta crearficheros .procmail para cada usuario. 'ara ello hay "ue a@adir lo siguiente al master.cf#
smtp inet n - n - - smtpd content_filter=spamfilter 999.999.
pamfilter unix - n n - - pipe user=filter ar#v=/usr/bin/spamc Jf Je /usr/sbin/sendmail Joi Jf $ { senderY $ { recipientY
A%USTES EN SPAMASSASSIN
REGLAS DE SPAMASSASSIN
'ara realizar el che"ueo del spam, 4pamassassin realiza unos tests basándose enlos grupos de reglas "ue hay en los ficheros del directorio /usr/share/pamassassin. s$mismo, los scores de los tests son almacenados en un &nico fichero.
6a estructura de los fichero consiste de un nombre de test, una descripción y laacción "ue se puede aplicar en la cabecera, el cuerpo del mensa0e y el score.
LISTAS =LANCAS Y LISTA NEGRAS
4e le puede indicar a 4pamassassin "ue algunas direcciones no sean nuncamarcadas como spam. 4e le indica con la directiva <hi-e(i$-"f&!m en el fichero local.cf#
(tra posibilidad muy &til es 0ustamente la opuesta, esto es, la de las listas negras.n ella se listan los spammers conocidos mediante la directiva &'()*'+,/#
Una de las partes más importantes para "ue un sistema antispam sea efectivo es eldel aprendiza0e. Iue 4pamassassin tan solo se base en las mismas reglas hace "ue seaun antispam estático al "ue a la postre se pueda Jenga@arK con facilidad.
'ara "ue el entrenador bayesiano funcione se le deberán mostrar tanto mensa0es"ue son spam como los "ue no lo son. Hay dos estrategias para entrenar a4pamassassin# la de entrenar con cada mensa0e o la de hacerlo con los errorescometidos. 6a primera es muy eficiente pero demasiado e!igente ya "ue hay "ueentrenarle con todos los correos. 6a segunda no es tan eficiente ya "ue tan solo se leindica "ué es spam y "ué no lo es, es decir, se le corrigen los falsos positivos y los falsosnegativos. s eficiente pero no responde tan rápido a los cambios en los patrones delspam.
+ediante el script sa7learn se entrena a 4pamassassin mediante los correosalmacenados en la carpeta 4'+ y los correos almacenados en la carpeta H+.
sa-learn --spam --mbox /var/spool/mail/spam le indicamos "ue aprenda como spam elcorreo de la cuenta spam en formato mbo!
sa-learn --ham --mbox /var/spool/mail/ham le indicamos "ue aprenda como ham elcorreo de la cuenta ham en formato mbo!.
0ecutar el script a mano cada vez "ue "uisiéramos "ue el 4pamassassinaprendiera resultar$a tedioso y poco efectivo, es por eso "ue se crean dos scripts, unopara "ue aprenda del spam y otro para "ue aprenda del ham#
,Z/bin/sh, cript para ue pamassassin aprenda lo ue es spam
,Z/bin/sh, cript para ue pamassassin aprenda lo ue no es spamsa-learn --ham --mbox /var/spool/mail/hamrm Jf /var/spool/mail/spamcd /var/spool/mail touch hamcho(n ham&mail ham
pam :hecks = no , porue Aostfix "a e'ecuta el pamassassinKirus canners = clamav
@onitors for :lamK Rpdates = /var/lib/clamav/*.cvd
De este modo, aun"ue se detecte un virus al ser independientes el antivirus y elantispam, un mensa0e entra primero en mailscanner y al salir de all$ pasa de todos modospor 4pamassassin.
INSTALACIÓN Y CONFIGURACIÓN DE S>UIRRELMAIL EN MODO SEGURO
3omo en casi todas las instalaciones, ba0ar el pa"uete adecuado desde losrepositorios vuelve a ser el primer paso#
aptitude install suirremail
3on la instalación de 4"uirrelmail se instalará también el pa"uete s"uirrelmail7locales. 4i por cual"uier cosa no se instalara, habrá "ue descargarlo de los repositorios detodos modos.
Una vez instalado el >ebmail, hay "ue proceder a su correcta configuración. 6oprimero será habilitar 4"uirrelmail en modo seguro, para ello el modo más sencillo escrear un enlace simbólico en $i-e$ena%(e -sitios habilitados de apache paras"uirelmail. 'ara ello se hace el lin= hacia /etc/s"uirrelmail/apache.conf desde
, access to confi#test is limited b" default to prevent information leak DFiles confi#test.phpE order den"%allo( den" from all allo( from 12.!.!.1 D/FilesED/5irector"E
, users (ill prefer a simple R like http&//(ebmail.example.com,DKirtualNost 1.2.3.CE, 5ocumentoot /usr/share/suirrelmail , erver6ame (ebmail.example.com,D/KirtualNostE
, redirect to https (hen available Mthanks omen7descolada.dartmouth.eduT, , 6ote& 8here are multiple (a"s to do this% and (hich one is suitable for , "our site\s confi#uration depends. :onsult the apache documentation if , "ou\re unsure% as this example mi#ht not (ork ever"(here.,
4i no se ha hecho previamente en la configuración de apache, habrá "ue editar/etc/apache8/ports.conf para "ue escuche también o solo en el puerto OO)#
isten +! isten CC3
'or defecto 4"uirrelmail estará en ingles. 4i se "uiere "ue esté en castellano,teniendo s"uirrelmail7locales, basta con a@adir la l$nea correspondiente en/var/lib/locales/supported.d/local.
%ras este cambio ya e!istirá la opción de cambiarle el idioma a s"uirrelmail una vezreconfiguradas las locales#
dpk#-reconfi#ure locales
4"uirrelmail tiene m<iples opciones de configuración, y es el momento deconfigurarlas. 'ara ello tras e0ecutar el siguiente comando se accede a las opciones deconfiguración y personalización de 4"uirrelmail#
suirrelmail-confi#ure
n (en10a1e$ podrá seleccionarse el idioma con el "ue funcionará la aplicación#
3omo se puede observar en las opciones generales, son muchas las cosas "uepueden modificarse y personalizarse en 4"uirrelmail, pero una vez llegados a este punto,no cabe hacer a"u$ una e!plicación más e!tensa de cada una de ellas ya "ue en cadacaso las opciones diferirán.
Una vez terminada la configuración bastará con acceder a la interfaz de4"uirrelmail desde el navegador y acceder al mismo con usuario y contrase@a del correo#