サーバー設定 · 2 min read · Sep 08, 2025

ISPConfigの完璧なマルチサーバーセットアップ(Ubuntu 24.04およびDebian 12)

このチュートリアルでは、パネル、ウェブ、DNS、メール、およびウェブメール用の専用サーバーを使用して、自分自身のISPConfig 3マルチサーバーセットアップをインストールする手順を説明します。DNSサーバーには冗長性のためのミラーサーバーがあります。後で特定のタイプのサーバーを簡単に追加できます。

ISPConfigの公式オートインストーラーを使用してサーバーをセットアップします。オペレーティングシステムとしてDebian 12を使用します。このガイドはUbuntu 24.04でもテストされています。

オートインストーラーには、セットアップを微調整するためのさまざまなコマンドラインオプションがあります。

すべての引数は次のコマンドで表示できます:

wget -O - https://get.ispconfig.org | sh -s -- --help

オートインストーラーの詳細については、こちらをお読みください。

1. 予備ノート

これがインストールするホストです:

host       FQDN                   IP  
panel      panel.example.com      10.0.64.12  
web01      web01.example.com      10.0.64.13  
mx1        mx1.example.com        10.0.64.14  
ns1        ns1.example.com        10.0.64.15  
ns2        ns2.example.com        10.0.64.16  
webmail    webmail.example.com    10.0.64.17

例のホスト名、IPアドレス、およびIP範囲を使用します。コマンド/設定で適宜変更してください。

すべてのサーバーは同じプライベートネットワーク上にありますが、それぞれ独自のパブリックIPを持っています。サーバーに共有ローカルネットワークがない場合は、パブリックIPv4アドレスを使用してください。

サーバーのインストールを開始する前に、サーバーのパブリックIPアドレスを指すAレコードおよび必要に応じてAAAAレコードを設定してください。たとえば、ホスト名がpanel.example.comで、パブリックIPが11.22.33.44の場合、panel.example.comが11.22.33.44を指すAレコードを設定する必要があります。すべてのサーバーは独自のパブリックIPとホスト名を持つ必要があります。 **

2. マスターサーバーのインストール

続行する前に、rootとしてログインするか、次のコマンドを実行して

su -

rootユーザーになります。重要:’su -‘を使用し、単に’su’を使用しないでください。そうしないと、DebianによってPATH変数が誤って設定されます。

2.1 ホスト名とホストの設定

サーバーのホスト名は「panel.example.com」のようなサブドメインである必要があります。「example.com」のようにサブドメイン部分のないドメイン名をホスト名として使用しないでください。そうしないと、後でメール設定に問題が発生します。まず、/etc/hostsでホスト名を確認し、必要に応じて変更してください。行は次のようになります:「IPアドレス - スペース - ドメインを含む完全なホスト名 - スペース - サブドメイン部分」。ホスト名panel.example.comの場合、ファイルは次のようになります(いくつかの行は異なる場合があります。ホスティングプロバイダーによって異なることがあります):

nano /etc/hosts
127.0.0.1 localhost.localdomain   localhost  
# この行はすべてのノードで正しいサーバー名に変更する必要があります:  
127.0.1.1 panel.example.com panel  
# これらの行はすべてのノードで同じです:
10.0.64.12 panel.example.com panel  
10.0.64.13 web01.example.com web01  
10.0.64.14 mx1.example.com mx1  
10.0.64.15 ns1.example.com ns1  
10.0.64.16 ns2.example.com ns2  
10.0.64.17 webmail.example.com webmail

# 次の行はIPv6対応ホストにとって望ましいです
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

ご覧のとおり、他のサーバーのホスト名も追加したので、後で内部ネットワークを介して通信できます。

次に、/etc/hostnameファイルを編集します:

nano /etc/hostname

それにはサブドメイン部分のみが含まれる必要があります。私たちの場合:

panel

最後に、変更を適用するためにサーバーを再起動します:

systemctl reboot

再度ログインし、次のコマンドでホスト名が正しいかどうかを確認します:

hostname  
hostname -f

出力は次のようになります:

root@panel:~$ hostname  
panel  
root@panel:~$ hostname -f  
panel.example.com

これで、必要なすべてのパッケージとISPConfigをインストールするためにオートインストーラーを実行できます:

wget -O - https://get.ispconfig.org | sh -s -- --no-mail --no-dns --use-php=system

しばらくすると、次のように表示されます:

WARNING! このスクリプトはサーバー全体を再構成します!  
これは新しくインストールされたサーバーで実行する必要があり、現在行ったすべての設定はおそらく失われます!  
本当に続行したい場合は「yes」と入力してください:

「yes」と入力してEnterを押します。インストーラーが開始されます。

インストーラーが完了すると、次のようにISPConfigの管理者とMySQLのrootパスワードが表示されます:

[INFO] あなたのISPConfig管理者パスワードは:5GvfSSSYsdfdYC  
[INFO] あなたのMySQL rootパスワードは:kkAkft82d!kafMwqxdtYs

この情報をメモしておき、どのサーバー用であるかを記録してください。後で必要になります。

2.2 スレーブサーバー用のリモートMySQLユーザーの設定

他のサーバーがインストール中にこのノードのISPConfigデータベースに接続できるようにするため、MySQLにログインして、マスターデータベースに各スレーブサーバーのホスト名とIPアドレスのMySQL rootユーザーのレコードを追加します。

ターミナルで次のコマンドを実行します:

mysql -u root -p

MySQLパスワードを入力し、次のコマンドを実行します:

CREATE USER 'root'@'10.0.64.13' IDENTIFIED BY 'myrootpassword';  
GRANT ALL PRIVILEGES ON * . * TO 'root'@'10.0.64.13' IDENTIFIED BY 'myrootpassword' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
CREATE USER 'root'@'10.0.64.14' IDENTIFIED BY 'myrootpassword';  
GRANT ALL PRIVILEGES ON * . * TO 'root'@'10.0.64.14' IDENTIFIED BY 'myrootpassword' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
CREATE USER 'root'@'10.0.64.15' IDENTIFIED BY 'myrootpassword';  
GRANT ALL PRIVILEGES ON * . * TO 'root'@'10.0.64.15' IDENTIFIED BY 'myrootpassword' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
CREATE USER 'root'@'10.0.64.15' IDENTIFIED BY 'myrootpassword';  
GRANT ALL PRIVILEGES ON * . * TO 'root'@'10.0.64.15' IDENTIFIED BY 'myrootpassword' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
CREATE USER 'root'@'10.0.64.16' IDENTIFIED BY 'myrootpassword';  
GRANT ALL PRIVILEGES ON * . * TO 'root'@'10.0.64.16' IDENTIFIED BY 'myrootpassword' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
CREATE USER 'root'@'web01.example.com' IDENTIFIED BY 'myrootpassword';  
GRANT ALL PRIVILEGES ON * . * TO 'root'@'web01.example.com' IDENTIFIED BY 'myrootpassword' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
CREATE USER 'root'@'mx1.example.com' IDENTIFIED BY 'myrootpassword';  
GRANT ALL PRIVILEGES ON * . * TO 'root'@'mx1.example.com' IDENTIFIED BY 'myrootpassword' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
CREATE USER 'root'@'ns1.example.com' IDENTIFIED BY 'myrootpassword';  
GRANT ALL PRIVILEGES ON * . * TO 'root'@'ns1.example.com' IDENTIFIED BY 'myrootpassword' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
CREATE USER 'root'@'ns2.example.com' IDENTIFIED BY 'myrootpassword';  
GRANT ALL PRIVILEGES ON * . * TO 'root'@'ns2.example.com' IDENTIFIED BY 'myrootpassword' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
CREATE USER 'root'@'webmail.example.com' IDENTIFIED BY 'myrootpassword';  
GRANT ALL PRIVILEGES ON * . * TO 'root'@'webmail.example.com' IDENTIFIED BY 'myrootpassword' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;

上記のSQLコマンドでは、IPアドレス(10.0.64.12 - 10.0.64.16)をサーバーのIPアドレスに、web01.example.com、mx1.example.com、ns1.example.com、ns2.example.com、webmail.example.comをサーバーのホスト名に、myrootpasswordを希望のrootパスワードに置き換えてください(各ホストに異なるパスワードを使用することは良い習慣です。メモしておいてください。後でスレーブサーバーをインストールまたは更新する際に必要になります)。

これが完了したら、次のコマンドでMySQLを終了できます:

EXIT;

これで、ユーザー名adminとインストーラーが表示したパスワードを使用して、https://panel.example.com:8080にISPConfigにログインできます。

2.3 ファイアウォールの設定

最後に、ファイアウォールを設定します。

ISPConfig UIにログインし、システム -> ファイアウォールに移動します。次に、「新しいファイアウォールレコードを追加」をクリックします。

パネルサーバーの場合、次のポートを開く必要があります:

TCP:

22,80,443,8080,8081

UIを通じて開く必要のあるUDPポートはありません。

また、MySQLに使用されるポート3306も開きますが、セキュリティ上の理由からローカルネットワークからのみ開きます。これを行うには、ISPConfigパネルからの変更が伝播した後(赤い点が消えたとき)に、CLIから次のコマンドを実行します:

ufw allow from 10.0.64.0/24 to any port 3306 proto tcp

これで、パネルが設定され、使用の準備が整いました。

次のステップでは、ウェブサーバーをインストールします。

Share: X/Twitter LinkedIn

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

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