Postfix-Cyrus-Procmail-SpamAssassin Howto

von David Lais

+ Verwaltungstools - Web-Cyradm

Web-Cyradm installation

Wie immer laden wir als erstes die Datein herrunter und entpacken sie:

wget http://www.web-cyradm.org/web-cyradm-0.5.4.tar.gz
tar xfz web-cyradm-0.5.4.tar.gz

Als nächstes verschieben wir Web-Cyradm in unser WebServer "documentroot". Bei Apache ist das oft: /usr/local/apache/htdocs/.

mv web-cyradm-0.5.4 /usr/local/apache/htdocs/web-cyradm

Web-Cyradm Konfiguration

Jetzt noch die Log Datei für Web-Cyradm anlegen:

touch /var/log/web-cyradm.log /var/log/web-cyradm-login.log
chown APACHE_USER:APACHE_GROUP /var/log/web-cyradm.log /var/log/web-cyradm-login.log

ACHTUNG: Den Apache Benutzer und die Apache Gruppe bitte entsprechend mit euren ersetzen!

Nun fügen wir das Web-Cyradm Datenbankschema in unsere MySQL-Datenbank ein. Sollte die Datenbank noch nicht gestartet sein, so macht man das mit: /etc/init.d/mysql start erledigen.

ACHTUNG bitte ändert das default Passwort in den SQL Scripts. Hier könnt ihr euch eins ausdenken, das wir später aber noch einmal benötigen.

Hinzufügen des Schemas:

/usr/local/mysql/bin/mysql -u root -p < \
/usr/local/apache/htdocs/web-cyradm/scripts/insertuser_mysql.sql

/usr/local/mysql/bin/mysql mail -u mail -p < \
/usr/local/apache/htdocs/web-cyradm/scripts/create_mysql.sql

Jetzt geht es an die Konfiguration.

cd /usr/local/apache/htdocs/web-cyradm/config
cp conf.php.dist conf.php

Cyrusbenutzer einstellen:

#The Cyrus login stuff $CYRUS = array(     'HOST' => 'localhost',
    'PORT' => 143,
    'ADMIN' => 'cyrus',
    'PASS' => 'secret'
);

Datenbankverbindung:

$DB = array(
    'TYPE' => 'mysql',
    'USER' => 'mail',
    'PASS' => 'secret',
    'PROTO' => 'unix', // set to "tcp" for TCP/IP
    'HOST' => 'localhost',
    'NAME' => 'mail'
);

Solltest du in der /etc/imapd.conf, "unixhierarchysep" auf yes gesetzt haben, setze in der "conf.php"

$DOMAIN_AS_PREFIX=0

auf folgendes:

$DOMAIN_AS_PREFIX=1

Anpassen der Authentifizierungsscripte

Für die Authentifizierung der Benutzer an der Datenbank erstellen wir die Datei /etc/pam.d/imap und konfigurieren pam_mysql.

/etc/pam.d/imap

auth sufficient pam_mysql.so user=mail passwd=secret host=localhost db=mail table=accountuser usercolumn=username passwdcolumn=password crypt=1 logtable=log logmsgcolumn=msg logusercolumn=user loghostcolumn=host logpidcolumn=pid logtimecolumn=time

auth sufficient pam_unix_auth.so

account required pam_mysql.so user=mail passwd=secret host=localhost db=mail table=accountuser usercolumn=username passwdcolumn=password crypt=1 logtable=log logmsgcolumn=msg logusercolumn=user loghostcolumn=host logpidcolumn=pid logtimecolumn=time

account sufficient pam_unix_acct.so

zur Erklärung

auth sufficient pam_mysql.so, gibt an mit welchem PAM Modul wir uns authentifizieren.
user=mail, ist unser Benutzer, mit dem wir die Datenbank ansprechen.
passwd=secret, ist unser Benutzerpasswort.
host=localhost, ist unser MySQL host.
db=mail, ist unsere Datenbank.
table=accountuser, ist unsere Tabelle, in der wir die Benutzerdaten speichern.
usercolumn=username, ist die Spalte, in welcher der Benutzername steht.
passwdcolumn=password, die Spalte, in welcher das Passwort steht.
crypt=1, gibt an, ob das Passwort verschlüsselt werden soll, 1 für JA 0 für NEIN.

Der Rest ist noch für die LOG Tabelle zuständig und für die reibungslose PAM Authentifizierung.
Bitte achte auf "passwd=secret" und "user=mail". Solltest du einen anderen Benutzernamen und Passwort haben, so änder dieses bitte hier in der Datei.

Die Konfiguration den anderen Diensten zur Verfügung stellen:

ln -s /etc/pam.d/pop /etc/pam.d/imap
ln -s /etc/pam.d/sieve /etc/pam.d/imap
ln -s /etc/pam.d/smtp /etc/pam.d/imap

Jetzt legen wir die für Postfix wichtigen Konfigurationsdatein an.

/etc/postfix/mysql-virtual.cf

#Host der Datenbank
hosts = localhost #Benutzername und Passwort der Datenbank
user = mail
password = secret

# Der Datenbankname
dbname = mail
table = virtual

select_field = dest
where_field = alias
additional_conditions = and status = '1'

etc/postfix/mysql-canonical.cf

#Host der Datenbank
hosts = localhost #Benutzername und Passwort der Datenbank
user = mail
password = secret

# Der Datenbank name
table = virtual
dbname = mail

select_field = alias
where_field = username

# Das erste Ergebnis zurueck liefern
additional_conditions = and status = '1' limit 1

/etc/postfix/mysql-mydestination.cf

#Host der Datenbank
hosts = localhost

#Benutzername und Passwort der Datenbank
user = mail
password = secret

# Name der Datenbank
dbname = mail

# Tabellenname
table = domain

select_field = domain_name
where_field = domain_name

Bitte auf das Passwort und den Benutzernamen für die MySQL Datenbank achten! Hier geben wir das gleiche wie oben in der PAM Datei an. Fertig! Jetzt sollte die reibungslose Authentifizierung an MySQL klappen.

Damit hätten wir nun Web-Cyradm installaliert und können mit dem Servertest weiter machen.


« Zurük zu denn Verwaltungstools | Weiter mit dem Servertest »