Servidor Perfecto · 12 min read · Jan 07, 2026
El Servidor Perfecto - CentOS 7 x86_64 (nginx, Dovecot, ISPConfig 3) - Página 3
23 Instalar RoundcubeMail
Para instalar el cliente de webmail Roundcube, ejecuta…
yum -y install roundcubemail
ISPConfig contiene un alias de webmail por defecto para squirremail dentro de su vhost de aplicaciones. Usaremos ese alias para el más moderno roundcube, así que creamos un symlink con el nombre squirrelmail en /usr/share
ln -s /usr/share/roundcubemail /usr/share/squirrelmail
Después de haber instalado ISPConfig 3, puedes acceder a RoundcubeMail de la siguiente manera:
El vhost de aplicaciones de ISPConfig en el puerto 8081 para nginx viene con una configuración de alias /webmail, así que puedes usar http://server1.example.com:8081/webmail para acceder a RoundcubeMail.
Si deseas usar un alias /webmail o /roundcubemail que puedas utilizar desde tus sitios web, esto es un poco más complicado que para Apache porque nginx no tiene alias globales (es decir, alias que pueden definirse para todos los vhosts). Por lo tanto, debes definir estos alias para cada vhost desde el cual deseas acceder a SquirrelMail.
Para hacer esto, pega lo siguiente en el campo Directivas de nginx en la pestaña Opciones del sitio web en ISPConfig:
Para hacer esto, pega lo siguiente en el campo Directivas de nginx en la pestaña Opciones del sitio web en ISPConfig:
location /roundcubemail {
root /usr/share/;
index index.php index.html index.htm;
location ~ ^/roundcubemail/(.+\.php)$ {
try_files $uri =404;
root /usr/share/;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $request_filename;
include /etc/nginx/fastcgi_params;
fastcgi_param PATH_INFO $fastcgi_script_name;
fastcgi_buffer_size 128k;
fastcgi_buffers 256 4k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
fastcgi_intercept_errors on;
}
location ~* ^/roundcubemail/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
root /usr/share/;
}
}
location /webmail {
rewrite ^/* /roundcubemail last;
}Si usas http s en lugar de http para tu vhost, debes agregar la línea fastcgi_param HTTPS on; a tu configuración de RoundcubeMail así:
location /roundcubemail {
root /usr/share/;
index index.php index.html index.htm;
location ~ ^/roundcubemail/(.+\.php)$ {
try_files $uri =404;
root /usr/share/;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param HTTPS on; # <-- agrega esta línea
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $request_filename;
include /etc/nginx/fastcgi_params;
fastcgi_param PATH_INFO $fastcgi_script_name;
fastcgi_buffer_size 128k;
fastcgi_buffers 256 4k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
fastcgi_intercept_errors on;
}
location ~* ^/roundcubemail/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
root /usr/share/;
}
}
location /webmail {
rewrite ^/* /roundcubemail last;
}Si usas tanto http como https para tu vhost, puedes usar la variable $https - ve al campo Directivas de nginx nuevamente, y en lugar de fastcgi_param HTTPS on; agregas la línea fastcgi_param HTTPS $https; para que puedas usar RoundcubeMail tanto para solicitudes http como https:
location /roundcubemail {
root /usr/share/;
index index.php index.html index.htm;
location ~ ^/roundcubemail/(.+\.php)$ {
try_files $uri =404;
root /usr/share/;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param HTTPS $https; # <-- agrega esta línea
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $request_filename;
include /etc/nginx/fastcgi_params;
fastcgi_param PATH_INFO $fastcgi_script_name;
fastcgi_buffer_size 128k;
fastcgi_buffers 256 4k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
fastcgi_intercept_errors on;
}
location ~* ^/roundcubemail/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
root /usr/share/;
}
}
location /webmail {
rewrite ^/* /squirrelmail last;
}Ahora necesitamos una base de datos para roundcube mail, la inicializaremos de la siguiente manera:
mysql -u root -p
En el prompt de mariadb usa:
CREATE DATABASE roundcubedb;
CREATE USER roundcubeuser@localhost IDENTIFIED BY ‘roundcubepassword’;
GRANT ALL PRIVILEGES on roundcubedb.* to roundcubeuser@localhost ;
FLUSH PRIVILEGES;
exit
Estoy usando detalles para la base de datos roundcube como prueba, por favor reemplaza los valores según tu elección por razones de seguridad. Terminaremos la instalación de roundcube después de haber instalado ISPConfig.
24 Instalar ISPConfig 3
Antes de comenzar la instalación de ISPConfig, asegúrate de que Apache esté detenido (si está instalado - es posible que algunos de tus paquetes instalados hayan instalado Apache como una dependencia sin que lo sepas). Si Apache2 ya está instalado en el sistema, deténlo ahora…
systemctl stop httpd.service
… y elimina los enlaces de inicio del sistema de Apache:
systemctl disable httpd.service
Asegúrate de que nginx esté en ejecución:
systemctl restart nginx.service
(Si tienes tanto Apache como nginx instalados, el instalador te pregunta cuál deseas usar: Apache y nginx detectados. Selecciona el servidor a usar para ISPConfig: (apache,nginx) [apache]:
Escribe nginx. Si solo Apache o nginx están instalados, esto es detectado automáticamente por el instalador, y no se hace ninguna pregunta.)
Descarga la versión actual de ISPConfig 3 e instálala. El instalador de ISPConfig configurará todos los servicios como Postfix, Dovecot, etc. por ti. No es necesario un setup manual como se requería para ISPConfig 2.
Ahora también tienes la posibilidad de permitir que el instalador cree un vhost SSL para el panel de control de ISPConfig, para que ISPConfig pueda ser accedido usando https:// en lugar de http://. Para lograr esto, simplemente presiona ENTER cuando veas esta pregunta: ¿Deseas una conexión segura (SSL) a la interfaz web de ISPConfig (y,n) [y]:.
Para instalar ISPConfig 3 desde la última versión lanzada, haz esto:
cd /tmp
wget http://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz
tar xfz ISPConfig-3-stable.tar.gz
cd ispconfig3_install/install/
El siguiente paso es ejecutar
php -q install.php
Esto iniciará el instalador de ISPConfig 3:
[root@server1 install]# php -q install.php
——————————————————————————–
_ _ _ _
| / | \ / \ / () / \
| | | \ --.| |_/ / | / \/ ___ _ __ | |_ _ __ _ _/ / | |–. \ / | | / \| ‘ \| | |/ ` | | |
| |/\/ / | | _/\ () | | | | | | | (| | __\ \
_/__/| __/\/|| ||| ||_, | __/
/ |
|__/
——————————————————————————–
>> Configuración inicial
Sistema Operativo: Redhat o compatible, versión desconocida.
A continuación habrá algunas preguntas para la configuración primaria, así que ten cuidado.
Los valores por defecto están en [corchetes] y pueden ser aceptados con
Escribe “quit” (sin las comillas) para detener el instalador.
Selecciona el idioma (en,de) [en]: <– ENTER
Modo de instalación (estándar, experto) [estándar]: <– ENTER
Nombre de host completamente calificado (FQDN) del servidor, ej. server1.domain.tld [server1.example.com]: <– ENTER
Nombre de host del servidor MySQL [localhost]: <– ENTER
Nombre de usuario root de MySQL [root]: <– ENTER
Contraseña root de MySQL []: <– tucontraseñarootsql
Base de datos MySQL a crear [dbispconfig]: <– ENTER
Conjunto de caracteres MySQL [utf8]: <– ENTER
Apache y nginx detectados. Selecciona el servidor a usar para ISPConfig: (apache,nginx) [apache]: <– nginx
Generando una clave privada RSA de 2048 bits
…………………………………………………………….+++
………………………………………..+++
escribiendo nueva clave privada en ‘smtpd.key’
—–
Estás a punto de ser preguntado para ingresar información que será incorporada
en tu solicitud de certificado.
Lo que estás a punto de ingresar es lo que se llama un Nombre Distinguido o DN.
Hay bastantes campos pero puedes dejar algunos en blanco
Para algunos campos habrá un valor por defecto,
Si ingresas ‘.’, el campo quedará en blanco.
—–
Nombre del país (código de 2 letras) [XX]: <– ENTER
Nombre del estado o provincia (nombre completo) []: <– ENTER
Nombre de la localidad (ej, ciudad) [Ciudad por defecto]: <– ENTER
Nombre de la organización (ej, empresa) [Empresa por defecto Ltd]: <– ENTER
Nombre de la unidad organizativa (ej, sección) []: <– ENTER
Nombre común (ej, tu nombre o el nombre de host de tu servidor) []: <– ENTER
Dirección de correo electrónico []: <– ENTER
Configurando Jailkit
Configurando Dovecot
Configurando Spamassassin
Configurando Amavisd
Configurando Getmail
Configurando Pureftpd
Configurando BIND
Configurando nginx
Configurando Vlogger
Configurando vhost de Apps
Configurando Bastille Firewall
Configurando Fail2ban
Instalando ISPConfig
Puerto de ISPConfig [8080]: <– ENTER
¿Deseas una conexión segura (SSL) a la interfaz web de ISPConfig (y,n) [y]: <– ENTER
Generando clave privada RSA, módulo de 4096 bits
…………………………………………………..++
…………………………………………………………………++
es 65537 (0x10001)
Estás a punto de ser preguntado para ingresar información que será incorporada
en tu solicitud de certificado.
Lo que estás a punto de ingresar es lo que se llama un Nombre Distinguido o DN.
Hay bastantes campos pero puedes dejar algunos en blanco
Para algunos campos habrá un valor por defecto,
Si ingresas ‘.’, el campo quedará en blanco.
—–
Nombre del país (código de 2 letras) [XX]: <– ENTER
Nombre del estado o provincia (nombre completo) []: <– ENTER
Nombre de la localidad (ej, ciudad) [Ciudad por defecto]: <– ENTER
Nombre de la organización (ej, empresa) [Empresa por defecto Ltd]: <– ENTER
Nombre de la unidad organizativa (ej, sección) []: <– ENTER
Nombre común (ej, tu nombre o el nombre de host de tu servidor) []: <– ENTER
Dirección de correo electrónico []: <– ENTER
Por favor ingresa los siguientes atributos ‘extra’
que serán enviados con tu solicitud de certificado
Una contraseña de desafío []: <– ENTER
Un nombre de empresa opcional []: <– ENTER
escribiendo clave RSA
Configurando DBServer
Instalando crontab de ISPConfig
no crontab para root
no crontab para getmail
Reiniciando servicios …
Deteniendo mysqld: [ OK ]
Iniciando mysqld: [ OK ]
Apagando postfix: [ OK ]
Iniciando postfix: [ OK ]
Deteniendo saslauthd: [FAILED]
Iniciando saslauthd: [ OK ]
Apagando amavisd: Daemon [1554] terminado por SIGTERM
[ OK ]
amavisd detenido
Iniciando amavisd: [ OK ]
Deteniendo clamd.amavisd: [ OK ]
Iniciando clamd.amavisd: [ OK ]
Deteniendo Dovecot Imap: [ OK ]
Iniciando Dovecot Imap: [ OK ]
Recargando php-fpm: [ OK ]
Recargando nginx: [ OK ]
Deteniendo pure-ftpd: [ OK ]
Iniciando pure-ftpd: [ OK ]
Instalación completada.
[root@server1 install]# Para solucionar los errores de Mailman que podrías obtener durante la instalación de ISPConfig, abre /usr/lib/mailman/Mailman/mm_cfg.py… vi /usr/lib/mailman/Mailman/mm_cfg.py … y establece DEFAULT_SERVER_LANGUAGE = ‘en’: [...] #------------------------------------------------------------- # El idioma por defecto para este servidor. DEFAULT_SERVER_LANGUAGE = 'en' [...] Reinicia Mailman: systemctl restart mailman.service Ahora terminaré la instalación de RoundcubeMail. Abre la siguiente URL en tu navegador: http://192.168.0.100:8081/roundcubemail/installer tendrás la bienvenida del instalador web de RoundcubeMail, desplázate hacia abajo en la página y haz clic en siguiente:
Luego ingresa los detalles de la base de datos de la base de datos roundcubedb que creamos en el capítulo 23 aquí:
Y establece el servidor SMTP en localhost y establece tu idioma preferido
y haz clic en “Crear configuración” para ir a la siguiente página. Abre el archivo /etc/roundcubemail/config.inc.php en la terminal: nano /etc/roundcubemail/config.inc.php y pega la configuración que se muestra en el instalador web en ese archivo y guarda el archivo. Luego regresa al instalador web y haz clic en el botón continuar. En esta página, haz clic en “inicializar base de datos”:
La página debería verse así después de la inicialización exitosa de la base de datos:
Para proteger la configuración de RoundcubeMail de modificaciones no autorizadas, eliminaré la carpeta del instalador ejecutando este comando en la terminal: rm -rf /usr/share/roundcubemail/installer ### 25 Primer Inicio de Sesión en ISPConfig Después puedes acceder a ISPConfig 3 en http(s)://server1.example.com:8080/ o http(s)://192.168.0.100:8080/ (http o https depende de lo que elegiste durante la instalación). Inicia sesión con el nombre de usuario admin y la contraseña admin (debes cambiar la contraseña por defecto después de tu primer inicio de sesión):
A continuación, debemos ajustar las rutas de configuración de BIND en ISPConfig. Haz clic en “Sistema” en el menú superior, luego en “Configuración del servidor” en el menú derecho. En la lista que aparece luego en el lado izquierdo, haz clic en el nombre del servidor.
Ve a la pestaña “DNS” del formulario:
y ingresa las rutas DNS de la siguiente manera: Directorio de archivos de zona BIND: /var/named
Ruta de named.conf de BIND: /etc/named.conf
Ruta de named.conf.local de BIND: /etc/named.conf.local El sistema ahora está listo para ser utilizado. Si deseas usar direcciones IPv6 con tus vhosts de nginx, por favor haz lo siguiente antes de crear vhosts IPv6 en ISPConfig: Abre /etc/sysctl.conf… vi /etc/sysctl.conf … y agrega la línea net.ipv6.bindv6only = 1: [...] net.ipv6.bindv6only = 1 Ejecuta… sysctl -p … después para que el cambio tenga efecto. #### 25.1 Manual de ISPConfig 3 Para aprender a usar ISPConfig 3, recomiendo encarecidamente descargar el Manual de ISPConfig 3. En más de 300 páginas, cubre el concepto detrás de ISPConfig (administrador, revendedores, clientes), explica cómo instalar y actualizar ISPConfig 3, incluye una referencia para todos los formularios y campos de formulario en ISPConfig junto con ejemplos de entradas válidas, y proporciona tutoriales para las tareas más comunes en ISPConfig 3. También describe cómo hacer que tu servidor sea más seguro y viene con una sección de solución de problemas al final. ### 25 Enlaces - CentOS: http://www.centos.org/ - ISPConfig: http://www.ispconfig.org/
Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.