Benutzer-Werkzeuge

Webseiten-Werkzeuge


mw2dw:ds3000-mail2

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

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 "<HOST>|<PORT>|<USER>|<PASSWORD>|<DB>" > /home/vpopmail/etc/vpopmail.mysql
 chmod 644 /home/vpopmail/etc/vpopmail.mysql

platzhalter

MySQL-Datenbank und -Benutzer anlegen

 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>';"

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 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>
 [[...]]

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/<DOMAIN>/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@<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>

platzhalter

Dateirechte säubern

 chown -R vpopmail:vchkpw /home/vpopmail

qmail neustarten

 qmailctl start

neue (virtuelle) Benutzer hinzufügen

 /home/vpopmail/bin/vadduser <VIRTUELLER_USER>@<DOMAIN>
 [[...]]

platzhalter

dovecot

Debian-Pakete installieren

 aptitude install dovecot-imapd

Konfiguration anpassen

etc/dovecot/dovecot.conf

 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

etc/dovecot/dovecot-sql.conf

 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

platzhalter

dovecot restarten

 /etc/init.d/dovecot restart
mw2dw/ds3000-mail2.txt · Zuletzt geändert: 2019/09/23 10:27 von Patrick Neumann