Servidor Perfeito · 4 min read · Dec 02, 2025

Estendendo o Servidor Perfeito - Debian Squeeze [ISPConfig 3] - Página 2

3. ROUNDCUBE

Seguindo as instruções acima, você pode instalar o roundcube via apt-get. No entanto, seguindo outra lógica (se você tiver tempo e coragem), você pode instalar o roundcube em seu próprio subdomínio, manualmente.

No “Servidor Perfeito ….” você geralmente instala o Squirrelmai. No entanto, se você não quiser, pode removê-lo:

apt-get remove squirrelmail

e excluir o /etc/apache2/conf.d/squirrelmail.conf:

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

OU, se você quiser, edite o /etc/apache2/conf.d/squirrelmail.conf e mude o alias para algo como ‘webmail1’.

Instale o roundcube. (Você DEVE ter a senha do administrador do mysql antes de prosseguir – Deixe o dbconfig-common configurar o banco de dados. Você será questionado sobre a senha do administrador do banco de dados e a senha do novo usuário que será criado para o roundcube. Responda a essas perguntas e continue:

apt-get install roundcube roundcube-mysql

Exemplo de respostas: “Configurar banco de dados para roundcube com dbconfig-common?” …. Responda Sim “Tipo de banco de dados a ser usado pelo roundcube: … Responda mysql “Senha do usuário administrativo do banco de dados:” … Responda sua-senha-admin-DB “Senha da aplicação MySQL para roundcube:” … Responda a-senha-que-você-quer-dar-ao-usuário-roundcube “Confirmação de senha:”… Responda a-senha-que-você-quer-dar-ao-usuário-roundcube

Se algo der errado, você pode sempre executar:

dpkg-reconfigure roundcube-core

Para mais informações, consulte este post.

Para que todos possam acessar seu webmail (sob seu nome de domínio), você deve criar ou editar o arquivo /etc/apache2/conf.d/roundcube para definir o alias como ‘webmail’. Se você quiser SSL, deve incluir as duas últimas diretivas (IfModule mod_rewrite.c) para que o apache REDIRECIONE SEMPRE para sua instalação SSL do ISPConfig.

nano /etc/apache2/conf.d/roundcube
# Esses aliases não funcionam corretamente com vários hosts em seu servidor apache  
# Descomente-os para usá-los ou adapte-os à sua configuração  
#    Alias /roundcube/program/js/tiny_mce/ /usr/share/tinymce/www/  
    Alias /roundcube /var/lib/roundcube  
    Alias /webmail /var/lib/roundcube  
  
# Acesso aos arquivos tinymce  
  
      Options Indexes MultiViews FollowSymLinks  
      AllowOverride None  
      Order allow,deny  
      allow from all  
  
  
  
  Options +FollowSymLinks  
  # Isso é necessário para analisar /var/lib/roundcube/.htaccess. Veja seu  
  # conteúdo antes de definir AllowOverride como None.  
  AllowOverride All  
  order allow,deny  
  allow from all  
  
  
# Protegendo diretórios 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 e acima, adicione também o seguinte  
  
  
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  
   

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

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

e DEFINA algumas variáveis no arquivo (se esta for a primeira vez que você edita o arquivo, as linhas são 60 e 66):

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

Se você instalar o seguinte plugin (o logger que ajuda o fail2ban), você deve estender a lista de plugins no mesmo arquivo. Se o único plugin for o que será instalado logo em seguida, você deve editar a linha (42) como abaixo:

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

Instale o plugin roundcube logger de http://mattrude.com/projects/roundcube-fail2ban-plugin/.

Basicamente, você deve baixar o arquivo (fail2ban.php) e colá-lo na pasta fail2ban na pasta de plugins do roundcube. Finalmente, você deve ter este arquivo: /usr/share/roundcube/plugins/fail2ban/fail2ban.php. Execute:

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 atualizará o arquivo de log a cada tentativa de login falha: /var/log/roundcube/userlogins

Não se esqueça de editar o link para o webmail no ISPConfig (Sistema -> Configuração da Interface -> (aba) Mail) e defini-lo como /webmail. Por fim, reinicie o apache.

/etc/init.d/apache2 restart

Agora você pode acessar o webmail em http://www.example.com/webmail

4. FAIL2BAN

Estenda o arquivo jail.local que falko sugere no Servidor Perfeito - Debian Squeeze (Debian 6.0) Com BIND & Courier [ISPConfig 3]: /etc/fail2ban/jail.local

nano /etc/fail2ban/jail.local

Você deve anexar ou editar o seguinte:

[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

A porta 50443 no roundcube é necessária apenas se você ativou o redirecionamento para https (veja no início deste tutorial). A porta 50000 no webmin-auth é a porta alterada (veja no início deste tutorial). A porta 50022 no ssh é a porta alterada (veja nas seções seguintes deste tutorial).

Por último (e muito importante), não se esqueça de criar o arquivo roundcube.conf /etc/fail2ban/filter.d/roundcube.conf.

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

com o seguinte conteúdo:

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

Felizmente, os filtros webmin-auth e ssh já estão prontos para nós pelo próprio fail2ban. Reinicie o fail2ban:

/etc/init.d/fail2ban restart

Se alguém adicionar muitas jails no fail2ban, algumas delas podem não iniciar (erros em /var/log/fail2ban.log, mas não na saída !!!). Veja por si mesmo executando:

iptables -L -n 

Infelizmente, a solução é um pouco uma gambiarra… mas pelo menos é uma solução:

No arquivo /usr/bin/fail2ban-client, na linha 145, você deve inserir time.sleep(0.1) ou time.sleep(0.05):

nano /usr/bin/fail2ban-client

Então, antes da alteração, o arquivo fica assim:

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

E depois da alteração, o arquivo fica assim:

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

Reinicie novamente o fail2ban:

/etc/init.d/fail2ban restart

Você pode verificar se todas as jails estão ativas com o comando:

iptables -L -n 
Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.