====== Mailserver Alias Skript ====== ===== Allgemeines ===== * Es befindet sich auf dem Server mit den homefreigaben, da es aus den user homes (mit root rechten) die ''~/.listsForward'' ausliest. * Das Skript wird jede Nacht von Cron ausgeführt * Skript braucht Schreibzugriff aufs LDAP * ''fseiUserForwardDoNotEdit'' wird aktualisiert * ''fseiMailDeliverTo'' wird aktualisiert ===== Funktionalität ===== Damit Postfix mit nur einer LDAP Abfrage alle Weiterleitungen, die für eine Listenmail notwendig sind, bekommen kann, wird das LDAP als Cache missbraucht. Es werden aus den ''~/.listsForward'' alle Listennamen ausgelesen, geprüft ob der User diese Listen lesen darf (ACL aber per LDAP Abfrage!) und dann der Eintrag ''fseiUserForwardDoNotEdit'' automatisch aktualisiert. ===== Ablauf des Programms ===== Zuerst werden alle User durchlaufen, und die zu abbonierenden Listen gefetched. Dann wird dieses Datenarray umgebaut, sodass man nun in erster Ebene die Listen hat und darunter die User, die diese Listen lesen wollen. Jetzt iteriert man über alle Listen. Dabei werden dann pro Liste die aktuell eingetragenen User und die neuen User verglichen und nur die Änderungen angewendet. Zuletzt wird noch fseiMailDeliverTo geprüft, ob es existiert und wenn nicht, dann hinzugefügt. ===== LDAP Injections ===== Da dieses Skript sowohl mit den User über die ''~/.listsForward'' in Kontakt kommt, sowie mit einem Schreibzugriff auf das LDAP ausführt, muss man hier darauf achten, dass keine Sicherheitslücken entstehen. Daher existiert die Methode isValidCN, die einen Listennamen prüft. Meines Wissens nach ist es aktuell nicht möglich, dass Skript dazu zu bewegen, unerlaubtes ins LDAP zu schreiben. Das größte Risiko ist ein Absturz durch zu große Files. Hier könnte man noch einen entsprechden Schutz einbauen. Auch ein detailliertes Logging könnte in diesem Zuge sinnvoll sein!