サーバー設定 · 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:///cgi-bin/mailman/admin/でリストのMailman管理インターフェースにアクセスでき、http:///cgi-bin/mailman/listinfo/でメーリングリストのユーザー用のウェブページにアクセスできます。

http:///pipermailでは、メーリングリストのアーカイブを見つけることができます。

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

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。