SMTP-AUTHを使う

Last-modified: 2014-08-16 (土) 12:41:50 (2235d)

vine linux 3.1のpostfixで smtp-authを行う。

まず、cyrus-saslをインストール。

# apt-get install cyrus-sasl cyrus-sasl-devel 
# apt-get install cyrus-sasl-md5 cyrus-sasl-plain

そして、ビルドに必要な各パッケージも入れとく。

 # apt-get install db4-devel
 # apt-get install rpm-devel gdbm-devel MySQL-devel openldap-devel
 # apt-get install postgresql-devel pcre-devel pam-devel

postfixのソースを取得。

$ apt-get source postfix

postfixの設定

$ cd ~/rpm
$ rpm -ivh postfix-2.0.20-0vl5.src.rpm
$ cd SPECS

postfix.specを編集する。

#117行目 
             -DHAS_PGSQL -I/usr/include/pgsql" \
AUXLIBS=""

#↓以下のように変更
               -DHAS_PGSQL -I/usr/include/pgsql \
               -DUSE_SASL_AUTH -I/usr/include/sasl" \
AUXLIBS="-lsasl2"

ビルド*1

$ rpmbuild -ba postfix.spec

rootでインストール

# rpm -ivh --force postfix-2.0.20-0vl5.i386.rpm  

syrus-sasl の設定

# echo "pwcheck_method: saslauthd" > /usr/lib/sasl2/smtpd.conf
# /sbin/chkconfig saslauthd on

sasl起動

# /etc/rc.d/init.d/saslauthd start

postfix の設定

# vi /etc/postfix/main.cf
#追記項目
broken_sasl_auth_clients = yes
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtp_sasl_security_options = noanonymous
smtpd_recipient_restrictions =permit_sasl_authenticated, reject

接続確認

$ telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 xxxxxx ESMTP Postfix
ehlo localhost //←入力
250-xxxxxx
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-AUTH PLAIN LOGIN DIGEST-MD5 CRAM-MD5
250-AUTH=PLAIN LOGIN DIGEST-MD5 CRAM-MD5
250-XVERP
250 8BITMIME
quit ←入力
221 Bye
Connection closed by foreign host.

http://i-red.info/docs/postfix-sasl-pwcheck.html#vine31


*1 rpmbuildはrpm-buildというパッケージに含まれています。build-essentialも必要かも