【入門】Postfixとは?メールサーバー構築方法と基本設

代表的なメールサーバー用ソフトウェアといえばPostfixの名前をあげる方も多いかも知れません。この記事では、新規取得したドメインでメールを送信する方法や、セキュリティを意識した設定のポイントなど、Postfixの役割と設定方法をやさしく解説していきます。受信用のメールサーバー用ソフトウェア(Dovecot)と組み合わせれば、メール送受信が自前のサーバーで可能になりますよ。

Postfixとは

ソフトウェアの名称で、メールを送信(配送)するときに利用します。オープンソースで手軽にサーバーに導入できます。誕生してからおよそ20年経っており、安全且つ使いやすいように改良をされてきました。現在のシェアは約3割程度となっています。 (出典: Mail Server Survey 2018年1月)

このメール送信(配送)を担当するサーバーを、一般的にSMTPサーバーと呼びます。詳しくは「SMTPサーバーとは?IMAPやPOPとの違い&基本の設定方法」の記事をご覧ください。

Postfixの具体的な機能や特徴

それではPostfix利用のメリット・デメリットを整理してみます。

それぞれ簡単に下記にまとめてみました。

利用時のメリット

  • 最大3倍高速 (出典: Postfix の概要 – 目的と特徴)
  • 設定によりセキュリティを維持できる
  • インターネット上に関連情報が多く公開され、トラブル時に心強い

利用時のデメリット

  • SMTPサーバーとしての機能しかなく、受信には別途ソフトウェアが必要

sendmailとの比較

以下の表では、同じく代表的なsendmailと比較しています。それぞれの特徴や違いを知って最適な物を選んでみてください。

Postfix sendmail
設定の難しさ 比較的やさしい 比較的むずかしい
セキュリティの維持 設定により可能 より高度な設定により可能
sendmailとの互換 互換性あり
※個人的イメージ 現在・バランス・高速 歴史的・柔軟性

初めてでも出来る!Postfixの設定方法

それではここから、Postfixの設定方法を解説していきます。

(1)利用するサーバー環境

今回利用した環境は、カゴヤ・ジャパン提供の「Open VZ」というVPSのプランです。CPU 3コア、ストレージはSSD 80GB、最大メモリーが2GB(保証メモリー1GB)を選択しました。
初期費用が不要で、日額31円から申し込みが可能です。テストなどの短期利用でもお得ですね。
OSはプラン申し込み時に選択します。この記事ではUbuntu14.04 (64bit)を元にして解説していきます。

(2)インストール~独自ドメインの指定方法

まずは基本的な設定から始めます。以下の手順で行っていきます。
Tera Termなどのターミナルエミュレータにて、上記で用意したサーバーにアクセスしましょう。

❶パッケージリスト更新

【コマンド】

sudo apt-get update

❷Postfix のインストール

【コマンド】

sudo apt-get -y install postfix

「あなたの用途に合ったメールサーバー設定形式を選んでください。」のメッセージが表示されたら、「1. 設定なし」を選択してください。後程、別途設定の方法をご説明します。

❸設定のための準備

設定ファイルを用意し、内容をターミナルエミュレータに表示します。

【コマンド】

sudo cp /usr/share/postfix/main.cf.dist /etc/postfix/main.cf
sudo vi /etc/postfix/main.cf

❹設定ファイルの修正

今回の作業ではここが一番の難所です。
実はほとんどの修正は、冒頭の「#」を取ってそれぞれの動作を有効化する作業です。一つずつ片づけていきましょう。
例として、独自ドメイン名をtest.com、ホスト名をmail.test.comとして解説しています。もちろんこれらは架空の名称で、実際に入力しても何も起きませんのでご注意ください。

修正前 修正後
59行目 #mail_owner = postfix mail_owner = postfix
75行目 #myhostname = host.domain.tld myhostname = mail.test.com
83行目 #mydomain = domain.tld mydomain = test.com
106行目 #myorigin = $mydomain myorigin = $mydomain
120行目 #inet_interfaces = all inet_interfaces = all
174行目 #mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
211行目 #local_recipient_maps = unix:passwd.byname $alias_maps local_recipient_maps = unix:passwd.byname $alias_maps
423行目 #home_mailbox = Maildir/ home_mailbox = Maildir/
567行目 smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu) #smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
smtpd_banner = $myhostname ESMTP
633行目 sendmail_path = sendmail_path = /usr/sbin/postfix
638行目 newaliases_path = newaliases_path = /usr/bin/newaliases
644行目 mailq_path = mailq_path = /usr/bin/mailq
649行目 setgid_group = setgid_group = postdrop
653行目 html_directory = #html_directory =
657行目 manpage_directory = #manpage_directory =
662行目 sample_directory = #sample_directory =
666行目 readme_directory = #readme_directory =
(最終行に追記) message_size_limit = 10485760
mailbox_size_limit = 1073741824

❺保存と再起動

修正した設定ファイルを保存し、Postfixを再起動します。

【コマンド】

sudo newaliases
sudo /etc/init.d/postfix restart

これで基本的なインストールと設定作業は終了です。

 (3)セキュリティ対策方法とは?

SASL認証という機能を導入して対応します。設定方法は以下の通りです。

❶SASLのインストールと設定のための準備

【コマンド】

sudo apt-get -y install sasl2-bin
sudo vi /etc/default/saslauthd

❷設定ファイルの修正

修正前 修正後
7行目 START=no START=yes

❸SASLの再起動

【コマンド】

sudo /etc/init.d/saslauthd restart

❹Postfix設定ファイルを操作するための準備

下記コマンドを実行したあと、最終行に移動して修正(追加)してください。

【コマンド】

sudo vi /etc/postfix/main.cf

❺設定ファイルへの修正(追加)

追記内容
(最終行に追記) smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
smtpd_recipient_restrictions = permit_mynetworks,permit_auth_destination,permit_sasl_authenticated,reject

❻保存と再起動

修正した設定ファイルを保存し、Postfixを再起動します。

【コマンド】

sudo newaliases
sudo /etc/init.d/postfix restart

これでセキュリティを考慮した設定作業は終了です。

❼ファイアウォール機能の設定

カゴヤ・ジャパン提供の「Open VZ」(VPS)のプランは、セキュリティを高めるため、必要なポートを都度開けるなどの操作が必要です。

メールを送信(転送)する場合はSMTP (25番ポート)を許可します。コマンドは以下の通りです。詳しくは、公式マニュアルを参照してください。

【コマンド】

sudo iptables -A INPUT -p tcp –dport 25 -j ACCEPT
sudo iptables -A INPUT -p tcp –sport 25 -j ACCEPT

【応用編】バーチャルドメイン設定で複数の独自ドメイン対応にする方法

これまで説明してきたことに少し手を加えるだけで、対応可能です。1台のメールサーバーに、1つの独自ドメインの利用しかできないわけではありません。マシンスペックが許す限り、好きなだけ独自ドメインを追加可能です。応用編として、その方法を解説します。

まず独自ドメイン名を取得したサイトの管理画面で、DNS情報を指定する必要があります。この操作により独自ドメイン名を使ったメールアドレスと、DNS情報で指定したメールサーバーが関連づけられます。この記事では、カゴヤ・ジャパン提供のVPSですね。

Postfixの設定ファイルに追記する内容

【コマンド】

vi /etc/postfix/main.cf

追記内容
(最終行に追記) virtual_alias_domains = virtual.net
virtual_alias_maps = hash:/etc/postfix/virtual

1行目のvirtual_alias_domains = の後に、追加したい独自ドメイン名を入力してください。さらに追加したい独自ドメイン名が複数ある場合は、半角スペースを入れて追記していきましょう。

2行目のvirtual_alias_maps = の部分は、別ファイルにメールアドレスなどの情報をまとめて管理する指示になっています。このファイルは次項で作成します。

メールアドレスなどの管理ファイルを作成する

追加する独自ドメイン名とメールアドレスを、それぞれテスト用にvirtual.netとvrtest@ virtual.netにしています。下記のコマンドによって、新規ファイルを作成します。

【コマンド】

vi /etc/postfix/virtual

追記内容
(新規追加) virtual.net        anything
vrtest@ virtual.net        vrtest

1行目のvirtual.netの部分は、追加する独自ドメイン名です。タブなどでスペースを空け、anythingと続けてください。

2行目のvrtest@ virtual.netの部分はメールアドレス名です。タブなどでスペースを空けて、メールアドレスの@より左の部分を入力してください。なおこの部分はLinuxのユーザー名に相当します。Linuxのユーザー名の作成により、メールアドレスは好きなだけ作成できます。

さらに追加したい独自ドメイン名がある場合は、このファイルで同様の操作を繰り返せば出来上がります。

受信用のメールサーバー用ソフトウェア(Dovecot)もセットで導入!

ここまで送信用メールサーバー用ソフトウェアPostfixについて、概要と設定方法の説明をしてきました。最後に、受信用メールサーバー用ソフトウェアのDovecot (ダヴコット)についても解説していきます。

Dovecotができること

Postfixには受信機能はありません。特殊な場合を除き、メールは送受信両方ができないと困るものです。Postfix のセットとして、Dovecotというソフトウェアの導入が多く紹介されています。

PostfixはSMTPサーバー、DovecotはPOP/IMAPサーバーとそれぞれ呼ばれています。詳しくは、繰り返しになりますが「SMTPサーバーとは?IMAPやPOPとの違い&基本の設定方法」の記事が参考になると思います。

Dovecotの設定方法

Postfixと比べてシンプルで、作業はすぐに終わると思います。

Dovecotのインストール

【コマンド】

sudo apt-get -y install dovecot-core dovecot-pop3d dovecot-imapd

設定ファイルの修正

【コマンド】

sudo vi /etc/dovecot/dovecot.conf

修正前 修正後
30行目 #listen = *, :: listen = *, ::

【コマンド】

sudo vi /etc/dovecot/conf.d/10-auth.conf

修正前 修正後
30行目 #disable_plaintext_auth = yes disable_plaintext_auth = no
100行目 auth_mechanisms = plain auth_mechanisms = plain login

【コマンド】

sudo vi /etc/dovecot/conf.d/10-mail.conf

★行修正前修正後

修正前 修正後
30行目 mail_location = mbox:~/mail:INBOX=/var/mail/%u #mail_location = mbox:~/mail:INBOX=/var/mail/%u
mail_location = maildir:~/Maildir

【コマンド】

sudo vi /etc/dovecot/conf.d/10-master.conf

★行修正前修正後

修正前 修正後
96行目 # Postfix smtp-auth
#unix_listener /var/spool/postfix/private/auth {
#  mode = 0666
#}
# Postfix smtp-auth
unix_listener /var/spool/postfix/private/auth {
mode = 0666
    user = postfix
    group = postfix
}

【コマンド】

sudo vi /etc/dovecot/conf.d/10-ssl.conf

★行修正前修正後

修正前 修正後
6行目 #ssl = yes ssl = no
12行目 ssl_cert = </etc/dovecot/dovecot.pem
ssl_key = </etc/dovecot/private/dovecot.pem
#ssl_cert = </etc/dovecot/dovecot.pem
#ssl_key = </etc/dovecot/private/dovecot.pem

【コマンド】

sudo initctl start dovecot

最後にDovecotを再起動して、設定は終了です。

ファイアウォール機能の設定

Postfixと同様に、メールを受信するためにはPOP (110番ポート)またはIMAP(143番ポート)を許可します。コマンドは以下の通りです。詳しくは、公式マニュアルを参照してください。

【コマンド】

sudo iptables -A INPUT -p tcp –dport 110 -j ACCEPT
sudo iptables -A INPUT -p tcp –sport 110 -j ACCEPT

または

【コマンド】

sudo iptables -A INPUT -p tcp –dport 143 -j ACCEPT
sudo iptables -A INPUT -p tcp –sport 143 -j ACCEPT

(4)セキュリティチェック方法

一例としてメールが不正に中継されていないか、しっかり拒否しているかをテストする方法があります。例えば、こちらのサイトでテストできます。複数の中継チェックを行い、すべて「Relay NOT Accepted」の結果が出れば、この対策はできていると判断できます。

メールサーバーを自前で運用しよう!(まとめ)

ここまでいかがでしたか。設定のステップは多くて大変そうですが、実際にやってみると意外とスムーズにできたのではないでしょうか。PostfixだけでなくDovecotまで挑戦すれば、メールサーバーをご自身で管理できるようになります。これまで漠然と使うだけだったメールの仕組みを、より深く理解することにもつながります。

カゴヤ・ジャパン提供の「Open VZ」プランを利用して、さっそくメールサーバーを立ち上げてみませんか。

高速でセキュアな環境で運用できるWordpressユーザー向けに特化したWordPress専用サーバー

人気記事ランキングトップ10

カテゴリ一覧

新着記事Pick Up!