21.9. SMTP 認証

メールサーバ上で SMTP 認証を行うと、 多くの利益があります。 SMTP 認証は sendmail にもう一つのセキュリティ層を追加することができます。 さらに、ホストを切りかえるモバイルユーザにとっては、 その都度メールクライアントの設定を変更せずとも 同じメールサーバを利用できるようになります。

  1. ports から security/cyrus-sasl をインストールします。 この port は security/cyrus-sasl にあります。 security/cyrus-sasl にはここで使用する方法に対する多くのコンパイルオプションがあり、 確実に pwcheck オプションを選択してください。

  2. security/cyrus-sasl をインストールした後に /usr/local/lib/sasl/Sendmail.conf を編集して (もし無ければ作成して) 次の行を追加してください。

    pwcheck_method: passwd
    

    この方法は sendmail があなたの FreeBSD の passwd データベースに対して認証することを可能にします。 この方法は SMTP 認証に必要となる、 それぞれのユーザに対する一組の新しいユーザ名とパスワードを 作成する際のトラブルを減らし、 ログインパスワードとメールパスワードを同じままにします。

  3. ここで /etc/make.conf 編集し、 次の行を加えます。

    SENDMAIL_CFLAGS=-I/usr/local/include/sasl1 -DSASL
    SENDMAIL_LDFLAGS=-L/usr/local/lib
    SENDMAIL_LDADD=-lsasl
    

    これらの行は sendmail に対して、 コンパイルするときに cyrus-sasl とリンクするための適切な設定オプションを与えるものです。 sendmail を再コンパイルする前に cyrus-sasl がインストールされていることを確かめてください。

  4. 次のコマンドを入力して sendmail を再コンパイルしてください。

    # cd /usr/src/usr.sbin/sendmail
    # make cleandir
    # make obj
    # make
    # make install
    

    sendmail のコンパイルは /usr/src が大幅に変更されていなくて、 必要な共有ライブラリが利用可能であれば何の問題も起こらないでしょう。

  5. sendmail をコンパイルして再インストールした後は、 /etc/mail/freebsd.mc ファイル (またはあなたが .mc ファイルとして使用しているファイル。 多くの管理者は唯一の名前を用いるために hostname(1) の出力を .mc として使用することを選んでいます) を編集してください。 次の行を加えてください。

    dnl set SASL options
    TRUST_AUTH_MECH(`GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN')dnl
    define(`confAUTH_MECHANISMS', `GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN')dnl
    define(`confDEF_AUTH_INFO', `/etc/mail/auth-info')dnl
    

    これらのオプションは、ユーザを認証するために sendmail が利用可能な異なる方法を設定します。 もし pwcheck 以外の方法を使用したいのならドキュメントを参照してください。

  6. 最後に /etc/mailmake(1) を実行してください。 これにより、新しい .mc ファイルから freebsd.cf という名前 (またはあなたの .mc に使用している名前) の .cf ファイルが作成されます。 それから make install restart コマンドを実行してください。 新しい .cf ファイルが sendmail.cf にコピーされ、 sendmail が適切に再起動されるでしょう。 この手続きについての詳細は /etc/mail/Makefileを参照してください。

すべてがうまくいけば、ログイン情報をメールクライアントに入力し、 テストメッセージを送ることができるでしょう。 より詳細に調べるには sendmailLogLevel を 13 に設定し、 すべてのエラーについて /var/log/maillog を見てください。

このサービスがシステムを起動した後にいつでも利用可能となるように、 /etc/rc.conf に次の行を追加しておくとよいでしょう。

sasl_pwcheck_enable="YES"
sasl_pwcheck_program="/usr/local/sbin/pwcheck"

これにより、システムの起動時に SMTP_AUTH が確実に初期化されるでしょう。

詳細については SMTP 認証 に関する sendmail の文書を参照してください。

本文書、および他の文書は ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/ からダウンロードできます。

FreeBSD に関する質問がある場合には、ドキュメント を読んだ上で <questions@FreeBSD.org> まで (英語で) 連絡してください。
本文書に関する質問については、<doc@FreeBSD.org> まで電子メールを (英語で) 送ってください。