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.1vi /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.1vi /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.1vi /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.1vi /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.1vi /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
fichmod +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=1Erstellen 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 quotaStarten 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=0Starten 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=spamassassinUnd 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 >> <-- DSquirrelMail-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 >> <-- 8SquirrelMail-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 >> SSquirrelMail-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.
Erhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.