メールサーバの構築でのハマりポイント備忘録

2017年7月31日

テクノロジー メール

いつも遊んでいる友達に「今日親戚の用事がある」と嘘ついて、別の友だちと遊びに行こうとした時に、集合場所をメール送信したら、いつもの友達の所にメールしてしまった・・・orz、というメール誤送信、もしかしたら誰もが1度くらい経験があるのではないでしょうか? そんな時、あなたならどう言い訳しますか? 僕は絶対に送ったことに気がついていない風を装います。 そして運が良ければ、相手も、「あのメールは何かの間違いだったのかも・・・」と考えてくれるかも・・・ んなわけないでしょ! メール誤送信は重大な過失ですよ。 ビジネスで発生したら莫大な金額損失に伴う可能性もあるし、政治家であれば辞任に追い込まれる事態になりかねません。 でも、メールって、無くてはならないモノなんですね。 インターネットから生まれた一番の産物ではないでしょうか。 そんなメールシステムをGoogleAppsやプロバイダから配布されるメールアドレスではなく、自分のドメインで自分のサーバーに構築してみようと思い、苦労して開通できた流れと、つまずきポイントを残しておきたかったので、メモしておくことにします。

環境と思考性

今回のメールサーバー構築は、会社設立において、人が増えるまでの間の暫定処置という事と、今まで構築したことが無かった領域だったので、経験を積みたかったという理由で、自宅サーバーに自分(会社)ドメインのメールサーバーを構築する事を目的にしました。

構成予定

OS: Ubuntu SMTP: Postfix POP3: Dovecot
元々ブログ公開しているサーバーにメール機能を持たせるだけの簡易な施工で、サーバーも複数台用意せずに、オールインワンにしてしまうイメージでした。 アクセス過多になりバランシングが必要になれば、都度移設予定として・・・

事前準備

・ドメインの準備 ・DNSの設定
まずは、これらがないと始まりません。 お名前.comで購入してそのままDNSセットする簡易な構成で行くことにしましょう。

セットアップ

「Postfix + Dovecot」のメールシステム構築は、どうやら王道構成のようで、検索すると山のように設定方法が書かれたページが表示されます。 「ubuntu postfix dovecot」で検索 その中で検索1位のページを参考にしてインストールから各種設定までを行いました。 Ubuntuでメールサーバー構築 ここまではそんなに難しくないですね。

つまずきポイント

まずはイントラネットでの開通を目指す

サーバー構築手順として、「イントラ環境でメールの送受信ができたら、その後公開サーバーとしてしまえばいいだろう」と考えていたら、イントラでも動かすのに大変でした。 まず、イントラ用のDNSの設定をしっかりとしなければいけません。 メールサーバーは、通常のWEBページのドメインとIPアドレスの紐付けだけでなく、MXレコードというメール専用のDNSエイリアスのような登録が必要になります。 ※ちなみに、この設定ができるお陰で、メールサーバーを複数設置することが可能になります。 そして、Postfixや、Dovecotの設定ですが、とにかくPostfixが難しかったですね。 それは、メールサーバーって色々な人が設定解説ページを作ってますが、実はメールサーバーって色々な形態があるって知ってます?
・イントラのみの環境で利用 ・送信機能のみで受信は行わない ・特定のアドレスのみをリレー対象にするセキュア構成
企業内メールなどもイントラ版という事なんでしょうが、今回僕が行うのは、フル公開する用のメールサーバーなので、こうしたページを参考にしても動かない可能性が高いです。 そして何より、イントラ環境だけでいうと、そのイントラのサブネット構成が、場所によって違っているため、ある解説サイトでは「192.168.0.0/8」と書かれていたんですが、僕の環境では「192.168.1.0/24」とならなければいけません。 サーバー担当者が閲覧する解説ページというのを考えると、このぐらいは自分で設定変換するのが普通だと思われがちですが、やはり膨大な設定をコピペで作業する人も多く、僕もそのトラップに引っかかって1日ぐらいは余裕で無駄にしましたwww そして、なんとかイントラでのメール疎通ができるようになると次なる問題が発生です。

イントラで遅れるのにWANで送れない

この問題が一番、対応時間がかかったんですが、まずは公開DNSを疑ってpingを売ってみると、お名前comのIPアドレスが返るじゃありませんか・・・ どうやら、お名前comでのDNS設定は、初期値として、NSレコードが付与されておらず、ネームサーバーの登録を一番最初だけチェックしてDNS設定をしなければイケなかったんですね。 DNS設定画面の一番下にある、このチェックボックスです。 そしてDNS設定をして6時間ぐらいしてDNSが行き渡り、PINGコマンドで切り替わりが確認できたのですが、それでも、相変わらず、イントラで成功するのに、WANではメールの送受信ができません。 この解決ポイントは、「Postfix」の「master.cf」の設定不足でした。 具体的な箇所は以下のところです。 # ========================================================================== # service type private unpriv chroot wakeup maxproc command + args # (yes) (yes) (yes) (never) (100) # ========================================================================== smtp inet n - - - - smtpd #smtp inet n - - - 1 postscreen #smtpd pass - - - - - smtpd #dnsblog unix - - - - 0 dnsblog #tlsproxy unix - - - - 0 tlsproxy #submission inet n - - - - smtpd 上記がインストール直後の設定で、「submission」の設定もコメントアウトが必要だったんですね。 # ========================================================================== # service type private unpriv chroot wakeup maxproc command + args # (yes) (yes) (yes) (never) (100) # ========================================================================== smtp inet n - - - - smtpd #smtp inet n - - - 1 postscreen #smtpd pass - - - - - smtpd #dnsblog unix - - - - 0 dnsblog #tlsproxy unix - - - - 0 tlsproxy submission inet n - - - - smtpd なので、コメントを外すとWANで無事にメール送受信ができるようになりましたヽ(`▽´)/

Gmailをうまく活用

メールサーバーがセットできたら、Gmailの設定の「アカウントとインポート」の設定をしておきましょう。 これをセットしておくと、GmailでメールをPOP受信してくれて、ちゃんとSMTP送信もしてくれるので、メーラとしてGmailを使うという方法です。 そして複数のメールアドレスを使っている人は非常に便利な上、Googleのスパム対策処理や、振り分けフィルタなども摘要できるので、非常に便利で使わない手はありません!!!

その後の課題

この段階で完了したかに思えますが、実は今回の設定では、SMTPは25番ポート、POP3は110番ポートという、セキュリティが一番低い方法で実現されています。 時代はSSL(TLS)を使わないとイケないし、IMAPやその他のセキュリティもちゃんとしないといけません。 でも、そういうセットが必要になるのであればGoogleAppsを申し込めばいいだけですね。 技術経験も必要ですが、セキュリティhは突き詰めるとたんなる時間の無駄にしかならない事もあるので、そこはケースバイケースで・・・ そして、今後は、メール誤送信をしないように、複数のアドレスをGmailで管理しているならなおさら気をつけなければいけないだろうと、気を引き締めて運営しましょう。

人気の投稿

このブログを検索

ごあいさつ

このWebサイトは、独自思考で我が道を行くユゲタの少し尖った思考のTechブログです。 毎日興味がどんどん切り替わるので、テーマはマルチになっています。 もしかしたらアイデアに困っている人の助けになるかもしれません。

ブログ アーカイブ