メール関連
は、非常に重要。というのも、さまざまな通知関連も全てメールで行われますからね。と言うわけで、まずはMTA(MailTransferAgent)メールサーバの設定から。
Postfixで行ってみよう
メールサーバといえば、sendmailが一般的です。ですがこのsendmailは非常に設定が難しい。私も何度か設定作業を行ったことがありますが、2度とやりたくないサーバの一つです。これはそもそも問題になっていて、近年ではほかに設定が簡単なメールサーバが出没しています。代表的に
- qmail
- postfix
の2つがあります。qmailはセキュリティホールが無いことが自慢のMTAですが、設定が独特、postfixはsendmail互換な使い勝手を優先しております。設定もわりと簡単。で、私はPostfixを選択いたしました。まぁ、前のサーバでも使ってましたからね。
メールサーバ設定上の注意
メールは、古くからセキュリティの攻撃対象として槍玉にあがっていました。特にsendmailは必ず外部に公開されているため、その攻撃を受けてきております。バージョンがあがったら、常にアップデートすることが重要です。また、セキュリティホールではないのですが、メールの不正中継という踏み台に使われることがあります。
右の図を見てみてください。ふきだしの中を管理するネットワークとします。ネットワーク内のクライアントからは当然メールを送りたい。なので送ります。外側からのネットワークのマシンからも要求がきたときに中継してしまった場合、万が一悪意のある攻撃者の場合は…大量にメールを送りつけたり(SPAMといいます)、ウィルス攻撃の踏み台にされたり(送信元を特定させづらくする)します。なので、コレを防ぐためには直感的には以下をすればいい事になります。
- 中継要求を受け付けるクライアントを絞る
- 外部からの中継要求ではクライアントをパスワードなどで認証する(SMTP-AUTH)
- パスワードがばれないように通信路を暗号化する(SMTP-overSSL)
と、考えられます。で、今のところ、内部ネットワークの外からメールを送信する要求を出す気はないので、とりあえずSMTP-AUTHとSMTP-overSSLはとりあえず後にします。
インストール
まず、将来的にSMTP-AUTHに対応させることも考慮して、USEフラグにsaslを追加します。saslってのは、Simple Authentication and Security Layerの略でパスワード認証を付け加えてくれます。で、これをmake.confに追加します。
emerge -b postfix
インストール完了。で、/etc/postfix/main.cfを以下の点に注意して設定して行きます。
myhostname =XXXXXX ←自分のホスト名 mydomain = $myhostname ←自分が属すドメイン myorigin = $myhostname ←自分の所属 inet_interfaces = all ←どこからメール要求を受け付けるか mydestination = $myhostname ←自分が到着地点のアドレス mynetworks_style = subnet ←ネットワークの形式 mynetworks = XXX.XXX.XXX.XXX/24, 127.0.0.0/8 自分のネットワーク
さて、この設定を眺めると、インターネットにポートは開放して、メールの着信は受け付けるが、中継要求に関しては内部ネットワークからしか受け付けないように設定しました。このあと、/etc/postfix/にaliasesという名前の空ファイルを作って
newaliases
でaliasデータベースを作ります。
/etc/init.d/postfix start rc-update add postfix default
で設定完了です。まずメールの送受信は、メールクライアントからメールを送受信して確認してみましょう。それと不正中継に関するサーバチェックを行ってくれるサイトがありますので、自分の家のサーバをチェックしてみましょう。チェックに合格すれば、公開して問題なしということです。
バージョンアップ時の注意
postfixが2.0.19→2.1.3にバージョンアップされました。ふつーにemerge -Uすると、「バージョンアップ対象外のバージョンです!」と怒られてしまいます。ですので
# emerge -C postfix
でアンインストールしてから
# emerge postfix
してやってください。後は、
# etc-update
コマンドで、古いコンフィギュレーションファイルと、新しいバージョンのコンフィギュレーションファイルを手動でマージしていきます。壊さないように古い設定ファイルのバックアップを盗っておくのをお勧めいたしますです。
IMAP
IMAPは、サーバ側にメールスプールを用意しておき、そちらに接続してメールを閲覧する方式です。よく使われるPOP3はメールを取ってくる方式です。IMAPにすると何がいいかといいますと、サーバに接続しさえすれば、どのクライアントからも、ネット上どこにいても、同じフォルダで同じ内容のメールがチェックできるという事です。最近はHDDの容量がアップしてますから、こういう形式でもなんら問題なしってことですね。しかも、プロバイダに着信したメールも全てIMAPフォルダで管理するようにしたら、フォルダを一つに出来て、メールクライアントの変更でも、メッセージのバックアップ尾をどうするか考える必要が無いってわけ。これは嬉しいですね。
ツールはなんにしようか…
IMAPサーバも一杯ありまして、
- UW-IMAP
- Cyrus-IMAP
- Courier-IMAP
等が有名です。さてね、どうしたもんかですが、UWは設定簡単だけど、大規模な奴はいまいち、CyrusはIMAPフォルダ管理が独特である、Courier-IMAPはユーザホームディレクトリにMaildir形式のフォルダを作って管理すると。
まぁ自分の用途に合えばなんでもいいんですが、私はユーザのホームディレクトリを勝手にサーバがいじるってのがなんかいやだったのでCyrus-IMAPにしてみました。
インストール
emerge -b cyrus-imap emerge -b cyrus-imap-admin
でインストールされますです。簡単。設定もいじる必要ありませんね。で、Cyrus-imapdを管理するための管理ユーザを追加します。/etc/imapd.confを開くと、
admins: cyrus
と書いてありますので、このユーザと、実際にメールを受けるユーザを以下のコマンドで追加
# saslpasswd2 cyrus # saslpasswd2 メールユーザ名
でパスワードを追加します。これがIMAPのログインアカウントになります。で、imapフォルダを作るデス。
#/etc/init.d/cyrus start # cyradm --user cyrus localhost localhost> cm user.メールユーザ名 ←この操作をユーザ分やるわけですね localhost> quit
ここまでで使用可能になった筈。あとはPostfixでCyrus-imapdに受信したメールを転送する設定をしておきましょう。/etc/postfix/main.cfを開きます。
mailbox_transport = cyrus fallback_transport = cyrus
次にmaster.cfを開きます。一番下のほうに、Cyrus-imap用の転送設定があらかじめ追加されてるんで、特に問題ない!と思いきや、これがまたぜんぜんだめ。修正入れます。
# Cyrus 2.1.5 (Amos Gouaux) cyrus unix - n n - - pipe user=cyrus argv=/usr/cyrus/bin/deliver -e -r ${sender} -m ${extension} ${user}
このdeliverのパスが間違ってて、/usr/cyrus/binが/cyrus/binになっててうまくいかなかった。。。Jailの設定なのかな??
ではPostfixとCyrusを再起動してOutlookで繋いで見ましょう。ちなみにパスワードは保護されてますから、「セキュリティで保護されたパスワードで認証する」にチェック入れておいてくださいね。さて、出来ましたか??
Page Info | |
---|---|
Page Name : | メール+IMAPで悩む |
Page aliases : | None |
Page owner : | maruo |
Can Read | |
Groups : | All visitors |
Users : | All visitors |
Can Edit | |
Groups : | No one |
Users : | No one |