Sziasztok!
Az archívumot böngészgetve látom, hogy ez örökzöld téma; sajnos nem találtam megoldást egyelőre, viszont nagyon sürgős a dolog. :-( Ezt akarom összehozni, GOSA felülettel:
Postfix -> lmtp -> Cyrus
| |
V V
LDAP SASL -> PAM -> LDAP
Konkrétan: LDAP frankón megy, Postfix megtalálja a mailboxot, lmtp-vel átadja a cyrusnak, és itt megáll a mutatvány, mert 550-Mailbox unknown-nal visszapattan a levél. A usereket GOSA-val hoztam létre.
Mivel az autentikáció legjobb tudomásom szerint úgy megy, hogy cyrus->sasl->pam->ldap, ezért biztos, hogy itt lesz valami probléma:
1. A slapd-t debug módban, nem daemonként futtatva megnéztem, hogy megmozdítja-e a cyrus az ldap-ot, hát nem.
2. Próbálgattam imap-ra bejelentkezni, de az sem működik, a usert nem találja.
3. Viszont bármely saslpasswd2-vel felvitt usert sikeresen autentikál plaintext-tel (ezért is megy az lmtp). Tehát a cyrus->sasl kapcsolat jónak tűnik.
Konfigok (Ubuntu server 5.04, cyrus 2.1, openldap 2.2.26-3, cyrus-sasl2 2.1.19-1.5ubuntu4):
/etc/imapd.conf
---------------
configdirectory: /var/lib/cyrus
defaultpartition: default
partition-default: /var/spool/cyrus/mail
defaultdomain: foobar.hu
altnamespace: no
unixhierarchysep: yes
lmtp_downcase_rcpt: yes
admins: cyrus
lmtp_admins: lmtpuser
autocreatequota: 30720
autocreateinboxfolders: yes
autosubscribeinboxfolders: yes
allowanonymouslogin: no
popminpoll: 2
umask: 077
sendmail: /usr/sbin/sendmail
sieveusehomedir: false
sievedir: /var/spool/sieve
postmaster: postmaster
# Ha saslauthd-t adok meg, cyradm se megy!!!
# sasl_pwcheck_method: saslauthd
sasl_pwcheck_method: auxprop
sasl_mech_list: plain login
sasl_minimum_layer: 0
hashimapspool: false
allowplaintext: yes
lmtp_allowplaintext: yes
allowapop: no
virtdomains: yes
/etc/default/saslauthd
----------------------
START=yes
MECHANISMS="pam"
/etc/pam_ldap.conf
------------------
host 127.0.0.1
base dc=foobar,dc=hu
rootbinddn uid=admin,dc=foobar,dc=hu
port 389
timelimit 30
ssl no
nss_base_passwd dc=foobar,dc=hu?sub
nss_base_shadow dc=foobar,dc=hu?sub
nss_base_group ou=groups,dc=foobar,dc=hu?one
pam_password md5
pam_login_attribute uid
pam_member_attribute memberuid
/etc/pam.d/imap
---------------
auth sufficient /lib/security/pam_ldap.so
account sufficient /lib/security/pam_ldap.so
/etc/nsswitch.conf
------------------
passwd: compat ldap
group: compat ldap
shadow: compat ldap
hosts: files dns
networks: files
protocols: db files
services: db files
ethers: db files
rpc: db files
netgroup: nis
...Illetve egy ldapsearch eredménye egy userre:
# buran, people, foobar.hu
dn: uid=buran,ou=people,dc=foobar,dc=hu
sambaBadPasswordCount: 0
sambaBadPasswordTime: 0
sn: Andrei
givenName: Buran
dateOfBirth: 1970-01-01
gender: M
cn: Andrei Buran
mail: andrei.buran@foobar.hu
mailRoutingAddress: buran@foobar.hu
gosaMailServer: imap://localhost
gosaMailDeliveryMode: [L]
gosaSpamSortLevel: 0
uid: buran
objectClass: gosaMailAccount
objectClass: inetLocalMailRecipient
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
objectClass: gosaAccount
Ez a user tök jól működik sima LDAP kéréseknél, de PAM-nál nem. (Lehet, hogy a pam_login_attribute miatt?) Szóval én a PAM->LDAP kommunikációra gyanakszom.
És a kimaradhatatlan log, ez egy levél beérkezésekor:
May 3 23:03:23 gape postfix/smtpd[9191]: connect from unknown[192.168.1.254]
May 3 23:03:30 gape postfix/smtpd[9191]: 092DB1C255: client=unknown[192.168.1.254]
May 3 23:03:38 gape postfix/cleanup[9193]: 092DB1C255: message-id=<20060503210328.092DB1C255@mail.foobar.hu>
May 3 23:03:38 gape postfix/qmgr[9184]: 092DB1C255: from=<buraan@gmail.com>, size=333, nrcpt=1 (queue active)
May 3 23:03:38 gape cyrus/master[9195]: about to exec /usr/lib/cyrus/bin/lmtpd
May 3 23:03:38 gape cyrus/lmtp[9195]: executed
May 3 23:03:38 gape cyrus/lmtpd[9195]: telling master 2
May 3 23:03:38 gape cyrus/master[9087]: service lmtp pid 9195 in READY state: now unavailable and in BUSY state
May 3 23:03:38 gape cyrus/master[9087]: service lmtp now has 0 ready workers
May 3 23:03:38 gape cyrus/lmtpd[9195]: accepted connection
May 3 23:03:38 gape cyrus/lmtpd[9195]: telling master 3
May 3 23:03:38 gape cyrus/master[9087]: service lmtp pid 9195 in BUSY state: now serving connection
May 3 23:03:38 gape cyrus/master[9087]: service lmtp now has 0 ready workers
May 3 23:03:38 gape cyrus/lmtpd[9195]: connection from localhost.localdomain [127.0.0.1]
May 3 23:03:38 gape cyrus/lmtpd[9195]: login: localhost.localdomain [127.0.0.1] lmtpuser LOGIN User logged in
May 3 23:03:38 gape postfix/lmtp[9194]: 092DB1C255: to=<andrei.buran@foobar.hu>, relay=127.0.0.1[127.0.0.1], delay=10, st
atus=bounced (host 127.0.0.1[127.0.0.1] said: 550-Mailbox unknown. Either there is no mailbox associated with this 550-name
or you do not have authorization to see it. 550 5.1.1 User unknown (in reply to RCPT TO command))
PLS HELP!
Megígérem ünnepélyesen, hogy ha ezt sikerül összelőni, írok egy magyar nyelvű, részletes dokumentációt és közzéteszem, további szívásokat megelőzendő...
---
;-(
- 3175 megtekintés
Hozzászólások
Mivel már az előző levél is rohadt hosszú volt, itt írom le, hogy ha felveszem az ldap-ba a pam-nak szükséges cuccokat (posixAccount szükséges mezők), akkor be lehet lépni ssh-val (!!!). Tehát a pam->ldap mégis működik. Akkor a sasl->pam-mal lehet probléma? Az authentikáció plaintext, tehát amiatt nem lehet probléma (majd TLS lesz belőle)...
- A hozzászóláshoz be kell jelentkezni
nem a cyrusnak kene cyradmin-ban egy create mailbox? hasonloval szivtam de openxchange felulet alatt, az tuti nem csinalta meg, ezt az admin feluletet nem ismerem.
- A hozzászóláshoz be kell jelentkezni
Úgy érted, hogy "cm cyrus"? Vagy úgy, hogy cyrus userrel jelentkezzek be a cyradm-ban, és hozzak létre mailboxot?
Az utóbbit megcsinálja a GOSA:
cyradm --user cyrus gape
IMAP Password:
gape.foobar.hu> lm
andrei.buran@foobar.hu (\HasNoChildren)
user.test1 (\HasNoChildren)
user.test2 (\HasNoChildren)
user.testuser (\HasNoChildren)
Itt az andrei.buran@foobar.hu és a user.testuser mailboxokat én hoztam létre a cyradm-mal, a másik kettőt meg a GOSA hozta létre.
Azt olvastam, hogy a cyrus-nak lmtp-vel egy fully qualified name-et kell átadni; ami egyezik a mailbox nevével. Ezért tesztelgettem az andrei... mailboxszal, de sajnos az nem jött össze.
Most jutott eszembe, hogy lehet, hogy a mailbox neve ugyan FQ, de ilyen uid nincs az ldap-ban... lehet hogy ez a gond? Mindjárt checkelem.
Köszi,
;-(
- A hozzászóláshoz be kell jelentkezni
cyrus userrel jelentkezzek be a cyradm-ban, és hozzak létre
en erre gondoltam, de ha csak otletet sikerult adni annak is orulok :)
szerintem az auth resze rendben van, mar ha mondjuk be tudsz jelentkezni imap-on, a gond erzesre inkabb ott van, h cyrus nem tudja mit csinaljon a levellel.
ezzel az en cyrus, postfix, ldap, stb tudasom ki is merult, ebbe is csak veletlenul szaladtam bele nemreg, varom a howto-t :)
- A hozzászóláshoz be kell jelentkezni
Kipróbáltam az imap bejelentkezést, így:
imtest -a testuser -l0 -m login 192.168.1.10
illetve
imtest -a testuser@foobar.hu -l0 -m login 192.168.1.10
S: * OK gape Cyrus IMAP4 v2.1.18-IPv6-Debian-2.1.18-1ubuntu1 server ready
C: C01 CAPABILITY
S: * CAPABILITY IMAP4 IMAP4rev1 ACL QUOTA LITERAL+ MAILBOX-REFERRALS NAMESPACE UIDPLUS ID NO_ATOMIC_RENAME UNSELECT CHILDREN MULTIAPPEND SORT THREAD=ORDEREDSUBJECT THREAD=REFERENCES IDLE ANNOTATEMORE
S: C01 OK Completed
Please enter your password:
C: L01 LOGIN testuser {8}
S: + go ahead
C: <omitted>
S: L01 NO Login failed: user not found
Authentication failed. generic failure
Security strength factor: 0
C: Q01 LOGOUT
Connection closed.
A logba ezt írja:
May 4 11:56:53 gape cyrus/imapd[6752]: badlogin: gape.foobar.hu[192.168.1.10] plaintext testuser SASL(-13): user not found: checkpass failed
A howtot biztos hogy megírom (ha egyszer működni kezd), mert nagyon nagy mennyiségűt szívtam vele, és hiába kerestem egy egyszerű, érthető howtot.
;-(
- A hozzászóláshoz be kell jelentkezni
Közben kiderült, hogy azzal a userrel, aki a sasldb-ben van, simán megy az imap authentikácia is; tehát tényleg a saslnak nem akaródzik a pam-ot használni. A saslauthd-s processzek így futnak:
root 5957 0.0 0.3 6540 1632 ? S 07:45 0:00 /usr/sbin/saslauthd -a pam
Ebből van 5 db. Lehet, hogy a PAM-nál van hiba? De konzolra meg be tudok jönni, akkor mi probléma lehet a PAM-mal?
Nem tudja valaki, hogyan lehet debug levelt emelni a saslauthd-n? Semmi logot nem ír, strace-vel meg hiába kapaszkodok fel az egyikre, ha épp a másik végzi az autentikácia...
;-(
- A hozzászóláshoz be kell jelentkezni
saslauthd -d
- A hozzászóláshoz be kell jelentkezni
Új fejlemény: A cyrus levlistán olvastak hatására az imapd.conf-ban átírtam a sasl_pwcheck_method-ot saslauthd-re, annak ellenére, hogy eddig meggyőződésem volt, hogy az nem működik. :-)
Ezután elkezdett működni az imap autentikáció; mind sasldb, mind LDAP userekkel. Csakhogy sajnos mindeközben a cyradm authentikáció romlott el. Ez utóbbira az a megoldás, hogy így jelentkezek be:
# cyradm --user cyrus --auth login localhost
Ez így működik saslauthdb-vel is! Sajnos ez annyira mégsem jó, mert a GOSA-nak nem tudom elmagyarázni, hogy ne plain text-tel jelentkezzen be (a postfixnek meg főleg nem!); de egy vágással megoldottam: felvittem a cyrus felhasználót az LDAP-ba. Frankón működik.
Most még az a gond, hogy a cyrus nem találja a mailboxot a RCPT To: alapján, de az autentikáció egész jó. Ezután már csak egy kis TLS kell és kész is a recept.
;-(
- A hozzászóláshoz be kell jelentkezni
hasonló feladattal küzdök. Hogy sikerült ez a projekt? Megy a cyrus és a postfix is?
covek@covek.hu
- A hozzászóláshoz be kell jelentkezni