サーバー設定 · 2 min read · Dec 02, 2025
完璧なサーバーの拡張 - Debian Squeeze [ISPConfig 3] - ページ 2
3. ROUNDCUBE
上記の手順に従って、apt-getを使用してroundcubeをインストールできます。しかし、別の論理に従う場合(時間と勇気があれば)、独自のサブドメインに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管理者のパスワードを持っている必要があります – dbconfig-commonにデータベースを設定させます。データベース管理者のパスワードとroundcube用に作成される新しいユーザーのパスワードについていくつかの質問がされます。それらの質問に答えて続行してください:
apt-get install roundcube roundcube-mysql例の回答:
“dbconfig-commonでroundcubeのデータベースを設定しますか?” …. はいと答える
“roundcubeで使用するデータベースの種類: …mysqlと答える
“データベースの管理ユーザーのパスワード:” … あなたの管理者DBパスワードと答える
“roundcubeのためのMySQLアプリケーションパスワード:” … roundcubeユーザーに与えたいパスワードと答える
“パスワードの確認:”… roundcubeユーザーに与えたいパスワードと答える
何か問題が発生した場合は、常に次のコマンドを実行できます:
dpkg-reconfigure roundcube-core詳細については、この投稿を参照してください。
すべての人が彼のドメイン名の下でウェブメールにアクセスできるようにするために、/etc/apache2/conf.d/roundcubeファイルを作成または編集して、エイリアスを「webmail」に設定する必要があります。SSLを希望する場合は、apacheが常にISPConfigのSSLインストールにリダイレクトするように、最後の2つのディレクティブ(IfModule mod_rewrite.c)を含める必要があります。
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'); http://mattrude.com/projects/roundcube-fail2ban-plugin/からroundcubeロガープラグインをインストールします。
基本的に、ファイル(fail2ban.php)をダウンロードして、roundcubeのプラグインフォルダ内のfail2banフォルダに貼り付ける必要があります。最終的にこのファイルを持っている必要があります:/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
falkoが提案するjail.localファイルを拡張します。完璧なサーバー - Debian Squeeze (Debian 6.0) With 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 = 6roundcubeの50443ポートは、httpsへのリダイレクトを有効にした場合のみ必要です(このチュートリアルの最初を見てください)。webmin-authの50000ポートは変更されたポートです(このチュートリアルの最初を見てください)。sshの50022ポートは変更されたポートです(このチュートリアルの次のセクションを見てください)。
最後に(非常に重要)、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 新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。