Eu uso um portal web sso que oferece tickets para cas. Eu "cassifico" meu webmail e meu servidor imap (cyrus-imapd).
Quando busco meus e-mails do Webmail (proxy CAS), tudo bem. Exceto se eu buscar meus e-mails com um cliente IMAP clássico e tentar buscar novamente pelo Webmail, tenho autenticações ruins.
Parece que é um problema conhecido. De fato (se eu entendi bem) o cache sasl tem no início um PT como senha (do webmail), e depois de uma senha (do cliente IMAP clássico). Eu não encontrei o bom caminho para corrigi-lo. É por isso que eu postei minha pergunta aqui. Eu tentei com o pam_ccreds, mas ainda tenho muitos erros de autenticação no mail.log.
Então eu tento usar 2 instâncias de serviços saslauthd e 2 imap. Abaixo da configuração do sistema operacional e do software:
Abaixo da configuração da minha tentativa:
/ etc / default / saslauthd
START=yes
DESC="SASL Authentication Daemon"
NAME="saslauthd"
MECHANISMS="pam"
THREADS=5
OPTIONS="-c -m /var/run/saslauthd/mux -r -n 0"
/ etc / default / 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
...
Eu reinicio os serviços saslauthd e cyrus-imapd.
Quando executo um comando testsaslauthd com o soquete saslauthd, ele funciona muito bem:
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."
Mas quando executo um telnet na porta imap no meu servidor imap do meu host de webmail, a autenticação falhou. Na porta imapweb é o mesmo. No entanto, no log do imap, vejo o stacktrace que mostra que eu uso o bom serviço imap (imap para imap port e imapweb para "IMAPPORTWEB")
Você tem uma ideia, o que explica por que minha autenticação não funciona? O método correto é aceitar tanto o CAS quanto o acesso clássico ao IMAP?
Tags authentication email cyrus saslauthd cas