Personal tools
現在位置: ホーム Computing MacOS X Leopard serverでSMTPサブミッションポート
categories
 

MacOS X Leopard serverでSMTPサブミッションポート

作者: Shigeo Honda 最終変更日時 2009年08月05日 17時29分 |
カテゴリー: ,

社内で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番ポートを開けておく。

firewall-setting

これでオフォスの外からでも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は管理ツールで設定されるのであまりマニュアル操作で修正しないほうがいいだろう。

ドキュメントアクション