**!!! ACHTUNG - evtl. veraltet - ACHTUNG !!!**
Diese Seite wurde zuletzt am 9. Juli 2014 um 10:50 Uhr geändert.
... dieses (weitere) kleine HowTo baut auf die [[netqmail_qmqp_nullmailer_mutt|1. Stufe]] auf...
Da ich auf meinen (v)Servern ungerne Dienste-Nutzer (hier im speziellen E-Mail) habe, die sich auch lokal Anmelden können, muss also eine virtuelle Benutzerumgebung her:
===== qmail =====
==== qmail anhalten ====
qmailctl stop
==== qmail um smtp-auth erweitern ====
cd /usr/local/src/netqmail-1.06
wget http://www.fehcom.de/qmail/auth/qmail-smtpd-auth-0510_tgz.bin
tar xvzf qmail-smtpd-auth-0510_tgz.bin
./install_smtpd-auth.sh
make clean
make
make setup check
===== vpopmail =====
==== Debian-Pakete installieren ====
aptitude install mysql-client libmysqlclient-dev libev-dev
==== (System-) Gruppen und Benutzer anlegen ====
groupadd --system vchkpw
adduser --system --ingroup vchkpw --home /home/vpopmail vpopmail
==== Verzeichnisse erstellen ====
mkdir -p /home/vpopmail/etc
==== kompilieren ====
cd /usr/local/src
wget http://netcologne.dl.sourceforge.net/project/vpopmail/vpopmail-stable/5.4.32/vpopmail-5.4.32.tar.gz
tar xzf vpopmail-5.4.32.tar.gz
cd vpopmail-5.4.32
./configure --enable-auth-module=mysql --enable-valias --enable-qmail-ext
make
make install-strip
//("--enable-valias" hat den Vorteil, dass die Erstellung einer etwas detaillierteren Statistik inkl. Aliase etwas einfacher umzusetzen ist...//
//mit "--enable-sql-logging" landeten die für mich relevanten Informationen sowohl in der Datenbank als auch in /var/log/syslog, weshalb ich mich gegen diesen "Schalter" entschieden habe...//
//"--enable-mysql-limits" hat für mich bis jetzt auch keinen Mehrwert, weshalb ich es ebenfalls rausgelassen habe)//
==== konfigurieren ====
echo "||||" > /home/vpopmail/etc/vpopmail.mysql
chmod 644 /home/vpopmail/etc/vpopmail.mysql
{{Platzhalter}}
==== MySQL-Datenbank und -Benutzer anlegen ====
mysql --host= --user=root --password -e "CREATE DATABASE ``; \
CREATE USER ''@'' IDENTIFIED BY ''; \
GRANT USAGE ON * . * TO ''@'' IDENTIFIED BY '' \
WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0; \
GRANT SELECT , INSERT , UPDATE , DELETE , CREATE , DROP ON `` . * TO ''@'';"
{{Platzhalter}}
==== lokale Nutzer migrieren ====
/home/vpopmail/bin/vadddomain $( cat /var/qmail/control/defaultdomain )
Sind mehrere Accounts zu migrieren, dann:
/home/vpopmail/bin/vconvert -e -m $( cat /var/qmail/control/defaultdomain )
==== Konfigurations-Dateien ändern ====
=== /var/qmail/bin/qmailctl ===
sed -i s/QMAILDUID=$\(\ id\ -u\ qmaild\ \)/QMAILDUID=$\(\ id\ -u\ vpopmail\ \)/ /var/qmail/bin/qmailctl
sed -i s/NOFILESGID=$\(\ id\ -g\ qmaild\ \)/NOFILESGID=$\(\ id\ -g\ vpopmail\ \)/ /var/qmail/bin/qmailctl
=== /var/qmail/supervise/qmail-smtpd/run ===
sed -i s/QMAILDUID=$\(\ id\ -u\ qmaild\ \)/QMAILDUID=$\(\ id\ -u\ vpopmail\ \)/ /var/qmail/supervise/qmail-smtpd/run
sed -i s/NOFILESGID=$\(\ id\ -g\ qmaild\ \)/NOFILESGID=$\(\ id\ -g\ vpopmail\ \)/ /var/qmail/supervise/qmail-smtpd/run
sed -i '/\/var\/qmail\/bin\/qmail-smtpd 2>&1/ c\/var/qmail/bin/qmail-smtpd \\\n/home/vpopmail/bin/vchkpw true 2>&1' /var/qmail/supervise/qmail-smtpd/run
=== /var/qmail/control/... ===
Weil locals (siehe [[Netqmail_qmqp_nullmailer_mutt#.2Fvar.2Fqmail.2Fcontrol.2Flocals_auf_dem_Mail-.28v.29Server|Stufe 1 -> /var/qmail/control/locals]]) für qmqp nicht mehr zu greifen scheint (vpopmail funktioniert hier wohl etwas anders!?):
/home/vpopmail/bin/vaddaliasdomain mail.
/home/vpopmail/bin/vaddaliasdomain dns1.
/home/vpopmail/bin/vaddaliasdomain dns2.
/home/vpopmail/bin/vaddaliasdomain db.
/home/vpopmail/bin/vaddaliasdomain http.
[[...]]
{{Platzhalter}}
=== lokaler Benutzer -> virtueller Benutzer ===
Da qmail-local das Heimat-Verzeichnis eines Benutzers anhand /etc/passwd versucht zu ermitteln, sollten wir den lokalen Benutzer "postmaster" löschen:
mv /home/postmaster/Maildir /home/vpopmail/domains//postmaster/Maildir
deluser postmaster
{{Platzhalter}}
=== Aliase ===
Da die Alias-Dateien, welche vpopmail erzeugt, a) nun zusätzlich die Domain mit enthalten und b) nicht mehr in /var/qmail/alias gesucht werden, bietet es sich an, die alten zu löschen und sie per valias neu anzulegen:
rm /var/qmail/alias/.qmail*
/home/vpopmail/bin/valias -i postmaster@ root@
/home/vpopmail/bin/valias -i postmaster@ mailer-daemon@
/home/vpopmail/bin/valias -i postmaster@ abuse@
/home/vpopmail/bin/valias -i postmaster@ webmaster@
{{Platzhalter}}
=== Dateirechte säubern ===
chown -R vpopmail:vchkpw /home/vpopmail
==== qmail neustarten ====
qmailctl start
==== neue (virtuelle) Benutzer hinzufügen ====
/home/vpopmail/bin/vadduser @
[[...]]
{{Platzhalter}}
===== dovecot =====
==== Debian-Pakete installieren ====
aptitude install dovecot-imapd
==== Konfiguration anpassen ====
=== etc/dovecot/dovecot.conf ===
mv /etc/dovecot/dovecot.conf{,_debian}
cat < /etc/dovecot/dovecot.conf
protocols = imap
disable_plaintext_auth = no
first_valid_uid = $( id -u vpopmail )
last_valid_uid = $( id -u vpopmail )
auth default {
mechanisms = plain
userdb sql {
args = /etc/dovecot/dovecot-sql.conf
}
passdb sql {
args = /etc/dovecot/dovecot-sql.conf
}
}
EOF
=== etc/dovecot/dovecot-sql.conf ===
mv etc/dovecot/dovecot-sql.conf{,_debian}
cat < etc/dovecot/dovecot-sql.conf
driver = mysql
connect = host= user= password= dbname=
default_pass_scheme = PLAIN
user_query = SELECT pw_dir as home, AS uid, AS gid \
FROM vpopmail WHERE pw_name = '%n' AND pw_domain = '%d'
password_query = SELECT CONCAT(pw_name, '@', pw_domain) AS user, pw_clear_passwd AS password FROM vpopmail WHERE pw_name = '%n' AND pw_domain = '%d'
EOF
{{Platzhalter}}
==== dovecot restarten ====
/etc/init.d/dovecot restart