Postfix/Configuración de un servidor

De doc.ubuntu-es
< Postfix(Diferencias entre revisiones)
Saltar a: navegación, buscar
(Empezamos con Postfix)
Línea 215: Línea 215:
  
  
 +
== POP3/S e IMAP/S con Dovecot ==
  
 +
Como servidor para descargar los correos vamos a utilizar dovecot por su sencillez y eficacia.
 
   
 
   
  

Revisión de 16:33 28 ene 2008

Important.png Este articulo esta siendo creado en estos momentos, por favor un poco de paciencia.

Esta página proporciona ayuda para personas que quieren instalar y configurar un servidor POSTFIX en Ubuntu, incluyendo Postfixadmin, Mysql, Spamassassin, ClamAv

Contenido

Comprobar requisitos

De primeras los únicos requisitos que debemos tener en cuenta es que tenemos el puerto 25 del router dirigido al que va a ser nuestro servidor de correo.

Ver que el servidor Resuelve DNS-s.

Comprobar que nuestro servidor tiene un nombre que este dentro de los requisitos de FQDN (Fully Qualified domain name) recogidos en el RFC821. Básicamente el formato sería mail.dominio.com. En caso de no querer cambiar el nombre a nuestra maquina podemos configurarlo después desde el propio fichero de configuración de Postfix.

Es importante también que la hora sea correcta, recomiendo instalar algún cliente como ntp para que se encargue de actualizar las hora.

Instalar lo básico para que postfix funcione

A continuación vamos a instalar los paquetes para que postfix y postfixadmin funcionen adecuadamente. Para los que no lo sepan postfixadmin es un administrador web para poder crear dominios y cuentas de manera sencilla. Los podeis instalar con cualquier método

postfix postfix-mysql mysql-server apache2 libapache2-mod-php5 php5 php5-mysql 

Nota: Con el paquete de postfix nos preguntará que tipo de instalación queremos hacer. Seleccionamos la que esté por defecto ya que luego haremos una configuración a nuestro gusto editando el fichero manualmente.

PostfixAdmin no esta en los repos, por lo tanto tendremos que instalarlo desde las fuentes. Es una operación realmente sencilla.

wget ftp://ftp.logos-bg.net/pub/Nikola/Postfixadmin/postfixadmin-2.1.0.tar.gz
sudo tar zxvf postfixadmin-2.1.0.tar.gz -C /var/www

Ahora vamos a crear la estructura dentro de MySQL.

cd /var/www/postfixadmin-2.1.0
mysql -u root -p < DATABASE_MYSQL.TXT

Nota: La password que nos pide es la que hemos introducido en el dialogo de configuración.

Primeros pasos: configurando la base

Lo primero será dar permisos a un usuario que maneje la BBDD de postfixadmin.

$ mysql -u root -p
mysql> GRANT USAGE ON *.* TO 'postfix'@'localhost' IDENTIFIED BY 'mi_pass' ;
mysql> GRANT ALL PRIVILEGES ON `postfix`.* TO 'postfix'@'localhost' WITH GRANT OPTION ;
FLUSH PRIVILEGES ;

Con esto ya tenemos el usuario creado para poder acceder a leer y escribir los datos necesarios en la BBDD. A continuación vamos a configurar el sistema y a añadir un usuario que se encargue de crear los buzones...

sudo groupadd -g 1001 virtual
sudo useradd -g virtual -d /usr/local/virtual -s /bin/false -u 1001 virtual
sudo mkdir /usr/local/virtual
sudo chown -R virtual:virtual /usr/local/virtual

Ahora tenemos que dar soporte mysql a php5 mediante el fichero php.ini abrimos el fichero:

sudo gedit /etc/php5/apache2/php.ini

y añadimos la siguiente línea:

extension=mysql.so

A continuación cambiamos los permisos de postfixadmin por seguridad.

cd /var/www/postfixadmin-2.1.0
sudo cp config.inc.php.sample config.inc.php
sudo chown -R www-data.www-data *
sudo chmod 640 *.php *.css
cd admin
sudo chmod 640 *.php .ht*
cd ../images
sudo chmod 640 *
cd ../languages
sudo chmod 640 *.lang
cd ../templates
sudo chmod 640 *.tpl
cd ../users
sudo chmod 640 *.php

Ahora editamos el fichero de configuración para que se comunique con nuestra BBDD (Modificar las siguientes lineas según convenga).

sudo gedit config.inc.php
$CONF['default_language'] = 'es';
$CONF['database_type'] = 'mysql';
$CONF['database_host'] = 'localhost';
$CONF['database_user'] = 'postfix';
$CONF['database_password'] = 'mi_pass';
$CONF['database_name'] = 'postfix';
$CONF['database_prefix'] = ;

Una vez hemos terminado con ello vamos a borrar los ficheros que sobran.

sudo rm -rf setup.php ; sudo rm -rf motd*

y ya podemos acceder a postfixadmin desde la siguiente url

http://localhost/postfixadmin/admin

A continuación hago una lista de las rutas a las diferentes configuraciones.

Para el administrador global: http://localhost/postfixadmin/admin/
Administrador del dominio: http://localhost/postfixadmin/index.php
Para los usuarios: http://localhost/postfixadmin/users

Nota: De momento no crearemos ningún dominio. Los crearemos una vez terminada la configuración de postfix.

Para el administrador global, la contraseña se pone con el htacces de apache: editamos el siguiente fichero y nos tiene que quedar así:

sudo gedit /var/www/postfixadmin-2.1.0/admin/.htaccess
AuthUserFile /var/www/postfixadmin/admin/.htpasswd
AuthGroupFile /dev/null
AuthName "Postfix Admin"
AuthType Basic
<limit GET POST>
require valid-user
</limit>

ahora nos metemos en la carpeta admin y ejecutamos lo siguiente:

$ htpasswd .htpasswd usuario

Nota: El usuario es un usuario que nosotros queramos usar para acceder, no tiene porqué pertenecer al sistema.

Empezamos con Postfix

En postfix tenemos 2 ficheros importantes, main.cf y master.cf ahora haré una breve descripción de cada uno de ellos:

main.cf: Es el fichero principal para la configuración de postfix, aquí definimos cual es nuestro dominio, para que dominios aceptamos correo... master.cf: Es el fichero a través del que se configuran los demonios internos de postfix.

Empecemos con el main.cf:

sudo gedit /etc/postfix/main.cf
myhostname = lomu.homelinux.org
mydomain = lomu.homelinux.org
myorigin = $mydomain
mydestination = localhost, dominio.com
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
# parametros TLS
smtpd_tls_session_cache_database = btree:${queue_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${queue_directory}/smtp_scache

#MYSQL
virtual_alias_maps = mysql:/etc/postfix/mysql/mapas_alias_virtuales_mysql.cf
virtual_gid_maps = static:1001
virtual_mailbox_base = /usr/local/virtual
virtual_mailbox_domains = mysql:/etc/postfix/mysql/mapas_dominios_virtuales_mysql.cf
virtual_mailbox_limit = 0
virtual_mailbox_maps = mysql:/etc/postfix/mysql/mapas_mailbox_virtuales_mysql.cf
virtual_minimum_uid = 1001
virtual_transport = virtual
virtual_uid_maps = static:1001
virtual_create_maildirsize = yes
virtual_mailbox_extended = yes
virtual_mailbox_limit_maps = mysql:/etc/postfix/mysql/mapas_limites_virtuales_mailbox_mysql.cf
virtual_mailbox_limit_override = yes
virtual_maildir_limit_message = El buzón del usuario está lleno.
virtual_overquota_bounce = yes

A continuación creamos la carpeta mysql para crear dentro los mapas para postfix.

sudo mkdir /etc/postfix/mysql

y ahora creamos los mapas necesarios para que postfix se entienda con mysql y postfixadmin.

sudo gedit /etc/postfix/mysql/mapas_alias_virtuales_mysql.cf
user = postfix
password = mi_pass
hosts = 127.0.0.1
dbname = postfix
query = SELECT goto FROM alias WHERE address='%s' AND active = 1
 sudo gedit /etc/postfix/mysql/mapas_dominios_virtuales_mysql.cf
user = postfix
password = mi_pass
hosts = 127.0.0.1
dbname = postfix
query = SELECT domain FROM domain WHERE domain='%s'
 sudo vim /etc/postfix/mysql/mapas_mailbox_virtuales_mysql.cfç
user = postfix
password = mi_pass
hosts = 127.0.0.1
dbname = postfix
query = SELECT maildir FROM mailbox WHERE username='%s' AND active = 1
sudo vim /etc/postfix/mysql/mapas_limites_virtuales_mailbox_mysql.cf
 ser = postfix
password = mi_pass
hosts = 127.0.0.1
dbname = postfix
query = SELECT maildir FROM mailbox WHERE username='%s' AND active = 1


Reiniciamos Postfix

/etc/init.d/postfix restart

Ahora ya podemos ir a crear nuestro dominio virtual con los usuarios a los que queramos dar correo.

http://localhost/postfixadmin-2.1.0/admin/

No explicaré como crear un dominio en postfixadmin porque creo que es muy sencillo de utilizar.

Para saber si postfix está dando problemas podemos echar un vistazo a los siguientes ficheros de log.

cat /var/log/mail.err
cat /var/log/mail.warn

Nota: Postfix tiende a ser bastante claro con los errores, por lo tanto de tener alguno leer con tranquilidad los logs para encontrar lo que falla ;).


POP3/S e IMAP/S con Dovecot

Como servidor para descargar los correos vamos a utilizar dovecot por su sencillez y eficacia.

Herramientas personales