Народ!
Черечитал все темы что тут есть, поискал в инете - не получается настроить связку, что в заголовке.
Описываю свои шаги и действия, может подскажите где проблема:
мне требуется, хранить список юзеров с паролями в базе сасл (что б не зависила от системных юзеров)
- обновил дерево портов
- sasl
# cd /usr/ports/security/cyrus-sasl2 (версия 2.1.18)
поправил makefile, вписал влючи --disable-anon --disable-krb4 --disable-gssapi --disable-pwcheck --enable-login --enable-plain
# make all install clean
в вомент инстала, когда пишется _Making install in sample_ на главную консоль вываливаются сообщения:
Apr 16 16:34:39 gate saslpasswd2: setpass succeeded for cyrus
Apr 16 16:34:39 gate saslpasswd2: Couldn't update db
Apr 16 16:34:39 gate last message repeated 2 times
Apr 16 16:34:39 gate saslpasswd2: setpass succeeded for cyrus
Apr 16 16:34:39 gate saslpasswd2: Couldn't update db
Apr 16 16:34:39 gate last message repeated 2 times
файл sasldb2.db находится после установки в каталоге /usr/local/etc/
ставлю на него права 666
# ln -s /usr/local/lib/sasl2 /usr/lib/sasl2
# sasldblistusers2
<ничего>
# saslpasswd2 -c -u figroup.ru alex
Password:
Again (for verification):
и опять на главной консоли:
Apr 16 16:38:43 gate saslpasswd2: setpass succeeded for alex
Apr 16 16:38:43 gate saslpasswd2: Couldn't update db
Apr 16 16:38:43 gate last message repeated 2 times
# sasldblistusers2
alex@figroup.ru: userPassword
- sasl auth
# cd /usr/ports/security/cyrus-sasl2-saslauthd (версия 2.1.18)
# make all install clean
# vi /usr/local/lib/sasl2/smtpd.conf
вписываю туда
pwcheck_method: saslauthd
mech_list: login plain
права 644
в файле /usr/local/etc/rc.d/saslauthd.sh
меняю строку saslauthd_flags=${saslauthd_flags:-"-a pam"}
на saslauthd_flags=${saslauthd_flags:-"-a sasldb"}
в файл /etc/rc.conf:
прописываю
saslauthd_enable="YES"
# /usr/local/etc/rc.d/saslauthd.sh start
- Cyrus-IMAP
# cd /usr/ports/mail/cyrus-imapd22/
# make configure
cd work/cyrus-imapd-2.2.3/imap/
в файле message.c
меняю строку if (inheader && *p >= 0x80) на if (0 &&inheader && *p >= 0x80) (говорят чтобы с русскики буквами в заголовке дружил)
# cd ../../..
# make all install clean
редактирую файл /usr/local/etc/imapd.conf
admins: admin
sievedir: /var/imap/sieve
sendmail: /usr/local/sbin/sendmail
sasl_pwcheck_method: saslauthd
sasl_auto_transition: no
в файле /etc/rc.conf прописываю
cyrus_imapd_enable="YES"
создаю дерево каталогов, которые нужны имапу
# /usr/local/cyrus/bin/mkimap
ставлю пароль админа:
# saslpasswd2 -c admin
Password:
Again (for verification):
и снова на основной консоли:
Apr 16 16:56:47 gate saslpasswd2: setpass succeeded for admin
Apr 16 16:56:47 gate saslpasswd2: Couldn't update db
Apr 16 16:56:47 gate last message repeated 2 times
# sasldblistusers2
alex@figroup.ru: userPassword
admin@gate.figroup.ru: userPassword
перегружаюсь
и конце загрузки на главной консоли ошибки:
цитата:
Apr 16 17:05:38 gate ctl_cyrusdb[515]: DBERROR: archiving database file: /var/imap/annotations.db
Apr 16 17:05:38 gate ctl_cyrusdb[515]: DBERROR: archive /var/imap/db: cyrus_db error
# cyradm -u admin localhost
Password:
localhost> lm
localhost> cm user.alex
localhost> lm
user.alex (\HasNoChildren)
localhost> quit
если попытаться теперь зайти по поп, то получаем ошибку: (через аутлук)
Apr 16 17:13:30 gate saslauthd[500]: detach_tty : master pid is: 500
Apr 16 17:13:30 gate saslauthd[500]: ipc_init : listening on socket: /var
/state/saslauthd/mux
Apr 16 17:13:59 gate saslauthd[508]: do_auth : auth failure: [user=alex]
[service=pop] [realm=] [mech=sasldb] [reason=Unknown]
realm не передаётся... пишу имя юзера как alex@figroup.ru - ошибка, а если просто admin (заводился без -u ключа) - нормально авторизируется.
- postfix
cd /usr/ports/mail/postfix-current/ (версия 2.19)
make all install clean (with sasl2 and tsl/ssl)
rc.conf:
sendmail_enable="NO"
sendmail_outbound_enable="NO"
sendmail_submit_enable="NO"
sendmail_msp_queue_enable="NO"
cd /usr/local/etc/rc.d
ln -s /usr/local/sbin/postfix postfix.sh
/etc/make.conf:
NO_SENDMAIL=true
/etc/periodic.conf:
daily_clean_hoststat_enable="NO"
daily_status_mail_rejects_enable="NO"
daily_status_include_submit_mailq="NO"
daily_submit_queuerun="NO"
main.cf:
myhostname = relay.figroup.ru
mydomain = figroup.ru
inet_interfaces = all
mydestination = figroup.ru
mailbox_transport = cyrus
disable_vrfy_command = yes
alias_maps = hash:/usr/local/etc/postfix/aliases
alias_database = hash:/usr/local/etc/postfix/aliases
smtpd_sender_restrictions = hash:/usr/local/etc/postfix/access
transport_maps = hash:/usr/local/etc/postfix/transport
local_recipient_maps = $virtual_mailbox_maps $virtual_maps $transport_maps
smtpd_sasl_auth_enable = yes
smtp_sasl_security_options = noanonymous
smtpd_sasl_local_domain =
smtpd_client_restrictions = permit_sasl_authenticated
smtpd_sender_restrictions = permit_sasl_authenticated
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions =
reject_maps_rbl,
permit_sasl_authenticated,
permit_mynetworks,
reject_unauth_destination,
reject_invalid_hostname,
reject_non_fqdn_hostname,
reject_non_fqdn_sender,
reject_non_fqdn_recipient,
reject_unknown_sender_domain,
reject_unknown_recipient_domain,
reject_unauth_pipelining,
#check_helo_access hash:/etc/postfix/helo_checks,
#check_client_access hash:/etc/postfix/client_checks,
reject_rbl_client list.dsbl.org,
reject_rbl_client cbl.abuseat.org,
reject_rbl_client relays.ordb.org,
reject_rbl_client opm.blitzed.org,
reject_rbl_client sbl.spamhaus.org,
permit
master.cf:
flags=Ru user=cyrus:cyrus argv=/usr/local/cyrus/bin/deliver -r ${sender} -m ${extension} ${user}
# postmap /usr/local/etc/postfix/access
# postmap /usr/local/etc/postfix/transport
# postalias /usr/local/etc/postfix/aliases
отказывается брать почту для alex@figroup.ru, говоря что он не локальный, но берёт для admin@gate.figroup.ru
бьюсь давно, но всё никак, ПОМОГИТЕ, ПЛИЗ!!!