容易的RoundCube(通过SSL)和Webmin与fail2ban对于ISPConfig 3在Debian Squeeze
作者:Thomas( http://iopen.gr )
最后编辑:2011-03-09
我喜欢在ISPConfig 3中的默认情况下使用RoundCube解决方案。我还发现将webmin安装在我所有的系统中都很有用。 在这篇文章中,您可以看到一个非常快速的方式来安装它们,并配合fail2ban的大力支持。 最后我想通过SSL访问它们(甚至是phpmyadmin - 看到最后的提示)。
我假设你遵循了falko的指导:
完美的服务器 - Debian Squeeze(Debian 6.0)与BIND&Courier [ISPConfig 3]如果您要通过SSL访问ISPConfig Panel和Webmail,我也假设您按照6.2章启用 ISPConfig 3手册或本文 的ISPConfig Web界面的SSL (仅当您要访问控制面板和webmail界面通过端口8080上的ssl)。
如果你遵循上述(和第6.3章 - 启用SuExec),那么我终于假设你在这篇文章中阅读了解决方法。
Webmin
从http://www.webmin.com/download.html下载最新的webmin ...
wget http://prdownloads.sourceforge.net/webadmin/webmin_1.530_all.deb
...并安装它:
dpkg -i webmin_1.530_all.deb
RoundCube
如果你不想Squirrelmail删除它...
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管理员的密码才能继续):
apt-get install roundcube roundcube-mysql
系统会询问有关数据库管理员密码和圆形立方体及其数据库(和密码)的新用户的一些问题。 回答这些问题并继续。 如果出现问题,可以随时运行:
dpkg-reconfigure roundcube-core
有关更多信息,请参阅此信息。
为了让每个人能够访问他的网络邮件(在他的域名下),您必须创建或编辑文件/etc/apache2/conf.d/roundcube.conf
,以将别名设置为“webmail”。 如果你想要SSL,你应该包括最后两个 指令使Apache ALWAYS重定向到您的ssl安装的ISPConfig 3。
# Those aliases do not work properly with several hosts on your apache server
# Uncomment them to use it or adapt them to your configuration
# Alias /roundcube/program/js/tiny_mce/ /usr/share/tinymce/www/
Alias /webmail /var/lib/roundcube
Alias /roundcube /var/lib/roundcube
# Access to tinymce files
<Directory "/usr/share/tinymce/www/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order allow,deny
allow from all
</Directory>
<Directory /var/lib/roundcube/>
Options +FollowSymLinks
# This is needed to parse /var/lib/roundcube/.htaccess. See its
# content before setting AllowOverride to None.
AllowOverride All
order allow,deny
allow from all
</Directory>
# Protecting basic directories:
<Directory /var/lib/roundcube/config>
Options -FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/lib/roundcube/temp>
Options -FollowSymLinks
AllowOverride None
Order allow,deny
Deny from all
</Directory>
<Directory /var/lib/roundcube/logs>
Options -FollowSymLinks
AllowOverride None
Order allow,deny
Deny from all
</Directory>
<IfModule mod_rewrite.c>
<IfModule mod_ssl.c>
<Location /webmail>
RewriteEngine on
RewriteCond %{HTTPS} !^on$ [NC]
RewriteRule . https://%{HTTP_HOST}:8080%{REQUEST_URI} [L]
</Location>
</IfModule>
</IfModule>
<IfModule mod_rewrite.c>
<IfModule mod_ssl.c>
<Location /roundcube>
RewriteEngine on
RewriteCond %{HTTPS} !^on$ [NC]
RewriteRule . https://%{HTTP_HOST}:8080%{REQUEST_URI} [L]
</Location>
</IfModule>
</IfModule>
编辑/var/lib/roundcube/config/main.inc.php
并编辑文件中的一些变量:
auto_create_user = TRUE; $rcmail_config['default_host'] = 'localhost';
如果要安装以下插件(帮助fail2ban的记录器),必须将插件列表扩展到同一个文件中。 如果唯一的插件是将要被保留的插件,那么你必须编辑如下所示的行:
$rcmail_config['plugins'] = array('fail2ban');
安装roundcube logger插件表单http://mattrude.com/projects/roundcube-fail2ban-plugin/ 。
基本上你必须下载上面的文件(fail2ban.php)并将其粘贴到roundcube的plugins文件夹中的fail2ban文件夹中: /usr/share/roundcube/plugins/fail2ban/fail2ban.php
此插件将首先创建并更新每次登录尝试的日志文件: / var / log / roundcube / userlogins
Fail2ban
扩展Falko在The Perfect Server中提供的jail.local
文件- Debian Squeeze(Debian 6.0)使用BIND&Courier [ISPConfig 3] :/ etc/fail2ban/jail.local
你必须粘贴:
[roundcube] enabled = true port = http,8080 filter = roundcube logpath = /var/log/roundcube/userlogins maxretry = 5 [webmin-auth] enabled = true port = 10000 filter = webmin-auth logpath = /var/log/auth.log maxretry = 3
只有您启用重定向到https,才需要圆形立方体中的8080端口。
最后(非常重要)不要忘记创建roundcube.conf
文件/etc/fail2ban/filter.d/roundcube.conf
,其内容如下:
[Definition] failregex = FAILED login for .*. from <host> ignoreregex =
幸运的是,webmin-auth过滤器已经由fail2ban人员为我们完成。 重新启动fail2ban:
/etc/init.d/fail2ban restart
phpMyAdmin(SSL提示)
如果要通过ssl访问phpMyAdmin,可以应用与RoundCube相同的提示。 编辑/etc/apache2/conf.d/phpmyadmin.conf
文件,并在文件末尾
粘贴以下行:
<IfModule mod_rewrite.c>
<IfModule mod_ssl.c>
<Location /phpmyadmin>
RewriteEngine on
RewriteCond %{HTTPS} !^on$ [NC]
RewriteRule . https://%{HTTP_HOST}:8080%{REQUEST_URI} [L]
</Location>
</IfModule>
</IfModule>
之后,重新启动Apache:
/etc/init.d/apache2 restart