Я использую веб-портал sso, который предоставляет билеты cas. Я "классифицирую" свою почту и сервер imap (cyrus-imapd).
Когда я получаю свои электронные письма из веб-почты (прокси-сервер CAS), все в порядке. За исключением случаев, когда я получаю свои электронные письма с помощью классического клиента IMAP и снова пытаюсь получить их из веб-почты, у меня плохая аутентификация.
Вроде известная проблема. Действительно (если я хорошо понимаю) кеш sasl получил в начале PT как пароль (от веб-почты) и после пароля (от классического клиента IMAP). Я не нашел хорошего способа исправить это. Вот почему я размещаю здесь свой вопрос. Я пробовал использовать pam_ccreds, но у меня по-прежнему много ошибок аутентификации в mail.log.
Поэтому я пытаюсь использовать 2 экземпляра saslauthd и 2 сервиса imap. Ниже конфигурации ОС и программного обеспечения:
Ниже моей конфигурации попытки:
/ и т.д. / по умолчанию / saslauthd
START=yes
DESC="SASL Authentication Daemon"
NAME="saslauthd"
MECHANISMS="pam"
THREADS=5
OPTIONS="-c -m /var/run/saslauthd/mux -r -n 0"
/ и т.д. / по умолчанию / saslauthd-web
START=yes
DESC="SASL Authentication Daemon"
NAME="saslauthd"
MECHANISMS="pam"
THREADS=5
OPTIONS="-c -m /var/run/saslauthd/muxweb -r -n 0"
/etc/pam.d/imapweb
auth sufficient /lib/x86_64-linux-gnu/security/pam_cas.so -simap://mail.example.com -f/etc/pam_cas.conf
auth sufficient /lib/x86_64-linux-gnu/security/pam_ldap.so config=/etc/pam_ldap_imap.conf
auth sufficient /lib/x86_64-linux-gnu/security/pam_unix.so
account sufficient /lib/x86_64-linux-gnu/security/pam_ldap.so config=/etc/pam_ldap_imap.conf
/etc/pam.d/imap
auth sufficient /lib/x86_64-linux-gnu/security/pam_ldap.so config=/etc/pam_ldap_imap.conf
auth sufficient /lib/x86_64-linux-gnu/security/pam_unix.so
account sufficient /lib/x86_64-linux-gnu/security/pam_ldap.so config=/etc/pam_ldap_imap.conf
/etc/cyrus.conf
imap cmd="imapd -U 30" listen="X.X.X.X:imap" prefork=0 maxchild=100
imapweb cmd="imapd -U 30 -C /etc/imapdweb.conf" listen="X.X.X.X:IMAPWEBPORT" prefork=0 maxchild=100
/etc/imapd.conf
...
sasl_pwcheck_method: auxprop saslauthd
imap_sasl_saslauthd_path: /var/run/saslauthd/mux
imapweb_sasl_saslauthd_path: /var/run/saslauthd/muxweb
sasl_auxprop_plugin: sasldb
...
Я перезапускаю службы saslauthd и cyrus-imapd.
Когда я запускаю команду testsaslauthd с каждым сокетом saslauthd, она работает очень хорошо:
testsaslauthd -u USER -p PASSWORD -f /var/run/saslauthd/mux/mux -s imap
0: OK "Success."
testsaslauthd -u USER -p PASSWORD -f /var/run/saslauthd/muxweb/mux -s imapweb
0: OK "Success."
Но когда я запускаю telnet на порт imap на моем imap-сервере с хоста веб-почты, аутентификация не удалась. На порту imapweb то же самое. Однако в журнале imap я вижу stacktrace, который показывает, что я использую хорошую службу imap (imap для порта imap и imapweb для «IMAPPORTWEB»)
У вас есть идея, почему моя аутентификация не работает? Правильный ли способ принять как CAS, так и классический доступ IMAP?