Servidor Perfecto · 4 min read · Dec 02, 2025
Extender Perfect Server - Debian Squeeze [ISPConfig 3] - Página 2
3. ROUNDCUBE
Siguiendo las instrucciones anteriores, puedes instalar roundcube a través de apt-get. Sin embargo, siguiendo otra lógica (si tienes el tiempo y el coraje) puedes instalar roundcube en su propio subdominio, manualmente.
En “Perfect Server ….” normalmente instalas Squirrelmai. Sin embargo, si no lo quieres, puedes eliminarlo:
apt-get remove squirrelmaily eliminar el /etc/apache2/conf.d/squirrelmail.conf:
rm /etc/apache2/conf.d/squirrelmail.confO si lo quieres, edita el /etc/apache2/conf.d/squirrelmail.conf y cambia el alias a algo como ‘webmail1’.
Instala roundcube. (Debes tener la contraseña del administrador de mysql antes de continuar – Deja que dbconfig-common configure la base de datos. Se te harán algunas preguntas sobre la contraseña del administrador de la base de datos y la contraseña del nuevo usuario que se creará para roundcube. Responde esas preguntas y continúa:
apt-get install roundcube roundcube-mysqlEjemplo de respuestas: “¿Configurar la base de datos para roundcube con dbconfig-common?” …. Responde Sí
“Tipo de base de datos que se utilizará para roundcube: …Responde mysql
“Contraseña del usuario administrativo de la base de datos:” … Responde tu-contraseña-admin-DB
“Contraseña de la aplicación MySQL para roundcube:” … Responde la-contraseña-que-quieres-dar-al-usuario-roundcube
“Confirmación de contraseña:”… Responde la-contraseña-que-quieres-dar-al-usuario-roundcube
Si algo sale mal, siempre puedes ejecutar:
dpkg-reconfigure roundcube-corePara más información, consulta esta publicación.
Para que todos puedan acceder a su webmail (bajo su nombre de dominio) debes crear o editar el archivo /etc/apache2/conf.d/roundcube para establecer el alias a ‘webmail’. Si deseas SSL, debes incluir las dos últimas directivas (IfModule mod_rewrite.c) para que apache REDIRECCIONE SIEMPRE a tu instalación SSL de ISPConfig.
nano /etc/apache2/conf.d/roundcube# Estos alias no funcionan correctamente con varios hosts en tu servidor apache
# Descomenta para usarlos o adáptalos a tu configuración
# Alias /roundcube/program/js/tiny_mce/ /usr/share/tinymce/www/
Alias /roundcube /var/lib/roundcube
Alias /webmail /var/lib/roundcube
# Acceso a archivos tinymce
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order allow,deny
allow from all
Options +FollowSymLinks
# Esto es necesario para analizar /var/lib/roundcube/.htaccess. Consulta su
# contenido antes de establecer AllowOverride en None.
AllowOverride All
order allow,deny
allow from all
# Protegiendo directorios básicos:
Options -FollowSymLinks
AllowOverride None
Options -FollowSymLinks
AllowOverride None
Order allow,deny
Deny from all
Options -FollowSymLinks
AllowOverride None
Order allow,deny
Deny from all
RewriteEngine on
RewriteCond %{HTTPS} !^on$ [NC]
RewriteRule . https://%{HTTP_HOST}:50443%{REQUEST_URI} [L]
RewriteEngine on
RewriteCond %{HTTPS} !^on$ [NC]
RewriteRule . https://%{HTTP_HOST}:50443%{REQUEST_URI} [L]
# Para ISPConfig 3.0.5.1 y superiores, también, agrega lo siguiente
AddType application/x-httpd-php .php
php_flag magic_quotes_gpc Off
php_flag track_vars On
php_admin_flag allow_url_fopen Off
php_value include_path .:/usr/share/php:/usr/share/pear
php_admin_value upload_tmp_dir /var/lib/roundcube/temp
php_admin_value open_basedir /usr/share/php:/usr/lib/roundcube:/etc/roundcube:/usr/share/roundcube:/var/lib/roundcube:/var/log/roundcube
php_flag register_globals off
Edita /var/lib/roundcube/config/main.inc.php:
nano /var/lib/roundcube/config/main.inc.phpy ESTABLECE algunas variables en el archivo (si es la primera vez que editas el archivo, las líneas son 60 y 66):
auto_create_user = TRUE;
$rcmail_config['default_host'] = 'localhost';Si vas a instalar el siguiente plugin (el logger que ayuda a fail2ban) debes extender la lista de plugins en el mismo archivo. Si el único plugin es el que se instalará justo después, debes editar la línea (42) como a continuación:
$rcmail_config['plugins'] = array('fail2ban'); Instala el plugin logger de roundcube desde http://mattrude.com/projects/roundcube-fail2ban-plugin/.
Básicamente, debes descargar el archivo (fail2ban.php) y pegarlo en la carpeta fail2ban en la carpeta de plugins de roundcube. Finalmente, debes tener este archivo: /usr/share/roundcube/plugins/fail2ban/fail2ban.php. Ejecuta:
cd /usr/share/roundcube/plugins/
wget –no-check-certificate http://github.com/downloads/mattrude/rc-plugin-fail2ban/roundcube-fail2ban-plugin.1.0.tgz
tar -xvzf roundcube-fail2ban-plugin.1.0.tgz
touch /var/log/roundcube/userlogins
chown www-data:www-data /var/log/roundcube/userlogins
Este plugin actualizará el archivo de registro con cada intento de inicio de sesión fallido: /var/log/roundcube/userlogins
No olvides editar el enlace para el webmail en ISPConfig (Sistema -> Configuración de Interfaz -> (pestaña) Correo) y establecerlo en /webmail. Por último, reinicia apache.
/etc/init.d/apache2 restartAhora puedes acceder al webmail en http://www.example.com/webmail
4. FAIL2BAN
Extiende el archivo jail.local que falko sugiere en El Perfect Server - Debian Squeeze (Debian 6.0) Con BIND & Courier [ISPConfig 3]: /etc/fail2ban/jail.local
nano /etc/fail2ban/jail.localDebes agregar o editar lo siguiente:
[roundcube]
enabled = true
port = http,50443
filter = roundcube
logpath = /var/log/roundcube/userlogins
maxretry = 5
[webmin-auth]
enabled = true
port = 50000
filter = webmin-auth
logpath = /var/log/auth.log
maxretry = 3
[ssh]
enabled = true
port = 50022
filter = sshd
logpath = /var/log/auth.log
maxretry = 6El puerto 50443 en roundcube solo es necesario si habilitaste la redirección a https (mira al principio de este tutorial).
El puerto 50000 en webmin-auth es el puerto cambiado (mira al principio de este tutorial).
El puerto 50022 en ssh es el puerto cambiado (mira en las siguientes secciones de este tutorial).
Por último (y muy importante), no olvides crear el archivo roundcube.conf /etc/fail2ban/filter.d/roundcube.conf.
nano /etc/fail2ban/filter.d/roundcube.confcon el siguiente contenido:
[Definition]
failregex = FAILED login for .*. from
ignoreregex = Afortunadamente, los filtros webmin-auth y ssh ya están hechos para nosotros por el propio fail2ban. Reinicia fail2ban:
/etc/init.d/fail2ban restartSi alguien agrega muchas cárceles en fail2ban, entonces algunas de ellas pueden no iniciarse (errores en /var/log/fail2ban.log pero no en la salida !!!). Velo tú mismo ejecutando:
iptables -L -n Desafortunadamente, la solución es un poco un hack… pero al menos es una solución:
En el archivo /usr/bin/fail2ban-client en la línea 145 debes insertar time.sleep(0.1) o time.sleep(0.05):
nano /usr/bin/fail2ban-clientAsí que antes del cambio, el archivo se ve así:
[...]
def __processCmd(self, cmd, showRet = True):
beautifier = Beautifier()
for c in cmd:
beautifier.setInputCmd(c)
try:
[...] Y después del cambio, el archivo se ve así:
[...]
def __processCmd(self, cmd, showRet = True):
beautifier = Beautifier()
for c in cmd:
time.sleep(0.05)
beautifier.setInputCmd(c)
try:
[...] Reinicia nuevamente fail2ban:
/etc/init.d/fail2ban restartPuedes verificar que todas las cárceles están activas con el comando:
iptables -L -n Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.