Archiv für Juni 2010

tux.jpgUm Postfix als SMTP-Server für viele Nutzer anzubieten, muss er auf eine Nutzerdatenbank zurück greifen. Dieser Artikel zeigt am Beispiel der Groupware Zarafa, wie Postfix via libsasl mit einer MySQL-Nutzerdatenbank verknüpft wird.

Mit Hilfe von SASL können Nutzer sich gegen Postfix authentifizieren und E-Mails einliefern, damit dieser die weiter zustellt. Dies ist zum Beispiel interessant, wenn der Postfix als zentraler MTA für eine Firma oder größere Institution genutzt werden soll.

Die Schwierigkeit besteht darin, eine vorhandene Nutzerdatenbank einzubinden, hier die MySQL-DB der Groupware Zarafa. Häufig wird dabei auf PAM zurückgegriffen: Postfix authentifiziert gegen PAM, via PAM kann eine Vielzahl verschiedenster Plugins angebunden werden, um z.B. auch auf Datenbanken zurück zu greifen. Ein anderer Weg ist, die Bibliothek libsasl des Cyrus-Projekts zu nutzen, da dies ebenfalls auf verschiedene Plugins zurückgreifen kann.

Dafür muss im ersten Schritt Postfix in der main.cf für die Authentifizierung gegen SASL fit gemacht werden:

smtpd_sasl_auth_enable = yes
broken_sasl_auth_clients = yes
smtpd_sasl_path = smtpd
smtpd_sender_restrictions = permit_sasl_authenticated, ...

saslauthd wird nicht direkt aufgerufen, es wird nur die libsasl-Bibliothek genutzt. Daher kann /etc/sysconfig/saslauthd auf den Standardwerten bleiben. Der Dienst selbst braucht nicht gestartet werden!

Es fehlt aber noch die eigentliche Konfiguration, in der unter Anderem auch die Syntax der MySQL-Abfrage definiert wird. Diese Konfiguration wird in der smtpd.conf definiert, die standardmäßig unter /usr/lib/sasl2/ erwartet wird. Erst wenn sie dort *nicht* vorliegt, wird sie unter /etc/sasl2/smtpd.conf erwartet. Warum dort nicht zuerst gesucht wird, entzieht sich meinem Verständnis. Es bietet sich also an, einen symbolischen Link auf die Datei unter /etc/ zu erstellen...
So oder so muss der Inhalt wie folgt aussehen:

pwcheck_method: auxprop
auxprop_plugin: sql
mech_list: PLAIN LOGIN
allow_plaintext: true
sql_engine: mysql
sql_hostnames: 127.0.0.1
sql_user: zarafa
sql_passwd: ******
sql_database: zarafa
sql_select: select value from objectproperty where objectid=(select objectid from objectproperty where value='%s' limit 1) and propname='loginname'

Dabei müssen die natürlich die Sternchen für das Passwort gegen das tatsächliche Passwort ersetzt werden. Sind alle Komponenten neu gestartet worden, können E-Mails von Nutzern eingeliefert werden, die sich via libsasl gegen die MySQL-Datenbank von Zarafa authentifizieren.

Alle Artikel zum Thema CentOS stehen auch als eigene Kategorie mit eigenem Feed zur Verfügung. Falls Ihr tiefergehende Fragen zu Support und Services für Zarafa habt, oder euch Supportangebote für CentOS interessieren, seid ihr bei uns ebenfalls richtig.

Update:
Ursprünglich hatte ich in diesem Artikel auf saslauthd direkt aufgesetzt, dann aber fälschlicherweise nicht gegen die DB, sondern gegen den IMAP-Server von Zarafa (via rimap) authentifiziert. Danke an Uli in den Kommentaren für den Hinweis. Mehr Infos zu saslauthd, libsasl und den unterschiedlichen Einsatzszenarien finden sich im SASL-Readme von Postfix.

Die US-Abteilung von credativ ist mit dem auf Forst-Ressourcen-Management spazialisierten Unternehmen Forest Informatics eine Partnerschaft eingegangen. Zusammen bieten die beiden Unternehmen Training und Support für die Verarbeitung von Geodaten mit Hilfe von Open-Source-Software an.


Forest Informatics bietet Lösungen rund um die Verwaltung von forstwirtschaftlichen Gebieten mit Hilfe von Geodaten an. Ein Schwerpunkt liegt dabei auf der Offenheit der eingesetzten Lösungen: bewusst wird den Kunden von proprietären Lösungen abgeraten, die Vorteile von Open Source werden klar wahr genommen und vermittelt. Dieser Ansatz versteht sich exzellent mit der Perspektive credativs: als Open-Source-Unternehmen kennen wir nicht nur die Vorteile von Open Source, wir vermitteln sie aktiv an unsere Kunden weiter und stehen für die Vorteile und Ideale dahinter ein.

Auf Grund dieser Gemeinsamkeiten haben sich beide Unternehmen dazu entschlossen, eine Partnerschaft einzugehen, und Kunden gemeinsam Open-Source-Lösungen und -Schulungen für GIS und Forst-Ressourcen-Management anzubieten. Die Themenschwerpunkte sind dabei PostgreSQL, PostGIS, R, und PL/R.

Zur Einführung wird es im September einen dreitägigen Kurs Intro to PostgreSQL with Spatial Analysis Extensions in San Diego geben. Den Kursteilnehmern werden dabei sowohl Datenbank-Grundlagen anhand von PostgreSQL näher gebracht, also auch Geodaten-Management mit Hilfe von PostGIS und die Prinzipien der Datenverarbeitung mit Hilfe von PL/R und R erlernen können.

Wir von credativ freuen uns über diesen neuen Partner, und wünschen von Deutschland aus alles Gute auf die andere Seite des Atlantiks!

Mehr über credativs Open-Source-Angebote erfahrt Ihr auf unserer Webseite. Wir freuen uns aber auch gerne über Kommentare und Fragen hier auf dem Blog oder über unser Kontakt-Formular.

PostgreSQL 9.0beta2

| Keine Kommentare | Keine TrackBacks

postgreslogo.png
Vor einigen Tagen wurde eine weitere Betaversion von PostgreSQL 9.0 veröffentlicht, die unter anderem Syntax-Änderungen und pg_upgrade mit sich bringt.


Die Fertigstellung der neuen PostgreSQL-Version 9.0 schreitet voran, es wurden einige wichtige Änderungen gegenüber der Beta1 vorgenommen:

  • Die Syntax für benannte Parameter in Funktionen wurde geändert. Statt CREATE FUNCTION f(expression AS parameter_name, ...) wird nun CREATE FUNCTION f(parameter_name := expression, ...) verwandt. Grund hierfür ist insbesondere eine vorbereitende Maßnahme auf den Entwurf des kommenden SQL Standard 2011. Dieser sieht für die Zuweisung die Syntax CREATE FUNCTION f(parameter_name => value, ...) vor, jedoch kann PostgreSQL nicht ohne weiteres => adaptieren, da beliebige Operatoren diesen Bezeichner annehmen können (siehe auch die CREATE OPERATOR Syntax). Da der SQL Standard 2011 sich noch in der Entwurfsphase befindet, und die Anpassung hierfür aufwändig ist sowie einige heftige Inkompatibilitäten nach sich ziehen würde, wurde entschieden, vorerst eine möglichst ähnliche Syntax zu implementieren.
  • pg_upgrade für Migrationen ohne Dump/Restore auf PostgreSQL 9.0 wurde in den contrib-Zweig des Quelltextbaumes aufgenommen. pg_upgrade erlaubt die Konvertierung eines binärkompatiblen Datenbankclusters ab Version 8.3.
  • Sicherheitsrelevante Fixes, siehe hierzu auch die Veröffentlichungen der Updates für 8.4.4, 8.3.11, 8.2.17, 8.1.21, 8.0.27 und 7.4.29
  • Bug Fixes nach Reports von Betatestern, aber auch wichtige Korrekturen für Hot Standby und Streaming Replication

Wie immer sind alle Interessierten aufgefordert, ihre Testergebnisse und -Eindrücke den Entwicklern mitzuteilen. Informationen für das Vorgehen für Tests und Erstellen von Fehlerberichten können im Wiki eingesehen werden.

Alle Blog-Artikel zum Thema PostgreSQL werden auch als Kategorie PostgreSQL samt eigenem Feed angeboten. Wir helfen auch gerne mit Support und Services für PostgreSQL.