ISPConfig · 4 min read · Dec 02, 2025

Расширение Perfect Server - Debian Squeeze [ISPConfig 3] - Страница 2

3. ROUNDCUBE

Следуя приведенным выше инструкциям, вы можете установить roundcube через apt-get. Однако, следуя другой логике (если у вас есть время и смелость), вы можете установить roundcube на своем собственном поддомене вручную.

В “Perfect Server ….” вы обычно устанавливаете Squirrelmai. Однако, если вы не хотите его, вы можете удалить его:

apt-get remove squirrelmail

и удалить /etc/apache2/conf.d/squirrelmail.conf:

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

ИЛИ, если вы хотите его оставить, отредактируйте /etc/apache2/conf.d/squirrelmail.conf и измените псевдоним на что-то вроде ‘webmail1’.

Установите roundcube. (У вас ДОЛЖЕН быть пароль администратора mysql перед тем, как продолжить – Позвольте dbconfig-common настроить базу данных. Вам будут заданы несколько вопросов о пароле администратора базы данных и пароле нового пользователя, который будет создан для roundcube. Ответьте на эти вопросы и продолжайте:

apt-get install roundcube roundcube-mysql

Примеры ответов: “Настроить базу данных для roundcube с dbconfig-common?” …. Ответьте Да
“Тип базы данных, используемой roundcube: …Ответьте mysql
“Пароль административного пользователя базы данных:” … Ответьте ваш-админ-пароль-DB
“Пароль приложения MySQL для roundcube:” … Ответьте пароль-вы хотите-дать-пользователю-roundcube
“Подтверждение пароля:”… Ответьте пароль-вы хотите-дать-пользователю-roundcube

Если что-то пойдет не так, вы всегда можете запустить:

dpkg-reconfigure roundcube-core

Для получения дополнительной информации, пожалуйста, смотрите этот пост.

Чтобы каждый мог получить доступ к своей веб-почте (под своим доменным именем), вам нужно создать или отредактировать файл /etc/apache2/conf.d/roundcube, чтобы установить псевдоним на ‘webmail’. Если вы хотите SSL, вы должны включить последние две директивы (IfModule mod_rewrite.c), чтобы apache ВСЕГДА перенаправлял на вашу SSL установку ISPConfig.

nano /etc/apache2/conf.d/roundcube
# Эти псевдонимы не работают должным образом с несколькими хостами на вашем сервере apache  
# Раскомментируйте их, чтобы использовать или адаптируйте их к вашей конфигурации  
#    Alias /roundcube/program/js/tiny_mce/ /usr/share/tinymce/www/  
    Alias /roundcube /var/lib/roundcube  
    Alias /webmail /var/lib/roundcube  
  
# Доступ к файлам tinymce  
  
      Options Indexes MultiViews FollowSymLinks  
      AllowOverride None  
      Order allow,deny  
      allow from all  
  
  
  
  Options +FollowSymLinks  
  # Это необходимо для разбора /var/lib/roundcube/.htaccess. Смотрите его  
  # содержимое перед установкой AllowOverride на None.  
  AllowOverride All  
  order allow,deny  
  allow from all  
  
  
# Защита основных директорий:  
  
        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]  
      
    
  
  
  
# Для ISPConfig 3.0.5.1 и выше, также добавьте следующее  
  
  
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  
   

Отредактируйте /var/lib/roundcube/config/main.inc.php:

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

и УСТАНОВИТЕ некоторые переменные в файле (если это первый раз, когда вы редактируете файл, строки 60 и 66):

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

Если вы установите следующий плагин (логгер, который помогает fail2ban), вам нужно будет расширить список плагинов в том же файле. Если единственным плагином является тот, который будет установлен сразу после этого, вам нужно отредактировать строку (42) следующим образом:

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

Установите плагин roundcube logger с http://mattrude.com/projects/roundcube-fail2ban-plugin/.

В основном вам нужно скачать файл (fail2ban.php) и вставить его в папку fail2ban в папке плагинов roundcube. В конечном итоге у вас должен быть этот файл: /usr/share/roundcube/plugins/fail2ban/fail2ban.php. Выполните:

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

Этот плагин будет обновлять файл журнала при каждой неудачной попытке входа: /var/log/roundcube/userlogins

Не забудьте отредактировать ссылку на веб-почту в ISPConfig (Система -> Конфигурация интерфейса -> (вкладка) Почта) и установить ее на /webmail. Наконец, перезапустите apache.

/etc/init.d/apache2 restart

Теперь вы можете получить доступ к веб-почте по адресу http://www.example.com/webmail

4. FAIL2BAN

Расширьте файл jail.local, который предлагает фалько в The
Perfect Server - Debian Squeeze (Debian 6.0) с BIND & Courier [ISPConfig 3]: /etc/fail2ban/jail.local

nano /etc/fail2ban/jail.local

Вам нужно добавить или отредактировать следующее:

[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

Порт 50443 в roundcube нужен только в том случае, если вы включили перенаправление на https (смотрите в начале этого руководства).
Порт 50000 в webmin-auth - это измененный порт (смотрите в начале этого руководства).
Порт 50022 в ssh - это измененный порт (смотрите в следующих разделах этого руководства).

Наконец (и очень важно), не забудьте создать файл roundcube.conf /etc/fail2ban/filter.d/roundcube.conf.

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

с следующим содержимым:

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

К счастью, фильтры webmin-auth и ssh уже сделаны для нас самим fail2ban. Перезапустите fail2ban:

/etc/init.d/fail2ban restart

Если кто-то добавит много тюрем в fail2ban, то некоторые из них могут не запуститься (ошибки в /var/log/fail2ban.log, но не в выводе !!!). Посмотрите сами, выполнив:

iptables -L -n 

К сожалению, решение немного хакерское… но, по крайней мере, это решение:

В файле /usr/bin/fail2ban-client на строке 145 вам нужно вставить time.sleep(0.1) или time.sleep(0.05):

nano /usr/bin/fail2ban-client

Таким образом, до изменения файл выглядит так:

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

А после изменения файл выглядит так:

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

Снова перезапустите fail2ban:

/etc/init.d/fail2ban restart

Вы можете проверить, что все тюрьмы активны, с помощью команды:

iptables -L -n 
Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.