MacOS X Leopard serverでSMTPサブミッションポート
社内でiPhoneが標準になったのでメールの転送ではなく、iPhoneから直接会社のメールサーバーにアクセスしてメールをハンドリングしたい。そこでデータセンターで空いているXserveG5にMacOS X Leopard serverをインストールして新たにメールシステムを構築した。
それまでのメールシステムはCentOSの社内サーバーに構築したもの。それはそれで不満はないのだけど、iPhoneからアクセスに合わせてメール管理をIMAPサービスに変更し複数のMailアプリケーションで同じ設定を共有してメールを管理したい、またこれまでウイルスチェックを行ってきたSophosの後継を検討する必要があるといった点が大きな動機。
MacOS X Leopard serverなら、メールだけでなく他の社内サービスも統合できそうだし、社内のファイル共有サーバーのバックアップをデータセンターに持つという用途でも活用できる。
日本では導入事例が少ないOS X サーバーではあるが、管理ツールの完成度が非常に高く、リモートでの設定が非常に楽だし、もちろんSSHでログインして直接設定ファイルを編集することも可能。Linuxの管理者ならまず問題なく使える。メールサーバーは、Postfix、ウイルスチェック用にAmavisd+clamaV、SPAM対策にはSpamassasin、メール配信にはCyrusという組み合わせ。OS X server インストール後にはすぐに使える状態になっているのでともて助かる。
iPhoneなどリモートデバイスのからのメールアクセスで必要になるのが、サブミッションポートの設定。これはだけは、GUIの管理ツールで設定ができないので、次のように、設定ファイルを編集する。
/etc/master.cfを編集。Submission関連の設定のコメントアウトを外す。
# ========================================================================== # service type private unpriv chroot wakeup maxproc command + args # (yes) (yes) (yes) (never) (100) # ========================================================================== smtp inet n - n - - smtpd submission inet n - n - - smtpd # -o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject #smtps inet n - n - - smtpd
これでサブミッションポートを有効にするだけでなく、SMTP-AUTHも有効になる。
master.cfを保存したらサーバー管理ツールでPostfixを再起動。これでiPhoneに新しいメールアカウントを設定して、SMTPサーバーは、認証とSMTPポートを587に設定する。
あと忘れていけないのは、Leopardサーバーのファイアウォールの設定でも「任意(any)」からの「メール:SMTPサブミッション」を許可しておくこと。もちろんネットワーク全体のF/Wもあるならそれも587番ポートを開けておく。

これでオフォスの外からでも3G網経由のアクセスで社内メールにアクセスできるようになる。
参考までにPostfixのmain.cfの設定状態は次の通り。
mydomain_fallback = localhost message_size_limit = 31457280 myhostname = mail.example.com mailbox_transport = cyrus mydomain = example.com mailbox_size_limit = 0 content_filter = smtp-amavis:[127.0.0.1]:10024 smtp_sasl_password_maps = enable_server_options = yes inet_interfaces = all mynetworks = 127.0.0.0/8,192.168.100.0/24 smtpd_sasl_auth_enable = yes smtpd_use_pw_server = yes smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination, permit smtpd_pw_server_security_options = cram-md5,login,plain mydestination = $myhostname,localhost.$mydomain,localhost,example.com virtual_transport = lmtp:unix:/var/imap/socket/lmtp virtual_mailbox_domains = hash:/etc/postfix/virtual_domains smtpd_client_restrictions = permit_mynetworks reject_rbl_client sbl-xbl.spamhaus.org reject_rbl_client all.rbl.jp permit maps_rbl_domains =
このmain.cfは管理ツールで設定されるのであまりマニュアル操作で修正しないほうがいいだろう。
前: MJ、Steve Jobs、Firefox3.5、Microsoft 'bing'の気味の悪い広告など

