arinux

Linux サーバー設定備忘録
<< openLDAP 構築(48) - メール管理(Postfix + Dovecot + openldap) | main | openLDAP 構築(50) - メール管理(バーチャルエイリアス、バーチャルドメイン(1) ) >>
openLDAP 構築(49) - メール管理(Postfix + Dovecot + SMTP AUTH + openldap)


メモ SMTP AUTH の設定


  1. saslauthd で ldap が利用できることを確認します。
    [root]# /usr/local/sbin/saslauthd -v
    saslauthd 2.1.22
    authentication mechanisms: getpwent pam rimap shadow ldap
    


  2. smtpd.conf を作成します。
    [root]# vi /usr/local/lib/sasl2/smtpd.conf
    
    pwcheck_method: saslauthd
    mech_list: login plain
    saslauthd_path: /var/run/saslauthd/mux
    
    虫眼鏡 mech_list


    saslauthd を使用した場合は、DIGEST-MD5 や CRAM-MD5 は動作しません。よって、「plain」 の平文パスワードを使用します。「login」 は MS Outlook Express で使用します。


  3. saslauthd.conf を作成します。
    [root]# mkdir /usr/local/etc/saslauthd
    [root]# vi /usr/local/etc/saslauthd/saslauthd.conf
    
    ldap_servers:           ldap://localhost
    ldap_search_base:       ou=Mail,dc=examples,dc=com
    ldap_filter:            (uid=%u)
    


  4. saslauthd のスタートアップ・スクリプトを作成します。
    [root]# vi /etc/rc.d/init.d/saslauthd
    
    #! /bin/bash
    #
    # saslauthd      Start/Stop the SASL authentication daemon.
    #
    # chkconfig: - 95 05
    # description: saslauthd is a server process which handles plaintext ¥
    #              authentication requests on behalf of the cyrus-sasl library.
    # processname: saslauthd
    
    # Source function library.
    . /etc/init.d/functions
    
    # Source our configuration file for these variables.
    
    if [ -f /etc/sysconfig/saslauthd ] ; then
            . /etc/sysconfig/saslauthd
    else
            SOCKETDIR=/var/state/saslauthd
            MECH=ldap
            FLAGS="-r -O /usr/local/etc/saslauthd/saslauthd.conf"
    fi
    
    RETVAL=0
    
    # Set up some common variables before we launch into what might be
    # considered boilerplate by now.
    prog=saslauthd
    path=/usr/local/sbin/saslauthd
    
    # Ugh. Switch to a specific copy of saslauthd if there's one with $MECH
    # in its name, in case it wasn't included in the base cyrus-sasl package
    # because it would have dragged in too many undesirable dependencies.
    if test -x ${path}.${MECH} ; then
            path=/usr/sbin/saslauthd.$MECH
    fi
    
    start() {
            echo -n $"Starting $prog: "
            daemon $path -m $SOCKETDIR -a $MECH $FLAGS
            RETVAL=$?
            echo
            [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog
            return $RETVAL
    }
    
    stop() {
            echo -n $"Stopping $prog: "
            killproc $path
            RETVAL=$?
            echo
            [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog
            return $RETVAL
    }
    
    restart() {
            stop
            sleep 2
            start
    }
    
    case "$1" in
      start)
            start
            ;;
      stop)
            stop
            ;;
      restart)
            restart
            ;;
      status)
            status $path
            ;;
      condrestart)
            [ -f /var/lock/subsys/$prog ] && restart || :
            ;;
      *)
            echo $"Usage: $0 {start|stop|status|reload|restart|condrestart}"
            exit 1
    esac
    
    exit $?
    


  5. パーミッションを設定します。
    [root]# chmod 755 /etc/rc.d/init.d/saslauthd
    


  6. saslauthd を起動します。
    [root]# /etc/rc.d/init.d/saslauthd start
    saslauthd を起動中:                                        [  OK  ]
    


  7. saslauthd の単体テストをします。
    [root]# testsaslauthd -u gamba.osaka -p gamba0120
    0: OK "Success."
    


  8. main.cf の最終行から、以下を追加します。
    [root]# vi /usr/local/etc/postfix/main.cf
    (以下を追加)
    smtpd_sasl_auth_enable = yes
    smtpd_sasl_application_name = smtpd
    smtpd_recipient_restrictions =
      permit_mynetworks
      permit_auth_destination
      permit_sasl_authenticated
      reject
    


  9. postfix を再起動します。
    [root]# /etc/rc.d/init.d/postfix restart
    Shutting down postfix:                                     [  OK  ]
    Starting postfix:                                          [  OK  ]
    


  10. SMTP のテストのため、PLAIN 方式で使用する文字列を生成します。
    [root]# perl -MMIME::Base64 -e ¥
    'print encode_base64("gamba.osaka¥0gamba.osaka¥0gamba0120");'
    Z2FtYmEub3Nha2EAZ2FtYmEub3Nha2EAZ2FtYmEwMTIw
    


  11. telnet で SMTP のログイン認証と送信テストをします。
    [root]# telnet localhost 25
    Trying 127.0.0.1...
    Connected to localhost.
    Escape character is '^]'.
    220 test15.examples.net ESMTP Postfix
    ehlo localhost
    250-test15.examples.net
    250-PIPELINING
    250-SIZE 10240000
    250-VRFY
    250-ETRN
    250-AUTH LOGIN PLAIN
    250-ENHANCEDSTATUSCODES
    250-8BITMIME
    250 DSN
    auth plain Z2FtYmEub3Nha2EAZ2FtYmEub3Nha2EAZ2FtYmEwMTIw
    235 2.7.0 Authentication successful
    mail from: gamba.osaka@test15.examples.net
    250 2.1.0 Ok
    rcpt to: sanga.kyoto@test15.examples.net
    250 2.1.5 Ok
    data
    354 End data with <CR><LF>.<CR><LF>
    from: gamba.osaka@test15.examples.net
    subject: SMTP AUTH Test(1)
    test
    test
    .
    250 2.0.0 Ok: queued as 5EC0D367D6
    quit
    221 2.0.0 Bye
    Connection closed by foreign host.
    


  12. メールが届いたかを確認します。
    [root]# ls /home/mail/sanga.kyoto/Maildir/new
    
    1211264446.V808I26e97M249483.test15.examples.net
    


  13. メール・クライアントから送信テストをします。以下のように、メール・クライアントのメールボックスを以下のように設定します(ここでは Becky! を例にしています)。
    Becky! メールボックス 基本設定その2Becky! メールボックス 詳細その3


  14. メールの送信テストをします。
    Becky! 新規メール送信テスト


  15. SMTP 認証が行われていれば、maillog に以下のように記録されます。
    [root]# tail /var/log/maillog
    (省略)
    May 20 15:41:40 test15 postfix/smtpd[17115]: 3CEF4367D6: client=unknown ¥
    [xxx.xxx.xxx.xxx], sasl_method=PLAIN, sasl_username=gamba.osaka
    



つづく

| arinux | openldap | 13:30 | comments(1) | trackbacks(0) | pookmark |
管理者の承認待ちコメントです。
| - | 2018/06/05 6:57 PM |









http://arinux.net/trackback/67
      1
2345678
9101112131415
16171819202122
23242526272829
30      
<< September 2018 >>
+ SELECTED ENTRIES
+ RECENT COMMENTS
+ RECENT TRACKBACK
+ CATEGORIES
+ ARCHIVES
+ 掲載予定のタイトル
  • Wordpress
  • Pukiwiki
  • SMTPs/POPs/IMAPs
  • fml
  • Tips
+ CSS Nite
+ MOBILE
qrcode
+ LINKS
+ RECOMMEND
+ PROFILE