Home Hosters Blog Postfix mit MySQL, PCRE & SASL Support installieren

Postfix mit MySQL, PCRE & SASL Support installieren Drucken

Kompilieren und installieren des Postfix MailServer mit MySQL, PCRE und SASL Support, auf einem Fedora Core 3, 4, 5, 6 bzw 8 Server. In unserem Beispiel gehen wir davon aus, dass der Original Postfix Server von Fedora bereits installiert und korrekt konfiguriert wurde. Eine RPM Installation reicht aus. Unser Beispiel lehnt sich dabei nah an die ISP-Software 'isp4you' an, es kann aber auch jede andere MySQL Datenbank verwendet werden, um die User in der Datenbank zu verwalten.

==========================================================================

Vorarbeiten am System:

Mit 'yum Paketname' installieren wir die fehlenden Header-Dateien.
Der Befehl lautet: yum install 'Paketname' (ohne .rpm)
Die dependencies nehmen wir natürlich auch mit.
Alternativ können mit 'rpm -ivh' die RPM-Pakete auch ohne Yum installiert
werden.

Es empfiehlt sich auf alle Fälle vorher mit:
rpm -q 'Paketname' (ohne .rpm) zu kontrollieren, welche Pakete bereits installiert sind.

- mysql-server.rpm
- mysql-devel.rpm
- mysqlclient.rpm bzw. mysqlclient10.rpm (Fedora Core 4,5 oder 6) - mysql.rpm (Fedora Core 3) - (Fedora 8 = ?)
- mysqlclient10-devel.rpm (Fedora Core 4,5 oder 6) - (Fedora 8 = ?)
- libzvt.rpm (nur Fedora Core 4)
- db4-devel.rpm
- pcre-devel.rpm
- cyrus-sasl-devel.rpm

Von www.postfix.org können die Sourcen heruntergeladen werden. Am einfachsten geht das mit 'wget URL'.
Beispiel: 'wget ftp://ftp.fu-berlin.de/unix/mail/postfix/official/postfix-2.5.0.tar.gz (Stand: 02.02.2008)
Der Tarball wird mit 'tar -xzf postfix-2.5.x.tar.gz' entpackt.

Selbstredend werden die Entwickler Tools 'gcc' und 'make' benötigt.

Falls der Postfix Server noch läuft, bitte mit: '/etc/init.d postfix stop' jetzt anhalten.

==========================================================================

Das Build:

Um mit dem Build zu beginnen, wird in das Verzeichnis des neuen
Postfix Programms, das gerade entpackt wurde, gewechselt. Achten Sie darauf, dass wenn
Sie SASL Support einkompiliernen wollen, das Build sich je nach der Postfix Version (2.2.x oder 2.3.x)
geringfügig ändert (Postix hat ab Version 2.3.x hier Änderungen vorgenommen). Bei Version
2.3.x oder höher muss auch später noch eine zusätzliche Konfigurationzeile für Cyrus SASL Support angegeben werden. Weitere Informationen zu diesem Thema steht in der Postfix Dokumentation:
(http://www.postfix.org/postconf.5.html#smtpd_sasl_type).

Auf der Kommandozeile geben wir,je nach System und Postfix Version, einen der folgenden Befehle ein:

Fedora Core 4 & 5 - Postfix 2.2.x : (mit SASL Support)
make -f Makefile.init makefiles \
'CCARGS=-DHAS_MYSQL -I/usr/include/mysql -DHAS_PCRE -I/usr/include -DUSE_SASL_AUTH -I/usr/include/sasl' \
'AUXLIBS=-L/usr/lib/mysql -lmysqlclient -lz -lm -L/usr/lib -lpcre -L/usr/lib/sasl2 -lsasl2'

Fedora Core 4 , 5 , 6, 8 - Postfix 2.3.x  oder höher : (mit SASL Support)
make -f Makefile.init makefiles \
'CCARGS=-DHAS_MYSQL -I/usr/include/mysql -DHAS_PCRE -I/usr/include -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/include/sasl' \
'AUXLIBS=-L/usr/lib/mysql -lmysqlclient -lz -lm -L/usr/lib -lpcre -L/usr/lib/sasl2 -lsasl2'

Fedora Core 3 - Postfix 2.2.x : (mit SASL Support)
make -f Makefile.init makefiles \
'CCARGS=-DHAS_MYSQL -I/usr/include/mysql -DHAS_PCRE -I/usr/include -DUSE_SASL_AUTH -I/usr/include/sasl' \
'AUXLIBS=-L/usr/lib/mysql -lmysqlclient -lm -L/usr/lib -lpcre -L/usr/lib/sasl2 -lsasl2'

Fedora Core 3 - Postfix 2.3.x : (mit SASL Support)
make -f Makefile.init makefiles \
'CCARGS=-DHAS_MYSQL -I/usr/include/mysql -DHAS_PCRE -I/usr/include -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/include/sasl' \
'AUXLIBS=-L/usr/lib/mysql -lmysqlclient -lm -L/usr/lib -lpcre -L/usr/lib/sasl2 -lsasl2'


Fedora Core 3 : (ohne SASL Support)
make -f Makefile.init makefiles \
'CCARGS=-DHAS_MYSQL -I/usr/include/mysql -DHAS_PCRE -I/usr/include' \
'AUXLIBS=-L/usr/lib/mysql -lmysqlclient -lm -L/usr/lib -lpcre'

Tipp: Achten Sie darauf, dass am Ende der Zeilen ein Leerzeichen vor dem Backslash steht, ansonsten schlägt das Build fehl. Bsp.; ....-I/usr/include'<LEERZEICHEN>\

Anschließend wird aus den Sourcen das Binary gebaut:

make clean
make
/etc/init.d/postfix/stop
make upgrade
make clean
/etc/init.d/postfix/start

Wir benutzen 'make upgrade', da wir ja ein vorhandenes Postifx Binary lediglich upgraden wollen. Bei einer Neuinstallation kann hier 'make install' eingegeben werden.

Mit 'postconf -m' können wir nun kontrollieren ob MySQL und PCRE Support
tatsächlich einkompiliert wurde. Die Ausgabe auf dem Terminal sollte in
etwa wie folgt aussehen:

btree
cidr
environ
hash
mysql
nis
pcre
proxy
regexp
static
unix

==========================================================================

Die Konfiguration:

Wurde Postfix 2.3.x oder höher mit SASL Support kompiliert, muss in die /etc/postfix/main.cf noch
folgende Zeile eingefügt werden:

smtpd_sasl_type = cyrus

Mit 'postconf -a' können wir uns auf der Kommandozeile ansehen, welche Arten von
SASL unser Postfix unterstützt.

Wenn alles O.K ist, werden in die Datei /etc/postfix/main.cf folgende Zeilen eingefügt:

virtual_mailbox_base = /virtualmail/
virtual_mailbox_domains = mysql:/etc/postfix/mysql-domains.cf
virtual_maps = mysql:/etc/postfix/mysql-virtual.cf


Ist die Direktive 'virtual_maps' schon vorhanden, muss Sie entsprechend dem
oberen Beispiel angepasst werden.

Nun die Datei: /etc/postfix/mysql-virtual.cf anlegen und wie folgt bearbeiten:

user = Mysql_username
password = password
dbname = isp4you
table = virtual
select_field = mailbox
where_field = mail_address
hosts = localhost

Die Datei: /etc/postfix/mysql-domains.cf anlegen und wie folgt bearbeiten:

user = Mysql_username
password = password
dbname = isp4you
table = virtual
select_field = domainname
where_field = domainname
hosts = localhost

Die Datei /etc/postfix/mysql-domains.cf beschreibt die Domains für die sich der
PostfixServer bei der Annahme von Mails zuständig fühlt.


'user' und 'password' beschreibt den Usernamen, der auf die MySQL Datenbank
Zugriff hat. 'dbname' ist die zugehörige Datenbank, in der die User angelegt
werden.
In der Datenbank sollte nach unserem Beispiel ein Table 'virtual' vorhanden sein.
'select_field' beschreibt die Mailbox, in die die E-Mail verschoben wird.
Das 'where_field' enthält die Mail-Adresse, auf welcher der Postfix Server die
ankommenden E-Mails entgegen nimmt.

Zu guter Letzt legen wir noch fest ob die MySQL-Datenbank
auf dem lokalen Host liegt oder ob Posftix auf einem entfernten
MySQL Server zugreifen soll.

Selbstverstänldich kann der PostfixServer Mails nur ausliefern, wenn die Direktive
'smtpd_recipient_restrictions' korrekt konfiguriert wurde. Hier ein Beispiel für eine
vernünftige 'smtpd_recipient_restrictions' Direktive. Wir gehen bei unserem Beispiel davon aus, dass
in der Datei '/etc/postfix/access' KEIN Eintrag vorhanden ist. Achtung Einträge in der '/etc/postfix/access'
Datei kann einen OPEN_RELAY Mailserver zur Folge haben!!! Alternativ können die beiden ersten
Einträge deswegen auch vernachlässigt werden. Das Prinzip ist wie immer: Trifft eine Regel zu,
wird die nächste nicht weiter überprüft.

smtpd_recipient_restrictions =
check_recipient_access hash:/etc/postfix/access,
check_sender_access hash:/etc/postfix/access,
permit_sasl_authenticated,
permit_mynetworks,
reject_non_fqdn_recipient,
reject_unknown_recipient_domain,
reject_unknown_sender_domain,
reject_unauth_destination,
reject_unauth_pipelining,
reject_invalid_hostname,
reject_rbl_client relays.ordb.org,
reject_rbl_client bl.spamcop.net,
reject_rbl_client sbl.spamhaus.org,
reject_rbl_client dsn.rfc-ignorant.org,
reject_rbl_client cbl.abuseat.org,
reject_rbl_client opm.blitzed.org

Tipp: Achten Sie darauf, dass die ersten beiden Leerzeichen in der Liste vorhanden sind.


==========================================================================

Postfix neu starten
saslauthd starten (wenn saslauth verwendet werden soll)

==========================================================================

Zu Guter letzt:

Sollte sich überlegt werden, ob man das Paket gcc nicht wieder loswerden will... Dieses kann mit 'rpm -e gcc' bewerkstelligt werden.

Ausserdem sollten das Paket 'postfix' von yum nicht mehr upgedated werden. Damit bei einem
Update aus dem Repository nicht wieder eine Original Postfix Version installiert wird.

In '/etc/yum.conf' die folgende Zeile einfügen:

exclude=postfix

Auf einem Produktionsserver wäre die folgende Zeile eher sinnvoll:

exclude=postfix kernel glibc


==========================================================================

Letzte Aktualisierung: 02.02.2008

 

 

 

Kontakt
Impressum
AGB
Datenschutz
DomainAutomat 
Joomla-Hosting24 
German-Congress-Group 
Isp4you Software 
Joomla Hosting
Typo3 Hosting
Wordpress Hosting
 © 2010 by Provider4u GmbH
Alle Preise inkl. 19% MwSt.

 

 




 
 


Joomla Best Price Hosting Joomla Webhosting Joomla Hosting Joomla Webhosting Joomla Hosting serving deutschen bundestag fairprice garantie