Wenn ihr neue E-Mail Benutzer erstellen wollt, dann geht das am Schnellsten via dem DSM. Der Nachteil dieser Lösung ist es, dass man dann für jeden E-Mail Benutzer einen lokalen Systemaccount einrichten muss. Dafür gibt es virtuelle Benutzer, welche es ermöglichen alle Mailprozesse unter einem lokalen User fahren zu lassen. Das hat den Vorteil, dass man für neue E-Mail Nutzer nur noch einen virtuellen Benutzer für die Mailserver anlegen muss. Das System (also /etc/passwd) kennt diese Mailbenutzer jedoch nicht. Darum virtuell ;) Mehr dazu wie man virtuelle Nutzer für Postfix und Dovecot erstellen kann.
Da man virtuelle Benutzer nicht über den DSM anlegen kann, habe ich folgendes kleine Script geschrieben, welches dem admin beim Einrichten der User hilft. Ihr könnt createMaildir in meinem svn finden oder weiter unten direkt in diesem Beitrag
Die Config Sektion des Codes muss man sich nach seinen Gegebenheiten anpassen. Das Script schreibt in Systemfiles und darum sind alle Pfade von Files die geschrieben werden im Auslieferungszustand auf /tmp gesetzt. Damit kann man das Script ausprobieren und schauen ob die generierten/angepassten Files in /tmp soweit korrekt sind.
Im folgenden eine kurze Beschreibung der Konfig
Legt das Root Verzeichnis der virtuellen User fest
mail=/tmp/dovecot
Gibt den Usernamen des lokalen Benutzers an unter dessen Kennung die virtuellen Benutzer „laufen“. Wird für den chown auf dem neuangelegten Mailbox Verzeichnis benötigt
user=vmail
Siehe user
group=vmail
Config für Dovecot
Pfad zum Dovecot Passwort File, welches die virtuellen User und deren Passworte enthält (gebt hier NIEMALS /etc/passwd an!!!)
dovecot_pw_file=/tmp/dovecot/passwd
Pfad zum dovecotpw Binary. Dieses wird jedoch nicht in der Firmware (Mailstation) mitgeliefert. Man kann es sich jedoch aus den Quellen selbe kompillieren oder dieses Script mit dem Parameter -i oder –install aufrufen. Dann wird dovecotpw aus dem ipkg dovecot installiert.
dovecotpw=/usr/syno/mailstation/libexec/dovecot/dovecotpw
Legt das zu verwendende Schema bei der Erstellung der Passworte für die virtuellen User fest.
scheme=SSHA
Konfiguration der Postfix-Seite
Pfad zum Postfix Binary. Wird zum Neuladen der Konfig nach Erstellen der Nutzer benötigt
postfix=/usr/syno/mailstation/sbin/postfix
Pfad zum postmap Kommando. Dieses wird benötigt um aus den virtuellen Userfiles des Postfix die benötigten db Files zu erstellen
postfix_postmap=/usr/syno/mailstation/sbin/postmap
Legt den Pfad für das Postfix vmailbox File fest
postfix_vmailbox=/tmp/dovecot/vmailbox
Pfad zum Postfix File mit den Alias Namen der virtuellen Benutzer
postfix_virtual=/tmp/dovecot/virtual
Der Pfad zum main.cf File des Postfix Servers. Darin wird nichts geschrieben! Das Script nutzt das File um zu prüfen, ob die im Script angegebenen Files auch in der Postfix Config korrekt gesetzt sind
postfix_main=/usr/syno/mailstation/etc/main.cf
Das Script ist ein „einfaches“ Shellscript für die Kommandokonsole. Es sollte von root ausgeführt werden. Sonst bestehen keine Schreibrechte auf die benötigten Konfigfiles.
Es gibt einige Parameter, die ich hier kurz erläutern möchte
Wenn dovecotpw nicht vorhanden ist, kann man mit diesem Parameter das Script anweisen dovecotpw von ipkg zu laden. Dabei wird natürlich ein funktionierendes ipkg und eine Internetverbindung benötigt
Zeigt die „Hilfe“ des Scripts an
Legt den Usernamen des neu zu installierenden E-Mail Nutzers fest. Es handelt sich hierbei nur um den Local Part
der Adresse, also alles vor dem @
!
Legt den Domainnamen des Nutzers fest. Es handelt sich hierbei nur um den Domain Part
der Adresse also alles hinter dem @
!
Dürfte selbsterklärend sein, wofür dieser Parameter ist
Der Aufruf des Scriptes ist ziemlich einfach
createMaildir foo bar.tld secret
erstellt im mail
Verzeichnis aus der Konfiguration - falls nicht vorhanden - das Verzeichnis bar.tld für die Domain bar.tld an. Darin wird das Verzeichnis foo für den User foo erstellt. Dortdrin wird dann das .Maildir Verzeichnis angelegt, wo die E-Mails drin landen. Die Mailbox also. secret wird als Passwort für den User foo@bar.tld
in dovecot_pw_file
verwendet.
Bei obigem Aufruf wird also im Mailroot die folgende Struktur angelegt
/volume1/homes/vmail + bar.tld ++ foo +++ .Maildir