Welcome

« IBM R31にOpenBSDインスコ | メイン | スピーカー置き場構造変更 【ささやかな趣味】 »

2005年01月28日

OpenBSD に Postfix + Sasl で aPOP

自作PC

OpenBSD に SASL + Postfix 中にちょっとハマッタ(笑

インストールログは追記します^^;;

--------------------------------------------------------------------------------
(ぉ ローカルだからまっいいか
--------------------------------------------------------------------------------
/etc/hosts.allow
ALL: *

=== APOPD ======================================================================
--------------------------------------------------------------------------------
ソフトをインストールする... solid-pop3d
--------------------------------------------------------------------------------
# cd /work
# tar xvzf solid-pop3d-0.xx.tar.gz
# cd solid-pop3d-0.xx
# ./configure --enable-maildir --enable-apop --enable-connect
# make
# make install

--------------------------------------------------------------------------------
inetd.conf の設定は以下のとおり
--------------------------------------------------------------------------------
#pop3 stream tcp nowait root /usr/sbin/popa3d popa3d
#pop3 stream tcp6 nowait root /usr/sbin/popa3d popa3d
pop3 stream tcp nowait root /usr/local/sbin/spop3d spop3d
pop3 stream tcp6 nowait root /usr/local/sbin/spop3d spop3d

--------------------------------------------------------------------------------
以下のようにしてAPOPパスワード設定できる
--------------------------------------------------------------------------------
echo /usr/local/bin/pop_auth | su -f username


=== SMTP_AUTH ==================================================================
--------------------------------------------------------------------------------
ソフトをインストールする... cyrus-sasl2 + postfix
--------------------------------------------------------------------------------

# cd /usr/ports/security/cyrus-sasl2
# make install

# cd /usr/ports/mail/postfix/
# make install
install_root: [/]
tempdir: [/root/postfix-2.0.20]
config_directory: [/etc/postfix]
daemon_directory: [/usr/local/libexec/postfix]
command_directory: [/usr/local/sbin]
queue_directory: [/var/spool/postfix]
sendmail_path: [/usr/local/sbin/sendmail]
newaliases_path: [/usr/bin/newaliases]
mailq_path: [/usr/local/sbin/mailq]
mail_owner: [_postfix]
setgid_group: [_postdrop]
manpage_directory: [/usr/local/man]
sample_directory: [/etc/postfix]
readme_directory: [/usr/local/share/doc/postfix/readme]
( 超適当 に答える )

--------------------------------------------------------------------------------
設定する...
--------------------------------------------------------------------------------

( /etc/postfix/main.cf を設定する 超適当で、どっかから拾ってきた )
# cat > /etc/postfix/main.cf
myhostname = openbsd.foo.hoge
mydomain = foo.hoge
myorigin = $myhostname
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain, localhost
mynetworks_style = subnet
mynetworks = 192.168.xx.0/24
alias_maps = hash:/etc/aliases
^D

( /etc/postfix/main.cf のSASL設定する これも超適当で、どっかから拾ってきた )
# cat >> /etc/postfix/main.cf
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $myhostname
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_mynetworks
permit_sasl_authenticated
reject_unauth_destination
^D

# cat >> /usr/local/lib/sasl2/smtpd.conf
pwcheck_method: auxprop
auxprop_plugin: sasldb
mech_list: cram-md5 digest-md5 plain login
^D

--------------------------------------------------------------------------------
設定ファイルがおかしいことが多々あるのでチェックする...
*** could not find a dlname line in .la file
--------------------------------------------------------------------------------

( dlname が '' でないことをを確認 )
# cd /usr/local/lib/sasl2/
# grep dlname *.la
libanonymous.la:dlname='libanonymous.so.2.19'
libcrammd5.la:dlname='libcrammd5.so.2.19'
libdigestmd5.la:dlname='libdigestmd5.so.2.19'
libgssapiv2.la:dlname='libgssapiv2.so.2.19'
liblogin.la:dlname='liblogin.so.2.19'
libotp.la:dlname='libotp.so.2.19'
libplain.la:dlname='libplain.so.2.19'
libsasldb.la:dlname='libsasldb.so.2.19'

( library_names が '' でないことをを確認 )
# grep library_names *.la
libanonymous.la:library_names='libanonymous.so.2.19 libanonymous.so.2.19
'
libcrammd5.la:library_names='libcrammd5.so.2.19 libcrammd5.so.2.19'
libdigestmd5.la:library_names='libdigestmd5.so.2.19 libdigestmd5.so.2.19
'
libgssapiv2.la:library_names='libgssapiv2.so.2.19 libgssapiv2.so.2.19'
liblogin.la:library_names='liblogin.so.2.19 liblogin.so.2.19'
libotp.la:library_names='libotp.so.2.19 libotp.so.2.19'
libplain.la:library_names='libplain.so.2.19 libplain.so.2.19'
libsasldb.la:library_names='libsasldb.so.2.19 libsasldb.so.2.19'

( 問題があれば次のようにして書き込みする: .la)

( 適当に修正するスクリプト :edit.sh )
#!/bin/sh

FILENAME=$1
BASEFRMT=`echo $FILENAME | sed -e 's/\.la$//'`
LIBSONAME=`ls $BASEFRMT.so.*`

cat $FILENAME | sed -e "s/dlname=\'\'/dlname=\'$LIBSONAME\'/" \
| sed -e "s/library_names=\'\'/library_names=\'$LI
BSONAME\ $LIBSONAME'/" \


(修正~)
# mv libanonymous.la libanonymous.la.bak
# sh edit.sh libanonymous.la.bak libanonymous.la

--------------------------------------------------------------------------------
postfix/smtpd は chroot して動くため /etc/sasldb2.db が見えない
--------------------------------------------------------------------------------
# ln -s /var/spool/postfix/etc/sasldb2.db /etc/sasldb2.db
( 逆向き? にリンクする /etc/sasldb2.db -> /var/spool/postfix/etc/sasldb2.db )


--------------------------------------------------------------------------------
# 作動させるには以下のようにする
--------------------------------------------------------------------------------
/usr/local/sbin/postfix start

--------------------------------------------------------------------------------
以下のようにしてSASLパスワード設定できる
--------------------------------------------------------------------------------
/usr/local/sbin/saslpasswd2 -c -u `/usr/local/sbin/postconf -h mydomain` usernam
e


================================================================================
--------------------------------------------------------------------------------
パスワード設定がいろいろ面倒なのでスクリプトを作ってみた : ~/mailpass.sh
--------------------------------------------------------------------------------
#!/bin/sh
# usage: > sh mailpass.sh username

USERNAME=$1
MYHOSTNAME=`/usr/local/sbin/postconf -h myhostname`

/usr/local/sbin/saslpasswd2 -c -u $MYHOSTNAME $USERNAME

echo /usr/local/bin/pop_auth | su -f $USERNAME

投稿者 kata : 2005年01月28日 00:21

Trackback Pings

このエントリーのトラックバックURL:
http://katakuri.sakura.ne.jp/~kata/mt-tb.cgi/64

コメント

コメントしてください




保存しますか?