サーバー設定 · 3 min read · Jan 07, 2026
完璧なサーバー - CentOS 7 x86_64 (nginx, Dovecot, ISPConfig 3) - ページ 2
15 phpMyAdminのインストール
次に、phpMyAdminをインストールします:
yum -y install phpmyadmin
次に、phpMyAdminの認証をcookieからhttpに変更します:
nano /etc/phpMyAdmin/config.inc.php
[...]
/* 認証タイプ */
$cfg['Servers'][$i]['auth_type'] = 'http';
[...]これで、/usr/share/phpMyAdmin/ディレクトリにphpMyAdminが見つかります。
ISPConfig 3をインストールした後、次のようにしてphpMyAdminにアクセスできます:
nginxのポート8081のISPConfigアプリのvhostにはphpMyAdminの設定が含まれているため、http://server1.example.com:8081/phpmyadminまたはhttp://server1.example.com:8081/phpMyAdminを使用してphpMyAdminにアクセスできます。
ウェブサイトから使用できる/phpmyadminまたは/phpMyAdminエイリアスを使用したい場合、これはApacheよりも少し複雑です。なぜなら、nginxにはグローバルエイリアス(すべてのvhostに対して定義できるエイリアス)がないからです。したがって、phpMyAdminにアクセスしたい各vhostのためにこれらのエイリアスを定義する必要があります。
これを行うには、ISPConfigのウェブサイトのオプションタブのnginxディレクティブフィールドに次の内容を貼り付けます:
location /phpmyadmin {
root /usr/share/;
index index.php index.html index.htm;
location ~ ^/phpmyadmin/(.+\.php)$ {
try_files $uri =404;
root /usr/share/;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $request_filename;
include /etc/nginx/fastcgi_params;
fastcgi_param PATH_INFO $fastcgi_script_name;
fastcgi_buffer_size 128k;
fastcgi_buffers 256 4k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
fastcgi_intercept_errors on;
}
location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
root /usr/share/;
}
}
location /phpMyAdmin {
rewrite ^/* /phpmyadmin last;
}vhostに対してhttp sを使用する場合、phpMyAdminの設定に次の行fastcgi_param HTTPS on;を追加する必要があります:
location /phpmyadmin {
root /usr/share/;
index index.php index.html index.htm;
location ~ ^/phpmyadmin/(.+\.php)$ {
try_files $uri =404;
root /usr/share/;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param HTTPS on; # <-- この行を追加
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $request_filename;
include /etc/nginx/fastcgi_params;
fastcgi_param PATH_INFO $fastcgi_script_name;
fastcgi_buffer_size 128k;
fastcgi_buffers 256 4k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
fastcgi_intercept_errors on;
}
location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
root /usr/share/;
}
}
location /phpMyAdmin {
rewrite ^/* /phpmyadmin last;
}vhostに対してhttpとhttpsの両方を使用する場合、$https変数を使用できます。再度nginxディレクティブフィールドに移動し、fastcgi_param HTTPS on;の代わりにfastcgi_param HTTPS $https;の行を追加して、httpおよびhttpsリクエストの両方でphpMyAdminを使用できるようにします:
location /phpmyadmin {
root /usr/share/;
index index.php index.html index.htm;
location ~ ^/phpmyadmin/(.+\.php)$ {
try_files $uri =404;
root /usr/share/;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param HTTPS $https; # <-- この行を追加
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $request_filename;
include /etc/nginx/fastcgi_params;
fastcgi_param PATH_INFO $fastcgi_script_name;
fastcgi_buffer_size 128k;
fastcgi_buffers 256 4k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
fastcgi_intercept_errors on;
}
location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
root /usr/share/;
}
}
location /phpMyAdmin {
rewrite ^/* /phpmyadmin last;
}16 Mailmanのインストール
バージョン3.0.4以降、ISPConfigはMailmanのメーリングリストを管理(作成/変更/削除)することも可能です。この機能を利用したい場合、次のようにMailmanをインストールします:
yum -y install mailman
Mailmanを開始する前に、mailmanという最初のメーリングリストを作成する必要があります:
touch /var/lib/mailman/data/aliases
touch /etc/mailman/aliases
/usr/lib/mailman/bin/newlist mailman
[root@server1 tmp]# /usr/lib/mailman/bin/newlist mailman
リストを運営する人のメールアドレスを入力してください: <– 管理者のメールアドレス、例:[email protected]
初期のmailmanパスワード: <– mailmanリストの管理者パスワード
メーリングリストを作成するには、次の行を追加して/etc/aliases(または同等の)ファイルを編集し、newaliasesプログラムを実行する必要があります:
mailmanメーリングリスト
mailman: “|/usr/lib/mailman/mail/mailman post mailman”
mailman-admin: “|/usr/lib/mailman/mail/mailman admin mailman”
mailman-bounces: “|/usr/lib/mailman/mail/mailman bounces mailman”
mailman-confirm: “|/usr/lib/mailman/mail/mailman confirm mailman”
mailman-join: “|/usr/lib/mailman/mail/mailman join mailman”
mailman-leave: “|/usr/lib/mailman/mail/mailman leave mailman”
mailman-owner: “|/usr/lib/mailman/mail/mailman owner mailman”
mailman-request: “|/usr/lib/mailman/mail/mailman request mailman”
mailman-subscribe: “|/usr/lib/mailman/mail/mailman subscribe mailman”
mailman-unsubscribe: “|/usr/lib/mailman/mail/mailman unsubscribe mailman”
Enterを押してmailmanオーナーに通知します… <– ENTER
[root@server1 tmp]#
その後、/etc/aliasesを開きます…
nano /etc/aliases
… 次の行を追加します:
[...]
mailman: "|/usr/lib/mailman/mail/mailman post mailman"
mailman-admin: "|/usr/lib/mailman/mail/mailman admin mailman"
mailman-bounces: "|/usr/lib/mailman/mail/mailman bounces mailman"
mailman-confirm: "|/usr/lib/mailman/mail/mailman confirm mailman"
mailman-join: "|/usr/lib/mailman/mail/mailman join mailman"
mailman-leave: "|/usr/lib/mailman/mail/mailman leave mailman"
mailman-owner: "|/usr/lib/mailman/mail/mailman owner mailman"
mailman-request: "|/usr/lib/mailman/mail/mailman request mailman"
mailman-subscribe: "|/usr/lib/mailman/mail/mailman subscribe mailman"
mailman-unsubscribe: "|/usr/lib/mailman/mail/mailman unsubscribe mailman"その後、newaliasesを実行し、Postfixを再起動します:
systemctl restart postfix.service
Mailmanのシステム起動リンクを作成し、起動します:
systemctl enable mailman.service
systemctl start mailman.service
これで、MailmanがISPConfigで動作するようにするために、このシンボリックリンクを作成する必要があります:
cd /usr/lib/mailman/cgi-bin/
ln -s ./ mailman
ISPConfigを通じて作成されたウェブサイトからMailmanを使用したい場合、これはApacheよりも少し複雑です。なぜなら、nginxにはグローバルエイリアス(すべてのvhostに対して定義できるエイリアス)がないからです。したがって、Mailmanにアクセスしたい各vhostのためにこれらのエイリアスを定義する必要があります。
これを行うには、ISPConfigのウェブサイトのオプションタブのnginxディレクティブフィールドに次の内容を貼り付けます:
location /cgi-bin/mailman {
alias /usr/lib/mailman/cgi-bin;
fastcgi_split_path_info (^/cgi-bin/mailman/[^/]*)(.*)$;
include /etc/nginx/fastcgi_params;
fastcgi_param SCRIPT_FILENAME /usr/lib/mailman$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED /usr/lib/mailman$fastcgi_path_info;
fastcgi_intercept_errors on;
fastcgi_pass unix:/var/run/fcgiwrap.socket;
}
location /images/mailman {
alias /usr/lib/mailman/icons;
}
location /pipermail {
alias /var/lib/mailman/archives/public;
autoindex on;
}これにより、vhostのために/cgi-bin/mailman/エイリアスが定義され、http://
http://
17 PureFTPdのインストール
PureFTPdは次のコマンドでインストールできます:
yum -y install pure-ftpd
次に、システム起動リンクを作成し、PureFTPdを起動します:
systemctl enable pure-ftpd.service
systemctl start pure-ftpd.service
次に、PureFTPdを構成してFTPおよびTLSセッションを許可します。FTPは非常に安全でないプロトコルであり、すべてのパスワードとすべてのデータが平文で転送されます。TLSを使用することで、通信全体を暗号化できるため、FTPははるかに安全になります。
TLSにはOpenSSLが必要です。OpenSSLをインストールするには、次のように実行します:
yum -y install openssl
/etc/pure-ftpd/pure-ftpd.confを開きます…
nano /etc/pure-ftpd/pure-ftpd.conf
FTPおよびTLSセッションを許可したい場合、TLSを1に設定します:
[...]
# このオプションは3つの値を受け入れます:
# 0 : SSL/TLS暗号化レイヤーを無効にします(デフォルト)。
# 1 : 従来のセッションと暗号化されたセッションの両方を受け入れます。
# 2 : SSL/TLSセキュリティメカニズムを使用しない接続を拒否します。
# 匿名セッションを含みます。
# この設定を盲目的にコメント解除しないでください。確認してください:
# 1) サーバーがSSL/TLSサポートでコンパイルされていること(--with-tls)、
# 2) 有効な証明書が存在すること、
# 3) 互換性のあるクライアントのみがログインします。
TLS 1
[...]TLSを使用するには、SSL証明書を作成する必要があります。私は/etc/ssl/private/に作成するので、まずそのディレクトリを作成します:
mkdir -p /etc/ssl/private/
その後、次のようにSSL証明書を生成できます:
openssl req -x509 -nodes -days 7300 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem
国名(2文字コード)[XX]: <– 国名を入力します(例:「DE」)。
州または県名(フルネーム)[]: <– 州または県名を入力します。
市名(例:都市)[Default City]: <– 市名を入力します。
組織名(例:会社名)[Default Company Ltd]: <– 組織名を入力します(例:会社名)。
組織単位名(例:部門)[]: <– 組織単位名を入力します(例:「IT部門」)。
共通名(例:あなたの名前またはサーバーのホスト名)[]: <– システムの完全修飾ドメイン名を入力します(例:「server1.example.com」)。
メールアドレス[]: <– メールアドレスを入力します。
SSL証明書の権限を変更します:
chmod 600 /etc/ssl/private/pure-ftpd.pem
最後に、PureFTPdを再起動します:
systemctl restart pure-ftpd.service
これで完了です。FTPクライアントを使用して接続を試みることができますが、FTPクライアントをTLSを使用するように構成する必要があります。
18 BINDのインストール
次のようにBINDをインストールできます:
yum -y install bind bind-utils
次に、/etc/sysconfig/namedを開きます…
nano /etc/sysconfig/named
… ROOTDIR=/var/named/chroot行がコメントアウトされていることを確認します:
# BIND namedプロセスオプション
# ~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# OPTIONS="whatever" -- これらの追加オプションは、namedの起動時に渡されます。
# ここに-tを追加しないでください。適切な
# -chroot.serviceユニットファイルを有効にしてください。既存の/etc/named.confファイルのバックアップを作成し、次のように新しいファイルを作成します:
cp /etc/named.conf /etc/named.conf_bak
cat /dev/null > /etc/named.conf
nano /etc/named.conf
\n// named.conf\n//\n// Red Hat bindパッケージによって提供され、ISC BIND named(8) DNS\n// サーバーをキャッシング専用のネームサーバーとして構成します(ローカルホストDNSリゾルバとしてのみ)。\n//\n// 例のnamed構成ファイルは/usr/share/doc/bind*/sample/を参照してください。\noptions {\n listen-on port 53 { any; };\n listen-on-v6 port 53 { any; };\n directory "/var/named";\n dump-file "/var/named/data/cache_dump.db";\n statistics-file "/var/named/data/named_stats.txt";\n memstatistics-file "/var/named/data/named_mem_stats.txt";\n allow-query { any; };\n recursion no;\n};\nlogging {\n channel default_debug {\n file "data/named.run";\n severity dynamic;\n };\n};\nzone "." IN {\n type hint;\n file "named.ca";\n};\ninclude "/etc/named.conf.local";\n
/etc/named.confの最後に含まれる/etc/named.conf.localファイルを作成します(/etc/named.conf.localは、ISPConfigでDNSゾーンを作成すると後でISPConfigによってポピュレートされます):
touch /etc/named.conf.local
次に、起動リンクを作成し、BINDを起動します:
systemctl enable named.service
systemctl start named.service
19 WebalizerとAWStatsのインストール
WebalizerとAWStatsは次のようにインストールできます:
yum -y install webalizer awstats perl-DateTime-Format-HTTP perl-DateTime-Format-Builder
20 Jailkitのインストール
Jailkitは、SSHユーザーをchrootしたい場合にのみ必要です。次のようにインストールできます(重要:JailkitはISPConfigの前にインストールする必要があります - その後にインストールすることはできません!):
cd /tmp
wget http://olivier.sessink.nl/jailkit/jailkit-2.17.tar.gz
tar xvfz jailkit-2.17.tar.gz
cd jailkit-2.17
./configure
make
make install
cd ..
rm -rf jailkit-2.17*
21 fail2banのインストール
これはオプションですが推奨されます。なぜなら、ISPConfigモニターはログを表示しようとするからです:
yum -y install fail2ban
fail2banを/var/log/fail2ban.logというログファイルに記録するように構成する必要があります。これはISPConfig Monitorモジュールによって監視されるログファイルです。/etc/fail2ban/fail2ban.confを開きます…
nano /etc/fail2ban/fail2ban.conf
… logtarget = /var/log/fail2ban.logであることを確認します:
[...]
# オプション:logtarget
# 注意:ログターゲットを設定します。これはファイル、SYSLOG、STDERR、またはSTDOUTです。
# 1つのログターゲットのみを指定できます。
# デフォルト値からlogtargetを変更した場合は、
# 対応する設定ファイルでローテーションを調整または無効にしてください
# (例:Debianシステムの/etc/logrotate.d/fail2ban)
# 値:[ STDOUT | STDERR | SYSLOG | FILE ] デフォルト:STDERR
#
logtarget = /var/log/fail2ban.log
[...] 次に、fail2banのシステム起動リンクを作成し、起動します:
systemctl enable fail2ban.service
systemctl start fail2ban.service
22 rkhunterのインストール
rkhunterは次のようにインストールできます:
yum -y install rkhunter
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。