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

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

4 最初のメールサーバーのインストール

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

su -

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

4.1 ホスト名の設定

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

nano /etc/hosts
127.0.0.1 localhost.localdomain   localhost  
# この行はすべてのノードで正しいサーバー名に変更する必要があります:  
127.0.1.1 mx1.example.com mx1  
# これらの行はすべてのノードで同じです:
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

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

mx1

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

systemctl reboot

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

hostname  
hostname -f

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

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

4.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を押します。インストーラーが開始されます。

パッケージのインストールと設定が完了すると、mx1の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 [mx1.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を押す  
  
mx1.example.comの証明書を確認/作成中  
証明書パスを使用しています /etc/letsencrypt/live/mx1.example.com  
証明書検証にApacheを使用しています  
ISPConfig SSL証明書をPostfixにシンボリックリンクしますか? (y,n) [y]: <-- Enterを押す  
  
ISPConfig SSL証明書をPure-FTPdにシンボリックリンクしますか? 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-*のログファイルを削除してください。これにはあなたのパスワードが含まれています!

4.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-mx1  
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:mx2.example.com  
}

doveadm_passwordを自分のパスワードに置き換えます - セキュリティ上の理由から、長くてランダムな文字列にしてください。

mail_replica = tcps:mx2.example.com

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

これらの変更を適用するには、ファイルを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

4.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でこのサーバーのウェブサイトを追加します。「サイト」->「新しいウェブサイトを追加」に移動し、「mx1.example.com」というウェブサイトを追加します。正しいサーバー(mx1.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://mx2.example.com

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

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

a2enmod proxy_balancer proxy_http  
systemctl restart rspamd  
systemctl restart apache2

4.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/

4.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
Share: X/Twitter LinkedIn

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

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