Server Setup · 4 min read · Dec 02, 2025

Estensione del Server Perfetto - Debian Squeeze [ISPConfig 3] - Pagina 2

3. ROUNDCUBE

Seguendo le istruzioni sopra puoi installare roundcube tramite apt-get. Tuttavia seguendo un’altra logica (se hai tempo e coraggio) puoi installare roundcube nel suo sottodominio, manualmente.

In “Perfect Server ….” di solito installi Squirrelmai. Tuttavia, se non lo vuoi, puoi rimuoverlo:

apt-get remove squirrelmail

e cancellare il file /etc/apache2/conf.d/squirrelmail.conf:

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

OPPURE, se lo vuoi, modifica il file /etc/apache2/conf.d/squirrelmail.conf e cambia l’alias in qualcosa come ‘webmail1’.

Installa roundcube. (Devi avere la password dell’amministratore mysql prima di procedere – Lascia che dbconfig-common configuri il database. Ti verranno poste alcune domande sulla password dell’amministratore db e sulla password del nuovo utente che verrà creato per roundcube. Rispondi a queste domande e continua:

apt-get install roundcube roundcube-mysql

Esempi di risposte: “Configurare il database per roundcube con dbconfig-common?” …. Rispondi Sì “Tipo di database da utilizzare per roundcube: …Rispondi mysql “Password dell’utente amministrativo del database:” … Rispondi la-tua-password-DB “Password dell’applicazione MySQL per roundcube:” … Rispondi la-password-che-vuoi-dare-all’utente-roundcube “Conferma password:”… Rispondi la-password-che-vuoi-dare-all’utente-roundcube

Se qualcosa va storto puoi sempre eseguire:

dpkg-reconfigure roundcube-core

Per ulteriori informazioni, si prega di consultare questo post.

Affinché tutti possano accedere alla propria webmail (sotto il proprio nome di dominio) devi creare o modificare il file /etc/apache2/conf.d/roundcube in modo da impostare l’alias su ‘webmail’. Se desideri SSL, dovresti includere le ultime due direttive (IfModule mod_rewrite.c) per far sì che apache reindirizzi SEMPRE alla tua installazione SSL di ISPConfig.

nano /etc/apache2/conf.d/roundcube
# Questi alias non funzionano correttamente con più host sul tuo server apache  
# Decommentali per usarli o adattali alla tua configurazione  
#    Alias /roundcube/program/js/tiny_mce/ /usr/share/tinymce/www/  
    Alias /roundcube /var/lib/roundcube  
    Alias /webmail /var/lib/roundcube  
  
# Accesso ai file tinymce  
  
      Options Indexes MultiViews FollowSymLinks  
      AllowOverride None  
      Order allow,deny  
      allow from all  
  
  
  
  Options +FollowSymLinks  
  # Questo è necessario per analizzare /var/lib/roundcube/.htaccess. Vedi il suo  
  # contenuto prima di impostare AllowOverride su None.  
  AllowOverride All  
  order allow,deny  
  allow from all  
  
  
# Proteggere le directory di base:  
  
        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]  
      
    
  
  
  
# Per ISPConfig 3.0.5.1 e versioni superiori, aggiungi anche quanto segue  
  
  
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  
   

Modifica /var/lib/roundcube/config/main.inc.php:

nano /var/lib/roundcube/config/main.inc.php

e IMPOSTA alcune variabili nel file (se questa è la prima volta che modifichi il file, le righe sono 60 e 66):

auto_create_user = TRUE;  
$rcmail_config['default_host'] = 'localhost';

Se installerai il seguente plugin (il logger che aiuta fail2ban) devi estendere l’elenco dei plugin nello stesso file. Se l’unico plugin è quello che verrà installato subito dopo, devi modificare la riga (42) come segue:

$rcmail_config['plugins'] = array('fail2ban'); 

Installa il plugin logger di roundcube da http://mattrude.com/projects/roundcube-fail2ban-plugin/.

Fondamentalmente devi scaricare il file (fail2ban.php) e incollarlo nella cartella fail2ban nella cartella dei plugin di roundcube. Infine, devi avere questo file: /usr/share/roundcube/plugins/fail2ban/fail2ban.php. Esegui:

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

Questo plugin aggiornerà il file di log ad ogni tentativo di accesso fallito: /var/log/roundcube/userlogins

Non dimenticare di modificare il link per la webmail in ISPConfig (Sistema -> Configurazione Interfaccia -> (tab) Mail) e impostarlo su /webmail. Infine, riavvia apache.

/etc/init.d/apache2 restart

Ora puoi accedere alla webmail su http://www.example.com/webmail

4. FAIL2BAN

Estendi il file jail.local che falko suggerisce in Il Server Perfetto - Debian Squeeze (Debian 6.0) Con BIND & Courier [ISPConfig 3]: /etc/fail2ban/jail.local

nano /etc/fail2ban/jail.local

Devi aggiungere o modificare quanto segue:

[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

La porta 50443 in roundcube è necessaria solo se hai abilitato il reindirizzamento a https (guarda all’inizio di questo tutorial).
La porta 50000 in webmin-auth è la porta cambiata (guarda all’inizio di questo tutorial).
La porta 50022 in ssh è la porta cambiata (guarda nelle sezioni seguenti di questo tutorial).

Ultimo (e molto importante) non dimenticare di creare il file roundcube.conf /etc/fail2ban/filter.d/roundcube.conf.

nano /etc/fail2ban/filter.d/roundcube.conf

con il seguente contenuto:

[Definition]
failregex = FAILED login for .*. from 
ignoreregex =

Per fortuna i filtri webmin-auth e ssh sono già stati fatti per noi da fail2ban stesso. Riavvia fail2ban:

/etc/init.d/fail2ban restart

Se qualcuno aggiunge molte prigioni in fail2ban, alcune di esse potrebbero non avviarsi (errori in /var/log/fail2ban.log ma non nell’output !!!). Vedi tu stesso eseguendo:

iptables -L -n 

Sfortunatamente, la soluzione è un po’ un hack… ma almeno è una soluzione:

Nel file /usr/bin/fail2ban-client alla riga 145 devi inserire time.sleep(0.1) o time.sleep(0.05):

nano /usr/bin/fail2ban-client

Quindi prima della modifica il file appare così:

[...]  
 def __processCmd(self, cmd, showRet = True):  
                beautifier = Beautifier()  
                for c in cmd:  
                        beautifier.setInputCmd(c)  
                        try:  
[...]  

E dopo la modifica il file appare così:

[...]  
 def __processCmd(self, cmd, showRet = True):  
                beautifier = Beautifier()  
                for c in cmd:  
                        time.sleep(0.05)  
                        beautifier.setInputCmd(c)  
                        try:  
[...]  

Riavvia di nuovo fail2ban:

/etc/init.d/fail2ban restart

Puoi controllare che tutte le prigioni siano attive con il comando:

iptables -L -n 
Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.