代表的なメールサーバー用ソフトウェアといえば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)利用するサーバー環境
今回利用した環境は、カゴヤ・ジャパン提供の「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 = 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
これでセキュリティを考慮した設定作業は終了です。
❼ファイアーウォール機能の設定
カゴヤ・ジャパン提供の「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まで挑戦すれば、メールサーバーをご自身で管理できるようになります。これまで漠然と使うだけだったメールの仕組みを、より深く理解することにもつながります。
カゴヤ・ジャパン提供の「VPS」プランを利用して、さっそくメールサーバーを立ち上げてみませんか。
KAGOYAのメールプラン「セキュアベーシック」や「専用タイプ」ではメールサーバー1台を専有でき、他のユーザーの影響を受けずセキュアにメールの送受信が可能。
当然、メールアドレス数は無制限で法人利用率の高い高コスパなプランとなっています。