Zurück zu PAM
Inhalt
Vor zur Postfix Konfiguration

Konfiguration von MySQL

Für diejenigen, welche "lokal" Benutzer benutzen wollen, geht es hier --> weiter


Als Erstes sorgen wir dafür, dass die MySQL Datenbank nur von unserem Server aus erreichbar ist.
Dazu gehen wir in die Datei: /etc/init.d/mysql.server
und ändern folgende Zeile:

$bindir/mysqld_safe --datadir=$datadir --pid-file=$pid_file&
in
$bindir/mysqld_safe --datadir=$datadir --pid-file=$pid_file --bind-address=127.0.0.1&

Jetzt ist unsere MySQL Datenbank an localhost(127.0.0.1) gebunden.
Zum Schluss starten wir noch unsere MySQL Datenbank:

/etc/init.d/mysql.server start

damit wir ganz sicher gehen können, dass die Datenbank läuft:

netstat -an | grep LISTEN

output:
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN

und fertig. MySQL können wir nun benutzen.


Damit sich unsere Benutzer an der MySQL Datenbank authentifizieren können, müssen wir noch pam_mysql konfigurieren.
Wir erstellen eine Datei: /etc/pam.d/imap mit folgendem Inhalt:

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 Benutzer Passwort.
- "host=localhost", ist unser MySQL host.
- "db=mail", ist unsere Datenbank.
- "table=accountuser", ist unsere Tabelle, in der wir die Benutzerdaten speichern.
- "usercolumn=username", unsere Spalte in welcher der Benutzername steht.
- "passwdcolumn=password", unsere 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.

Jetzt kopieren wir die Datei noch für unsere anderen Dienste:

cp /etc/pam.d/imap /etc/pam.d/pop
cp /etc/pam.d/imap /etc/pam.d/sieve
cp /etc/pam.d/imap /etc/pam.d/smtp

Damit später Postfix mit unserer MySQL Datenbank reden kann, legen wir dazu einige Datein an.

Als erstes ist die "virtual alias map" dran, dazu legen wir die Datei: /etc/postfix/mysql-virtual.cf an mit dem folgenden Inhalt:

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

# Der Datenbank name
dbname = mail
table = virtual

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

Als nächstes die Datei: /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 ergebniss zurück liefern
additional_conditions = and status = '1' limit 1

und zum Schluss noch /etc/postfix/mysql-mydestination.cf:

#Host der Datenbank
hosts = localhost

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

# Der Datenbank name
dbname = mail

# Der Tabellen name
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 an wie oben in der PAM Datei.

Fertig, jetzt sollte die reibungslose Authentifizierung an MySQL klappen.


Zurück zu PAM
Inhalt
Vor zur Postfix Konfiguration