サーバー設定 · 4 min read · Sep 22, 2025

ISPConfigの完璧なマルチサーバーセットアップ - Ubuntu 20.04およびDebian 10 - ページ4

5 2番目のメールサーバーのインストール

rootとしてログインするか、次のコマンドを実行してください。

su -

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

5.1 ホスト名の設定

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

nano /etc/hosts
127.0.0.1 localhost.localdomain   localhost  
# この行はすべてのノードで正しいサーバー名に変更する必要があります:  
127.0.1.1 mx2.example.com mx2  
# これらの行はすべてのノードで同じです:
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対応ホストにとって望ましいです
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

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

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

nano /etc/hostname

そこにはサブドメイン部分のみが含まれるべきです。私たちの場合:

mx2

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

systemctl reboot

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

hostname  
hostname -f

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

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

5.2 ISPConfigのインストール

これで、すべてのパッケージとISPConfigのための自動インストーラーを実行できます:

wget -O - https://get.ispconfig.org | sh -s -- --no-dns --no-roundcube --no-mailman --use-php=system --use-unbound --interactive

しばらくすると、次のようなメッセージが表示されます:

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

「yes」と答えてEnterを押します。インストーラーが今始まります。

パッケージのインストールと設定が完了すると、mx2のMySQLのrootパスワードが表示されます。これを書き留めておいてください(混乱を避けるためにサーバー名と一緒に)。

次に、インタラクティブモードを使用しているため、いくつかの質問に答える必要があります。これは、このサーバーがマルチサーバーセットアップに追加されるために必要です。

[INFO] ISPConfig3をインストール中。  
[INFO] あなたのMySQL rootパスワードは: kl3994aMsfkkeE  
  
  
--------------------------------------------------------------------------------  
 _____ ___________   _____              __ _         ____  
|_   _/  ___| ___ \ /  __ \            / _(_)       /__  \  
  | | \ `--.| |_/ / | /  \/ ___  _ __ | |_ _  __ _    _/ /  
  | |  `--. \  __/  | |    / _ \| '_ \|  _| |/ _` |  |_ |  
 _| |_\__/ / |     | \__/\ (_) | | | | | | | (_| | ___\ \  
 \___/\____/\_|      \____/\___/|_| |_|_| |_|
\__, | \____/  
                                              __/ |  
                                             |___/   
--------------------------------------------------------------------------------  
  
>> 初期設定    
オペレーティングシステム: Debian 10.0 (Buster) または互換性のあるもの  
    次に、主要な設定のためのいくつかの質問がありますので注意してください。  
    デフォルト値は[ブラケット]内にあり、で受け入れることができます。  
    インストーラーを停止するには「quit」と入力してください(引用符なし)。  
  
言語を選択してください (en,de) [en]: <-- Enterを押す  
インストールモード (standard,expert) [standard]: <-- expertを入力  
サーバーの完全修飾ホスト名 (FQDN)、例: server1.domain.tld  [mx2.example.com]: <-- Enterを押す  
MySQLサーバーホスト名 [localhost]: <-- Enterを押す  
MySQLサーバーポート [3306]: <-- Enterを押す  
MySQL rootユーザー名 [root]: <-- Enterを押す  
MySQL rootパスワード []: <-- スクリプトが与えたMySQLパスワードを入力  
MySQLデータベースを作成 [dbispconfig]: <-- Enterを押す  
MySQL文字セット [utf8]: <-- Enterを押す  
次の2つの質問は内部ISPConfigデータベースユーザーとパスワードに関するものです。  
デフォルトのユーザー名「ispconfig」とランダムなパスワードを受け入れることをお勧めします。  
異なるパスワードを使用する場合は、数字と文字のみを使用してください。  

ISPConfig mysqlデータベースユーザー名 [ispconfig]: <-- Enterを押す  
ISPConfig mysqlデータベースパスワード [aakl203920459853sak20284204]: <-- Enterを押す  
このサーバーは既存のISPConfigマルチサーバーセットアップに参加しますか (y,n) [n]: <-- yを入力  
MySQLマスターサーバーホスト名 []: <-- panel.example.comを入力  
MySQLマスターサーバーポート []: <-- Enterを押す  
MySQLマスターサーバーrootユーザー名 [root]: <-- Enterを押す  
MySQLマスターサーバーrootパスワード []: <-- マスターサーバーの外部rootユーザーに与えたパスワードを入力。  
MySQLマスターサーバーデータベース名 [dbispconfig]: <-- Enterを押す  
ISPConfigサーバーレコードをデータベースに追加中。  
メールの設定 (y,n) [y]: <-- Enterを押す  
Postgreyの設定中  
Postfixの設定中  
RSAプライベートキーを生成中  
......................................................................++++  
....................++++  
新しいプライベートキーを'smtpd.key'に書き込んでいます  
-----  
証明書要求に組み込まれる情報を入力するよう求められます。  
入力する内容は、識別名またはDNと呼ばれるものです。  
いくつかのフィールドがありますが、いくつかは空白のままにできます。  
いくつかのフィールドにはデフォルト値があります。  
'.'を入力すると、そのフィールドは空白のままになります。  
-----  
国名 (2文字コード) [AU]: <-- Enterを押す  
州または県名 (フルネーム) [Some-State]: <-- Enterを押す  
地域名 (例: 市) []: <-- Enterを押す  
組織名 (例: 会社) [Internet Widgits Pty Ltd]: <-- Enterを押す  
組織単位名 (例: セクション) []: <-- Enterを押す  
共通名 (例: サーバーFQDNまたはあなたの名前) []: <-- Enterを押す  
メールアドレス []: <-- Enterを押す  
[WARN] Mailmanの自動検出に失敗しました  
Mailmanを強制的に設定しますか (y,n) [n]: <-- Enterを押す  

Mailmanをスキップします  

Dovecotの設定中  
新しいDHParamsファイルを作成中、これには数分かかります。スクリプトを中断しないでください。  
Spamassassinの設定中  
[WARN] Amavisdの自動検出に失敗しました  
Amavisdを強制的に設定しますか (y,n) [n]: <-- Enterを押す  

Amavisdをスキップします  

Rspamdの設定中  
Getmailの設定中  
Jailkitの設定中  
Pureftpdの設定中  
DNSサーバーの設定 (y,n) [y]: <-- nを入力  

Webサーバーオプションは、Webサーバーを実行したい場合、またはこのノードがISPConfigインターフェースをホストする場合に有効にする必要があります。  
Webサーバーを設定しますか (y,n) [y]: <-- Enterを押す  

Apacheの設定中  
vloggerの設定中  
[WARN] OpenVZの自動検出に失敗しました  
OpenVZを強制的に設定しますか (y,n) [n]: <-- Enterを押す  

OpenVZをスキップします  

ファイアウォールサーバーを設定しますか (y,n) [y]: <-- Enterを押す  

Ubuntuファイアウォールの設定中  
[WARN] Metronome XMPPサーバーの自動検出に失敗しました  
Metronome XMPPサーバーを強制的に設定しますか (y,n) [n]: <-- Enterを押す  

Metronome XMPPサーバーをスキップします  

Fail2banの設定中  
ISPConfig Webインターフェースをインストールしますか (y,n) [n]: <-- Enterを押す  

サーバーのSSL証明書を作成しますか? (y,n) [y]: <-- Enterを押す  

mx2.example.comの証明書を確認/作成中  
証明書パス /etc/letsencrypt/live/mx2.example.comを使用  
証明書検証のためにapacheを使用  
PostfixにISPConfig SSL証明書をシンボリックリンクしますか? (y,n) [y]: <-- Enterを押す  

Pure-FTPdにISPConfig SSL証明書をシンボリックリンクしますか? dhparamファイルの作成には時間がかかる場合があります。(y,n) [y]: <-- Enterを押す  

DHパラメータを生成中、2048ビットの安全な素数、生成器2  
これには時間がかかります  
......................+...........................................+...............  
アプリのvhostの設定中  
DBServerの設定中  
ISPConfigのcrontabをインストール中  
getmailのcrontabはありません  
IPアドレスを検出中  
サービスを再起動中 ...  
インストールが完了しました。  
[INFO] ISPConfigにphpバージョンを追加中。  
[INFO] すべてのサービスが実行中であることを確認中。  
[INFO] mysql: OK  
[INFO] clamav-daemon: OK  
[INFO] postfix: OK  
[INFO] bind9: OK  
[INFO] pureftpd: OK  
[INFO] apache2: OK  
[INFO] rspamd: OK  
[INFO] redis-server: OK  
[INFO] dovecot: OK  
[INFO] インストール準備完了。  
[INFO] あなたのMySQL rootパスワードは: kl3994aMsfkkeE  
[INFO] 警告: もう必要ない場合は、/tmp/ispconfig-ai/var/log/setup-*のログファイルを削除してください。これにはあなたのパスワードが含まれています!

5.3 Dovecotのレプリケーションの設定

mx1とmx2の間でメールを同期するためにdsyncを使用します。冗長性のためです。

Dovecotのカスタム設定は、/usr/local/ispconfig/server/conf-custom/install/dovecot_custom.conf.masterに保存する必要があります。これにより、ISPConfigを更新したときに設定を失うことがありません。

nano /usr/local/ispconfig/server/conf-custom/install/dovecot_custom.conf.master

以下を追加します:

protocol imap {  
  mail_plugins = $mail_plugins quota imap_quota notify replication  
}  
protocol pop3 {  
  mail_plugins = $mail_plugins quota notify replication  
}  
protocol lda {  
  mail_plugins = $mail_plugins sieve quota notify replication  
}  
protocol lmtp {  
  mail_plugins = $mail_plugins sieve quota notify replication  
}  
doveadm_password = /(:&p-J:4e%?\@Q-;VSE#3Dmfm[fVK&r-mx2  
doveadm_port = 12345  
replication_max_conns = 50  
  
ssl_client_ca_dir = /etc/ssl/certs  
  
# レプリケータプロセスは起動時に開始される必要があります。これにより、ユーザーのレプリケーションが即座に開始されます:  
service replicator {  
  process_min_avail = 1  
}  
  
# メールプロセスは、replication-notify fifoおよびソケットにアクセスする必要があります。  
service aggregator {  
    fifo_listener replication-notify-fifo {  
        user = vmail  
        mode = 0666  
    }  
  
    unix_listener replication-notify {  
        user = vmail  
        mode = 0666  
    }  
}  
  
# doveadmレプリケータコマンドを有効にします  
service replicator {  
    unix_listener replicator-doveadm {  
        mode = 0666  
    }  
}  
  
# doveadm-serverのリスナーを作成します  
service doveadm {  
    user = vmail  
    inet_listener {  
        port = 12345  
        ssl = yes  
    }  
}  
service config {  
    unix_listener config {  
        user = vmail  
    }  
}  
  
plugin {  
    mail_replica = tcps:mx1.example.com  
}

doveadm_passwordを自分のパスワードに置き換えてください - セキュリティ上の理由から、長くランダムな文字列にしてください。両方のサーバーで同じである必要があります。

mail_replica = tcps:mx1.example.com

を自分のmx1のホスト名に置き換えます。

これらの変更を適用するには、ファイルをdovecotフォルダーにコピーし、dovecotを再起動します:

cp /usr/local/ispconfig/server/conf-custom/install/dovecot_custom.conf.master /etc/dovecot/conf.d/99-ispconfig-custom-config.conf  
systemctl restart dovecot

5.4 Rspamdの同期設定

Rspamdには素晴らしいWeb UIがあります。サーバーを隣接サーバーとして設定し、1つのパネルで設定、統計、その他のデータを表示できるようにします。

nano /usr/local/ispconfig/server/conf-custom/install/rspamd_options.inc.master

これらの行を追加します:

# ISPConfigテンプレートからの設定(変更があった場合は更新する必要があります)
# このサーバーにローカルなアドレス。
local_addrs = [
    "127.0.0.0/8",
    "::1",
  ];

# このリストはISPConfigによって生成されます。カスタムアドレス/ネットワークはlocal_networks.incに配置します。
local_networks = "/etc/rspamd/local.d/local_networks.inc";

dns {
    nameserver = ["127.0.0.1:53:10"];
}

# カスタム設定:
neighbours {
    mx1 {
        host = "https://mx1.example.com:443";
        path = "/rspamd/";
    }
    mx2 { 
        host = "https://mx2.example.com:443";
        path = "/rspamd/";
    }
}
# 最終更新: 19-01-2022

ホスト名をメインおよびセカンダリメールサーバーの正しいホスト名に置き換えます。この設定は、テンプレートが変更された場合に更新する必要がありますので、ISPConfigを更新する際に確認してください。

次に、このサーバーのためのウェブサイトをISPConfigに追加します。サイト -> 新しいウェブサイトを追加に移動し、「mx2.example.com」というウェブサイトを追加します。正しいサーバー(mx2.example.com)で作成されていることを確認してください。自動サブドメインを無効にし、SSL + Let’s Encryptを有効にします。次に、オプションに移動し、Apacheディレクティブセクションに次の内容を貼り付けます:

RewriteEngine On  
RewriteRule ^/rspamd$ /rspamd/ [R,L]  
RewriteRule ^/rspamd/(.*) http://127.0.0.1:11334/$1 [P]  
Header set Access-Control-Allow-Origin https://mx1.example.com

mx1.example.comをセカンダリネームサーバーのホスト名に置き換えます。

最後に、いくつかのApacheモジュールを有効にし、サービスを再起動する必要があります:

a2enmod proxy_balancer proxy_http  
systemctl restart rspamd  
systemctl restart apache2

次に、MX1のRspamd UIのパスワードを設定します。これはRspamdクラスターのWeb UIとして使用します。

ISPConfigにadminとしてログインし、システム -> サーバー設定 -> mx1.example.com -> メール -> Rspamdパスワードに移動します。

新しいパスワードを入力し、保存をクリックします。次に、システム -> サーバー設定 -> mx2.example.com -> メール -> Rspamdパスワードに移動し、同じパスワードを入力します。変更が伝播するまで待ちます。完了したら、ブラウザでhttps://mx1.example.com/rspamd/にパスワードでログインできます。

5.5 有効なSSL証明書でメールサーバーを保護する

DSYNCおよびRoundcubeのセットアップが機能するためには、使用されるホスト名に対して有効なSSL証明書が必要です。この証明書は自己署名ではいけません。このサーバーにimap.example.comやsmtp.example.comなどの追加のホスト名を使用する場合、またはインストーラーがインストール時に有効な証明書を作成できなかった場合は、次のガイドに従ってメールサーバーの有効な証明書を設定してください: https://www.howtoforge.com/securing-your-ispconfig-3-managed-mailserver-with-a-valid-lets-encrypt-certificate/

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

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

正しいサーバーを選択していることを確認してください。私たちのメールサーバーの場合、次のポートを開く必要があります:

TCP:

22,25,80,110,143,443,465,587,993,995

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

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

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

5.7 ISPConfigでMX2をMX1からミラーリングする

セットアップを完了するには、mx1とmx2の間でミラーリングを有効にする必要があります。これを行うには、ISPConfigにログインし、システム -> mx2.example.com -> 「サーバーのミラーです」を選択します。mx1.example.comを選択し、保存をクリックします。

私たちのセカンダリメールサーバーはこれでインストールされました。次のステップでは、メインDNSサーバーをインストールします。

Share: X/Twitter LinkedIn

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

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