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 Get new posts in your inbox
No spam. Unsubscribe anytime.