[Megoldva] postfix + openLDAP koltoztetes > unknown user [550]

A kornyezetrol:
- CentOS 5.4 64bit
- postfix
- openLDAP
- regi szerver (regiserver.hu, 111.111.111.111)
- mail szerver (mail.masikserver.hu, 222.222.222.222)
- uj szerver (ujserver.hu, 333.333.333.333)
- virtualis domain (virtual.hu, 111.111.111.111 > 333.333.333.333)

A problema:
Adott egy regi szerver (regiserver.hu), ami tobb domain web-es megjeleneset, ill. levelezeset hivatott kiszolgalni. Ez a vas mar egy cseppet elavult lett az evek folyaman, azert a tulaj beruhazott egy uj vasba (ujserver.hu). A tulaj levelezesere egy masik szerver szolgal (mail.masikserver.hu).
Az adatok migralasa megtortent az uj szerver iranyaba, de egy problemaba utkoztem. A teszt kedveert egyelore csak egy domain (virtual.hu) mutat at az uj szerverre. Ennek levelezese, web-es megjelenese mar az uj szerveren fut (333.333.333.333). Ha levelet kuldok az ujserver.hu (333.333.333.333) iranybol mail.masikserver.hu (222.222.222.222) iranyba, akkor 550-es hibaval visszautasitodik a level (unknown user). Ha ezt forditva teszem, akkor szinten az elozo hiba jon elo.

Egyeb mas iranyba/-bol tudok levelet kuldeni/fogadni.

openLDAP struktura:


  -regi szerver:
    o=szervernev,c=hu
    + ou=virtual.hu
      - mail=usernev1@virtual.hu
      - mail=usernev2@virtual.hu
        ...
  - uj szerver:
    dc=szervernev,dc=hu
     + o=domains
       + domainName=virtual.hu
         + ou=Users
           - mail=usernev1@virtaul.hu
           - mail=usernev2@virtual.hu
             ...

Reszlet az ujserver.hu /var/log/maillog -bol:


[... virtual.hu > mail.masikserver.hu ...]
Dec  1 11:24:15 uj postfix/smtpd[7855]: connect from uj.ujserver.hu[127.0.0.1]
Dec  1 11:24:15 uj postfix/trivial-rewrite[7857]: warning: do not list domain virtual.hu in BOTH virtual_mailbox_domains and relay_domains
Dec  1 11:24:15 uj postfix/trivial-rewrite[7857]: warning: do not list domain regiserver.hu in BOTH virtual_mailbox_domains and relay_domains
Dec  1 11:24:15 uj postfix/smtpd[7855]: NOQUEUE: reject: RCPT from uj.ujserver.hu[127.0.0.1]: 550 5.1.1 <usernev@mail.masikserver.hu>: Recipient address rejected: User unknown in virtual mailbox table; from=<usernev1@virtual.hu> to=<usernev@mail.masikserver.hu> proto=ESMTP helo=<333.333.333.333>
Dec  1 11:24:15 uj roundcube: Invalid response code received from server (550):
Dec  1 11:24:15 uj postfix/smtpd[7855]: disconnect from uj.ujserver.hu[127.0.0.1]
Dec  1 11:24:15 uj roundcube: [01-Dec-2009 11:24:15 +0100] SMTP Error: SMTP error: Failed to add recipient 'usernev@mail.masikserver.hu' in /var/www/roundcubemail-0.2.1/program/steps/mail/func.inc on line 1296 (POST /mail/?_task=mail&_action=send)
[...]

[... mail.masikserver.hu > virtual.hu ...]
Dec  1 11:30:49 uj postfix/smtpd[8075]: connect from unknown[222.222.222.222]
Dec  1 11:30:49 uj postfix/trivial-rewrite[8078]: warning: do not list domain ujserver.hu in BOTH virtual_mailbox_domains and relay_domains
Dec  1 11:30:49 uj postfix/trivial-rewrite[8078]: warning: do not list domain virtual.hu in BOTH virtual_mailbox_domains and relay_domains
Dec  1 11:30:49 uj postfix/smtpd[8075]: NOQUEUE: reject: RCPT from unknown[222.222.222.222]: 550 5.1.0 <usernev@mail.masikserver.hu>: Sender address rejected: User unknown in virtual mailbox table; from=<usernev@mail.masikserver.hu> to=<usernev1@virtual.hu> proto=ESMTP helo=<mail.masikserver.hu>
Dec  1 11:30:50 uj postfix/smtpd[8075]: disconnect from unknown[222.222.222.222]
[...]

Reszlet a mail.masikserver.hu /var/log/mail.info -bol (debian):


[... mail.masikserver.hu > virtual.hu ...]
Dec  1 11:30:49 mail postfix/qmgr[2262]: 3DFEF168186: from=<usernev@mail.masikserver.hu>, size=332, nrcpt=1 (queue active)
Dec  1 11:30:50 mail postfix/smtp[15847]: 3DFEF168186: to=<usernev1@virtual.hu>, relay=a.mx.virtual.hu[333.333.333.333]:25, delay=0.88, delays=0.13/0.16/0.19/0.4, dsn=5.1.0, status=bounced (host a.mx.virtual.hu[333.333.333.333] said: 550 5.1.0 <usernev@mail.masikserver.hu>: Sender address rejected: User unknown in virtual mailbox table (in reply to RCPT TO command))
Dec  1 11:30:50 mail postfix/cleanup[15845]: 224CB168187: message-id=<20091201103050.224CB168187@mail.masikserver.hu>
Dec  1 11:30:50 mail postfix/qmgr[2262]: 224CB168187: from=<>, size=2275, nrcpt=1 (queue active)
Dec  1 11:30:50 mail postfix/bounce[15848]: 3DFEF168186: sender non-delivery notification: 224CB168187
Dec  1 11:30:50 mail postfix/qmgr[2262]: 3DFEF168186: removed
Dec  1 11:30:50 mail postfix/smtp[15847]: 224CB168187: to=<usernev@mail.masikserver.hu>, relay=mail.masikserver.hu[222.222.222.222]:25, delay=0.26, delays=0.04/0.01/0.1/0.12, dsn=5.1.1, status=bounced (host mail.masikserver.hu[222.222.222.222] said: 550 5.1.1 User unknown (in reply to RCPT TO command))
Dec  1 11:30:50 mail postfix/qmgr[2262]: 224CB168187: removed
[...]

Amit probaltam:
- A

/etc/postfix/ldap_virtual_alias_maps.cf

es a

/etc/postfix/ldap_virtual_mailbox_domains.cf
query_filter

opciojanak altalanositasa.
- A user-eket fentebb mozgatni az LDAP strukturaban.

Mint fentebb irtam, egyeb mas iranyba/iranybol rendben mukodik a levelezes.

Mivel gyorsan kellett megcsinalnom, ezert gondoltam, hogy igenybe veszek egy felkesz megoldast (iRedMail 0.5.0). Rafaztam...

Ha barki tud segiteni, azt elore is szepen koszonom.

ozs

Hozzászólások

up

---
Lehet, hogy kívül szőke vagyok, de belül sötét, oké?!

Slapcattal áttoltad az adatokat, a régi szerveren beállítottál egy transportot valamennyi domainre az új szerverre? Szerintem, ennek így működnie kellene.

Az LDAP adatokat exportaltam (.ldif) , atszabtam, hogy illeszkedjen az uj strukturaba, majd importaltam (

ldapadd

) az uj szerveren.

Transport alatt mit ertesz? A virtual.hu-hoz tartozo DNS record-ok (@ A NS MX) termeszetesen befrissultek. Amit elfelejtettem: a regi szerveren qmail van beallitva. Az ehhez tartozo transport-ra gondoltal? Az uj szerveren levo /etc/postfix/transport, /etc/postfix/virtual file-ok erintetlenek (csak komment van bennuk).

---
Lehet, hogy kívül szőke vagyok, de belül sötét, oké?!

Az OpenLDAP sikeres költöztetése a slap* parancsokkal történik. Ha nem így teszel, akkor pl elvesznek a módosítás dátumai és egyéb adott esetben izgalmas információk.

A Qmail azért szopás, mert ha nem patcheled meg, nem tudja azt megcsinálni, hogy proxyzzon, de csak akkor, ha a mögötte levő szerver fogadja is be a levelet.

A problema megoldotott. Leirom, hatha valaki szinten belefut ilyesmibe.

Mint irtam, a gep webhost-okat is kiszolgal - koztuk a ceget is (cegnev.hu).

Az LDAP strukturaba rogzitettem a cegnev.hu domain-t is, hogy letrehozzak egy felhasznalot (noreply@cegnev.hu) alatta. Mint kiderult, ez volt az, ami bezavart, mivel a postfix LDAP-bol szedi mindazon domain-ek neveit, amiket ki kell szolgalnia - ahogy ezt szerettem is volna. Csakhogy mivel itt szerepelt a cegnev.hu, ezert ugy gondolta, hogy o maga lesz ennek a cegnek a mail kiszolgaloja is. Azert nem talalta a user-ek nevet, mert valoban nem leteztek ezen az uj szerveren. Probaltam minden modon exclude-alni a postfix ldap .conf-jaban - de szep magyar mondat let... :) -, de nem jott ossze. Ekkor az LDAP strukturaban megvaltoztattam www.cegnev.hu-ra a domainName-t. S lon csodat! Mukodik!

Lehet, hogy nem szep megoldas a fenti, de mukodokepes.

A

/etc/postfix/ldap_virtual_mailbox_domains.cf

file-ban (is) probaltam a

query_filter

-t valtoztatni, de nem jott ossze, ezert maradt ez a barbar modszer.

Probalkozasaim (egy resze):


query_filter = (&(objectClass=mailDomain)(domainName=%s)(!(domainBackupMX=yes))(accountStatus=active)(enabledService=mail)(!(domainName=cegnev.hu)))
query_filter = (&(objectClass=mailDomain)(domainName=%s)(!(domainBackupMX=yes))(accountStatus=active)(enabledService=mail)(|(!(domainName=cegnev.hu))))
query_filter = (&(objectClass=mailDomain)(domainName=%s)(!(domainBackupMX=yes))(accountStatus=active)(enabledService=mail)(!(domainName="cegnev.hu")))
query_filter = (&(objectClass=mailDomain)(domainName=%s)(!(domainBackupMX=yes))(accountStatus=active)(enabledService=mail)(|(!(domainName="cegnev.hu"))))

Egyik sem vezetett sikerre.

---
Lehet, hogy kívül szőke vagyok, de belül sötét, oké?!

Nem gondolom, hogy az lenne a baja, de igazad lehet.

Most igy nez ki az

ldap_virtual_mailbox_domains.cf

:


server_host     = 127.0.0.1
server_port     = 389
bind            = yes
start_tls       = no
version         = 3
bind_dn         = cn=vmail,dc=szervernev,dc=hu
bind_pw         = nagyontitkosjelszo
search_base     = o=domains,dc=szervernev,dc=hu
scope           = one
query_filter    = (&(objectClass=mailDomain)(domainName=%s)(!(domainBackupMX=yes))(accountStatus=active)(enabledService=mail))
result_attribute= domainName
debuglevel      = 0

---
Lehet, hogy kívül szőke vagyok, de belül sötét, oké?!