1. SASL (Simple Authentication and Security Layer) ライブラリの用意 $ tar xzf cyrus-sasl-2.1.13.tar.gz $ cd cyrus-sasl-2.1.13 cyrus-sasl-2.1.13$ ./configure --enable-cram --enable-plain --enable-login cyrus-sasl-2.1.13$ make cyrus-sasl-2.1.13$ su cyrus-sasl-2.1.13# make install cyrus-sasl-2.1.13# ln -s /usr/local/lib/sasl2 /usr/lib/sasl2 cyrus-sasl-2.1.13# cat >> /etc/ld.so.conf受信の設定cyrus-sasl-2.1.13# /sbin/ldconfig
/usr/local/lib
2. Cyrus imapd のインストール $ tar xzf cyrus-imapd-2.1.12.tar.gz $ cd cyrus-imapd-2.1.12 cyrus-imapd-2.1.12$ ./configure --with-auth=unix cyrus-imapd-2.1.12$ make cyrus-imapd-2.1.12$ su cyrus-imapd-2.1.12# make install cyrus-imapd-2.1.12# cp -p master/conf/normal.conf /etc/cyrus.conf cyrus-imapd-2.1.12# vi /etc/imapd.confcyrus-imapd-2.1.12# useradd -g mail cyrus cyrus-imapd-2.1.12# mkdir /var/imap /var/spool/imap /usr/sieve cyrus-imapd-2.1.12# chown cyrus:mail /var/imap /var/spool/imap /usr/sieve cyrus-imapd-2.1.12# chmod 750 /var/imap /var/spool/imap /usr/sieve cyrus-imapd-2.1.12# su cyrus cyrus-imapd-2.1.12$ tools/mkimap cyrus-imapd-2.1.12$ exit cyrus-imapd-2.1.12# /usr/local/sbin/saslpasswd2 -c cyrus-admin
configdirectory: /var/imap partition-default: /var/spool/imap admins: cyrus-admincyrus-imapd-2.1.12# chown cyrus /etc/sasldb2 cyrus-imapd-2.1.12# vi /usr/local/bin/cyradm
Password: ******** Again (for verification): ********cyrus-imapd-2.1.12# su cyrus ユーザを作成するときは cyrus になって行う cyrus-imapd-2.1.12$ /usr/local/sbin/saslpasswd2 UserIDforMailBox メールボックス用のパスワードを設定 (-u は使わない)※-I<Cyrus::IMAP::Shell.pmへのディレクトリ> は例えば -I/usr/local/lib/perl5/site_perl/5.6.1/i386-linux
x) exec perl -I<Cyrus::IMAP::Shell.pmへのディレクトリ> -MCyrus::IMAP::Shell -e shell -- ${1+"$@"} ;; *) exec perl -I<Cyrus::IMAP::Shell.pmへのディレクトリ> -MCyrus::IMAP::Shell -e shell -- "$@" ;;cyrus-imapd-2.1.12$ exit cyrus-imapd-2.1.12# /usr/local/sbin/sasldblistusers2 | sort
Password: ******** Again (for verification): ********cyrus-imapd-2.1.12# vi /etc/hosts.allow tcpwrapper が入っているときは hosts.allow を設定する
cyrus-admin@localhost: cmusaslsecretOTP cyrus-admin@localhost: userPassword UserIDforMailBox@localhost: cmusaslsecretOTP UserIDforMailBox@localhost: userPasswordcyrus-imapd-2.1.12# vi /etc/group ユーザ daemon を mail に追加
imap: ALL pop3: ALL
3. imapd (pop3d) の起動/停止 # /usr/cyrus/bin/master & 起動 (sendmail より前に起動すること) # kill `cat /var/run/cyrus-master.pid` 停止
4. メールボックスの作成 $ cyradm --user cyrus-admin localhostlocalhost> sam user.UserIDforMailBox cyrus-admin lrswipcda user.UserIDforMailBox に関して cyrus-admin に全ての権限を許可する localhost> dam user.UserIDforMailBox cyrus-admin lrswipcda user.UserIDforMailBox に関して cyrus-admin から全ての権限を禁止する localhost> dm user.UserIDforMailBox メールボックス user.UserIDforMailBox を Delete Mailbox する
password: ******** localhost> cm user.UserIDforMailBox ユーザというグループの UserIDforMailBox を Create Mailbox する localhost> quit
5. sendmail のインストール (SMTP 認証付き) $ tar xzf sendmail.8.12.9.tar.gz $ cd sendmail-8.12.9 sendmail-8.12.9$ vi devtools/Site/site.config.m4 固有条件を定義する (ファイルを新規作成)sendmail-8.12.9$ ./Build sendmail-8.12.9$ su sendmail-8.12.9# ./Build install sendmail-8.12.9# exit sendmail-8.12.9$ cd cf/cf sendmail-8.12.9/sendmail/cf/cf$ cp cyrusproto.mc mydomain.mc sendmail-8.12.9/sendmail/cf/cf$ vi mydomain.mc
APPENDDEF(`confENVDEF', `-DSASL=20113') SASL のバージョンが 2.1.13 なので 20113 にする APPENDDEF(`conf_sendmail_LIBS', `-lsasl2')sendmail-8.12.9/sendmail/cf/cf$ m4 mydomain.mc > sendmail.cf sendmail-8.12.9/sendmail/cf/cf$ chmod g-w sendmail.cf sendmail-8.12.9/sendmail/cf/cf$ su sendmail-8.12.9/sendmail/cf/cf# cp -p sendmail.cf /etc/mail/. sendmail-8.12.9/sendmail/cf/cf# /etc/rc.d/init.d/sendmail startローカルメーラフラグ定義 CYRUS_MAILER_FLAGS の "A5@w/|:" の補足 ・w を指定するとき、 ・/etc/passwd にアカウントが無ければ User unknown になる。 このとき、cyrus-imap のアカウントの有無は無関係。 ・アカウントが /etc/passwd に存在し、cyrus-imap に無い場合は Differred になる。 (/var/spool/mqueue/df**** に蓄積される) ・アカウントが /etc/passwd に存在し、.forward も存在する場合は配送を行う。 cyrus-imap のアカウントの有無は無関係。 ・'A' はユーザに対してエイリアス展開を行う指定 ・'5' はルールセット 5 の適用 (エイリアス展開後) ・'@' ユーザデータベースの検索 (maildrop) ・'/' はファイル追加を許可 ・'|' はプログラム実行を許可 ・':' は :include: を許可
include(`../m4/cf.m4')dnl divert(-1) # # (C) Copyright 1995 by Carnegie Mellon University # # All Rights Reserved # # Permission to use, copy, modify, and distribute this software and its # documentation for any purpose and without fee is hereby granted, # provided that the above copyright notice appear in all copies and that # both that copyright notice and this permission notice appear in # supporting documentation, and that the name of CMU not be # used in advertising or publicity pertaining to distribution of the # software without specific, written prior permission. # # CMU DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING # ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL # CMU BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR # ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, # WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, # ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS # SOFTWARE. # # Contributed to Berkeley by John Gardiner Myers. # # This sample mc file is for a site that uses the Cyrus IMAP server # exclusively for local mail. # divert(0)dnl VERSIONID(`$Id: cyrusproto.mc,v 8.7 1999/09/07 14:57:10 ca Exp $') define(`confBIND_OPTS',`-DNSRCH -DEFNAMES') define(`confLOCAL_MAILER', `cyrus') FEATURE(`nocanonify') FEATURE(`always_add_domain') OSTYPE(linux)dnl DOMAIN(`generic') RELAY_DOMAIN_FILE(`/etc/mail/relay-domains') FEATURE(`virtusertable', `hash -o /etc/mail/virtusertable') FEATURE(`access_db', `hash -T<TMPF> /etc/mail/access') define(`CYRUS_MAILER_FLAGS', `A5@w/|:') define(`confAUTH_MECHANISMS', `LOGIN PLAIN DIGEST-MD5 CRAM-MD5') TRUST_AUTH_MECH(`LOGIN PLAIN DIGEST-MD5 CRAM-MD5') MAILER(`local') MAILER(`smtp') MAILER(`cyrus') LOCAL_RULE_0 Rbb + $+ < @ $=w . > $#cyrusbb $: $1
6. SMTP 認証用ユーザの作成 IMAP 用のユーザ ID /パスワードでも良いが、それだとユーザ ID が UserIDforMailBox@hostname になってしまう。 利用者に UserIDforSMTP@MailDoman を利用させるためにはこの作業が必要。 cyrus-imapd-2.1.12$ su cyrus ユーザを作成するときは cyrus になって行う cyrus-imapd-2.1.12$ /usr/local/sbin/saslpasswd2 -u MailDomain UserIDforSMTP SMTP 認証用のパスワードを設定 (-u を使います)※注 cyrus では、ローカルサーバのユーザにメールを出すことが出来ません。 "cyrus mailer (/usr/cyrus/bin/deliver) exited with EX_TEMPFAIL" というエラーになってしまいます。
Password: ******** Again (for verification): ********
7. メーラ (MUA) の設定 Becky! version 2 の場合
・テスト用メモ sendmail -d0.1 -bv root sendmail -O LogLevel=15 telnet localhost 25 ehlo localhost ・困ったときはログをとる # vi /etc/syslog.conf# /etc/rc.d/init.d/syslog restart
local6.debug /var/log/imapd.log auth.debug /var/log/auth.log