| |
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 |
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.
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.
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.
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