メールサーバー · 2 min read · Sep 25, 2025
Debian 10にISPConfigを使ってメールサーバーをインストールする方法

このチュートリアルでは、単一サーバーのセットアップを例として使用します。ISPConfig 3.1はDebian 10.0、Busterにインストールされています(実際のサーバーインストールについてはISPConfig Perfect Serverインストールチュートリアルを参照してください)。このガイドの目的は、初期サーバーをインストールした後に、自分のドメイン名のために動作するメールシステムを設定する手順を示すことです。このチュートリアルをテスト中にISPConfigを3.1.15にアップグレードしました。
必要なもの
このチュートリアルを成功裏に使用するためには、適切に動作するメールサーバーが必要です。
- ISPConfigをインストールするホスト(およびオペレーティングシステム)
- メモリは2GB、スワップは4GBを推奨します。メールサーバーには十分です。
- ホストはインターネット接続があり、ポート25が双方向で開いている必要があります。
- ホストには固定IPアドレスが必要です。
- ホストのIPアドレスにAレコードが必要です(IPv6を使用する場合はAAAA)
- ホストのDNS名サービスにMXレコードを作成する必要があります。
- ホストのFQDNに一致するPTRレコードを取得する必要があります。
メモリ要件はSPAMフィルター用です。4GBのスワップがあれば、SPAMフィルターを実行していても1GBのメモリで済むことがあります。
開いているポート
メールサーバーは、ポート25が双方向で開いている必要があります。そのホストでメールサーバーを設定する前に、そのポートが開いていることを確認してください。
ポート25が開いていない場合でもメールを機能させる方法はありますが、ポート25が開いている別のホストを介してメールを送信する必要があります。そのため、メールに関してはその別のホストにメールサーバーをインストールし、最初のホストを完全に忘れる方が理にかなっているかもしれません。
DNS名サービスエントリ
メールサーバーにはFQDN(完全修飾ドメイン名)が必要です(Wikipediaで読む: FQDN)。この例では、ドメイン名はtaleman.ovhです。メールサーバーのホスト名がmailである必要はないことを示すために、ホスト名としてpostiを使用します。したがって、FQDNはposti.taleman.ovhです。
このホストはサービスプロバイダーのシステムにインストールされており、ドメインの登録、名前サービス、逆名前サービスを提供しています。私はそれらを使用しました。
IPアドレスは178.33.154.66です。私は以下のことを行いました:
- ドメインtaleman.ovhを登録しました。
- このIPアドレスをAレコードとしてDNS名サービスに追加し、名前をposti.taleman.ovhとしました。
- ドメインtaleman.ovhのMXレコードを値posti.taleman.ovhで追加しました。
- そのIPアドレスの逆名前サービスPTRレコードを追加し、posti.taleman.ovhを指すようにしました。
MXレコードはメールドメインのために作成されます。したがって、私はtaleman.ovhのためにそれを作成し、posti.taleman.ovhを指します。このドメインのメールを受信するメールサーバーです。
逆名前サービス
逆名前サービスについては、名前サービスチュートリアルを参照してください。この例では、逆名前サービスはposti.taleman.ovhを返す必要があります。
私のサービスプロバイダーは、対応するPTRを追加する前にAレコードの存在を確認しました。これが追加に失敗した理由であることに気づくまで、少し問題がありました。
名前サービスのテスト
名前サービスが正しく設定されていないと、メールの送受信は機能しないため、今テストする方が良いです。ワークステーションがLinuxまたはUnixではなくWindowsの場合は、hostの代わりにnslookupコマンドを使用してください。
$ host taleman.ovh
taleman.ovh has address 188.165.143.5
taleman.ovh mail is handled by 10 posti.taleman.ovh.上記の結果は、ドメイン名に関連付けられたIP番号があることを示しています(この場合、メールサーバーのIP番号とは異なりますが、メールには影響しません)、そしてposti.taleman.ovhを指すMXレコードがあります。「mail is handled by」部分はMXレコードから来ています。このMXレコードは、@taleman.ovhアドレスに送信されたメールがposti.taleman.ovhで受信されるために必要です。
次に、メールサーバーFQDN(この場合はposti.taleman.fi)の名前サービスエントリがAレコードであり、正しいIP番号を指していることを確認します。
$ dig posti.taleman.ovh |grep "ANSWER SECTION" --after-context=3
;; ANSWER SECTION:
posti.taleman.ovh. 3600 IN A 178.33.154.66
;; Query time: 56 msec最後に、逆名前サービスがIP番号をメールサーバーのFQDNに戻すことを確認します。
$ host 178.33.154.66
66.154.33.178.in-addr.arpa domain name pointer posti.taleman.ovh.hostおよびdigコマンドの代わりに、名前サービスをテストするウェブページを使用できます。私はintoDNSやMXToolboxを知っています。
上記のテストが成功しない場合は、名前サービスの設定に関するチュートリアルを試してみてください。
OSのインストール
私はDebianバージョン10 Busterを使用しているので、このチュートリアルに従います:
https://www.howtoforge.com/tutorial/debian-10-buster-minimal-server/
IP番号、ホスト名、ドメイン名を自分の値に置き換えます。
このチュートリアルを英語で書いているので、言語として英語を選びましたが、国はフィンランド、ロケール設定はUnited_Kingdom en_GB.UTF-8を選びました。
root@posti:/tmp# cat /etc/debian_version 10.0root@posti:~# locale
LANG=en_GB.UTF-8
LANGUAGE=en_GB:en
LC_CTYPE="en_GB.UTF-8"
LC_NUMERIC="en_GB.UTF-8"
LC_TIME="en_GB.UTF-8"
LC_COLLATE="en_GB.UTF-8"
LC_MONETARY="en_GB.UTF-8"
LC_MESSAGES="en_GB.UTF-8"
LC_PAPER="en_GB.UTF-8"
LC_NAME="en_GB.UTF-8"
LC_ADDRESS="en_GB.UTF-8"
LC_TELEPHONE="en_GB.UTF-8"
LC_MEASUREMENT="en_GB.UTF-8"
LC_IDENTIFICATION="en_GB.UTF-8"
LC_ALL=
root@posti:~# cat /etc/timezone
Europe/Helsinkiホスト名が正しく設定されていることを確認してください。ISPConfigによるメールシステムの構成は、ホスト名が間違っていると機能しません。
root@posti:~# hostname posti
root@posti:~# hostname -f posti.taleman.ovh
root@posti:~#ISPConfigのインストール
私はApacheをウェブサーバーとしてインストールすることに決めたので、Debian Busterの場合はこのPerfect Server Guideに従います。
ホストにopenssh-serverをインストールし、sshキーを使用してrootログインを設定したので、rootとして直接ホストにsshできます。OpenSSHによるパスワードなしのログインまたはSSHによる安全なパスワードなしのログイン。
root@posti:/tmp# free -h
私はnanoよりもEmacsスタイルのエディタを好むので、ファイルの編集をより快適にするために今jedをインストールします。
私はオペレーティングシステムのインストール後に/etc/hostと/etc/hostnameが正しく設定されていることを確認したので、Perfect Server Guideに従ってそれらが正しいことを確認しました。ホスト名とFQDNに注意してください。それらを間違えると、最終的にメールサーバーが機能しないことがわかります。損傷は修復できますが、最初から正しく設定する方が簡単です。
root@posti:/tmp# hostname
posti
root@posti:/tmp# hostname -f
posti.taleman.ovh残りは、Perfect Server Guideに従うだけです。コマンドはほとんどそのままコピー&ペーストできます。
私はMailmanをインストールしませんでした。このホストでMailmanを使用する予定はありません。同様に、BIND DNSサーバー、Webalizer、AWStatsのインストールを省略しました。このホストはメールサーバーになるので、Roundcube Webmailはインストールしました。
第18章(PHPMyAdminデータベース管理ツールのインストール)では、次のコマンドを使用しました。
/usr/bin/apg -m 32 -x 3232文字の長さのブローフィッシュ秘密を生成します。
システムの使用
メールドメインとメールボックスの作成
今、私はISPConfigに管理者としてログインし、
- 新しいクライアントを追加
- 新しいドメイン(メールドメイン!)を追加し、フォームに記入
- 新しいメールボックスを追加
画像の番号順にボタンをクリックしてDKIMキーとレコードを作成します。DKIMについてはWikipediaで読むことができます。

図1:メールドメインの作成
その後、2分待つか、ISPConfigパネルの上部にある数字の赤いボールが消えるまで待ちます。
最初のテストとして、上記で作成したメールボックスでRoundcube Webmailにログインし、その同じアドレスにメールを送信します。ISPConfigは作成されたすべてのメールボックスにウェルカムメッセージを送信するので、すでに1通のメッセージがあるはずです。作成ボタンを使用して短いテストメッセージを書きます。

図2:Roundcubeウェブメール

図3:Roundcubeからの送信
メッセージはすぐにメールボックスに表示されるはずです。
次に、他のメールボックスにメールを送信して、そこにメールが届くかどうかを確認します。次のテストでは、どこか別の場所から上記で作成したメールボックスに送信できます。
メールボックスに対してグレイリスティングを有効にした場合、サーバー外から送信されたメールはすぐにはメールボックスに届かないことに注意してください。ただし、メールがサーバーに到達できることを示すために、メールログに配信の試行がすぐに表示されるはずです。ファイル/var/log/mail.logのグレイリスティングエントリは次のようになります。
Aug 29 19:08:42 posti postfix/smtpd[16911]: NOQUEUE: reject:
RCPT from mta-out1.inet.fi[62.71.2.194]: 450 4.2.0
<[email protected]>: Recipient address rejected: Greylisted,
see http://postgrey.schweikert.ch/help/taleman.ovh.html;
from=<**@*.*> to=<[email protected]> proto=ESMTP
helo=<****..*>ターミナルウィンドウでメールログを次のように監視できます。
tail -f /var/log/mail.logまたは、グレイリスティングエントリのみに興味がある場合は、次のコマンドを使用します。
tail -f /var/log/mail.log | grep Greylistedまたは
grep Greylisted /var/log/mail.logグレイリスティングは、同じ送信者から同じ受信者への最初のメールのみを遅延させます。その最初のメールが受信されると、次のメールは追加の遅延なしに届きます。
私の場合、すべてが最初の試みでうまくいきました。これは、ISPConfig Perfect Server Guideが本当に機能することを示しています。
メールクライアントの接続
Thunderbirdを例としてメールクライアントを使用します。他のメールクライアントアプリケーションも同様に機能します。
ISPConfigはアカウント名をメールアドレスにします。

図4:Thunderbirdアカウント設定

図5:Thunderbirdサーバー設定
接続セキュリティSTARTTLSは、接続が保護されていない状態で開始され、両者が暗号化をサポートしている場合に暗号化に切り替わることを意味します。SSL/TSLは、セッションが最初から暗号化されていることを意味します。SSL/TSLはおそらくわずかに安全性が高いので、クライアントがそれで動作するかどうかを試してみてください。

図6:Thunderbird送信サーバー設定
SPFの使用
Sender Policy FrameworkについてはWikipediaで読むことができます。元々SPFはSender Permitted Fromの略で、何を意味するかを思い出すのに便利です。SPFについて読んだ後、レコードを自分で作成できます。名前サービスプロバイダーがSPFレコードを生成できるかどうかを確認するか、インターネット検索エンジンを使用して
SPF wizardレコードを作成するウェブサイトを見つけて、レコードを名前サービスにコピー&ペーストします。TXTレコードを追加するか、DNSシステムによってはSPFレコードを追加します。
名前サービスでSPFがどのように見えるかを確認します。
$ dig taleman.ovh -t TXT | grep spf
taleman.ovh. 3000 IN TXT "v=spf1 mx ~all"または次のように:
$ dig +short taleman.ovh TXT
"v=spf1 mx ~all"
"1|www.taleman.ovh"DKIMの使用
DomainKeys Identified MailについてはWikipediaで読むことができます。ISPConfigはメールドメインを作成するときにDKIMキーを作成します(DKIMボックスにチェックを入れることを忘れなければ)。DNSレコードである公開キーを名前サービスにTXTレコードとしてコピー&ペーストします。名前サービスプロバイダーは、DKIMレコードの作成を容易にするツールを提供しているかもしれません。DKIMプライベートキーは秘密にしてください。
名前サービスでDKIMがどのように見えるかを確認します。
$ host -t txt default._domainkey.taleman.ovh.
default._domainkey.taleman.ovh descriptive text "v=DKIM1;h=sha256;s=*;p=MIIB(I cut long string shorter)0rp" "sTGLXyK(cut shorter)B;t=s;"もしISPConfigがDKIMキーを作成した場合、プライベートキーはamavis設定の正しい場所にコピーされます。
SPFとDKIMが機能しているかどうかを確認するために便利なウェブサイトmail-tester.comがあります。そのウェブサイトに行き、そこからサーバーからメールを送信します。1分待ってから、再度ウェブサイトを確認します。
証明書の作成
ISPConfigは自己署名証明書を作成できます。これらはISPConfigのインストール中に作成されますが、作成しないことを選択した場合を除きます。自己署名証明書を作成した場合でも、ブラウザ、メールプログラム、他のメールサーバーが信頼する適切な証明書を作成することは良い考えです。
素晴らしいチュートリアルがあります:無料のLet’s Encrypt SSL証明書でISPConfigを保護する
そのチュートリアルに従って、作成されたウェブサイトはDebianのデフォルトウェブページを表示していましたが、ウェブサイトのためにLE証明書を作成するまでそうでした。また、ISPConfigパネルも不安定でした。自己署名証明書と新しい証明書、または全く証明書がないためだと思います。ブラウザでページを更新すると、これが解決されました。
証明書が設定されたら、ブラウザにサーバーのhttpsアドレスを入力します。ブラウザのアドレスバーの左側にあるアイコンを別のマウスボタンでクリックすると、証明書に関する情報が表示されます。
ISPConfigパネルのシステムタブ、インターフェースメイン設定、メールタブに移動します。そこで、
Use SSL/TLS encrypted connection for SMTPをSSLに設定します。
証明書のさらなるテストは、ウェブサイト上のツールを使用して可能です。インターネット検索エンジンを使用して
ssl testingを検索します。これらのツールは通常、ウェブサイトをテストしますが、メールサーバーが持つ証明書をテストする場合は、
ssl testing mail serverで検索します。
ISPConfig Roundcubeプラグイン
これらのプラグインはウェブメールユーザーにとって便利です。たとえば、Roundcubeでメールパスワードを変更することができます。他の設定もRoundcubeで変更できます。すべての設定はISPConfigパネルで変更できますが、一部のメールユーザーはパネルを使用したくないかもしれません。
私はDebian 9でのチュートリアルISPConfig 3 Roundcube Pluginを使用してISPConfig Rouncubeプラグインをインストールしました。このチュートリアルはDebian 10 Busterでも正確に機能しましたが、ispconfig3_account/config/config.inc.phpには1行追加されました。
$config['soap_validate_cert'] = true;これは、証明書が前の章で正しく設定され、テストされているため、trueのままで大丈夫です。ただし、ホストに有効な証明書がない場合は、この設定をfalseに変更します。
私は1つの問題を抱えていました。アカウントセクションのいくつかの項目でエラーメッセージが表示されました。
An error occurred.
Soap Error: The login is not allowed from 私はこれをリモートアクセスにチェックを入れ、チュートリアルに従って作成したrcmail-remoteユーザーのためにposti.taleman.ovhと書くことで解決しました。「リモートアクセス」をチェックする必要がないというチュートリアルは間違っているようです。今のところ、単一サーバーのセットアップとISPConfigのマルチサーバーセットアップの両方に必要なようです。
さらなる使用
今、別のメールドメインを作成できます。そのドメインのためにMXレコードを作成し、メールサーバーを指すようにしてください。作成するすべてのメールドメインに同じメールサーバーを使用できます。これは通常の方法であり、各メールドメインのために別々のメールサーバーを作成するのはかなり無駄です。
トラブルシューティング
このチュートリアルに従った結果、私の新しく設定されたメールサーバーは機能しています。もしあなたのメールサーバーが機能しない場合は、このチュートリアルに従ったか、いくつかのステップをスキップしていないか確認してください。
フォーラムを読むと、動作しないメールサーバーの一般的な原因は、ホスト名とhostname -fの設定ミス、またはファイル/etc/postfix/main.cfの間違いであることが示されています。
DNS名サービスに問題があると思われる場合は、ISPConfig -チュートリアルでそれらを確認してください。intodns.com、dnschecker.com、mxtoolbox.comなど、DNSをチェックするウェブサイトツールがあります。
メールが受信されない、または送信されない場合、これらの機能を行うのはpostfixであり、それらは/var/log/mail.logにログされています。したがって、
tail -f /var/log/mail.log | grep postfixを実行して、メールが受信または送信されるときに何が起こるかを確認します。
メールクライアント(Thunderbirdなど)との接続に問題がある場合は、次のようにして何が起こるかを確認します。
tail -f /var/log/mail.log | grep dovecot特定のメールに問題がある場合、そのメールのIDを使用してメールログエントリを見つけることができます。たとえば:
Sep 23 14:19:34 posti postfix/smtps/smtpd[10260]: A9F2880C76:
client=dsl-tkubng21-58c1ce-191.dhcp.inet.fi[99.99.99.99],
sasl_method=PLAIN, [email protected]そのメールのIDはA9F2880C76です。そのメールのログエントリを見つけるには、
# grep A9F2880C76 /var/log/mail.logコマンドmailqは、postfixの保留キューにあるメールを表示します。つまり、まだ配信されていないメールです。最近のエントリがいくつかあるのは正常です。メールは常に即座に配信されるわけではありません。これらのメールの内容は、キューIDを使用して次のように表示できます。
# postcat /var/spool/postfix/deferred/A/A9F2880C76HowtoforgeにはISPConfigフォーラムがあり、そこでアドバイスを求めることができます。
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。