簡単!サーバ証明書の承認メールを Postfix で受信/転送する方法

Linux
Linux
スポンサーリンク

SSL/TLSサーバ証明書を取得するときに、対象ドメインを保有していることを確認するために、認証局(サーバ証明書を発行する機関)から、承認メールが送られてくることがあります。当然対象ドメイン宛てのメールを受信できなければならないのですが、ちゃんとメールサーバを立てるのはなかなか大変です。そこで今回は、メール転送ソフトの Postfix を使って、サーバ証明書の承認メールを受信して、普段使っているメールアドレス宛てに転送する簡単な方法をご紹介いたします。

サーバの準備

まずはじめに、メールを受信するためのサーバを用意します。SSL/TLSサーバ証明書を取得しようとしているのであれば、WEBサーバが用意されていると思いますので、そのサーバを利用するのが手軽かと思います。

MXレコードをDNSサーバに登録

対象ドメインのMXレコードと、メールサーバのAレコードを、DNSサーバに登録しておきます。下ではメールサーバのサブドメインを「mail」としていますが、これはなんでも構いません。

example.com. IN MX 10 mail.example.com.
mail.example.com. IN A 192.0.2.1

Postfix のインストール

Postfix をインストールします。ただ、Linuxサーバであればすでに Postfix はインストールされて起動していると思います。

$ sudo yum -y install postfix

Postfix の設定

CentOS7での設定例です。

・Postfix の設定ファイルの編集
sudo vi /etc/postfix/main.cf

すべてのインターネットサーバからメールを受信できるように変更します。

inet_interfaces = localhost
 ↓
inet_interfaces = all

以下の2行を最終行に追加、「virtual_alias_domains」で対象のドメインを指定します。

virtual_alias_maps = hash:/etc/postfix/virtual
virtual_alias_domains = example.com

Postfix を再起動します。

$ sudo systemctl restart postfix

・Postfix のバーチャルファイルの最終行に以下の2行を追加します。
sudo vi /etc/postfix/virtual

example.com anything
hostmaster@example.com xxx@gmail.com

1行目の「example.com anything」で対象のドメイン宛てのメールの転送を許可します。2行目は転送設定です。「hostmaster@example.com」は、サーバ証明書の承認メールが送られてくるメールアドレス、「xxx@gmail.com」が転送先のメールアドレスです。

Google Cloud Platform や Microsoft Azure など、メールの送信(転送)が禁止されているサーバの場合は、ローカルユーザに転送します。転送先ユーザのホームディレクトリにメールが保存されます。

hostmaster@example.com user_name

バーチャルファイルをデータベース化します。

$ sudo postmap /etc/postfix/virtual

以上で Postfix の設定は終了です。

メールの受信に使うポートをオープン

メールの受信に使う TCP/25番ポートをオープンしておきます。

firewall-cmd --add-port=25/tcp --permanent
firewall-cmd --reload

第三者中継チェック

簡単な設定でしたが、メールサーバとして全世界に公開されています。スパムメールなどの迷惑メールの送信元として悪用されないように、必ず第三者中継チェックを行いましょう。

メールサーバ以外のホストから、telnet コマンドでメールサーバの25番ポート(SMTP)に接続します。※ほとんどの家庭向けプロバイダはOP25B規制(迷惑メール対策のため25番ポートへの接続を禁止)を実施していますので、OP25B規制のない企業向けプロバイダもしくは別のサーバから接続する必要があります。

telnet mail.example.com 25

(CentOS7 などで telnet コマンドがインストールされていない場合は、「yum -y install telnet」でインストールできます)

接続ができたら青文字の部分を入力し、メールサーバに設定したドメイン名(mydomain)以外のメールアドレスに送信できないことを確認します。

Trying 192.0.2.1...
Connected to mail.example.com.
Escape character is '^]'.
220 mail.example.com. ESMTP
 
mail from: sample@example.com ←送信元メールアドレス
 
250 2.1.0 Ok
 
rcpt to: test@example.org ←送信先の別ドメインのメールアドレス
 
454 4.7.1 <test@example.org>: Relay access denied ←この表示がされればOKです、第三者中継が拒否されています。
 
quit ← 接続終了
 

おわりに

承認メールの送信先はSSL/TLSサーバ証明書を発行する認証局が決めることですが、RFC2142 で定義されているメールアドレスを使うことが多いようです。今回設定した「hostmaster@example.com」のメールアドレスは、ドメイン管理者用のメールアドレスとして定義されています。

コメント

タイトルとURLをコピーしました