Web Cluster · 17 min read · Oct 09, 2025

Der perfekte Lastenausgeglichene & Hochverfügbare Webcluster mit 2 Servern, die Xen auf Ubuntu 8.04 Hardy Heron ausführen - Seite 5

11. Mailserver (web1, web2)

11.1 Installieren von Postfix, Courier, Saslauthd, MySQL, phpMyAdmin

Postfix, Courier, Saslauthd, MySQL, phpMyAdmin installieren:

apt-get install postfix postfix-mysql postfix-doc courier-authdaemon courier-authlib-mysql courier-pop courier-pop-ssl courier-imap courier-imap-ssl libsasl2-2 libsasl2-modules libsasl2-modules-sql sasl2-bin libpam-mysql openssl phpmyadmin libpam-smbpass

Sie werden ein paar Fragen gestellt:

Verzeichnisse für die webbasierte Verwaltung erstellen? <– Nein
Allgemeiner Typ der Mailkonfiguration: <– Internetseite
System-Mailname: <– web1.example.com (oder web2.example.com)
SSL-Zertifikat erforderlich <– Ok
Webserver automatisch neu konfigurieren: <– apache2

11.2 Konfigurieren von Postfix

Jetzt müssen wir Postfix mitteilen, wo es alle Informationen in der Datenbank finden kann. Dazu müssen wir sechs Textdateien erstellen. Ihnen wird auffallen, dass ich Postfix sage, dass es sich mit MySQL unter der IP-Adresse 127.0.0.1 anstelle von localhost verbinden soll. Dies liegt daran, dass Postfix in einer Chroot-Jail läuft und keinen Zugriff auf den MySQL-Socket hat, auf den es zuzugreifen versuchen würde, wenn ich Postfix sage, dass es localhost verwenden soll. Wenn ich 127.0.0.1 verwende, verwendet Postfix TCP-Netzwerkverbindungen, um sich mit MySQL zu verbinden, was in einer Chroot-Jail kein Problem darstellt (die Alternative wäre, den MySQL-Socket in die Chroot-Jail zu verschieben, was einige andere Probleme verursacht).

Jetzt erstellen wir unsere sechs Textdateien.

vi /etc/postfix/mysql-virtual_domains.cf

user = mail_admin
password = mail_admin_password
dbname = mail
query = SELECT domain AS virtual FROM domains WHERE domain='%s'
hosts = 127.0.0.1

vi /etc/postfix/mysql-virtual_forwardings.cf

user = mail_admin
password = mail_admin_password
dbname = mail
query = SELECT destination FROM forwardings WHERE source='%s'
hosts = 127.0.0.1

vi /etc/postfix/mysql-virtual_mailboxes.cf

user = mail_admin
password = mail_admin_password
dbname = mail
query = SELECT CONCAT(SUBSTRING_INDEX(email,'@',-1),'/',SUBSTRING_INDEX(email,'@',1),'/') FROM users WHERE email='%s'
hosts = 127.0.0.1

vi /etc/postfix/mysql-virtual_email2email.cf

user = mail_admin
password = mail_admin_password
dbname = mail
query = SELECT email FROM users WHERE email='%s'
hosts = 127.0.0.1

vi /etc/postfix/mysql-virtual_transports.cf

user = mail_admin
password = mail_admin_password
dbname = mail
query = SELECT transport FROM transport WHERE domain='%s'
hosts = 127.0.0.1

vi /etc/postfix/mysql-virtual_transports_notactive.cf

user = mail_admin
password = mail_admin_password
dbname = mail
query = SELECT transport FROM domains WHERE domain='%s'
hosts = 127.0.0.1

Ändern Sie dann die Berechtigungen und die Gruppe dieser Dateien:

chmod o= /etc/postfix/mysql-virtual*.cf
chgrp postfix /etc/postfix/mysql-virtual
*.cf

Jetzt erstellen wir einen Benutzer und eine Gruppe namens vmail mit dem Home-Verzeichnis /home/vmail. Hier werden alle Mailboxen gespeichert.

groupadd -g 5000 vmail
useradd -g vmail -u 5000 vmail -d /home/vmail -m
passwd vmail

Als nächstes führen wir einige Postfix-Konfigurationen durch.

Stellen Sie sicher, dass Sie den richtigen ‘myhostname’ und ‘mydestination’ auf web2.example.com setzen:

postconf -e ‘myhostname = web1.example.com’
postconf -e ‘mydestination = web1.example.com, localhost, localhost.localdomain’
postconf -e ‘mynetworks = 127.0.0.0/8’
postconf -e ‘virtual_alias_domains =’
postconf -e ‘virtual_alias_maps = proxy:mysql:/etc/postfix/mysql-virtual_forwardings.cf, mysql:/etc/postfix/mysql-virtual_email2email.cf’
postconf -e ‘virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql-virtual_domains.cf’
postconf -e ‘virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql-virtual_mailboxes.cf’
postconf -e ‘virtual_mailbox_base = /home/vmail’
postconf -e ‘virtual_uid_maps = static:5000’
postconf -e ‘virtual_gid_maps = static:5000’
postconf -e ‘smtpd_sasl_auth_enable = yes’
postconf -e ‘broken_sasl_auth_clients = yes’
postconf -e ‘smtpd_sasl_authenticated_header = yes’
postconf -e ‘smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination’
postconf -e ‘smtpd_use_tls = yes’
postconf -e ‘smtpd_tls_cert_file = /etc/postfix/smtpd.cert’
postconf -e ‘smtpd_tls_key_file = /etc/postfix/smtpd.key’
postconf -e ‘transport_maps = proxy:mysql:/etc/postfix/mysql-virtual_transports.cf’
postconf -e ‘virtual_create_maildirsize = yes’
postconf -e ‘virtual_mailbox_extended = yes’
postconf -e ‘proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks’

Danach erstellen wir das SSL-Zertifikat, das für TLS benötigt wird:

cd /etc/postfix
openssl req -new -outform PEM -out smtpd.cert -newkey rsa:2048 -nodes -keyout smtpd.key -keyform PEM -days 365 -x509

Landname (2-Buchstaben-Code) [AU]: <– Geben Sie Ihren Ländernamen ein (z.B. “DE”).
Bundesland oder Provinzname (vollständiger Name) [Some-State]: <– Geben Sie den Namen Ihres Bundeslandes oder Ihrer Provinz ein.
Ortsname (z.B. Stadt) []: <– Geben Sie Ihre Stadt ein.
Organisationsname (z.B. Firma) [Internet Widgits Pty Ltd]: <– Geben Sie den Namen Ihrer Organisation ein (z.B. den Namen Ihres Unternehmens).
Name der organisatorischen Einheit (z.B. Abteilung) []: <– Geben Sie den Namen Ihrer organisatorischen Einheit ein (z.B. “IT-Abteilung”).
Allgemeiner Name (z.B. IHR Name) []: <– Geben Sie den vollständig qualifizierten Domainnamen des Systems ein (z.B. “server1.example.com”).
E-Mail-Adresse []: <– Geben Sie Ihre E-Mail-Adresse ein.

Ändern Sie dann die Berechtigungen der smtpd.key:

chmod o= /etc/postfix/smtpd.key

11.3 Lösung des lokalen Mailproblems auf web2.example.com

Wenn wir ldirectord konfigurieren, wird nur web1.example.com für SMTP (Port 25) aktiv sein. Unser zweiter Server wird im Standby-Modus sein und die aktive Rolle nur übernehmen, wenn Postfix auf web1.example.com ausfällt.

Der Grund, warum wir das tun, ist, dass, wenn beide Server auf Port 25 aktiv sind, die Hälfte der Mails von außen an web1 und die andere Hälfte an web2 gesendet wird. Es wäre ein Albtraum, dies zu synchronisieren…

Das funktioniert gut für Mails von außen, aber lokale Mails auf web2.example.com werden lokal zugestellt. Mit anderen Worten, nehmen wir an, Sie haben ein “Kontaktieren Sie uns”-Formular auf Ihrer Website, das eine E-Mail sendet, und der Besucher befindet sich auf web2.example.com, die Mail wird niemals web1.example.com erreichen, wo alle Mails hingehen sollten. Dies geschieht, weil, wenn eine Mail von web2.example.com an [email protected] gesendet wird, es den DNS-Server fragt, was die Mailserver-Adresse von example.com ist, eine Antwort von 192.168.1.106 erhält, die sich selbst ist, sodass die Mail den Server niemals verlässt.

Der Trick besteht darin, Postfix-Transport zu verwenden, um lokale Mails an web1.example.com zu senden.

Um dies zu erreichen, verwenden wir ein Bash-Skript, das jede Minute ausgeführt wird und lokale Mails an web1.example.com sendet:

web2.example.com

vi /root/check_smtp

#!/bin/bash
# Lokales Mailfix für Lastenausgleich
# Copyright (c) 2008 blogama.org
# Dieses Skript ist unter GNU GPL Version 2.0 oder höher lizenziert
# ---------------------------------------------------------------------
### Der Zweck dieses Skripts ist es, das lokale Mailproblem mit Lastenausgleich zu beheben ###
### Wenn jemand dieses Skript mit postconf -e anstelle von sed (hässlich) zum Laufen bringen kann
### um /etc/postfix/main.cf MIT CRONTAB zu ändern, lassen Sie es mich wissen, hat bei mir nicht funktioniert
### Zu ändern ###
MASTERSERVER="web1.example.com"
###### Keine Änderungen unterhalb vornehmen ######
### Binaries ###
MAIL=$(which mail)
TELNET=$(which telnet)
#Das 
POSTCONF="/etc/postfix/main.cf"
### Überprüfen, ob Server 1 auf smtp antwortet ###
(
echo "quit"
) | $TELNET $MASTERSERVER 25 | grep Connected > /dev/null 2>&1
if [ "$?" -ne "1" ]; then
  ### Wenn web1 bei einem vorherigen Versuch nicht verbunden war, jetzt aber verbunden ist, wird web2 alle lokalen Mails an web1 weiterleiten ###
  if [ -f smtpactive ]; then
    sed -i 's/transport_maps = .*/transport_maps = proxy:mysql:\/etc\/postfix\/mysql-virtual_transports_notactive.cf/' $POSTCONF
    /etc/init.d/postfix restart
    rm /root/smtpactive
  ### Wenn web1 bei einem vorherigen Versuch verbunden war und es immer noch ist, tun Sie nichts und beenden Sie ###
  else
    exit 1;
  fi
 
else
  ### Wenn web1 bei einem vorherigen Versuch nicht verbunden war und immer noch nicht ist, ist web2 bereits aktiv für lokale Mails, tun Sie nichts und beenden Sie ###
  cd /root
  if [ -f smtpactive ]; then
    exit 1;
  fi
  ### Wenn web1 bei einem vorherigen Versuch verbunden war, jetzt aber nicht, wird web2 die aktive Rolle für lokale Mails übernehmen ###
  echo "SMTP aktiv auf web2" > /root/smtpactive
  sed -i 's/transport_maps = .*/transport_maps = proxy:mysql:\/etc\/postfix\/mysql-virtual_transports.cf/' $POSTCONF
  /etc/init.d/postfix restart
fi

chmod +x /root/check_smtp

Jetzt werden wir alle lokalen Mails an web1.example.com weiterleiten, indem wir Folgendes tun:

postconf -e ‘transport_maps = proxy:mysql:/etc/postfix/mysql-virtual_transports_notactive.cf
/etc/init.d/postfix restart

und fügen Sie das Skript zu Ihrem Crontab hinzu:

crontab -e

[...]
* * * * * /root/check_smtp >/dev/null 2>&1
[...]  

11.4 Konfigurieren von Saslauthd

mkdir -p /var/spool/postfix/var/run/saslauthd

Bearbeiten Sie dann /etc/default/saslauthd. Setzen Sie START auf yes und ändern Sie die Zeile OPTIONS=”-c -m /var/run/saslauthd” in OPTIONS=”-c -m /var/spool/postfix/var/run/saslauthd -r”:

vi /etc/default/saslauthd

#
# Einstellungen für den saslauthd-Daemon
# Bitte lesen Sie /usr/share/doc/sasl2-bin/README.Debian für Details.
#
# Sollte saslauthd beim Start automatisch ausgeführt werden? (Standard: nein)
START=yes
# Beschreibung dieser saslauthd-Instanz. Empfohlen.
# (Vorschlag: SASL-Authentifizierungsdaemon)
DESC="SASL-Authentifizierungsdaemon"
# Kurzname dieser saslauthd-Instanz. Dringend empfohlen.
# (Vorschlag: saslauthd)
NAME="saslauthd"
# Welche Authentifizierungsmechanismen sollte saslauthd verwenden? (Standard: pam)
#
# Verfügbare Optionen in diesem Debian-Paket:
# getpwent  -- verwenden Sie die getpwent()-Bibliotheksfunktion
# kerberos5 -- verwenden Sie Kerberos 5
# pam       -- verwenden Sie PAM
# rimap     -- verwenden Sie einen Remote-IMAP-Server
# shadow    -- verwenden Sie die lokale Shadow-Passwortdatei
# sasldb    -- verwenden Sie die lokale sasldb-Datenbankdatei
# ldap      -- verwenden Sie LDAP (Konfiguration befindet sich in /etc/saslauthd.conf)
#
# Nur eine Option kann gleichzeitig verwendet werden. Siehe die saslauthd-Man-Seite
# für weitere Informationen.
#
# Beispiel: MECHANISMS="pam"
MECHANISMS="pam"
# Zusätzliche Optionen für diesen Mechanismus. (Standard: keine)
# Siehe die saslauthd-Man-Seite für Informationen zu mech-spezifischen Optionen.
MECH_OPTIONS=""
# Wie viele saslauthd-Prozesse sollten wir ausführen? (Standard: 5)
# Ein Wert von 0 erstellt einen neuen Prozess für jede Verbindung.
THREADS=5
# Andere Optionen (Standard: -c -m /var/run/saslauthd)
# Hinweis: Sie MÜSSEN die -m-Option angeben, sonst wird saslauthd nicht ausgeführt!
#
# Siehe /usr/share/doc/sasl2-bin/README.Debian für Debian-spezifische Informationen.
# Siehe die saslauthd-Man-Seite für allgemeine Informationen zu diesen Optionen.
#
# Beispiel für Postfix-Benutzer: "-c -m /var/spool/postfix/var/run/saslauthd"
#OPTIONS="-c -m /var/run/saslauthd"
OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd -r"

Erstellen Sie dann die Datei /etc/pam.d/smtp. Sie sollte nur die folgenden beiden Zeilen enthalten (stellen Sie sicher, dass Sie Ihre korrekten Datenbankdetails ausfüllen):

vi /etc/pam.d/smtp

auth    required   pam_mysql.so user=mail_admin passwd=mail_admin_password host=127.0.0.1 db=mail table=users usercolumn=email passwdcolumn=password crypt=1
account sufficient pam_mysql.so user=mail_admin passwd=mail_admin_password host=127.0.0.1 db=mail table=users usercolumn=email passwdcolumn=password crypt=1

Erstellen Sie als Nächstes die Datei /etc/postfix/sasl/smtpd.conf. Sie sollte so aussehen:

vi /etc/postfix/sasl/smtpd.conf

pwcheck_method: saslauthd
mech_list: plain login
allow_plaintext: true
auxprop_plugin: mysql
sql_hostnames: 127.0.0.1
sql_user: mail_admin
sql_passwd: mail_admin_password
sql_database: mail
sql_select: select password from users where email = '%u'

Fügen Sie dann den Postfix-Benutzer zur Sasl-Gruppe hinzu (dies stellt sicher, dass Postfix die Berechtigung hat, auf saslauthd zuzugreifen):

adduser postfix sasl

Starten Sie dann Postfix und Saslauthd neu:

/etc/init.d/postfix restart
/etc/init.d/saslauthd restart

11.5 Konfigurieren von Courier

Jetzt müssen wir Courier mitteilen, dass es sich gegen unsere MySQL-Datenbank authentifizieren soll. Zuerst bearbeiten Sie /etc/courier/authdaemonrc und ändern den Wert von authmodulelist, sodass er wie folgt lautet:

vi /etc/courier/authdaemonrc

[...]
authmodulelist="authmysql"
[...]

Machen Sie dann eine Sicherung von /etc/courier/authmysqlrc und leeren Sie die alte Datei:

cp /etc/courier/authmysqlrc /etc/courier/authmysqlrc_orig
cat /dev/null > /etc/courier/authmysqlrc

Öffnen Sie dann /etc/courier/authmysqlrc und fügen Sie die folgenden Zeilen ein:

vi /etc/courier/authmysqlrc

MYSQL_SERVER localhost
MYSQL_USERNAME mail_admin
MYSQL_PASSWORD mail_admin_password
MYSQL_PORT 0
MYSQL_DATABASE mail
MYSQL_USER_TABLE users
MYSQL_CRYPT_PWFIELD password
#MYSQL_CLEAR_PWFIELD password
MYSQL_UID_FIELD 5000
MYSQL_GID_FIELD 5000
MYSQL_LOGIN_FIELD email
MYSQL_HOME_FIELD "/home/vmail"
MYSQL_MAILDIR_FIELD CONCAT(SUBSTRING_INDEX(email,'@',-1),'/',SUBSTRING_INDEX(email,'@',1),'/')
#MYSQL_NAME_FIELD
#MYSQL_QUOTA_FIELD quota

Starten Sie dann Courier neu:

/etc/init.d/courier-authdaemon restart
/etc/init.d/courier-imap restart
/etc/init.d/courier-imap-ssl restart
/etc/init.d/courier-pop restart
/etc/init.d/courier-pop-ssl restart

Durch Ausführen von

telnet localhost pop3

können Sie überprüfen, ob Ihr POP3-Server korrekt funktioniert. Es sollte +OK Hello there. zurückgeben. (Tippen Sie quit, um zur Linux-Shell zurückzukehren.)

root@server1:/etc/postfix# telnet localhost pop3
Trying 127.0.0.1…
Connected to localhost.localdomain.
Escape character is ‘^]’.
+OK Hello there.
quit
+OK Better luck next time.
Connection closed by foreign host.

11.6 Ändern von /etc/aliases

Jetzt sollten wir /etc/aliases öffnen. Stellen Sie sicher, dass der Postmaster auf root und root auf Ihren eigenen Benutzernamen oder Ihre E-Mail-Adresse zeigt, z.B. so:

vi /etc/aliases

[...]
postmaster: root
root: [email protected]
[...]

Wann immer Sie /etc/aliases ändern, müssen Sie danach

newaliases

ausführen und Postfix neu starten:

/etc/init.d/postfix restart

11.7 Spamassassin

Jetzt werden wir Spamassassin installieren:

apt-get install spamassassin spamc

Wir möchten, dass es als Nicht-Root ausgeführt wird, also fügen wir einen spamd-Benutzer und eine Gruppe hinzu:

groupadd spamd
useradd -g spamd -s /bin/false -d /var/log/spamassassin spamd
mkdir /var/log/spamassassin
chown spamd:spamd /var/log/spamassassin

Bearbeiten Sie /etc/default/spamassassin, sodass diese Optionen gesetzt sind:

vi /etc/default/spamassassin

# /etc/default/spamassassin
# Duncan Findlay
# WARNUNG: Bitte lesen Sie README.spamd, bevor Sie es verwenden.
# Es kann Sicherheitsrisiken geben.
# Ändern Sie auf eins, um spamd zu aktivieren
ENABLED=1
# Optionen
# Siehe man spamd für mögliche Optionen. Die -d-Option wird automatisch hinzugefügt.
# SpamAssassin verwendet ein Preforking-Modell, also seien Sie vorsichtig! Sie müssen sicherstellen, dass --max-children nicht höher als 5 gesetzt ist,
# es sei denn, Sie wissen, was Sie tun.
#OPTIONS="--create-prefs --max-children 5 --helper-home-dir"
SAHOME="/var/log/spamassassin/"
OPTIONS="--create-prefs --max-children 5 --username spamd -H ${SAHOME} -s ${SAHOME}spamd.log"
# Pid-Datei
# Wo sollte spamd seine PID in eine Datei schreiben? Wenn Sie die -u oder
# --username-Option oben verwenden, muss dies für diesen Benutzer beschreibbar sein.
# Andernfalls kann das Init-Skript spamd nicht herunterfahren.
PIDFILE="/var/run/spamd.pid"
# Setzen Sie das Nice-Level von spamd
#NICE="--nicelevel 15"
# Cronjob
# Setzen Sie auf alles außer 0, um den Cronjob zu aktivieren, um
# die Regeln von spamassassin nachts automatisch zu aktualisieren
CRON=0

Starten Sie den Spamassassin-Daemon:

/etc/init.d/spamassassin start

Wir werden Spamassassin zu Postfix hinzufügen, indem wir Folgendes tun:

vi /etc/postfix/master.cf

Bearbeiten Sie die erste Zeile der Konfigurationsdatei, sodass sie wie folgt aussieht:

smtp      inet  n       -       -       -       -       smtpd -o content_filter=spamassassin

Und fügen Sie dies ans Ende der Datei hinzu:

spamassassin unix -     n       n       -       -       pipe
        user=spamd argv=/usr/bin/spamc -f -e  
        /usr/sbin/sendmail -oi -f ${sender} ${recipient}

11.8 Testen von Postfix

Um zu sehen, ob Postfix bereit für SMTP-AUTH und TLS ist, führen Sie aus:

telnet localhost 25

Nachdem Sie die Verbindung zu Ihrem Postfix-Mailserver hergestellt haben, geben Sie ein:

ehlo localhost

Wenn Sie die Zeilen sehen:

250-STARTTLS und 250-AUTH LOGIN PLAIN

ist alles in Ordnung.

Geben Sie jetzt ein:

quit

um zur Shell zurückzukehren.

11.9 Füllen der Datenbank

Auf einem der Server tun Sie (nicht auf beiden!):

mysql -u root -p

USE mail; INSERT INTO domains (domain) VALUES (‘example.com’);
INSERT INTO users (email, password) VALUES (‘ [email protected] ‘, ENCRYPT(‘secret’));
quit;

VERGESSEN SIE NIEMALS, DIE MYSQL-ENCRYPT-FUNKTION FÜR DAS PASSWORT ZU VERWENDEN!

11.10 Senden einer Willkommens-E-Mail zur Erstellung von Maildir

Wenn Sie ein neues E-Mail-Konto erstellen und versuchen, E-Mails von diesem abzurufen (mit POP3/IMAP), erhalten Sie wahrscheinlich Fehlermeldungen, die besagen, dass das Maildir nicht existiert. Das Maildir wird automatisch erstellt, wenn die erste E-Mail für das neue Konto eintrifft. Daher ist es eine gute Idee, eine Willkommens-E-Mail an ein neues Konto zu senden.

Zuerst installieren wir das mailx-Paket:

apt-get install mailx

Um eine Willkommens-E-Mail an [email protected] zu senden, tun wir Folgendes:

mailx [email protected]

Sie werden nach dem Betreff gefragt. Geben Sie den Betreff ein (z.B. Willkommen), drücken Sie dann ENTER, und geben Sie in der nächsten Zeile Ihre Nachricht ein. Wenn die Nachricht fertig ist, drücken Sie erneut ENTER, sodass Sie in einer neuen Zeile sind, und drücken Sie dann CTRL+D; wenn Sie die Mail nicht cc möchten, drücken Sie erneut ENTER:

root@server1:/usr/local/sbin# mailx [email protected] Subject: Willkommen <– ENTER Willkommen! Viel Spaß mit Ihrem neuen E-Mail-Konto. <– ENTER <– CTRL+D Cc: <– ENTER

11.11 Installation von SquirrelMail

SquirrelMail ist eine Webmail-Oberfläche, die es Ihren Benutzern ermöglicht, E-Mails in einem Browser zu senden und zu empfangen. Dieses Kapitel zeigt, wie man es installiert und an unser Setup anpasst, sodass Benutzer sogar ihr E-Mail-Konto-Passwort über die SquirrelMail-Oberfläche ändern können.

Um SquirrelMail zu installieren, führen wir aus:

apt-get install squirrelmail php-pear

Als Nächstes kopieren wir die Apache-Konfiguration, die mit dem SquirrelMail-Paket geliefert wird, in das Verzeichnis /etc/apache2/conf.d und starten Apache neu:

cp /etc/squirrelmail/apache.conf /etc/apache2/conf.d/squirrelmail.conf
/etc/init.d/apache2 restart

SquirrelMail wird mit einigen vorinstallierten Plugins geliefert, leider kann keines von ihnen es uns ermöglichen, unser E-Mail-Passwort in unserer MySQL-Datenbank zu ändern. Aber es gibt das Change SQL Password-Plugin, das wir manuell installieren können:

Das Plugin hängt vom Pear-DB-Paket ab, also installieren wir es:

pear install DB

Dann installieren wir das Change SQL Password-Plugin selbst:

cd /usr/share/squirrelmail/plugins
wget http://www.squirrelmail.org/countdl.php?fileurl=http%3A%2F%2Fwww.squirrelmail.org%2Fplugins%2Fchange_sqlpass-3.3-1.2.tar.gz
tar xvfz change_sqlpass-3.3-1.2.tar.gz
cd change_sqlpass
cp config.php.sample config.php

Jetzt müssen wir config.php bearbeiten und an unser Setup anpassen. Bitte passen Sie die Variablen $csp_dsn, $lookup_password_query, $password_update_queries, $password_encryption, $csp_salt_static und $csp_delimiter wie folgt an und kommentieren Sie $csp_salt_query aus:

mv /usr/share/squirrelmail/plugins/change_sqlpass/config.php /usr/share/squirrelmail/plugins/change_sqlpass/config.php.bak
vi /usr/share/squirrelmail/plugins/change_sqlpass/config.php

und kopieren Sie dies:

Zur Referenz sind die Zeilen, die geändert wurden, die folgenden:

[...]
$csp_dsn = 'mysql://mail_admin:mail_admin_password@localhost/mail';
[...]
$lookup_password_query = 'SELECT count(*) FROM users WHERE email = "%1" AND password = %4';
[...]
$password_update_queries = array('UPDATE users SET password = %4 WHERE email = "%1"');
[...]
$password_encryption = 'MYSQLENCRYPT';
[...]
$csp_salt_static = 'LEFT(password, 2)';
[...]
//$csp_salt_query = 'SELECT salt FROM users WHERE username = "%1"';
[...]
$csp_delimiter = '@';
[...]

Das Change SQL Password-Plugin hängt auch vom Compatibility-Plugin ab, das wir wie folgt installieren:

cd /usr/share/squirrelmail/plugins
wget http://www.squirrelmail.org/countdl.php?fileurl=http%3A%2F%2Fwww.squirrelmail.org%2Fplugins%2Fcompatibility-2.0.11-1.0.tar.gz
tar xvfz compatibility-2.0.11-1.0.tar.gz

Jetzt müssen wir in die SquirrelMail-Konfiguration gehen und SquirrelMail mitteilen, dass wir Courier als unseren POP3- und IMAP-Server verwenden und die Plugins Change SQL Password und Compatibility aktivieren:

/usr/sbin/squirrelmail-configure

Sie sehen das folgende Menü. Navigieren Sie durch es, wie angegeben:

SquirrelMail-Konfiguration : Lesen: config.php (1.4.0)
---------------------------------------------------------
Hauptmenü --
1.  Organisationseinstellungen
2.  Servereinstellungen
3.  Ordnerstandards
4.  Allgemeine Optionen
5.  Themen
6.  Adressbücher
7.  Nachricht des Tages (MOTD)
8.  Plugins
9.  Datenbank
10. Sprachen
D.  Vordefinierte Einstellungen für bestimmte IMAP-Server festlegen
C   Farbe aktivieren
S   Daten speichern
Q   Beenden
Befehl >> <-- D
SquirrelMail-Konfiguration : Lesen: config.php
---------------------------------------------------------
Während wir SquirrelMail aufgebaut haben, haben wir einige
Einstellungen entdeckt, die mit einigen Servern besser funktionieren, die nicht so gut mit anderen funktionieren.  Wenn Sie Ihren IMAP-Server auswählen, wird diese Option einige vordefinierte Einstellungen für diesen Server festlegen.
Bitte beachten Sie, dass Sie dennoch alles überprüfen müssen, um sicherzustellen, dass alles korrekt ist.  Dies ändert nicht alles.  Es gibt nur einige wenige Einstellungen, die sich dadurch ändern.
Bitte wählen Sie Ihren IMAP-Server:
    bincimap    = Binc IMAP-Server
    courier     = Courier IMAP-Server
    cyrus       = Cyrus IMAP-Server
    dovecot     = Dovecot Secure IMAP-Server
    exchange    = Microsoft Exchange IMAP-Server
    hmailserver = hMailServer
    macosx      = Mac OS X Mailserver
    mercury32   = Mercury/32
    uw          = IMAP-Server der Universität von Washington
    quit        = Nichts ändern
Befehl >> <-- courier
 imap_server_type = courier
         default_folder_prefix = INBOX.
                  trash_folder = Trash
                   sent_folder = Sent
                  draft_folder = Drafts
            show_prefix_option = false
          default_sub_of_inbox = false
show_contain_subfolders_option = false
            optional_delimiter = .
                 delete_folder = true
Drücken Sie eine Taste, um fortzufahren... <-- drücken Sie eine Taste 
SquirrelMail-Konfiguration : Lesen: config.php (1.4.0)
---------------------------------------------------------
Hauptmenü --
1.  Organisationseinstellungen
2.  Servereinstellungen
3.  Ordnerstandards
4.  Allgemeine Optionen
5.  Themen
6.  Adressbücher
7.  Nachricht des Tages (MOTD)
8.  Plugins
9.  Datenbank
10. Sprachen
D.  Vordefinierte Einstellungen für bestimmte IMAP-Server festlegen
C   Farbe aktivieren
S   Daten speichern
Q   Beenden
Befehl >> <-- 8
SquirrelMail-Konfiguration : Lesen: config.php (1.4.0)
---------------------------------------------------------
Plugins
  Installierte Plugins
  Verfügbare Plugins:
    1. abook_take
    2. administrator
    3. bug_report
    4. kalender
    5. change_sqlpass
    6. kompatibilität
    7. delete_move_next
    8. demo
    9. filter
    10. fortune
    11. info
    12. listcommands
    13. mail_fetch
    14. message_details
    15. newmail
    16. sent_subfolders
    17. spamcop
    18. squirrelspell
    19. test
    20. translate
R   Zurück zum Hauptmenü
C   Farbe aktivieren
S   Daten speichern
Q   Beenden
Befehl >> <-- 6 (oder welche Nummer das Compatibility-Plugin hat - es wird für das Change SQL Password-Plugin benötigt)
SquirrelMail-Konfiguration : Lesen: config.php (1.4.0)
---------------------------------------------------------
Plugins
  Installierte Plugins
    1. kompatibilität
  Verfügbare Plugins:
    2. abook_take
    3. administrator
    4. bug_report
    5. kalender
    6. change_sqlpass
    7. delete_move_next
    8. demo
    9. filter
    10. fortune
    11. info
    12. listcommands
    13. mail_fetch
    14. message_details
    15. newmail
    16. sent_subfolders
    17. spamcop
    18. squirrelspell
    19. test
    20. translate
R   Zurück zum Hauptmenü
C   Farbe aktivieren
S   Daten speichern
Q   Beenden
Befehl >> <-- 6 (die Nummer des Change SQL Password-Plugins)
SquirrelMail-Konfiguration : Lesen: config.php (1.4.0)
---------------------------------------------------------
Plugins
  Installierte Plugins
    1. kompatibilität
    2. change_sqlpass
  Verfügbare Plugins:
    3. abook_take
    4. administrator
    5. bug_report
    6. kalender
    7. delete_move_next
    8. demo
    9. filter
    10. fortune
    11. info
    12. listcommands
    13. mail_fetch
    14. message_details
    15. newmail
    16. sent_subfolders
    17. spamcop
    18. squirrelspell
    19. test
    20. translate
R   Zurück zum Hauptmenü
C   Farbe aktivieren
S   Daten speichern
Q   Beenden
Befehl >> S
SquirrelMail-Konfiguration : Lesen: config.php (1.4.0)
---------------------------------------------------------
Plugins
  Installierte Plugins
    1. kompatibilität
    2. change_sqlpass
  Verfügbare Plugins:
    3. abook_take
    4. administrator
    5. bug_report
    6. kalender
    7. delete_move_next
    8. demo
    9. filter
    10. fortune
    11. info
    12. listcommands
    13. mail_fetch
    14. message_details
    15. newmail
    16. sent_subfolders
    17. spamcop
    18. squirrelspell
    19. test
    20. translate
R   Zurück zum Hauptmenü
C   Farbe aktivieren
S   Daten speichern
Q   Beenden
Befehl >> S
Daten in config.php gespeichert
Drücken Sie die Eingabetaste, um fortzufahren... <-- drücken Sie eine Taste 

Jetzt können Sie http://192.168.1.104/squirrelmail in Ihrem Browser eingeben, um auf SquirrelMail zuzugreifen.

Melden Sie sich mit Ihrer E-Mail-Adresse (z.B. [email protected]) und Ihrem Passwort an.

Das Passwort kann in Optionen –> Passwort ändern geändert werden.

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.