GNU/Linux >> Linux の 問題 >  >> Ubuntu

Ubuntu20.04およびDebian10でのISPConfigパーフェクトマルチサーバーのセットアップ

このチュートリアルでは、パネル、Web、DNS、メール、およびWebメール専用のサーバーを使用して独自のISPConfig3マルチサーバーセットアップをインストールする方法について説明します。 DNSサーバーとメールサーバーの両方に、冗長性のためのミラーサーバーがあります。後で特定のタイプのサーバーを簡単に追加できます。

サーバーのセットアップには、ISPConfigの公式自動インストーラーが使用されます。 Debian10がオペレーティングシステムとして使用されます。このガイドはUbuntu20.04.2でもテストされています。

自動インストーラーの詳細については、こちらをご覧ください。

1。予備的注意

これらは、インストールするホストになります:

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

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

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

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

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

ルートとしてログインするか、実行します

 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 mx2.example .com mx2
10.0.64.16 ns1.example.com ns1
10.0.64.17 ns2.example.com ns2
10.0.64.18 webmail.example.com webmail#IPv6には次の行が望ましい有能なホスト::1localhost ip6-localhost ip6-loopbackff02 ::1 ip6-allnodesff02 ::2 ip6-allrouters

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

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

 nano / etc / hostname 

この場合、サブドメイン部分のみが含まれます:

パネル

最後に、サーバーを再起動して変更を適用します。

 systemctl restart 

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

 hostname 
hostname -f

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

 [メール保護]:〜$ホスト名
パネル
[メール保護]:〜$ホスト名-f
panel.example.com

これで、自動インストーラーを実行して、必要なすべてのパッケージとISPConfigをインストールできます。

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

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

警告!このスクリプトはサーバー全体を再構成します!
新しくインストールしたサーバーで実行する必要があり、実行した現在の構成はすべて失われる可能性があります!
本当に続行する場合は、「yes」と入力します。

「はい」と答えてEnterキーを押します。インストーラーが起動します。

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

[INFO]ISPConfig管理者パスワードは次のとおりです。5GvfSSSYsdfdYC
[INFO] MySQLルートパスワードは次のとおりです:kkAkft82d!kafMwqxdtYs

後で必要になるので、この情報とその対象のサーバーを必ず書き留めてください。

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

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

ターミナルで、

を実行します
 mysql -u root -p 

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

 CREATE USER'root' @ '10 .0.64.13' IDENTIFIED BY'myrootpassword'; 
GRANT ALL PRIVILEGESON*。 * 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 PRIVILEGESON*。 * 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 PRIVILEGESON*。 * 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 PRIVILEGESON*。 * 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' @ '10.0.64.17' IDENTIFIED BY'myrootpassword'; 
GRANT ALL PRIVILEGESON*。 * TO'root' @ '10.0.64.17' 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.18' IDENTIFIED BY'myrootpassword'; 
GRANT ALL PRIVILEGESON*。 * TO'root' @ '10.0.64.18' 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 PRIVILEGESON*。 * 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 PRIVILEGESON*。 * 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' @'mx2.example.com' IDENTIFIED BY'myrootpassword'; 
GRANT ALL PRIVILEGESON*。 * TO'root' @'mx2.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 PRIVILEGESON*。 * 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 PRIVILEGESON*。 * 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 PRIVILEGESON*。 * 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.18)をサーバーのIPアドレスweb01.example.com、mx1.example.com、mx2.example.com、ns1.example.comに置き換えます。 、ns2.example.com、およびwebmail.example.comにサーバーのホスト名を指定し、myrootpasswordに目的のルートパスワードを指定します(ホストごとに異なるパスワードを使用することをお勧めします。後で必要になるため、書き留めておきます。スレーブサーバーをインストールまたは更新するとき)。

これが完了すると、次のコマンドでMySQLを終了できます。

 EXIT; 

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

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

最後に行うことは、ファイアウォールを設定することです。

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

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

TCP:

 22,80,443,8080,8081 

UIからUDPポートを開く必要はありません。

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

 ufwは、10.0.64.0/24から任意のポート3306prototcpまでを許可します

これでパネルがセットアップされ、使用できるようになりました。

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


Ubuntu
  1. Debian10-11およびUbuntu20.04へのPerfectServerAutomatedISPConfig3のインストール

  2. 完璧なサーバー-Ubuntu15.04(nginx、BIND、Dovecot、ISPConfig 3)

  3. Ubuntu 7.10サーバー(「完璧なセットアップ」+ ISPConfig)をUbuntu8.04LTSにアップグレードする方法

  1. Debian10-11およびUbuntu20.04へのPerfectServerAutomatedISPConfig3のインストール

  2. Debian10-11およびUbuntu20.04へのPerfectServerAutomatedISPConfig3のインストール

  3. Ubuntu 7.04サーバー(「完璧なセットアップ」+ ISPConfig)をUbuntu7.10にアップグレードする方法

  1. UbuntuとDebianにNode.jsをインストールする

  2. Ubuntu、Debian、LinuxMintにPython3.7をインストールする方法

  3. UbuntuとDebianでKeepAlivedを使用してIPフェイルオーバーを設定する方法