**!!! 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