En este caso partía con ventaja, ya que anteriormente había montado un servidor de correo de similares características pero bajo una Debian. Bajo mi humilde experiencia ambas son igual de fáciles o igual de difíciles, cuestión de gusto XD.
No quería empezar este post sin antes mencionar la gran fuente de conocimiento que me ha proporcionado gentoo-wiki.com en particular el siguiente link.
http://gentoo-wiki.com/HOWTO_Secure_Mail_Server_using_Dovecot
Instalación
Antes de instalar cualquier ebuild se debe configurar los flags que deben utilizar algunos ebuilds que son necesarios. Para ello se deben poner las siguientes líneas en el fichero /etc/portage/package.use.
Fichero: /etc/portage/package.use |
net-mail/dovecot pop3d mysql mail-mta/postfix ssl mysql mbox nis pam mail-filter/dspam virtual-users mysql daemon dev-lang/php apache2 concurrentmodphp hash imap mhash mysql mysqli posix postgres sqlite threads xml xmlreader xmlwriter xpm zip |
Después de esto, se debe elimiar ssmtp que puede dar problemas de compatibilidad con postfix.
emerge -Ca ssmtp.
Ahora es cuando ya se pueden instalar los paquetes necesarios para montar el servidor de correo.
emerge -uD dovecot postfix clamav dspam dspam-web squirrelmail
Y por último para terminar la sección de instalación hay que ejecutar el script de configuración de dovecot.
emerge --config dovecot.
Configuración
Para la configuración del servidor no es necesario seguir el mismo orden que se ha establecido, sin embargo es el más aconsejable.
postfixadmin
Lo primero que hay que a hacer es configurar el servidor smtp postfix. No obstante, antes de empezar con la configuración pura de postfix, se instala postfixadmin, paquete muy aconsejable para la gestión de cuentas de correo.
emerge -a postfixadmin.
Con postfixadmin se consigue una fácil administración de las cuentas de correo y de los dóminios que controla el servidor de correo. Además permite otras gestiones como es la gestión de alias dentro del dominio.
Para concluir con la instalación de postfixadmin hay que aplicar el siguiente script de base de datos.
/usr/share/doc/postfixadmin-2.1.0/DATABASE_MYSQL.TXT.gz
postfix
Una vez configurado postfixadmin, es hora de configurar postfix (servidor smtp). Esta instalación está basada en la creación de direcciones virtuales y dominio virtuales, es por este motivo que se creará un nuevo directorio en el árbol de postfix. Para hacer ésto, hay que ejecutar los siguientes comandos:
- mkdir /var/spool/postfix/virtual
- chown postfix:postfix /var/spool/postfix/virtual
- chmod a+rwx /var/spool/postfix/virtual
Lo siguiente que se necesita para seguir con la instalación de postfix es, conocer el uid del usuario postfix y el gid del grupo postfix. Para ésto es necesario mirar en los ficheros /etc/passwd y /etc/group.
Fichero: /etc/postfix/main.cf |
smtpd_banner = $myhostname ESTMP $mail_name (Gentoo) biff = no append_dot_mydomain = no alias_database = hash:/etc/postfix/aliases alias_maps = $alias_database myhostname = <hostname> mydomain = <domain> myorigin = $myhostname mydestination = $myhostname, localhost.$mydomain mail_spool_directory = /var/spool/mail home_mailbox = Mailbox debug_peer_level = 2 debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin xxgdb = $daemon_directory/$process_name $process_id & sleep 5 disable_vrfy_command = yes show_user_unknown_table_name = no virtual_transport = virtual virtual_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf virtual_minimum_uid = <postfix_uid> virtual_uid_maps = static:<postfix_uid> virtual_gid_maps = static:<postfix_gid> virtual_mailbox_base = /var/spool/postfix/virtual virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf virtual_mailbox_limit = 51200000 # Additional for quota support virtual_create_maildirsize = yes virtual_mailbox_extended = yes virtual_mailbox_limit_maps = mysql:/etc/postfix/mysql_virtual_mailbox_limit_maps.cf virtual_mailbox_limit_override = yes virtual_maildir_limit_message = Espacio de usuario sobrepasado. Inténtelo más tarde virtual_overquota_bounce = yes |
Fichero: /etc/postfix/mysql_virtual_alias_maps.cf |
user = <db_user_postfix> password = <db_pass_postfix> hosts = localhost dbname = postfix table = alias select_field = goto where_field = address |
Fichero: /etc/postfix/mysql_virtual_domains_maps.cf |
user = <db_user_postfix> password = <db_pass_postfix> hosts = localhost dbname = postfix table = domain select_field = description where_field = domain #additional_conditions = and backupmx = '0' and active = '1' |
Fichero: /etc/postfix/mysql_virtual_mailbox_maps.cf |
user = <db_user_postfix> password = <db_pass_postfix> hosts = localhost dbname = postfix table = mailbox select_field = maildir where_field = username #additional_conditions = and active = '1' |
Fichero: /etc/postfix/mysql_relay_domains_maps.cf |
user = <db_user_postfix> password = <db_pass_postfix> hosts = localhost dbname = postfix table = domain select_field = domain where_field = domain additional_conditions = and backupmx = '1' |
Fichero: /etc/postfix/mysql_virtual_mailbox_limit_maps.cf |
user = <db_user_postfix> password = <db_pass_postfix> hosts = localhost dbname = postfix table = mailbox select_field = maildir where_field = quota #additional_conditions = and active = '1' |
Una vez que los ficheros han sido configurados, unicamente queda reiniciar postfix mediante /etc/init.d/postfix restart.
Dovecot
Configurado ya postfix (servidor SMTP), es hora de configurar el servidor IMAP / POP3. Dovecot es el encargado de gestionar las conexiones IMAP y POP3.
La configuración que se utiliza a continuación es válida para un servidor IMAP y POP3, de forma que el cliente es el encargado de decidir el método de conexión con el servidor de correo.
Fichero: /etc/dovecot/dovecot-mysql.conf |
driver = mysql |
Fichero: /etc/dovecot/dovecot.conf |
auth_verbose = yes |
Para generar los certificados, simplemente hay que ejecutar:
- openssl genrsa -out key.pem 1024
- openssl req -new -key key.pem -out request.pem
- openssl req -x509 -key key.pem -in request.pem -out certificate.pem
- openssl x509 -inform der -in certificate.crt -out certificate.pem
Posteriormente se copia key.pem a /etc/ssl/private/dovecot.key y certificate.pem a /etc/ssl/certs/dovecot.pem
Postfixadmin
Al instalar postfixadmin, éste queda almacenado en el directorio /usr/share/webapp/postfixadmin dentro del que se encuentra el directorio htdoc que contiene el software de gestión. Por lo tanto se copia el contenido del directorio a la siguiente ruta:
/var/www/localhost/htdocs/postfixadmin
Cuando se haya terminado de copiar el directorio, hay que asignarle permisos especiales en apache debido a que no es aconsejable que cualquier máquina pueda acceder a esta URL. Por lo tanto hay que añadir las siguientes líneas a apache.
Fichero: /etc/apache2/vhosts.d/default_vhost.include |
|
A continuación se configura el fichero config.inc.php quedando como el siguiente:
Fichero: /var/www/localhost/htdocs/postfixadmin/config.inc.php |
|
Sin embargo, antes de dejar el fichero de config.inc.php así, se debe crear una cuenta de administrador o superadministrador. Para esto lo único que se hace es poner $CONF['configured'] = false; y confirmar que existe el fichero setup.php en el mismo directorio. A continuación se abre un navegador y se introduce la URL de postfixadmin:
http://localhost/postfixadmin/setup.php
Una vez que se ha creado la cuenta se renombra el fichero setup.php a setup.php.disabled y en el fichero config.inc.php se pone a true la propiedad configured.
Referencias
http://gentoo-wiki.com/HOWTO_Secure_Mail_Server_using_Dovecot
http://panoptic.com/wiki/aolserver/How_to_generate_self-signed_SSL_certificates
No hay comentarios:
Publicar un comentario