Alejandro Brcena Campos alejandro@barcena.com.mx m77 Qu es el correo electrnico? El correo electrnico (electronic mail, e-mail o email) es un mtodo de almacenamiento reen!"o de mensajes. Bsicamente comprende# Elaboraci$n En!"o %ecepci$n &os mensajes son trans'eridos de manera electr$nica sobre un sistema de comunicaci$n. alejandro@barcena.com.mx (ostmaster@it.departamento).campus*.ciudad+.escuela,.edu.mx Orien !el correo electrnico El correo electr$nico naci$ muc(o antes -ue el .nternet, de (ec(o es una de las (erramientas -ue ju/aron un papel crucial para la creaci$n de .nternet. El M"# cre$ el 01istema compatible de tiempo compartido2 (C#SS) en $%&$3 ste permit"a -ue m4ltiples usuarios entraran a la "'M ()%* desde terminales remotas por dial-up, -ue /uardaran sus arc(i!os en el disco duro. Esta nue!a (abilidad alentaba a los usuarios a compartir in'ormaci$n de una nue!a manera. El correo electr$nico comen5$ en $%&+, como un sistema para -ue los usuarios de una computadora main'rame de 0tiempo compartido2 pudieran comunicarse. Aun-ue la (istoria exacta sobre el correo electr$nico es mu obscura, se puede decir -ue los primeros sistemas -ue contaron con esta 'acilidad 'ueron los S,C Q-. los C##S !el M"#. El correo electr$nico pronto se extendi$ a ser un sistema para redes, permitiendo a los usuarios en!iar mensajes entre di'erentes e-uipos en $%&&. 6espus A%7A8E9 ($%&%) (i5o una /ran contribuci$n a la e!oluci$n del correo electr$nico, increment$ su popularidad (asta -ue se con!irti$ en su aplicaci$n principal. En $%($ %a 9omlinson comen5$ a separar el nombre del usuario del nombre de la computadora por medio de la @. Postfix + Cyrus + Courier + AMaViS + Spamassassin + ClamAV + Mysql Alejandro Brcena Campos alejandro@barcena.com.mx m77 Cmo funciona el correo electrnico? Postfix + Cyrus + Courier + AMaViS + Spamassassin + ClamAV + Mysql Alejandro Brcena Campos alejandro@barcena.com.mx m77 Qu pasa si !eseo reci/ir correo para un !ominio que no sea local? 6ominios !irtuales. Adems del dominio local (:etc:de'aultdomain), tu puedes recibir correo para otros dominios, llamados dominios !irtuales. 8o existe un l"mite para la cantidad de dominios !irtuales -ue -uieras administrar. Base de datos. 8o es necesario -ue las cuentas de correo estn li/adas a los usuarios del sistema, incluso, ni si-uiera tienen -ue estar en un arc(i!o de texto. 7ost'ix soporta b4s-uedas en los sistemas de bases de datos comunes (como ;1<& 7ost/re1<&). Esta tcnica resulta mu c$moda a -ue puedes escribir una pe-ue=a aplicaci$n >eb para administrar la base de datos, o incluso dele/ar la administraci$n de las cuentas a tus usuarios. 0os componentes que emplearemos1 Postfix# El M#A (;ail 9ran'er A/ent) -ue recibe los correos !"a el 1;97 (1imple ;ail 9rans'er 7rotocol) los entre/a en di'erentes partes del disco duro. SAS0 (&ibrer"a Cyrus)# 1i tus usuarios se conectan 'uera de tu red, 7ost'ix no los dejar usarlo. 1A1& (1imple Aut(entication and 1ecurit &aer) les pro!eer el mecanismo de autenti'icaci$n para -ue 7ost'ix con'"e en ellos. Courier# Es un ser!idor de correo, como 7ost'ix, pero s$lo utili5aremos su parte de 7?7+:.;A7. AMaViS# @n explorador de correo -ue nos permitir 'iltrar el contenido. AmaAi1 llamar a Clama! a 1pamassassin. Clama2# Anti!irus para @nix. Spamassassin# Biltro de spam -ue emplea el anlisis de texto basado en 7erl. MySQ0# &a Base de 6atos -ue /uarda la in'ormaci$n -ue controla el comportamiento de 7ost'ix. (@suarios, dominios, 'or>ardin/s contrase=as) Postfix + Cyrus + Courier + AMaViS + Spamassassin + ClamAV + Mysql Alejandro Brcena Campos alejandro@barcena.com.mx m77 Postfix + Cyrus + Courier + AMaViS + Spamassassin + ClamAV + Mysql Alejandro Brcena Campos alejandro@barcena.com.mx m77 Paso $1 "nstalar los paquetes !e ,e/ian que se requieren3 7a-uetes absolutamente necesarios# post'ix (Ele/ir# 01$lo local2) post'ix-ms-l post'ix-doc 1i la Base de 6atos estar en la misma m-uina# ms-l-ser!er 1i !amos a o'recer acceso por medio de 7?7+:.;A7# courier-aut(daemon courier-aut(ms-l courier-pop (para 7?7+ no encriptado) courier-pop-ssl (para 7?7+ encriptado por 11&) courier-imap (para .;A7 no encriptado) courier-imap-ssl (para .;A7 encriptado por 11&) 1i deseamos aceptar correo para usuarios 'uera de nuesta red# post'ix-tls (autenti'icaci$n encriptada de 1;97) libsasl) (la librer"a Crus 1A1&) libsasl)-modules (el mecanismo para la librer"a de 1A1&) libsasl)-modules-s-l openssl (para crear los certi'icados) 1i -ueremos anali5ar el correo para pre!enir !irus spam# ama!isd-ne> spamassassin clama! clama!-daemon 5oo un5ip unarj l(a (Cen non-'reeD) Postfix + Cyrus + Courier + AMaViS + Spamassassin + ClamAV + Mysql Alejandro Brcena Campos alejandro@barcena.com.mx m77 Paso .1 Crear la 'ase !e ,atos3 Al instalar ms-l-ser!er, ste permite la conexi$n del usuario root sin pass>ord, por lo -ue es lo primero -ue debemos cambiar# mysqladmin -u root password password-de-mysql Creamos la base de datos, la llamaremos Epro!eedorE. mysqladmin -u root -p create proveedor A(ora necesitaremos un usuario con los permisos su'icientes para accesar a nuestra base de datos. 7ara esto abriremos una conexi$n con ;1<& desde el s(ell# mysql -u root -p .n/resamos el si/uiente comando 1<&# grant select on proveedor.* to proveedor_admin@localhost identified by 'tu-password'; El comando pasado crea un nue!o usuario de la base de datos llamado proveedor_admin, -uien s$lo tiene el pri!ile/io para ejecutar E1E&EC9E. (Esto es s$lo por cuestiones de se/uridad). 7ara 'inali5ar, necesitamos recar/ar la in'ormaci$n de permisos en ;1<&, sto se (ace con el si/uiente comando de 1<&# flush privileges; Postfix + Cyrus + Courier + AMaViS + Spamassassin + ClamAV + Mysql Alejandro Brcena Campos alejandro@barcena.com.mx m77 Paso -1 Crear las ta/las3 A(ora crearemos las tablas -ue contendrn la in'ormaci$n de control para 7ost'ix. 7rimero le decimos a ;1<& cul base de datos emplearemos# U! proveedor; ,ominios &a primera de nuestras tablas s$lo contendr una columna, el nombre del dominio !irtual. 6e a-u" 7ost'ix tomar los datos necesarios para saber si aceptamos, o no, correo para ese dominio !irtual. "#!$%! %$&'! dominios ( dominio varchar()*+ ,-% ,U''. /#01$#2 3!2 (dominio+ + %2/!41y0$1; 4or5ar!ins &a tabla forwardings ser utili5ada para /enerar pseud$nimos de una direcci$n de correo a otra. 9ambin puede ser empleada para redirecciones /enerales (incluso para tu dominio local). "#!$%! %$&'! forwardings ( origen varchar(5*+ ,-% ,U''. destino %!6% ,-% ,U''. /#01$#2 3!2 (origen+ + %2/!41y0$1; 6suarios Binalmente la tabla usuarios -ue tendr la in'ormaci$n acerca de las cuentas de correo. Cada usuario debe tener un nombre de usuario una contrase=a para accesar a su correo mediante 7?7+ o .;A7. Como los usuarios tienden a ol!idar las cosas (no te ima/inas cuntas contrase=as te puedes encontrar debajo de los teclados), (e decidido emplear la cuenta de correo como el nombre de usuario. 6e esta manera, tambin post'ix sabr c$mo almacenar el correo en el disco duro. "#!$%! %$&'! ususarios ( email varchar(5*+ ,-% ,U''. password varchar(7*+ ,-% ,U''. /#01$#2 3!2 (email+ + %2/!41y0$1; Postfix + Cyrus + Courier + AMaViS + Spamassassin + ClamAV + Mysql Alejandro Brcena Campos alejandro@barcena.com.mx m77 Paso *1 #ra7amos los mapas !e !efinicin para la /ase !e !atos3 Es necesario indicarle a 7ost'ix -ue la in'ormaci$n de control se encuentra alojada en una base de datos. 7or tal moti!o crearemos F arc(i!os de texto en /etc/postfix. 7ost'ix corre, usualmente, en un directorio de c(root (/var/spool/postfix), por este moti!o no puede acceder a nin/4n arc(i!o 'uera de l. 7or lo /eneral, un pro/rama local se comunica con ;1<& por medio de un arc(i!o de socGets (/var/run/mysqld/mysqld.sock). Como te podrs dar cuenta, este arc(i!o resulta inaccesible para 7ost'ix3 as" -ue (a ) opciones# H. 9ratar de cambiar de lu/ar el arc(i!o de socGet. &o cul nos traer muc(os problemas en un 'uturo. ). @tili5ar la red de 9C7. (As" lo conectaremos) Aentaja# 8o necesitamos preocuparnos por las restricciones del c(root. 6es!entaja# El ser!idor de ;1<& ser accesible por la inter'ase lo, lo cul en teor"a podr"a ser un problema de se/uridad. mysql8!ominios92irtuales3cf 1er un simple tra5o de mapa de los dominios !irtuales a la cadena virtual. Este mapeo es usado para la de'inici$n de !irtualImailboxIdomains. 8o usar local(ost en el arc(i!o, sino 7ost'ix tratar de reali5ar la conexi$n por el arc(i!o de socGets. user 4 proveedor_admin password 4 tu-password dbname 4 proveedor table 4 dominios select_field 4 'virtual' where_field 4 dominio hosts 4 879.*.*.8 Postfix + Cyrus + Courier + AMaViS + Spamassassin + ClamAV + Mysql Alejandro Brcena Campos alejandro@barcena.com.mx m77 mysql8for5ar!ins92irtuales3cf Este mapeo leer la tabla de 'or>ardin/s para proporcionar la manera en -ue se redireccionarn las direcciones de correo. &o usaremos para !irtualIaliasImaps. user 4 proveedor_admin password 4 tu-password dbname 4 proveedor table 4 forwardings select_field 4 destino where_field 4 origen hosts 4 879.*.*.8 mysql8/u7ones92irtuales3cf &a si/uiente de'inici$n trabajar con los bu5ones de correo de los usuarios. &e indicar a 7ost'ix el lu/ar en el disco duro en el cul deber almacenar el correo para cada direcci$n de correo determinada. &o usaremos para el mapeo de !irtualImailboxImaps. user 4 proveedor_admin password 4 tu-password dbname 4 proveedor table 4 usuarios select_field 4 "-,"$%(U&%#0,:_0,;!6(email.'@'.-8+.'<'.U&%#0,:_0,;!6(email.'@'.8+.'<'+ where_field 4 email hosts 4 879.*.*.8 mysql8email.email92irtuales3cf @n capric(o de los dominios !irtuales es la procedencia del mapeo !irtualIaliasImaps cuando usamos una cuenta concentradora (J@dominio.com-Kusuario@dominio.com). 7or lo -ue sto es necesario para resol!er el problema de mapeo. user 4 proveedor_admin password 4 tu-passwrod dbname 4 proveedor table 4 usuarios select_field 4 email where_field 4 email hosts 4 879.*.*.8 Postfix + Cyrus + Courier + AMaViS + Spamassassin + ClamAV + Mysql Alejandro Brcena Campos alejandro@barcena.com.mx m77 La -ue ase/urarnos de -ue s$lo root pueda leer estos arc(i!os, de lo contrario cual-uier usuario del sistema podr"a leer la contrase=a, en texto plano, para acceder a la base de datos. 7ara -ue 7ost'ix los pueda leer, (a -ue cambiar el /rupo al -ue pertenecen, darle permiso de lectura. chgrp postfi= <etc<postfi=<mysql-*.cf chmod u4rw.g4r.o4 <etc<postfi=<mysql-*.cf Paso +1 Crear el usuario 2mail3 Como todas las cuentas sern !irtuales, ser"a absurdo asi/narles un @.6 4nico a cada una. As" -ue recomiendo crear un pseudo usuario -ue ser el propietario de todos los bu5ones de correo. groupadd -g )*** vmail useradd -g vmail -u )*** vmail -d <home<vmail -m Paso &1 :!itar main3cf El arc(i!o :etc:post'ix:main.c' es donde se almacena la con'i/uraci$n principal de 7ost'ix. 6e momento no edites al/o ms -ue lo a-u" presentado, a (abr tiempo despus para modi'icar ms opciones. Opcin Sinifica!o inetIinter'aces M all 7or de'ecto 6ebian establece esta opci$n a loopback-only durante la instalaci$n por cuestiones de se/uridad. m(ostname M ... Ase/4rate de -ue apunte a tu dominio completo. mdestination M ... &ista a-u" tus dominios locales separados por comas. 8o incluas los dominios !irtuales. mnet>orGs M ... &ista de los ran/os de .7 a los cuales les daremos ser!icio de correo. !irtualIaliasIdomains M 8o usaremos esta opci$n. !irtualIaliasImaps M ms-l#:etc:post'ix:ms-l -'or>ardin/sI!irtuales.c' ms-l#:etc:post'ix:ms-l - email)emailI!irtuales.c' Esta es una tabla de uso /eneral para el redireccionamiento. Postfix + Cyrus + Courier + AMaViS + Spamassassin + ClamAV + Mysql Alejandro Brcena Campos alejandro@barcena.com.mx m77 Opcin Sinifica!o !irtualImailboxIdomains M ms-l#:etc:post'ix:ms-l -dominiosI!irtuales.c' Es la lista de dominios !irtuales de la tabla de dominios. !irtualImailboxImaps M ms-l#:etc:post'ix:ms-l -bu5onesI!irtuales.c' Este mapeo es mu importante. &e indica a 7ost'ix el lu/ar donde se encuentra el bu5$n de cada usuario en el disco duro. !irtualImailboxIbase M :(ome:!mail Es la ruta a partir de la cual almacenaremos los bu5ones de correo. !irtualIuidImaps M static#*NNN &e indicamos a 7ost'ix -uin debe ser el due=o de los bu5ones por medio del @.6. En este caso el usuario !mail -ue acabamos de crear. !irtualI/idImaps M static#*NNN &o mismo -ue lo anterior, s$lo -ue a(ora para el /rupo (O.6). smtpdIsaslIaut(Ienable M es Labilitamos el mecanismo de autenti'icaci$n para 1;97. broGenIsaslIaut(Iclients M es Al/unos clientes de correo, como el ;icroso't ?utlooG, usan un mtodo mu anti/uo ((o en d"a desaprobado) para detectar si un ser!idor de correo entiende la autenti'icaci$n de 1;97. La -ue mantenerlos contentos M) P<uin dijo al/o sobre ?utlooGQ smtpdIrecipientIrestricti ons M permitImnet>orGs, permitIsaslIaut(enticat ed, rejectIunaut(Idestinatio n Estas restricciones son re!isadas cuando un correo nue!o lle/a, para !er -uin esta autori5ado para usar el ser!idor. permitImnet>orGs le dar autori5aci$n al ran/o de .ps. permitIsaslIaut(enticated lo (ar para -uien se (aa autenti'icado por medio del mecanismo de 1;97. 6espus ne/amos el uso al resto de los usuarios, sal!o si estn en!iando un correo -ue se encuentre en nuestra lista de relaIdomains. smtpdIuseItls M es Encriptar la sesi$n de autenti'icaci$n de 1;97 usando 11&. Postfix + Cyrus + Courier + AMaViS + Spamassassin + ClamAV + Mysql Alejandro Brcena Campos alejandro@barcena.com.mx m77 Opcin Sinifica!o smtpdItlsIcertI'ile M :etc:post'ix:smtpd.cert %uta al certi'icado 11& -ue usar 9&1. (&o crearemos ms adelante). smtpdItlsIGeI'ile M :etc:post'ix:smtpd.Ge %uta a la lla!e pri!ada del certi'icado 11&. 6na prue/a express1 %einiciamos 7ost'ix (;etc;init3!;postfix restart) ejecutamos postfix c<ec=. 1i no aparecen ad!ertencias... esta parte esta completa. M) Paso (1 >acer que Postfix entien!a la autentificacin !e SM#P ?Aut<8SM#P@ 1i permitiramos -ue cual-uier (ijo de !ecino usara nuestro ser!idor de correo, nos con!ertir"amos inmediatamente en lo -ue se llama un open relay. &os spammers no tardar"an en encontrarlo les estar"amos audando a se/uir inundndonos de correo basura. Es por esto -ue necesitamos -ue los usuarios remotos se autenti'i-uen para poder usar nuestro ser!idor. Con'i/urar la autenti'icaci$n por 1;97 es mu sencillo, el 4nico problema al -ue nos en'rentamos es -ue 6ebian ejecuta 7ost'ix en un c(root por de'ecto. "n!icarle a Postfix que use SAS0 con MySQ01 Creamos el arc(i!o de con'i/uraci$n# :etc:post'ix:sasl:smtpd.con' pwchec>_method? au=prop au=prop_plugin? sql mech_list? plain login cram-md) digest-md) sql_engine? mysql sql_hostnames? 879.*.*.8 sql_user? proveedor_admin sql_passwd? tu-password sql_database? proveedor sql_select? select password from usuarios where email4'@u@@r' Ra sabemos sobre los permisos# chown root?postfi= <etc<postfi=<sasl<smtpd.conf chmod u4rw.g4r.o4 <etc<postfi=<sasl<smtpd.conf Postfix + Cyrus + Courier + AMaViS + Spamassassin + ClamAV + Mysql Alejandro Brcena Campos alejandro@barcena.com.mx m77 6sar #0S para encriptar el trAfico !e SM#P1 @n paso importante es encriptar la sesi$n de 1;97, de lo contrario en nombre de usuario la contrase=a !iajarn de un modo mu inse/uro si el usuario eli/e emplear una autenti'icaci$n de texto plano. 7or lo -ue su/iero encriptar la comunicaci$n usando #0S (9ransport &aer 1ecurit), -ue explicndolo bre!emente, emplea SS0 (1ecure 1ocGet &aer) -ue encripta la conexi$n de correo entre el ser!idor el usuario. 7rimero necesitaremos un certi'icado de 11&. 1i tu no deseas pa/arle a tu trustcenter 'a!orito, podemos emplear uno 'irmado por nosotros mismos. (8ota personal# me pre/unto... Pc$mo es -ue pa/ando por al/o se !uel!e ms se/uroQ) El 4nico problema es -ue el cliente de correo no sabe sobre nuestro CA (Certi'icate Aut(orit) le en!iar un mensaje de ad!ertencia a nuestros usuarios. As" -ue debemos pedirles a nuestros usuarios -ue lo i/noren, o bien, permitirles -ue instalen el certi'icado en sus computadoras. (?utlooG no !a a permitir -ue esto sea i/norado, as" -ue debern instalar el certi'icado para -ue esto 'uncione). 7ara un certi'icado !lido por HN a=os para el dominio smtp.dominio.com# openssl req -new -outform /!1 -out <etc<postfi=<smtpd.cert -new>ey rsa?7*A5 B -nodes ->eyout <etc<postfi=<smtpd.>ey ->eyform /!1 -days CD)* -=)*E 9endremos -ue contestar al/unas pre/untas, prestando una atenci$n especial a Common Name -ue deber ser el nombre del ser!idor de correo# "ountry ,ame (7 letter code+ F$UG?MX tate or /rovince ,ame (full name+ Fome-tateG?Coahuila 'ocality ,ame (eg. city+ FG?Torreon -rganiHation ,ame (eg. company+ F0nternet Iidgits /ty 'tdG? Taller de correo electronico -rganiHational Unit ,ame (eg. section+ FG?UAC "ommon ,ame (eg. 2-U# name+ FG?servidor.uadec.mx !mail $ddress FG?postmaster@servidor.uadec.mx ?btendremos ) arc(i!os# smtp!3=ey (la lla!e pri!ada) smtp!3cert (el certi'icado). chmod u4rw.g4r.o4 <etc<postfi=<smtpd.>ey chown root?postfi= <etc<postfi=<smtpd.>ey Postfix + Cyrus + Courier + AMaViS + Spamassassin + ClamAV + Mysql Alejandro Brcena Campos alejandro@barcena.com.mx m77 Paso B1 Confiurar el ser2icio !e POP-;"MAP Ra (emos a!an5ado muc(o en la con'i/uraci$n, sin embar/o nuestros usuarios estarn mu enojados a -ue toda!"a no puedes acceder a sus bu5ones de correo... por lo -ue es tiempo de con'i/urar el ser!icio de 7?7+ :o .;A7. 7rimero (a -ue editar el arc(i!o ;etc;courier;aut<!aemonrc establecer la directi!a aut<mo!ulelist a aut<mysql. authmodulelist4JauthmysqlJ A(ora de'iniremos los campos de la tabla de ;1<& en ;etc;courier;aut<mysqlrc# 12K'_!#L!# localhost 12K'_U!#,$1! proveedor_admin 12K'_/$I-#; tu-password 12K'_/-#% * 12K'_;$%$&$! proveedor 12K'_U!#_%$&'! usuarios M12K'_"#2/%_/IN0!'; (comment this out+ 12K'_"'!$#_/IN0!'; password 12K'_U0;_N0!'; )*** 12K'_:0;_N0!'; )*** 12K'_'-:0,_N0!'; email 12K'_O-1!_N0!'; J<home<vmailJ M12K'_,$1!_N0!'; (comment this out+ 12K'_1$0';0#_N0!'; "-,"$%(U&%#0,:_0,;!6(email.'@'.-8+.'<'.U&%#0,:_0,;!6(email.'@'.8+.'<'+ La -ue tener cuidado de no insertar espacios en blanco despus de cada opci$n, aut(ms-l es un poco -uis-uilloso. A(ora reiniciamos el demonio de autenti'icaci$n# ;etc;init3!;courier8aut<!aemon restart @na prueba express# Abriremos un telnet para !er si contesta nuestro ser!idor de 7?7+. telnet localhost popC 1i nos responde con 0S?T Lello t(ere2... nuestros usuarios a deben estar contentos. Postfix + Cyrus + Courier + AMaViS + Spamassassin + ClamAV + Mysql Alejandro Brcena Campos alejandro@barcena.com.mx m77 Paso %1 Pro/ar nuestra confiuracin3 CBelicidadesD 8uestra parte de con'i/uraci$n bsica (a terminado. PAl/uien pic(a las /ordasQ A(ora a/re/aremos a nuestra base de datos un dominio un usuario para probar el ser!icio. 0,!#% 0,%- dominios (PdominioP+ L$'U! ('virtual.test'+; 0,!#% 0,%- usuariosP (PemailP.PpasswordP+ L$'U! ('usuario@virtual.test'.'secreto'+; Establecemos un telnet a nuestro ser!idor de 1;97# telnet localhost smtp Ser2i!or #u 77* miservidor !1%/ /ostfi= (;ebian<:,U+
data C)A !nd data with R"#TR'NT.R"#TR'NTR<'NTR<"#TR<'NTR<"#T
!ste es un correo de prueba. . 7)* ->? queued as $&"8;8"87C
quit 778 &2!
Postfix + Cyrus + Courier + AMaViS + Spamassassin + ClamAV + Mysql Alejandro Brcena Campos alejandro@barcena.com.mx m77 Paso $)1 A po/lar la /ase !e !atos3 Ra -ue sabemos -ue el ser!icio esta 'uncionando, a/re/aremos dominios usuarios. 7ara cada dominio nue!o# A/re/arlo a la tabla de dominios. 7ara cada usuario nue!o# A/re/arlo a la tabla de usuarios. 7ara cada 'or>ardin/ nue!o# A/re/arlo a la tabla de 'or>ardin/s. 1i es un destinatario m4ltiple, (a -ue separar los correos con comas. 7or ejemplo# orien !estino :fecto postmaster@mi.dominio alejandro@mi.dominio %edirecciona el correo de postmaster a alejandro. @mi.dominio m77@mi.dominio &e en!"a todo el correo en!iado al dominio mi.dominio a m77. Esto no aplica para las cuentas -ue se encuentren en la tabla de usuarios. 7or ejemplo# >ebmaster@mi.dominio. @mi.dominio @otro.dominio Esto redirecciona todo el dominio. Cada direcci$n de correo de mi.dominio ser diri/ida al mismo usuario de otro.dominio. 7or lo -ue m77@mi.dominio ser rediri/ido a m77@otro.dominio. /ula/@mi.dominio alejandro@mi.dominio ,m77@/mail.com 9odo el correo -ue le lle/ue a /ula/@mi.dominio ser en!iado a las ) cuentas. Cada usuario obtiene una copia. Postfix + Cyrus + Courier + AMaViS + Spamassassin + ClamAV + Mysql Alejandro Brcena Campos alejandro@barcena.com.mx m77 Paso $$1 Anali7ar el correo para encontrar spam y 2irus3 "ntro!uccin a AmaViS1 &as ) cosas ms molestas, incluso ms -ue las cadenas, al utili5ar el correo electr$nico son el spam los !irus. A'ortunadamente podemos combatir ambos con un so't>are llamado A;aAi1 (A ;ail Airus 1canner). Es una inter'ase entre 7ost'ix, 1pamassassin ('amoso por su capacidad de 'iltrado baesiana) cual-uier anti!irus, como Clama!, -ue es libre. Confiuracin !e AMaViS1 6ebemos ocuparnos de lo si/uiente en ;etc;ama2is;ama2is!3conf# Opcin Sinifica!o Umdomain M Emidominio.or/E3 1i no !amos a usar dominios locales, la establecemos como local(ost. @bpassI!irusIc(ecGsIacl M ->( . )3 1i esta opci$n esta comentada (tiene un V al inicio) entonces la re!isi$n de !irus esta (abilitada. @bpassIspamIc(ecGsIacl M ->( . )3 1i esta opci$n esta comentada (tiene un V al inicio) entonces la re!isi$n de spam esta (abilitada. @looGupIs-lIdsn M ( W E6B.#ms-l#pro!eedorE, Epro!eedorIadminE, Etu- pass>ordE X )3 A-u" le indicamos a A;aAi1 c$mo accesar a nuestra base de datos, a -ue !a a necesitar la tabla de dominios. Us-lIselectIpolic M E1E&EC9 YRY as local B%?; dominioss ZLE%E C?8CA9(Y@Y,dominio) .8 ([G)E3 A;aAi1 necesita saber -u dominios estn (ospedados en el ser!idor. 6e esta manera determina si el correo !a de salida (en!iado por nuestro ser!idor) o !iene lle/ando (en!iado por al/uien en internet). El correo de salida no ser !eri'icado contra !irus o spam. U'inalI!irusIdestin M 6I6.1CA%63 El !alor por de'ecto es B?@8CE. Esto rara !e5 es 4til, a -ue el correo a se encuentra en nuestro ser!idor, se tendr"a -ue en!iar un correo de re/reso al remitente. Creanme, el remitente real de un correo in'ectado por !irus jams (,,[) es la persona -ue aparece en el encabe5ado de correo. Postfix + Cyrus + Courier + AMaViS + Spamassassin + ClamAV + Mysql Alejandro Brcena Campos alejandro@barcena.com.mx m77 Opcin Sinifica!o U'inalIbannedIdestin M 6I%E\EC93 P<u (acer con los correos -ue tienen extensiones !etadasQ U'inalIspamIdestin M 6I7A113 P<u (acer con los correos clasi'icados como spamQ UsaIta/Ile!elIde'lt M -HNNN 3 A;aAi1 cali'ica cada correo con una cali'icaci$n de spam. 7or lo /eneral, !aria entre * HN. 7ero s$lo mostrar la cali'icaci$n en el encabe5ado si sta es superior a este !alor. UsaIta/)Ile!elIde'lt M *.N3 1i la cali'icaci$n es superior a este !alor, se a=adir un encabe5ado# "-!pam-!tatus" #es" UsaIGillIle!elIde'lt M HN3 1i la cali'icaci$n es superior a este !alor, A;aAi1 tomar cartas en el asunto. &a acci$n a emprender se de'ine en U'inalIspamIdestin. UsaIspamIsubjectIta/ M EJJJ17A;JJJ E3 1i deseas alterar el asunto de los correos catalo/ados como spam. @a!Iscanners M ( ... En esta secci$n puedes con'i/urar uno o ms anti!irus. Al/unos mu comunes !ienen precon'i/urados, s$lo (a -ue -uitarles el V para -ue dejen de ser comentarios. 7ara empe5ar, su/iero s$lo utilices el de Clama! comentes el resto. P9e pre/untas por -u Clama! aparece ) !ecesQ Bueno, @a!Iscanners emplea la !ersi$n de demonio (clamd) @a!IscannersIbacGup emplea la de l"nea de comandos (clamscan). UsaIlocalItestsIonl M N3 Como no tenemos acceso a internet, lo dejaremos as"3 no obstante, es mu recomendable -ue este (abilitada para un mejor 'uncionamiento del anali5ador de spam. 1i deseas emplear clamd, (a -ue a/re/ar el usuario clama! al /rupo ama!is. adduser clamav amavis reiniciamos el ser!icio de ama!is para acti!ar los cambios (;etc;init3!;ama2is restart). Postfix + Cyrus + Courier + AMaViS + Spamassassin + ClamAV + Mysql Alejandro Brcena Campos alejandro@barcena.com.mx m77 Paso $.1 "n!icarle a Postfix que use AMaViS3 La -ue establecer el 'iltrado /lobal de contenido en ;etc;postfix;main3cf# content_filter 4 amavis?F879.*.*.8G?8**7A receive_override_options 4 no_address_mappings &a opci$n content_filter (ace -ue todo el correo sea en!iado a un ser!icio llamado ama!is, el cual de'iniremos en el arc(i!o :etc:post'ix:master.c'# amavis uni= - - - - 7 smtp -o smtp_data_done_timeout487** -o smtp_send_=forward_command4yes 879.*.*.8?8**7) inet n - - - - smtpd -o content_filter4 -o local_recipient_maps4 -o relay_recipient_maps4 -o smtpd_restriction_classes4 -o smtpd_client_restrictions4 -o smtpd_helo_restrictions4 -o smtpd_sender_restrictions4 -o smtpd_recipient_restrictions4permit_mynetwor>s.reSect -o mynetwor>s4879.*.*.*<5 -o strict_rfc578_envelopes4yes -o receive_override_options4no_un>nown_recipient_chec>s.no_header_body_chec>s