Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Instalacin de un
Servidor de Correo
Ing. Hugo Adrin Francisconi
adrianfrancisconi@yahoo.com.ar
QUEDA PROHIBIDA SU VENTA Y/O LUCRO TOTAL Y/O PARCIAL DE ESTA OBRA.
Marcas Comerciales
Todos los trminos en este libro que correspondan a Marcas Comerciales o marcas de Servicio, el
autor no puede certificar la exactitud de la informacin. No debe considerarse que el uso de un trmino en
este libro afecte a la validez de cualquier marca comercial o marca de servicio. Las marcas comerciales y
dems marcas denominadas son propiedad de sus respectivos titulares.
A mi esposa
Referencias............................................................................................................................40
adrianfrancisconi@yahoo.com.ar
Modificado el 18/12/09
Pgina V
Prlogo
En elaboracin ....
Pgina VI
Implementacin
Esquema general
A continuacin el esquema que tendr el Servidor de Correo [28]
Pgina 2
Implementacin
Implementacin
y cambindola a:
SELINUX=disabled
C) Otro requerimiento para un servidor es tener un registro DNS MX para el dominio. Usted (o su ISP)
necesitara agregar un registro MX para su dominio. Aqu se presenta una verificacin con el comando
dig para el registro MX de mi-dominio.com
$ dig -t mx mi-dominio.com
; <<>> DiG 9.5.1-P2 <<>> -t mx mi-dominio.com
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10626
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 3
;; QUESTION SECTION:
;mi-dominio.com.
IN
MX
;; ANSWER SECTION:
mi-dominio.com. 60
IN
MX
10 mi_servidor.mi-dominio.com.
;; AUTHORITY SECTION:
mi-dominio.com. 86400 IN
mi-dominio.com. 86400 IN
mi-dominio.com. 86400 IN
NS
NS
NS
dinamic3.cdmon.net.
dinamic1.cdmon.net.
dinamic2.cdmon.net.
;; ADDITIONAL SECTION:
adrianfrancisconi@yahoo.com.ar
Modificado el 13/08/10
Pgina 3
dinamic1.cdmon.net.
dinamic2.cdmon.net.
dinamic3.cdmon.net.
;;
;;
;;
;;
439
IN
129287 IN
129287 IN
A
A
A
212.36.75.139
212.36.74.139
72.46.157.14
Pgina 4
Implementacin
Implementacin
Instalacin de POSTFIX
1) Necesitamos quitar sendmail, porque ahora nuestro MTA (Agente de Trasferencia de Correo) sera
Postfix.
rpm -e sendmail -nodeps
2) Instalaremos todos los paquetes necesarios para la configuracin de Postfix y de todos los dems
complementos, para luego configurarlos:
yum install postfix postfix-pflogsumm dovecot cyrus-sasl cyrus-sasl-gssapi cyrussasl-md5 cyrus-sasl-ntlm cyrus-sasl-plain cyrus-sasl-devel cyrus-sasl-sql
Los paquetes cyrus-sasl-devel y cyrus-sasl-sql son opcionales, pero sern utilizados despus si
usted instala MailScanner y ClamAV.
3) Configuramos Postfix como el MTA por defecto, ejecutando:
alternatives --config mta
seleccione postfix
4) Editaremos el archivo /etc/postfix/main.cf y configuraremos los parmetros importantes.
Solamente se presentan los parmetros por defecto que se deben cambiar [11]:
myhostname = mi_servidor.mi-dominio.com
mydomain = mi-dominio.com
myorigin = $mydomain
inet_interfaces = all
adrianfrancisconi@yahoo.com.ar
Modificado el 13/08/10
Pgina 5
local_recipient_maps = unix:passwd.byname
$alias_maps
mynetworks = 127.0.0.0/8
relay_domains =
mail_spool_directory = /var/spool/mail
mydestination = mihost.dominio.com,
localhost.dominio.com, localhost,
hash:/etc/postfix/virtual
relayhost =
transport_maps = hash:/etc/postfix/transport
alias_maps = hash:/etc/aliases
inet_protocols = ipv4
Pgina 6
Implementacin
Implementacin
Aadido para configurar el tamao mximo del buzn de mensajes y el de los archivos adjuntos
message_size_limit = 20971520
mailbox_size_limit = 2147483648
El archivo /etc/postfix/transport podemos especificar que direcciones deben ser aceptadas como
locales y cuales no, tambin es posible especificar a travs de que servicio SMTP debe salir (que es
nuestro caso) un mensaje o que tipo de protocolo debe utilizar [12]. En nuestro caso lo editamos para
realizar smarthost condicional, incluyendo lineas del tipo [13]:
dominiodedestino.com
smtp:[mta.derelay.com:puerto]
Para cada dominio, que nos cause problemas por que no admita por ejemplo IPs dinmicas. Mi ISP es
CANTV, y uno de los dominios con los que tena problemas era cvg.com (por que no acepta correo de
servidores con IP dinmicas), as que aad la siguiente linea:
# El correo dirigido a direcciones tipo @cvg.com se enrute a travs mail.cantv.net
cvg.com
smtp:mail.cantv.net
Si no consignes dar con tu ISP, puedes ver como configurar Postfix para que enve correo a travs del
SMTP de GMail en [15].
En el caso que se requiera relay autenticado ver [14]. Para enrutear "TODO" el trafico (tambin el de
los correos locales, ej. el de root) es mejor utilizar el parmetro relayhost en main.cf.
6) Luego de ellos se debe crear las tablas de bsqueda de Postfix, el fichero de la base de datos (*.db)
ejecutamos:
postmap /etc/postfix/transport && postfix reload
adrianfrancisconi@yahoo.com.ar
adrianfrancisconi
adrian
mi-otro-dominio
adrian
Modificado el 13/08/10
Pgina 7
Con lo cual hemos actualizado la base de datos de servidores virtuales, y luego recargamos Postfix.
9) Ahora agregue un usuario al sistema, distinto a su usuario actual (con el que enviara y recibir email frecuentemente), de la siguiente manera:
useradd pepe
11) Colocamos al usuario creado (pepe) en un shell restringido como /bin/false, as no se le permite
conectarse al servidor por medio de SSH. Mediante el siguiente comando:
usermod -s /bin/false pepe
7) Para poder recibir el correo de root y del usuario habitual del sistema (adrian) incorporamos el
alias en /etc/aliases
root:
adrian:
adrian
pepe
Esto se realiza por seguridad, as el acceso se realiza por una cuenta que tiene shell /bin/false, en vez
de por la cuanta principal del usuario (adrian) del administrador del sistema. Esto sucede porque
usaremos PAM, con lo que todo usuario que reciba correo debe tener una cuanta unix.
8) Para actualizar el archivo aliases.db y que recargue postfix ejecutamos:
newaliases && postfix reload
Pgina 8
Implementacin
Implementacin
2) Una vez comprobado de que se tiene soporte para PAM, detengo el servicio, elijo a PAM como mi
mtodo de validacin y lo inicio nuevamente:
service saslauthd stop
saslauthd -a pam
service saslauthd start
adrianfrancisconi@yahoo.com.ar
Modificado el 13/08/10
Pgina 9
3) Verifico que tomo a PAM como mi mtodo de validacin, por que el archivo
/etc/sysconfig/saslauthd tendr la variable MECH con el valor pam:
MECH=pam
4) Como especificamos que para verificar las credenciales del usuario, lo haremos a travs del demonio
saslauthd, debido a que usamos PAM y los procesos sin privilegios (como Postfix) no tienen acceso a
los archivos de contraseas, necesitamos indicarle al demonio saslauthd que el debe manejar las
peticiones por Postfix, editando el archivo /usr/lib/sasl2/smtpd.conf y configurarlo de la
siguiente manera:
pwcheck_method: saslauthd
mech_list: plain login
Debido a que usaremos PAM, como nuestro mtodo de autentificacin SMTP, slo los mecanismos de
autentificacin en "texto plano" se pueden utilizar [21] (si decide usar el meto de autentificacin Mysql
o sasldb cambie saslauthd por auxprop) esto se especifica en la linea (mech_list: plain login)
5) Reiniciamos el demonio saslauthd para que los cambios tengan efecto:
service saslauthd restart
Si esto no devuelve:
0: OK "Success."
Quiera decir que esta correctamente configurado, en cualquier otro caso debemos revisar la
configuracin.
7) Para permitir a un cliente autentificar al servidor (y viceversa), emplearemos SASL, bajo el
protocolo ESMTP (el cual es una Extensin del Protocolo SMTP Protocolo Simple de Trasporte de
Correo). Con esto nos aseguramos que solo los usuarios con las credenciales adecuadas pueden hacer
uso de nuestro servidor SMT [17]. Para ello aadidos al final del archivo /etc/postfix/main.cf lo
siguiente [11]:
smtpd_sasl_auth_enable = yes
smtpd_sasl_type = dovecot
Pgina 10
Implementacin
Implementacin
smtpd_sasl_security_options = noanonymous
smtpd_recipient_restrictions =
permit_sasl_authenticated, permit_mynetworks,
reject_unauth_destination
8) Por ltimo debemos reiniciar los demonios saslauthd y postfix para que los cambios tengan efecto:
service saslauthd restart
service postfix restart
adrianfrancisconi@yahoo.com.ar
Modificado el 13/08/10
Pgina 11
Encriptacin TLS
Mientras que la seccin de SASL maneja la autentificacin (que determina quien tiene derecho a enviar
correos). Esta seccin tratara la proteccin de contraseas, para asegurar que los intrusos no pueden
leer las contraseas secretas de los usuarios [17]. Para proteger la autentificacin, implementaremos
con Postfix TLS (Transport layer Security), un protocolo mejor que el SSL (Serure Sokets Layer)
Para ello se generaran dos certificados (*.crt) y dos claves de encriptacin (*.key). Necesita una
clave primaria que nadie debe conocer y una clave pblica (que permitir a los clientes enviarle
credenciales seguras).
1) Empezamos por crear un directorio para las certificados SSL y entrando en el:
mkdir /etc/postfix/ssl
cd /etc/postfix/ssl
2) Ahora creamos la clave primaria con la siguiente instruccin, en la que se nos pedir que
ingresemos una contrasea para poder generarla:
openssl genrsa -des3 -rand /etc/hosts -out smtpd.key 1024
249 semi-random bytes loaded
Generating RSA private key, 1024 bit long modulus
........++++++
........++++++
e is 65537 (0x10001)
Enter pass phrase for smtpd.key: contrasea
Verifying - Enter pass phrase for smtpd.key: contrasea
4) Ahora generaremos con la clave primaria, un certificado (smtpd.csr), con lo cual tendremos que
introducir la contrasea que introducimos en la generacin del archivo smtpd.key y responder algunas
preguntas, para la generacin del certificado:
Pgina 12
Implementacin
Implementacin
adrianfrancisconi@yahoo.com.ar
Modificado el 13/08/10
Pgina 13
8) Cualquiera que contenga este archivo podr descifrar los mensajes, por eso es que procedemos a
cambiarle los permisos:
chmod 600 smtpd.key
9) Con lo cual ya contamos con una clave (smtpd.key) ms fuerte con la que podemos proceder a
generar los certificados, con el siguiente comando:
openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 36500
Generating a 1024 bit RSA private key
...............++++++
.....++++++
writing new private key to 'cakey.pem'
Enter PEM pass phrase: otra-contrasea
Verifying - Enter PEM pass phrase: otra-contrasea
----You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
----Country Name (2 letter code) [GB]:VE
State or Province Name (full name) [Berkshire]:Bolivar
Locality Name (eg, city) [Newbury]:Guayana
Organization Name (eg, company) [My Company Ltd]:Francisconi
Organizational Unit Name (eg, section) []:Adrian
Common Name (eg, your name or your server's hostname) []:mi_servidor
Email Address []:adrian@mi-dominio.com
Pgina 14
Implementacin
Implementacin
/etc/postfix/ssl/cacert.pem
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout =
3600s
tls_random_source = dev:/dev/urandom
11) Por ltimo debemos reiniciar Postfix para que los cambios tomen efecto:
service postfix restart
adrianfrancisconi@yahoo.com.ar
Modificado el 13/08/10
Pgina 15
Pgina 16
Implementacin
Implementacin
3) Si queremos que clientes como Evolution o Outlook conecten correctamente de forma segura con
nuestro servidor SMTP, tenemos que descomentar las siguientes lineas en /etc/postfix/master.cf
[28]:
# Abre el puerto 465 para SMTPS (usado por Outlook o Evolution para conexiones
seguras)
smtps
inet n
n
smtpd
-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes
4) Si tienes activado IPtables, puede ajustar los puertos abiertos con el siguiente comando:
system-config-firewall
Usted necesitara abrir los puestos imap:tcp, https:tcp, como tambin habilitar ssh y www. En vez de
ejecutar el comando anterior tambin se pueden abrir los puertos directamente editando el archivo
/etc/sysconfig/iptables
6) Ahora debemos estar seguros de que postfix, dovecot y saslauthd se iniciaran en cada reinicio al
menos en los runlevels 3 y 5 para realizar esto ejecute el siguiente comando:
chkconfig --list | grep postfix
en caso que no sea as debe hacer que el demonio de postfix se inicie cuando la maquina se inicia en los
niveles 2, 3, y 5, esto se hace ejecutando:
chkconfig postfix on
adrianfrancisconi@yahoo.com.ar
Modificado el 13/08/10
Pgina 17
2) Instalar los PEAR (consiste en una lista bastante grande de bibliotecas de cdigo PHP que permiten
hacer ciertas tareas de manera ms rpida y eficiente reutilizando cdigo escrito previamente por otras
personas.), necesarios para instalar agenda para SquirrelMail:
yum install php-pear php-pear-HTML-Common php-pear-DB php-pear-HTML_Javascript phppear-HTTP
default_charset = "UTF-8"
register_globals = Of
upload_max_filesize = 20M
post_max_size = 20M
memory_limit = 20M
Pgina 18
Implementacin
Implementacin
;include_path = ".:/php/includes"
[mbstring]
mbstring.*
En primera instancia se aconseja quitar el color con la opcin "C". Despus se configura como:
Organization Preferences
1. Organization Name
2. Organization Logo
3. Org. Logo Width/Height
4. Organization Title
5. Signout Page
6. Top Frame
7. Provider link
8. Provider name
:
:
:
:
:
:
:
:
Server Settings
1. Domain
2. Invert Time
3. Sendmail or SMTP
: mi-dominio.com
: false
: SMTP
A.
B.
: mi_servidor.mi-dominio.com:143 (dovecot)
: localhost:25
mi-dominio.com
../images/sm_logo.png
(308/111)
Bienvenido al Webmail de mi-dominio.com
_top
http://mi-dominio.com/
Ing. Adrian Francisconi
Folder Defaults
1. Default Folder Prefix
2. Show Folder Prefix Option
3. Trash Folder
4. Sent Folder
5. Drafts Folder
6. By default, move to trash
7. By default, save sent messages
8. By default, save as draft
9. List Special Folders First
10. Show Special Folders Color
11. Auto Expunge
12. Default Sub. of INBOX
13. Show 'Contain Sub.' Option
14. Default Unseen Notify
15. Default Unseen Type
16. Auto Create Special Folders
17. Folder Delete Bypasses Trash
18. Enable /NoSelect folder fix
adrianfrancisconi@yahoo.com.ar
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
mail/
true
Papelera
Enviados
Borradores
true
true
true
true
true
true
true
true
2
1
true
false
false
Modificado el 13/08/10
Pgina 19
General Options
1. Data Directory
2. Attachment Directory
3. Directory Hash Level
4. Default Left Size
5. Usernames in Lowercase
6. Allow use of priority
7. Hide SM attributions
8. Allow use of receipts
9. Allow editing of identity
Allow editing of name
Remove username from header
10. Allow server thread sort
11. Allow server-side sorting
12. Allow server charset search
13. Enable UID support
14. PHP session name
15. Location base
16. Only secure cookies if poss.
17. Disable secure forms
18. Page referal requirement
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
/var/lib/squirrelmail/prefs/
/var/spool/squirrelmail/attach/
0
150
true
true
false
true
true
true
false
true
true
true
true
SQMSESSID
true
false
Address Books
1. Change LDAP Servers
2. Use Javascript Address Book Search
3. Global file address book
4. Allow writing into global file address book
5. Allow listing of global file address book
6. Allowed address book line length
:
:
:
:
:
false
false
true
2048
Plugins
Installed Plugins
1. delete_move_next
2. squirrelspell
3. newmail
4. translate
5. calendar
6. mail_fetch
7. sent_subfolders
8. filters
9. administrator
10. fortune
11. info
12. listcommands
13. message_details
14. spamcop
15. virtual_hosts
16. show_user_and_ip
17. msg_flags
Available Plugins:
18. addgraphics
19. bug_report
20. change_passwd
21. compatibility
22. test
23. vlogin
Database
1. DSN for Address Book
: mysql://usuario:contrasea@localhost/squirrelmail
2. Table for Address Book : address
Pgina 20
Implementacin
Implementacin
3.
4.
5.
6.
7.
8.
9.
10.
11.
Language preferences
1. Default Language
2. Default Charset
3. Enable lossy encoding
:
:
:
:
:
mysql://usuario:contrasea@localhost/squirrelmail
userprefs
user
prefkey
prefval
:
: global_abook
: false
: false
: es_ES
: es_ES.UTF-8
: false
7) Para comprobar que esta todo perfectamente instalado y configurado clocar esta direcion url en su
navegador:
http://suservidor/webmail/src/configtest.php
adrianfrancisconi@yahoo.com.ar
Modificado el 13/08/10
Pgina 21
9) Despues de instalar hacemos que el mysql inicie cada vez que se prenda la maquina
chkconfig mysqld on
10) Configurar Mysql para UTF-8, editamos el fichero de configuracin de Mysql /etc/my.cnf y
colocamos al final de este:
[mysqld]
default_character_set=utf8
character_set_server=utf8
character_set_client=utf8
default_collation=utf8_spanish_ci
character_set_filesystem=utf8
init-connect='SET NAMES utf8'
# character_set_database=utf8
[mysqldump]
default_character_set=utf8
[client]
default_character_set=utf8
11) Despus de reiniciar el servicio y conectarnos a Mysql y comprobamos que tomo los parmetros
correctamente [10] [8].
mysql
Pgina 22
Implementacin
Implementacin
Tambin comprobamos
mysql> SHOW VARIABLES LIKE 'collation%';
+----------------------+-----------------+
| Variable_name
| Value
|
+----------------------+-----------------+
| collation_connection | utf8_general_ci |
| collation_database
| utf8_spanish_ci |
| collation_server
| utf8_spanish_ci |
+----------------------+-----------------+
Luego nos pedir el usuario y contrasea que es el mismo que se usa para acceder a Mysql
Si no lo encontramos en su archivo de configuracin que se encuentra en:
/etc/phpMyAdmin/config.inc.php
Tambin si quieres acceder desde otro nodo que no sea el local recuerda editar el archivo
/etc/httpd/conf.d/phpMyAdmin.conf y colocar
Alias /phpmyadmin /usr/share/phpMyAdmin
<Directory /usr/share/phpMyAdmin/>
order deny,allow
deny from all
allow from 127.0.0.1
allow from ::1
allow from IPdesdeDondeQuieroacceder
</Directory>
adrianfrancisconi@yahoo.com.ar
Modificado el 13/08/10
Pgina 23
13) Ahora necesitamos crear la base de datos en mysql (yo la llame squirrelmail) con este comando:
mysqladmin -u root -p create squirrelmail
Se puedes cambiar el usuario y clave por los que sean mas cmodos. Ahora crearemos las tablas para
guardar la informacin, pero primero tenemos que decirle que base de datos vamos a ocupar, eso lo
hacemos ejecutando:
mysql> use squirrelmail;
Pgina 24
Implementacin
Implementacin
15) Ahora configuramos el SquirelMail para que apunte a la base de datos recin creada ejecutando:
cd /usr/share/squirrelmail/config
./conf.pl
mysql://squirreluser:sqpassword@localhost/squirrelmail
Ahora seleccione
DSN for Preferences
y escriba
mysql://squirreluser:sqpassword@localhost/squirrelmail
no olvide que squirreluser y sqpassword son el nombre de usuario y clave que tienes acceso a la
base de datos y que la base de datos es SquirrelMail (si usted cambio alguno de estos datos cuando creo
la base de datos o el usuario que tiene acceso a ella debe mantener la consistencia)
Luego selecciones Save data ("S") y Quit ("Q")
16) Reiniciar el servidor web con el comando
service httpd restart
adrianfrancisconi@yahoo.com.ar
Modificado el 13/08/10
Pgina 25
4) Instalar Amavisd-New
yum install amavisd-new
Lo primero vamos a probar el el amavis esta funciona correctamente. Para ello hacemos
telnet 127.0.0.1 10024
despus escribimos
quit
221 Bye
Connection closed by foreign host.
Con esto ya sabemos que esta funcionando el amavis y podemos seguir con la configuracin
Para configurar amavis en postfix tenemos que agregar lo siguiente en al archivo
/etc/postfix/master.cf
smtp-amavis unix n
-o smtp_data_done_timeout=1200
Pgina 26
smtp
Implementacin
Implementacin
-o smtp_send_xforward_command=yes
-o disable_dns_lookups=yes
-o max_use=20
127.0.0.1:10025 inet n n
- 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 mynetworks_style=host
-o mynetworks=127.0.0.0/8
-o strict_rfc821_envelopes=yes
-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
Una vez agregadas esas lineas tenemos que reiniciar el servicio del postfix
service postfix restart
ah escribimos
quit
221 Bye
Connection closed by foreign host.
Ahora tenemos que decirle al postfix que todos los mails que reciba se los envie al amavis para ser
filtrados. Para eso tenemos que agregar al final del archivo /etc/postfix/main.cf la siguiente linea
content_filter=smtp-amavis:[127.0.0.1]:10024
adrianfrancisconi@yahoo.com.ar
Modificado el 13/08/10
Pgina 27
6) Instalar clamv
yum install clamav clamd clamav-db
Una vez instalado hay que ir al archivo de configuracin del clamav que es /etc/clamd.conf y comentar
las siguientes lineas
TCPSocket 3310
TCPAddr 127.0.0.1
tiene que quedar
# TCPSocket 3310
#TCPAddr 127.0.0.1
Ahora que fijarse que lo que dice la siguiente linea para despues ponerlo en el
LocalSocket /var/run/clamav/clamd.sock
lo aconsejable es copiar la direccin y el nombre de archivo en al cual apunta para despues ponerla en
el amavis
Ahora tenemos que configurar amavis para que ocupe el clamav
Para eso editamos el archivo /etc/amavisd.conf y buscamos la linea que diga:
# http://www.clamav.net/
tenemos que descomentar las siguientes lineas y fijarnos que el archivo apuntado aqui sea el mismo que
estaba en clamd.conf como LocalSocket, sino es asi ahi que preocuparse que sean iguales quedando
de la siguiente manera:
['ClamAV-clamd',
\&ask_daemon, ["CONTSCAN {}\n", "/var/run/clamav/clamd.sock"],
qr/\bOK$/, qr/\bFOUND$/,
qr/^.*?: (?!Infected Archive)(.*) FOUND$/ ],
# NOTE: the easiest is to run clamd under the same user as amavisd; match the
# socket name (LocalSocket) in clamav.conf to the socket name in this entry
# 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: (.+)/],
con esto queda instalado el mailman ahora tenemos que modificar el archivo de postfix
/etc/postfix/main.cf, donde hay que fijarse que las siguientes opciones tengan los valores que aqu
se especifican, en caso de estar comentadas dichas lineas hay que descomentarlas:
owner_request_special = no
recipient_delimiter = +
unknown_local_recipient_reject_code = 550
Una vez que hemos hecho debemos reiniciar postfix con el comando
Pgina 28
Implementacin
Implementacin
y queda funcionando mailman con postfix, ahora bien sera bueno poder hacer que mailman se
encargara el mismo de actualizar el aliases cada vez que creamos una lista, para eso es necesario hacer
lo siguiente:
Primero que nada hay que decirle al mailman que vamos a ocupar postfix, esto lo hacemos en el
archivo /etc/mailman/mm_cfg.py, al final de dicho archivo agregamos la siguiente linea
MTA = 'Postfix'
Ahora si queremos que mailman tenga por defecto el idioma espaol debemos agregar tambin la linea
que dice:
DEFAULT_SERVER_LANGUAGE='es'
ya con esto le hemos dicho al mailman que vamos a ocupar postfix y que el lenguaje es espaol.
Ahora ahi que generar la lista de aliases del mailman, esto lo hacemos ejecutando el siguiente
comando:
/usr/lib/mailman/bin/genaliases
esto debe generar los archivos /etc/mailman/aliases
y /etc/mailman/aliases.db
una vez generados estos archivos debemos volver a editar el archivo /etc/postfix/main.cf y
debemos cambiar la siguiente linea
alias_map = hash:/etc/aliases
por
adrianfrancisconi@yahoo.com.ar
Modificado el 13/08/10
Pgina 29
Probando
el
Servidor de Correo
Primero debemos abrir la transmisin con el comando EHLO (los clientes SMTP deben usar el comando
HELO). El argumento de este campo contiene el nombre del servidor emisor SMTP
EHLO mi-dominio.com
El servidor nos enve una lista de las Extensiones del protocolo SMTP (ESMTP) que soporta. Por
ejemplo soporta la exencin VRFY [nombre] que confirma de que [nombre] es un usuario del MTA
del receptor, tambin como se ve soporta la extensin AUTH [Metodo] que sirve para autentificarse
ante el servidor, empleando el [Metodo] indicado, para cifrar el usuario y la contrasea.
250-mi_servidor.mi-dominio.com
250-PIPELINING
250-SIZE 20971520
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH PLAIN LOGIN
250-AUTH=PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
Para comenzar una nueva transaccin para el envo de mensaje usamos MAIL FROM:
[usuario@dominio] indicndole el remitente del mensaje (adrian@mi-dominio.com). A menudo el
dominio ha de ser uno vlido, pues ciertos servidores comprueban la existencia del mismo:
MAIL FROM:<adrian@mi-dominio.com>
Pgina 31
La identifica del remitente del mensaje es apestada (nos devuelve cdigos que empiezan por "2" [23]):
250 2.1.0 OK
Postfix no lo acepta:
554 5.7.1 <adrianfrancisconi@yahoo.com.ar>: Relay access denied
Por que? Por que el comando MAIL FROM: correo@dominio especifica el destinatario del mensaje (o
destinatarios, pues el comando puede ser repetido tantas veces como receptores haya), del mensaje
enviado. Es importante tener en cuenta que ciertos servidores poseen una tabla de dominios a los que
pueden entregar el correo, es seguro usar el servidor de correo del dominio al cual pertenece el correo
de la persona a la que va dirigida el mensaje. Es lgico, me estoy conectando va telnet como un nodo
cualquiera de internet, si me dejara conectar y encima me dejara enviar e-mail sin autentificarme, el
servidor seria un open relay.
Pruebo nuevamente pero esta ves de otro nodo que no sea el servidor y con la IP local del servidor de
correo:
telnet 192.168.1.100 smtp
adrianfrancisconi@yahoo.com.ar
Modificado el 13/08/10
Pgina 32
250 2.1.5 OK
Postfix est de acuerdo y nos dice que ahora podemos enviar el mensaje real:
354 End data with <CR><LF>.<CR><LF>
Hola John,
slo quera dejarte una nota.
.
Postfix nos dice que ha recibido el mensaje y lo pone en cola bajo un ID:
250 2.0.0 Ok: queued as A9D64379C4
Pgina 33
Probando Dovecot/IMAP
telnet localhost 143
Los comandos IMAP siempre empiezan por un nmero y la respuesta a ese comando tambin empieza
por el mismo nmero. As que los siguientes comandos deben teclearse con el nmero al principio de
cada lnea. Inicia sesin con el nombre de usuario y la contrasea:
1 login usuario contrasea
Y te muestra la lista:
* LIST (\HasNoChildren) "." "INBOX"
2 OK List completed.
adrianfrancisconi@yahoo.com.ar
Modificado el 13/08/10
Pgina 34
Y aqu est:
* 1 FETCH (BODY[] {474}
Return-Path: <steve@example.com>
X-Original-To: john@example.com
Delivered-To: john@example.com
Received: from example.com (localhost [127.0.0.1])
by ... (Postfix) with ESMTP id 692DF379C7
for <john@example.com>; Fri, 18 May 2007 22:59:31 +0200 (CEST)
Message-Id: <...>
Date: Fri, 18 May 2007 22:59:31 +0200 (CEST)
From: steve@example.com
To: undisclosed-recipients:;
Hola John,
slo quera dejarte una nota.
)
5 OK Fetch completed.
Y Dovecot te desconecta:
* BYE Logging out
6 OK Logout completed.
Connection closed by foreign host.
Pgina 35
adrianfrancisconi@yahoo.com.ar
Modificado el 13/08/10
Pgina 36
A continuacin escribe:
EHLO correo.com
250-correo.com
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH PLAIN LOGIN
250-AUTH=PLAIN LOGIN
Pgina 37
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
Como se ve soporta la extensin AUTH PLAIN que es la extensin que nos permite usar la
autentificacin con el protocolo SMTP en texto plano (cifrado el usuario y la contrasea en base 64),
como es requerido para usar PAM. Enva la cadena de autentificacin con la contrasea cifrada en base
64:
AUTH PLAIN AHVzZXJuYW1lAHBhc3N3b3Jk
Desconctate de Postfix:
quit
adrianfrancisconi@yahoo.com.ar
Modificado el 13/08/10
Pgina 38
Referencias
[1]
http://terremotomental.spaces.live.com/blog/cns!3457113FAD38B7F7!
283.entry
[2]
http://www.servitux.org/view.php/page/postfix
[3]
http://www.servitux.org/view.php/page/postfix
[4]
http://www.uco.es/ccc/sistemas/postfix/intro.html#d0e319
[5]
http://www.mail-archive.com/trilug@trilug.org/msg08855.html
[6]
http://www.ignside.net/man/servidores/phpini.php
[7]
http://www.php.net/manual/en/timezones.america.php
[8]
http://forums.mysql.com/read.php?71,224332,225034
[9]
http://squirrelmail.org/plugins.php
[10]
http://dev.mysql.com/doc/refman/5.0/es/charset-metadata.htm
[11]
http://www.postfix.org/postconf.5.html
[12]
http://www.postfix.org/transport.5.html
[13]
http://www.bulma.net/body.phtml?nIdNoticia=2233
[14]
http://wiki.fjra.es/wiki/Relay_Autenticado_con_Postfix
[15]
http://pacoros.wordpress.com/2008/04/14/configurar-postfix-paraque-envie-correo-a-traves-del-smtp-de-gmail/
[16]
http://www.postfix.org/BASIC_CONFIGURATION_README.html
[17]
[18]
http://www.esdebian.org/wiki/tutorial-ispmail-debian-50-lenny-0
[19]
http://www.postfix.org/SASL_README.html#server_test
[20]
http://wiki.dovecot.org/HowTo/PostfixAndDovecotSASL
[21]
http://wiki.dovecot.org/PasswordDatabase/PAM
Pgina 39
Referencias
Referencias
[22]
http://wiki.dovecot.org/TestInstallation
[23]
http://www.septeto.com/documentos/smtp.html
[24]
http://wiki.dovecot.org/SSL/DovecotConfiguration
[25]
http://wiki.dovecot.org/HowTo/SimpleVirtualInstall
[26]
http://www.tuxjm.net/docs/mailserver-howto/ch04s04.html
[27]
http://www.postfix.org/TLS_README.html
[28]
http://www.marblestation.com/?p=549
adrianfrancisconi@yahoo.com.ar
Modificado el 13/08/10
Pgina 40