Fallo en el servidor de correo para dominios virtuales. AYUDA

Registrado
6 May 2014
Mensajes
14
Puntos
0
Edad
28
Utilizare un ubuntu server 13.04 ya tengo instalado un servidor DNS, mi dominio sera ejemplo1.com, ahora para comenzar instalo el servidor de correo postfix con dovecot y squirrelmail con usuario del sistema, de la siguiente manera.

- "sudo su", para hacernos super administradores.

- "apt-get install postfix" y seguimos los siguientes pasos.
1. Presionamos enter.
2. Dejamos la que viene por defecto y enter.
3. En este paso introduciremos nuestro dominio local de nuestro servidor, ejemplo1.com y pesionamos enter.

- Editamos el siguiente archivo "nano /etc/postfix/main.cf" y añadimos las siguientes líneas al final del documento.
1. inet_protocols = ipv4, le decimos al nuestro servidor que vamos a usar el protocolo ipv4.
2. home_mailbox = Maildir/, donde le indicaremos que nuestra carpeta compartida para imap esta dentro de nuestro home y se llamara Maildir.

- Reiniciamos postfix para comprobar que funciona todo "ok" con el comando "service postfix restart"

- Instalamos dovecot con "apt-get install dovecot-*"

- Editamos el siguiente archivo "nano /etc/dovecot/dovecot.conf"

- Añadimos al principio de dicho documento las siguientes líneas.
1. protocols = pop3 pop3s imap imaps
2. mail_location = mbox:~/mail:INBOX=/var/mail/%u

- Reiniciamos dovecot con "service dovecto restart".

- Instalamos squirrelmail, "apt-get install squirrelmail" tendremos que hacerle un enlace al servidor web apache2.

- Para crear las cuentas de correo deberemosm, deberemos de crear usuarios en el sistema, de la siguiente manera.
1. Creamos al usuario: "adduser nombre_usuario"
2. Y posteriormente, creamos su carpeta compartida imap: "maildirmake /home/nombre_usuario/Maildir", para que el usuario tome como en propiedad la carpeta: "chown nombre_usuario /home/nombe_usuario/Maildir -R".

Con esto nuestro correo va perfecto con usuarios del sistema, el problema lo tengo cuando intento cuando quiero crear dominios virtuales, con base de datos mysql, postfixadmin y demás, sigo este tutorial pero me falla y nose que puede ser por eso necesito AYUDA!!

Instalación de Postfix Admin, Squirrelmail y Mailman

1.1 Introducción
Partiendo de la base de que tenemos ya un servidor de correo instalado y funcionando con Postfix (SMTP) y Dovecot (IMAP y POP3), queremos dar un paso más y añadir las siguientes mejoras:
- Utilizar usuarios virtuales (en lugar de cuentas del sistema).
- Instalar una aplicación web que nos permita gestionar de forma cómoda dominios, usuarios, aliases, etc.
- Instalar una aplicación webmail* que nos permita acceder a nuestro correo mediante navegador.
- Instalar una aplicación para automatizar y mejorar la gestión de listas de distribución de correo.

1.2 Preparativos

- Instalaremos los siguientes paquetes.
"apt-get install sasl2-bin" → Capa de seguridad y autenticación sencilla
"apt-get install mysql-server" → SGBD MySQL
"apt-get install postfix-mysql" → Paquetes de integración de Postfix MySQL
"apt-get install dovecot-*" → Como dovecot no me funcionaba bien, instalé todas las extensiones y ya funciona correctamente.
"apt-get install php5-imap" → Funciones IMAP para PHP

- Instalaremos la herramienta para gestionar de forma cómoda los dominios, utilizaremos postfixadmin. "apt-get install postfixadmin"
- Cuando hacemos esto nos aparecerá la ventana de configuración del postfixadmin y lo configuramos de la siguiente manera:
1. Marcamos la opción “apache2” con la barra espaciadora.
2. Nos preguntará si queremos configurar la base de datos con “dbconfig-common”
3. Indicaremos el tipo de base de datos, en este caso “MySQL”.
4. Y para finalizar indicaremos la contraseña y la confirmaremos.
- Deberemos de crear un enlace en la carpeta de apache para poder configurar postfixadmin.

- Preparemos los usuarios de la base de datos, indicando los siguientes comandos:
“mysql -p” y su contraseña para acceder a MySQL
Una vez dentro de MySQL indicaremos las siguientes líneas.
GRANT ALL PRIVILEGES ON postfixadmin.* TO 'postfixadmin'@'%' IDENTIFIED BY 'entrar';
GRANT SELECT ON postfixadmin.* TO 'postfix'@'localhost' IDENTIFIED BY 'entrar';
FLUSH PRIVILEGES;
QUIT;

1.3 Puesta en marcha de Postfix Admin.
- Una vez hecho lo anterior deberemos de irnos al navegador web e indicaremos en el buscador la siguiente línea en mi caso: “IP_servidor/postfixadmin/setup.php”

- Nos aparecerá una pantalla donde deberemos de indicar una contraseña y repetirla y nos dará una clave que tendremos que introducir en “/etc/postfixadmin/config.inc.php”

- Incluiremos la siguiente línea, para que nos permita crear un usuario administrador.
Ver el archivo adjunto 2809

- Desde este mismo archivo también deberemos de modificar las siguientes opciones:
$CONF['admin_email'] = 'postmaster@ejemplo1.com';

- Crearemos un usuario especial del sistema operativo donde se guardarán a partir de ahora
todos los buzones virtuales:

"sudo groupadd -g 5000 vmail"
"sudo useradd -d /home/vmail -m -u 5000 -g 5000 vmail"

- Reiciamos postfix “service postfix reload”.

Una vez reiniciados podemos ver desde el navegador si recargamos la página como desaparece la advertencia de la contraseña y podemos crear un nuevo usuario administrador, en mi caso sera "administrador@ejemplo1.com"
Nos podemos encontrar con el error de que al crear el usuario nos de un fallo de que el correo no es valido eso puede ser porque el dominio no tiene un servidor de correo para esa dirección y por lo tanto no puede dar respuesta, para ello deberemos de revisar el DNS del servidor e indicar en /var/lib/bind/ el archivo correcto añadirle una entrada de correo.

1.4 Configurar Postifix para utilizar buzones virtuales y autenticación mediante SASL
Editaremos el archivo “/etc/postfix/main.cf” e incluiremos las siguientes líneas:

virtual_uid_maps = static:5000
virtual_gid_maps = static:5000
virtual_mailbox_base = /home/vmail
virtual_mailbox_domains = mysql:/etc/postfix/mysql/virtual_mailbox_domains.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql/virtual_mailbox_maps.cf
virtual_alias_maps = mysql:/etc/postfix/mysql/virtual_alias_maps.cf
relay_domains = mysql:/etc/postfix/mysql/relay_domains.cf
smtpd_recipient_restrictions = permit_mynetworks,
permit_sasl_authenticated,
reject_non_fqdn_hostname,
reject_non_fqdn_sender,
reject_non_fqdn_recipient,
reject_unauth_destination,
reject_unauth_pipelining,
reject_invalid_hostname #Esto va todo seguido hasta terminar las ,
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous

A continuación debemos crear una serie de archivos con los que le indicamos a Postfix qué
consultas debe hacer a la base de datos para obtener la lista de dominios, usuarios,
buzones, etc. con los que trabajará el servidor.

Creamos la carpeta mysql, "mkdir /etc/postfix/mysql"

- Tabla de dominios virtuales
Creamos el archivo “/etc/postfix/mysql/virtual_mailbox_domains.cf” para acceder a la lista de dominios virtuales e incluimos las siguientes líneas.

hosts = 127.0.0.1
user = postfix
password = entrar
dbname = postfixadmin
query = SELECT domain FROM domain \
WHERE domain='%s' and backupmx = 0 and active = 1

- Tabla de buzones virtuales
Creamos el archivo “/etc/postfix/mysql/virtual_mailbox_maps.cf” para acceder a la liste de buzones virutales de usuario e indicamos las siguientes líneas.

hosts = 127.0.0.1
user = postfix
password = entrar
dbname = postfixadmin
query = SELECT maildir FROM mailbox WHERE username='%s' AND active =1



- Tabla de aliases virtuales
Creamos el archivo “/etc/postfix/mysql/virtual_alias_maps.cf” para acceder a la lista de aliases virtuales e introducimos:

user = postfix
password = entrar
dbname = postfixadmin
query = SELECT goto FROM alias WHERE address='%s' AND active = 1

- Tabla de dominios para los que se acepta retransmitir
Creamos el archivo “/etc/postfix/mysql/relay_domains.cf” para acceder a la lista de dominios para los que se transmitirá corre.

hosts = 127.0.0.1
user = postfix
password = entrar
dbname = postfixadmin
query = SELECT domain FROM domain WHERE domain='%s' and backupmx =1

Configurar el servicio SMTP para requerir autenticación gestionada por SASL
Creamos el archivo “/etc/postfix/sasl/smtpd.conf”:

pwcheck_method: saslauthd
mech_list: PLAIN LOGIN

- Añadimos el usuario postfix al grupo sasl:

sudo adduser postfix sasl


1.5 Configurar Dovecot para usar los usuarios de la base de datos
A continuación debemos modificar una serie de archivos para que indicar a Dovecot que queremos autenticar a los usuarios con una base de datos de MySQL.

- En primer lugar, en el archivo /etc/dovecot/conf.d/10-auth.conf, descomentamos una línea para indicar que se debe incluir el archivo de configuración auth-sql.conf.ext :

!include auth-sql.conf.ext

- En el archivo /etc/dovecot/conf.d/auth-sql.conf.ext indicaremos a Dovecot el método para obtener la lista de usuarios y contraseñas:

userdb sql {
driver = sql
args = /etc/dovecot/dovecot-mysql.conf
}
passdb sql {
driver = sql
args = /etc/dovecot/dovecot-mysql.conf
}

- Creamos el archivo /etc/dovecot/dovecot-mysql.conf con el que indicamos cómo consultar los datos de los usuarios:

driver = mysql
connect = host=127.0.0.1 dbname=postfixadmin user=postfix password=entrar
default_pass_scheme = MD5-CRYPT
user_query = SELECT '/home/vmail/%d/%n' as home, 5000 AS uid, 5000 AS gid FROM mailbox WHERE username = '%u'
password_query = SELECT password FROM mailbox WHERE username = '%u'

- También nos hará falta modificar el archivo /etc/dovecot/conf.d/10-mail.conf, para indicar dónde se van a guardar los buzones, así como los UID y GID que tienen permitida la autenticación:

mail_location = maildir:/home/vmail/%d/%n/Maildir:INDEX=/home/vmail/%d/%n/Maildir/indexes

first_valid_uid = 5000
last_valid_uid = 5000

first_valid_gid = 5000
last_valid_gid = 5000


- A continuación en el archivo /etc/dovecot/conf.d/10-master.conf, hacemos los siguientes cambios que permitirán a Postfix autenticar las conexiones SMTP a través de Dovecot (IMAP):

service auth {
# auth_socket_path points to this userdb socket by default. It's typically
# used by dovecot-lda, doveadm, possibly imap process, etc. Its default
# permissions make it readable only by root, but you may need to relax these
# permissions. Users that have access to this socket are able to get a list
# of all usernames and get results of everyone's userdb lookups.
unix_listener auth-userdb {
#mode = 0600
user = vmail
group = mail
}
# Postfix smtp-auth
unix_listener /var/spool/postfix/private/auth {
mode = 0666
user = postfix
group = postfix
}
# Auth process is run as this user.
#user = $default_internal_user
}

- Por último, cambiamos algunos datos necesarios en el archivo /etc/dovecot/conf.d/15-lda.conf, pues nos conviene utilizar a Dovecot como agente de entrega de correo (MDA):

postmaster-address = postmaster@dom09.example.com
hostname = server.dom09.example.com
protocol lda{
#Space separated list of plugins to load (default is global mail_plugins).
mail_plugins = $mail_plugins
}

1.6 Configurar Postfix para que utilice a Dovecot como MDA
- Editamos /etc/postfix/main.cd y añadimos las opciones:

mailbox_command = /usr/lib/dovecot/deliver
mailbox_transport = dovecot

- En el archivo /etc/postfix/master.cf añadimos un nuevo servicio para Dovecot:

#Dovecot
dovecot unix - n n - - pipe
flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -d ${recipient}

1.7 Configurar SASL para que autentique los usuarios a través de un servidor IMAP
- Actualizamos el archivo /etc/default/saslauthd añadiendo o modificando las siguientes clausulas:

START=yes

#Autenticar con servidor IMAP
MECHANISMS=”rimap”

#Dirección del servidor IMAP
MECH_OPTIONS=”localhost”
OPTIONS=”-c -m /var/spool/postfix/var/run/saslauthd -r”

1.8 Reiniciar los servicios y comprobar la autenticación
- Comprobamos la configuración de Postfix por si hay errores, que si no tenemos errores no nos aparecerá nada.

postfix check

- Reiniciamos los servicios:

service bind9 restart
service postfix restart
service dovecot restart
service saslauthd restart

- Para que funcione deberemos crear desde la aplicación de postfixadmin un nuevo dominio desde el menú “lista de dominio > Nuevo dominio” deberemos indicarle el nombre de "ejemplo1.com" y añadir al usuario administrador para autentificarlo mediante SASL para ello desde el menú “Lista de direcciones virtuales > Añadir buzón” y añadimos el buzón para administrador@ejemplo1.com

AHORA VIENE EL PROBLEMA QUE A LA HORA DE UTILIZAR LA APLICACIÓN WEB SQUIRRELMAIL ME APARECE EL SIGUEINTE ERROR CUANDO INTRODUZCO EL CORREO DE UN DOMINIO VIRTUAL.
Ver el archivo adjunto 2810

Y este es el archivo "tail -10 /var/log/mail.log"
Ver el archivo adjunto 2811
:(:(:(

GRACIAS DE ANTEMANO.
 

Borja Rodríguez

Amo y señor de los Chapuzas
Miembro del equipo
Registrado
4 Jul 2012
Mensajes
81.559
Puntos
113
Edad
34
Ni idea, pero respondo para que tengas visibilidad por si alguien te puede ayudar.
 
Registrado
6 May 2014
Mensajes
14
Puntos
0
Edad
28
Gracias Borja por tu ayuda, que llevo una semana y pico y no doy con ninguna solución.:fallopc:
 

Borja Rodríguez

Amo y señor de los Chapuzas
Miembro del equipo
Registrado
4 Jul 2012
Mensajes
81.559
Puntos
113
Edad
34
Es que es algo muy concreto, te lo subo pero complicado.
 

nodeNET

Administrator
Registrado
23 Mar 2014
Mensajes
119
Puntos
28
Buenos dias

Como has añadido el dominio y el usuario virtual? Por que no he leído por ningún lado que lo hayas registrado.

Lo he leído por encima.

Además de todo lo que has instalado y no se si lo has hecho te voy a recomendar algo:
Roundcube + fail2ban plugin
fail2ban
rkhunter
iptables bien configurado
spamassasin
greylist
Amavis + firma DKIM
Clamav
Si es un dedicado habilita las quotas de usuario en disco.

Un saludo.
 
Registrado
6 May 2014
Mensajes
14
Puntos
0
Edad
28
Gracias por la ayuda, alfinal he decidico instalar el servidor desde 0 y tener un panel de control ispcp omega, vaya me sigue dando un error el apache, que es el siguiente:
root@ispcp:~# service apache2 start
* Starting web server apache2 *
* The apache2 configtest failed.
Output of config test was:
AH00526: Syntax error on line 55 of /etc/apache2/sites-enabled/00_master.conf:
Either all Options must start with + or -, or no Option may.
Action 'configtest' failed.
The Apache error log may have more information.


En el archivo /var/log/apache2/error.log me aparece lo siguiente:
root@ispcp:~# tail -10 /var/log/apache2/error.log
[Fri May 09 17:45:46.420262 2014] [mpm_event:notice] [pid 15695:tid 139979969984384] AH00489: Apache/2.4.6 (Ubuntu) configured -- resuming normal operations
[Fri May 09 17:45:46.420318 2014] [core:notice] [pid 15695:tid 139979969984384] AH00094: Command line: '/usr/sbin/apache2'
[Fri May 09 17:45:53.474067 2014] [mpm_event:notice] [pid 15695:tid 139979969984384] AH00491: caught SIGTERM, shutting down
[Fri May 09 17:45:54.507380 2014] [mpm_event:notice] [pid 15847:tid 140494012729216] AH00489: Apache/2.4.6 (Ubuntu) configured -- resuming normal operations
[Fri May 09 17:45:54.507433 2014] [core:notice] [pid 15847:tid 140494012729216] AH00094: Command line: '/usr/sbin/apache2'
[Fri May 09 17:50:37.171133 2014] [mpm_event:notice] [pid 15847:tid 140494012729216] AH00491: caught SIGTERM, shutting down
[Fri May 09 17:50:38.207095 2014] [mpm_event:notice] [pid 31451:tid 140016234518400] AH00489: Apache/2.4.6 (Ubuntu) mod_fcgid/2.3.9 configured -- resuming normal operations
[Fri May 09 17:50:38.207157 2014] [core:notice] [pid 31451:tid 140016234518400] AH00094: Command line: '/usr/sbin/apache2'
[Fri May 09 17:52:24.873442 2014] [mpm_event:notice] [pid 31451:tid 140016234518400] AH00491: caught SIGTERM, shutting down


Estoy intentando resolverlo, pero aun nada, probe con quitar los errores de esas líneas pero entonces ispcp no me funcionaba y me daba el siguiente error en el navegador:
Ver el archivo adjunto 2827

De nuevo de decir que gracias por la ayuda!!
 

nodeNET

Administrator
Registrado
23 Mar 2014
Mensajes
119
Puntos
28
/etc/apache2/sites-enabled/00_master.conf

pinta aqui la conf de ese archivo
 
Registrado
6 May 2014
Mensajes
14
Puntos
0
Edad
28
Gracias por vuestra ayuda al final de darles muchas vueltas al asunto instale el panel de control i-MSCP y va perfectamente, es fácil de instalar con el siguiente vídeo-tutorial "http://www.youtube.com/watch?v=OxBNgyDtT80" aparte tambien deberemos de activar la depuración:

- Es interesante tener la depuración habilitada para inspeccionar posibles problemas, tienes que cambiar esa opción en /etc/imscp/imscp.conf:
# nano /etc/imscp/imscp.conf
/*Busca la opción DEBUG dentro de ese archivo con Ctrl w*/
/*DEBUG = 0 (Depuracion Deshabilitada), DEBUG = 1 (Depuracion Habilitada)*/
DEBUG = 1

- También instalar mcrypt mediante el siguiente tutorial "http://solo-ubuntu.blogspot.com.es/2009/12/como-instalo-mcrypt-para-php.html" y reconfigurar i-MSCP con el comando "# /var/www/imscp/engine/setup/imscp-setup --reconfigure"

y ya accedemos al navegador con la Ip y listo.

:numero1:
 
Arriba