お問い合わせはこちら

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

公開
更新
Postfix

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

Postfixとは

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

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

Postfixの具体的な機能や特徴

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

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

利用時のメリット

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

利用時のデメリット

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

sendmailとの比較

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

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

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

Postfixの設定

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

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

今回利用した環境は、カゴヤ・ジャパン提供の「VPS」というVPSのプランです。CPU 2コア、ストレージはSSD 25GB、最大メモリーが2GBを選択しました。
初期費用が不要で、日額24円から申し込みが可能です。テストなどの短期利用でもお得ですね。
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 = postfixmail_owner = postfix
75行目#myhostname = host.domain.tldmyhostname = mail.test.com
83行目#mydomain = domain.tldmydomain = test.com
106行目#myorigin = $mydomainmyorigin = $mydomain
120行目#inet_interfaces = allinet_interfaces = all
174行目#mydestination = $myhostname, localhost.$mydomain, localhost, $mydomainmydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
211行目#local_recipient_maps = unix:passwd.byname $alias_mapslocal_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=noSTART=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

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

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

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

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

【コマンド】

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

440円/月から利用できるアドレス数無制限のメールプラン

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

これまで説明してきたことに少し手を加えるだけで、対応可能です。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 = yesdisable_plaintext_auth = no
100行目auth_mechanisms = plainauth_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 = yesssl = 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まで挑戦すれば、メールサーバーをご自身で管理できるようになります。これまで漠然と使うだけだったメールの仕組みを、より深く理解することにもつながります。

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

メールサーバーを専有できる高コスパプラン

KAGOYAのメールプラン「セキュアベーシック」や「専用タイプ」ではメールサーバー1台を専有でき、他のユーザーの影響を受けずセキュアにメールの送受信が可能。
当然、メールアドレス数は無制限で法人利用率の高い高コスパなプランとなっています。