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
- 2388 megtekintés
Hozzászólások
up
---
Lehet, hogy kívül szőke vagyok, de belül sötét, oké?!
- A hozzászóláshoz be kell jelentkezni
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.
- A hozzászóláshoz be kell jelentkezni
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é?!
- A hozzászóláshoz be kell jelentkezni
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 hozzászóláshoz be kell jelentkezni
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é?!
- A hozzászóláshoz be kell jelentkezni
Nem lehet, hogy üres search base-el mentél?
- A hozzászóláshoz be kell jelentkezni
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é?!
- A hozzászóláshoz be kell jelentkezni