debian | postfix und relay_recipient_maps vom Exchange (I)

Nach­dem ich im Kapi­tel »Mail-Gateways« aus dem Buch Post­fix — Ein­rich­tung, Betrieb und War­tung gele­sen habe, wie man eine Emp­fän­ger­liste auf dem Exch­ange expor­tiert und in post­fix ein­bin­det habe ich mich mal dran gemacht das zu rea­li­sie­ren. Die Bemü­hun­gen kom­men daher, das regel­mä­ßig Ver­su­che gestar­tet wer­den auf die Email-Adresse micha AT makomi DE ein­zu­lie­fern — eine Adresse die bei mir gar nicht exis­tiert. Nach­dem ich mal die Such­ma­schine mei­nes Ver­trau­ens mit der »omi­nö­sen« Email­adresse gefüt­tert habe war klar: Da hat jemand die Adresse in einem Forum ange­ge­ben und die Betrei­ber hat nix Bes­se­res zu tun, als die Pro­file öffent­lich zu machen.

Nun, eine erste Mail an den Admin hat keine Reak­tion vor­ge­ru­fen, also sel­ber nach Lösun­gen suchen. Die Lösung steht in dem obi­gen Buch — übri­gens sehr zu empfehlen.

Jetzt aber zur Realisierung:

Zuerst muß auf dem Exch­ange die aktu­elle Email-Adressenliste gene­riert wer­den. Die Daten sind schon alle im Active Direc­tory vor­han­den, man muß sie da nur raus­be­kom­men. Das geht mit Board­mit­teln, aber der Reihe nach. Als Ers­tes lohnt es sich für den Aus­tausch der Lis­ten ein eige­nes Ver­zeich­nis anzulegen:

mkdir c:\mailgw

Dann wird die Liste extrahiert:

ldifde -m -n -g -f "C:\Mailgw\recipient.txt" -r "(mailnickname=*)" -l proxyAddresses

Ein kurze Erklä­rung zu den Parametern:

–g Deak­ti­viert die sei­ten­weise Suche.
–m Akti­viert die SAM-Logik beim Export.
–n Expor­tiert keine Binär­werte.
–f Datei­name Datei­name für die Ein­gabe bzw. Aus­gabe.
–r Fil­ter LDAP-Suchfilter (Stan­dard: »(object­Class=*)«).
–l Liste Liste der Attri­bute (durch Komma getrennt), nach denen bei
der LDAP-Suche gesucht wird.

Das Kom­pli­zier­teste ist nun der Daten­aus­tausch vom Exchange-Server zum Mail-Gateway. Um dies zu bewäl­ti­gen muß man dem Exchange-Server zuerst bei­brin­gen, wie man per Secure Copy (kurz SCP) Dateien ver­schi­cken kann. Es gibt ver­schie­dene Pro­gramme dafür, am bekann­tes­ten ist aber als Kom­man­do­zeil­en­tool PuT­TYs PSCP. Wir benö­ti­gen die bei­den Pro­gramme pscp.exe und puttygen.exe.

Nun legen wir zuerst auf dem debian-Server einen neuen Benut­zer an, der nur für den Trans­fer der Lis­ten auf das Mail-Gateway ver­ant­wort­lich ist:

useradd -d /home/exchange/ -m exchange

Im Gegen­satz zu den Anga­ben im Buch mußte ich bei debian Lenny das Home­ver­zeich­nis expli­zit mit ange­ben, da Lenny anschei­nend das nicht selbst­stän­dig anlegt.

Nach­dem der Benut­zer exis­tiert geben wir ihm zuerst ein­mal ein Passwort:

passwd exchange

Anschlie­ßend gene­rie­ren wir ein SSH-Schlüsselpaar, damit der Datei­t­rans­fer ohne die Ein­gabe von Pass­wör­tern erfol­gen kann:

su - exchange
cd ~
ssh-keygen -t rsa

Bei der Nach­frage nach einer Pass­phrase bitte nix ein­ge­ben. Nur wenn hier kein Pass­wort ein­ge­ge­ben wird, kann der Datei­aus­tausch wirk­lich voll­au­to­ma­tisch erfolgen.

Generating public/private rsa key pair.
Enter file in which to save the key (/home/exchange/.ssh/id_rsa):
Created directory '/home/exchange/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/exchange/.ssh/id_rsa.
Your public key has been saved in /home/exchange/.ssh/id_rsa.pub.
The key fingerprint is:
ba:90:03:e8:06:20:5f:30:00:52:a9:11:c6:2e:ae:10 exchange@example.de
The key's randomart image is:
+--[ RSA 2048]----+
|&+..             |
|=*.              |
|.o+              |
|.+ +             |
|. o +   S        |
|E. . . o         |
|..    =          |
|o      +         |
|.     .          |
+-----------------+

Es wer­den nun zwei neue Dateien im Unter­ver­zeich­nis .ssh erstellt: id_rsa und id_rsa.pub

Damit der Ser­ver weiß, das der Benut­zer exch­ange mit Hilfe von Schlüs­seln auf den Ser­ver zugrei­fen darf, muß man noch den Inhalt der Datei id_rsa an die Datei ~/.ssh/authorized_keys ange­hängt wer­den. Dazu gibt man

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

ein und gibt mit

chmod 644 authorized_keys

der Datei die rich­ti­gen Rechte.

Nun muß der pri­vate Schlüs­sel des Paa­res auf einem siche­ren Weg zum Exchange-Server kom­men. Dazu nut­zen wir gleich die pscp.exe.

pscp exchange@mail.example.de:/home/exchange/.ssh/id_rsa .

Ich denke der Syn­tax ist klar. Natür­lich müs­sen wir uns jetzt mit einem Pass­wort authen­ti­fi­zie­ren — genau mit dem, wel­ches wir oben ver­ge­ben haben.

Um die Schlüs­sel­da­tei nut­zen zu kön­nen müs­sen wir sie in ein PuTTY-verträgliches For­mat wan­deln. Dazu nut­zen wir die von PuTTY mit­ge­lie­ferte puttygen.de

puttygen c:\mailgw\id_rsa

es öffnet sich eine GUI

puttygen-1

Nach eine Klick auf OK öffnet sich der PuTTY Key Generator-Dialog:

puttygen-2

Hier kann man im Feld Key com­ment dem kon­ver­tier­ten Schlüs­sel einen Namen wegen und anschlie­ßend Save pri­vate key drücken.

puttygen-3

Auf­grund der lee­ren Pass­phrase wird hier eine War­nung aus­ge­ge­ben, was aber ok ist.

Nun kön­nen wir mit dem eben erstellten/konvertierten Key eine ver­schlüs­selte Ver­bin­dung zu unse­rem Mail-Gateway aufnehmen

pscp -i mail.example.de.ppk recipient.txt exchange@mail.example.de:/home/exchange/

Nach­dem das geklappt hat, kön­nen wir dem Benut­zer exch­ange auf dem Mail-Gateway das Pass­wort weg­neh­men — dann ist ein ein­log­gen nur noch mit dem Key möglich.

usermod -L exchange

Wei­ter geht es im zwei­ten Teil, der dem­nächst erscheint.

Ähnli­che Arti­kel zu die­sem Thema:

  1. debian | post­fix und relay_recipient_maps vom Exch­ange (II)
  2. post­fix | eige­ner Ein­lie­fe­rungs­weg für Exchange-Server definieren
  3. debian | Zer­ti­fi­kate für Exch­ange erstel­len und einbinden
  4. debian | Groupware-Server instal­lie­ren — Übersicht
  5. debian | Mail-/Webserver instal­lie­ren und konfigurieren

  1. Noch keine Kommentare vorhanden.

:) :( ;) :mrgreen: :lol: :roll: :idea: :oops: more »