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 squirrelmail

y eliminar el /etc/apache2/conf.d/squirrelmail.conf:

rm /etc/apache2/conf.d/squirrelmail.conf

O 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-mysql

Ejemplo 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-core

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

y 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 restart

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

Debes 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 = 6

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

con 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 restart

Si 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-client

Así 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 restart

Puedes verificar que todas las cárceles están activas con el comando:

iptables -L -n 
Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

No spam. Cancela la suscripción en cualquier momento.