!!! 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 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:
qmailctl stop
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
aptitude install mysql-client libmysqlclient-dev libev-dev
groupadd --system vchkpw adduser --system --ingroup vchkpw --home /home/vpopmail vpopmail
mkdir -p /home/vpopmail/etc
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)
echo "<HOST>|<PORT>|<USER>|<PASSWORD>|<DB>" > /home/vpopmail/etc/vpopmail.mysql chmod 644 /home/vpopmail/etc/vpopmail.mysql
mysql --host=<HOST> --user=root --password -e "CREATE DATABASE `<DB>`; \ CREATE USER '<USER>'@'<FROM_HOST>' IDENTIFIED BY '<PASSWORD>'; \ GRANT USAGE ON * . * TO '<USER>'@'<FROM_HOST>' IDENTIFIED BY '<PASSWORD>' \ 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 `<DB>` . * TO '<USER>'@'<FROM_HOST>';"
/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 )
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
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
Weil locals (siehe Stufe 1 -> /var/qmail/control/locals) für qmqp nicht mehr zu greifen scheint (vpopmail funktioniert hier wohl etwas anders!?):
/home/vpopmail/bin/vaddaliasdomain <DOMAIN> mail.<DOMAIN> /home/vpopmail/bin/vaddaliasdomain <DOMAIN> dns1.<DOMAIN> /home/vpopmail/bin/vaddaliasdomain <DOMAIN> dns2.<DOMAIN> /home/vpopmail/bin/vaddaliasdomain <DOMAIN> db.<DOMAIN> /home/vpopmail/bin/vaddaliasdomain <DOMAIN> http.<DOMAIN> [[...]]
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/<DOMAIN>/postmaster/Maildir deluser postmaster
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@<DOMAIN> root@<DOMAIN> /home/vpopmail/bin/valias -i postmaster@<DOMAIN> mailer-daemon@<DOMAIN> /home/vpopmail/bin/valias -i postmaster@<DOMAIN> abuse@<DOMAIN> /home/vpopmail/bin/valias -i postmaster@<DOMAIN> webmaster@<DOMAIN>
chown -R vpopmail:vchkpw /home/vpopmail
qmailctl start
/home/vpopmail/bin/vadduser <VIRTUELLER_USER>@<DOMAIN> [[...]]
aptitude install dovecot-imapd
mv /etc/dovecot/dovecot.conf{,_debian} cat <<EOF > /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
mv etc/dovecot/dovecot-sql.conf{,_debian} cat <<EOF > etc/dovecot/dovecot-sql.conf driver = mysql connect = host=<HOST> user=<USER> password=<PASSWORD> dbname=<DB> default_pass_scheme = PLAIN user_query = SELECT pw_dir as home, <UID_DES_LOKALEN_BENUTZERS_VPOPMAIL> AS uid, <GID_DES_LOKALEN_BENUTZERS_VPOPMAIL> 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
/etc/init.d/dovecot restart