SASLライブラリについて投稿日:2012年11月12日30000MacやWindowsなど、プラットフォームの異なるユーザー認証をサポートするSASL認証これまでSMTP認証について解説する中で、Linuxのシステムで利用する「UNIX認証」、各ソフトで共通して利用する「PAM認証」。解説を続けましたが、今回は「SASL(サスル)認証」です。Postfixではこの「SASL認証」を利用してSMTP認証するため、理解しておく必要があります。Layer)」というライブラリを利用します。サスル)ライブラリ」を利用します。PostfixはLinux以外のプラットフォームもサポートしているため、それぞれの認証方法に対応すればソフトが肥大化するばかりです。SASLライブラリ」を導入しています。XはもちろんWindows版のライブラリもあります。SASLライブラリ」に任せることができます。SASLの動作状況を確認まずデフォルトの状態でスーパーユーザーでログイン。ldappamやshadowなど利用したいものが表示されていない場合は以下のコマンドで追加します。shadow自動起動を有効サーバのブート時に自動で起動するようにします。library公式ページ」へどうぞ。SASLの1と2が用意されています。それぞれ設定ファイルは「/usr/lib64/sasl2(32bitの場合は/usr/lib/sasl2)」もしくは「/usr/lib64/sasl」にあります。通常「sasl2」を利用するので、このページでは「SASL2」の設定について解説します。Postfixでは設定ファイル「/etc/postfix/main.cf」でSASL認証を有効にすることでSMTP認証に利用できるようになります。Postfixが利用するSASLの設定ファイルは「/usr/lib64/sasl2/」の中にある「smtpd.conf」というファイルです。Postfixの設定ファイルである「/etc/postfix/main.cf」はPostfixの解説で詳しく説明します。このページではPostfixが利用するSASL認証の設定ファイル「/usr/lib64/sasl2/smtpd.conf」について詳しく解説します。「smtpd.conf」で指定するパラメータ。「pwcheck_method:」認証方法に関する設定。authdaemondCourier-IMAPサーバの認証機構を利用する方法pwcheckpwcheckデーモンを走らせ、shadowで認証する方法。own自分でデータベースを作ってもよい「mech_list:」認証方式に関する設定PLAIN平文でユーザ名・パスワードを送信するためSSLの利用が前提LOGINPLAINと同じ平文。各社の互換性が無く独自の形式でクライアント側の環境によって対応できないこともあるCRAM-MD5MD5によるメッセージダイジェストで認証する。実際にPostfixでSASL認証を有効にする方法を解説します。Postfixの解説が終わってないので、解説が前後してしまいますが、とりあえず全体の流れだけ掴んで、Postfix設定時に参考にしてみてください。login2.「/etc/sysconfig/saslauthd」を編集。今回はPAM認証を利用するので、6行目あたり「MECH=pam」のコメントアウトを外して有効にします。MECH=shadow3.PAM認証を利用するため「/etc/pam.d/smtp」を利用可能な状態に編集(ない場合は作成してください)。UNIX認証を有効にするためモジュール「pam_unix.so」を指定。pam_unix.so4.「saslauthd」を再起動して変更を有効にします。restart5.Postfixの設定ファイル「/etc/postfix/main.cf」でSASL認証を有効にします。ファイルの最後に以下の設定を追加してください。restart以上でPostfixのSMTP認証にSASLライブラリを利用して、PAM認証で設定したUNIXユーザーのID・パスワードでログインできるようになりました。この方法はパスワードを平文でやり取りするため、SSLで暗号化した通信で利用してください。独自データベースは管理に手間がかかりますが、パスワードの暗号化もサポートしているため安全性は高まります。注意点としては利用者のメールソフトがSMTP認証の暗号化に対応している必要があります。1.「/usr/lib64/sasl2/smtpd.conf」に以下を追加。こちらは、より安全性の高い「cram-md5とdigest-md5」が利用できます。login2.Postfixの設定ファイル「/etc/postfix/main.cf」に以下を追加。「smtpd_sasl_local_domain」はSASL独自のデータベースに記載するドメインと合わせる必要があります。この設定は「/etc/sasldb2」と「/etc/shadow」を、異なるパスワードで管理する場合に重要になります。下のようにドメインを直接入力してもいい。「example.com」というドメインのSMTPサーバに接続許可する「hogeuser」を作成する場合。正常にユーザーが追加されると「/etc/sasldb2」にデータベースが作成されます。hogeuser4.続けて新規ユーザーを追加すると作成される「/etc/sasldb2」をPostfixで開けるようにグループに追加。合わせてパーミッションを変更。restartこれでSASL独自のパスワードデータベースを利用したSMTP認証ができました。UNIXユーザー認証を利用する方法と、SASL独自のパスワードデータベースを利用する方法を解説しました。他にもpwcheckというデーモンを走らせて認証する方法(非推奨)、リレーメールサーバとして利用する場合にホスト毎にユーザー名・パスワードを指定する方法なども用意されています。PostfixとSASLの連携について詳しくはPostfixの公式ページで確認してください。次回は「OpenSSLの基本と、メールサーバに暗号化通信を導入する際の流れを確認」です。failedの原因がpamときがつくまで6時間。/etc/alternatives/mta-pamシンボリックリンクがなくなっていたのが原因。おかげさまでこの記事がとても参考になまりした。ありがとうございます。PMコメントありがとうございます。お役に立てたようでなによりです。コメントをキャンセルコメントは認証制のため、すぐには反映されません。sukegra」をご利用ください。Share)Linuxの基本の基本。Share)他に運営しているサイトGOいけん世間を騒がせている、あの話題について言いたい。そんなあなたの「ご意見」を世に問うサイト。SUKEGRA「スケグラ」は日本語でプログラミングの悩みを解決するQ&Aサイトです。アクアリウムWikiアクアリウムに関することをみんなでまとめるWikiです。