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