
hoschi
-
Posts
14 -
Joined
-
Last visited
Posts posted by hoschi
-
-
Irgendwie ist courier ja komplett rausgeflogen, obwohl der weiter entwickelt wird und immer noch verfügbar ist.
Wer den benutzen will, sei es durch upgrade oder neu, muss einige Änderungen zu den alten Templates machen.
Die authmysqlrc vom authdaemon muss ungefähr so angepasst werden:
MYSQL_SERVER localhost MYSQL_USERNAME froxlor DB Benutzername MYSQL_PASSWORD passwort dafür MYSQL_PORT 0 MYSQL_OPT 0 MYSQL_DATABASE froxlor MYSQL_USER_TABLE mail_users #MYSQL_CRYPT_PWFIELD crypt MYSQL_CRYPT_PWFIELD CONCAT(SUBSTRING_INDEX(password_enc,'}',-1)) MYSQL_CLEAR_PWFIELD password MYSQL_UID_FIELD uid MYSQL_GID_FIELD gid MYSQL_LOGIN_FIELD username MYSQL_HOME_FIELD homedir MYSQL_MAILDIR_FIELD maildir
Der substring_index filtert den Prefix, bei mir {SHA256-CRYPT}, im password_enc-Feld weg. Die Einstellung innerhalb Froxlor ist dabei auf Systemstandard. Neben den sha256 hashes werden auch gaanz alte MD5 hashes akzeptiert, falls vorhanden, die werden bei updates von Froxlor nicht mit einem Prefix versehen!
Die config.inc.php vom Roundcube-Password-Plugin benötigt dann folgende Ergänzungen:
# Anpassungen fuer Prefix $config['password_algorithm'] = 'sha256-crypt'; $config['password_algorithm_prefix'] = '{SHA256-CRYPT}'; $config['password_query'] = 'UPDATE `mail_users` SET `password_enc` = %P WHERE `username` = %u'; # eigentlich unnoetig, aber wir lassen es mal drin $config['password_crypt_hash'] = 'sha256';
Alle neuen Passwörter sind dann automatisch sha256 (oder was ihr da angebt). Das ist ohne unverschlüsselte PWs, sonst wär halt
SET `password` = %p,`password_enc` = %P nötig.
-
Die aktuelle release ist ladbar, aber indexing scheint abgeschaltet zu sein.
https://froxlor.de/download.php -> Release-Archiv ist damit platt.
-
HM, in der Praxis ist das doch gegen die Wand gefahren, die Methode kann ich nicht empfehlen. Bleibt die Frage, wie man eine nicht von Froxlor verwaltet Domain zu acme.sh dazupackt?
Einfach per /root/.acme.sh/acme.sh --issue -d domain.tld --webroot /pfad/zum/.wellknown
und der cron richtet das dann automatisch?
-
Ich hab noch gaaanz alte Systeme (+10 Jahre) am Start und wollte nicht auf dovecot umstellen.
Falls jemand danach suchen sollte, die "alte" Kombination von Programmen ist weiter nutzbar, wenn angepasst (Debian 9+). Hintergrund: froxlor speichert in seiner DB die Passwörter nach konfiguration als password und password_enc ab, letzteres ist verschlüsselt. Der hash lässt erkennen, womit gearbeitet wurde - ein einfacher String ist ein Uralt-crypt-Passwort, aktuell sollte sowas wie $5$ am Anfang stehen, was auf SHA-256 verweisst.
Werden die Klartextpasswörter gelöscht, ist die alte Konfiguration nicht mehr verwendbar. Wäre aber mal sinnvoll, die rauszuwerfen. Folgendes ist anzupassen:
/etc/courier/authmysqlrc:
MYSQL_USER_TABLE mail_users MYSQL_CRYPT_PWFIELD password_enc #MYSQL_CRYPT_PWFIELD crypt
Damit wird courier angewiesen, für pop und imap verschlüsslte PW auszulesen. Die SHA-256 lib ist bei Debian inclusive. crypt fliegt raus. Fertig ist der Mailabruf.
Tricky ist die Anpassung von postfix. Die dort benutzte Bibliothek für sasl hat Einschränkungen und ist der letztlich der Grund für Probleme. Lässt sich beheben mit folgender /etc/postfix/sasl/smtpd.conf:
pwcheck_method: authdaemond authdaemond_path: /run/courier/authdaemon/socket mech_list: plain login
In der Datei stand vorher pwcheck_method: auxprop mit sql plugin drin. Das Problem ist: auxprop kann nur Klartext. Aber dafür erlaubt auxprop die Verwendung von cram-md5 und digest-md5 zum hashen auf Clientseite, früher war daher die mech_list um diese beiden ergänzt. Bedeutet: der Client verbindet sich unverschlüsselt und ohne TLS, aber hasht noch auf dem Clientsystem das Passwort mit md5 und übermittelt dann nur den hash über den unverschlüsselten Kanal. Bei TLS kann man sich das sparen - erst wird der Kanal abgesichert, dann kann das PW unverschlüsselt geschickt werden und wird auf Serverseite gehasht und dann verglichen - das erledigt der authdaemond. auxprop kann das nicht.
Die Mechlist wird dem Client übermittelt. Ganz alte Accounts haben evtl. noch Clienthashes und kein SSL eingeschaltet, die müssen dann umstellen auf STARTTLS mit Klartext - gilt aber nur für den Mailversand. Klartext bedeutet wie gesagt nur, das der Thunderbird/Outlook/etc. das Passwort ungehasht schickt, der authdaemond hasht das und vergleicht dann diesen hash mit dem in der froxlor Datenbank - da steht aber nix mehr im Klartext drin.
Passwort-Wechsel ist für die User über Roundcube wie gewohnt möglich. In der DB könnt ihr sehen wie der Hash sich ändert.
-
Ah cool. Damit wär die Frage auch geklärt, wie man die Domains aus dem Ordner rausbekommt: manuell vorher mit dieser Option installieren...falls jemand einen Feature Request draus machen will.
-
Öhm, der Pfad stimmt ja. acme.sh ist schon in /root/.acme.sh installiert, und liegt auch da. Nur die Domains werden halt in /etc/acme abgeworfen, und nicht auch in dem Ordner.
-
Ich will froxlor auf einem host einspielen, der bereits acme und eine die Domain sub.domain.tld nutzt.
Nun ist acme aber mit
./acme.sh --install --config-home /etc/acme
installiert worden, --cert-home ist automatisch gleich --config-home.
Das Zertifikat für sub.domain.tld wurde mit --reloadcmd "meinskript" installiert, das alle Dienste neu startet und die Certs mit cat zusammenbastelt für den courier-imap. Certs und die config dafür liegen in /etc/acme. Lief alles lange einwandfrei mit cronjob für acme.sh.
sub.domain.tld soll nun ausserhalb von froxlor bleiben (und ist froxlor host) - wenn ich froxlor installiere, wirft das automatisch alle Domains auch nach /etc/acme. Kann man das so lassen oder ist das Verzeichnis /root/.acme.sh/ zwingend nötig, weil hart codiert? Also klappen die renews und die Konfiguration zeigt an die richtige Stelle oder gibt das Ärger? Nicht das ein cronjob dann im falschen Ordner sucht, oder /etc/acme/sub.domain.tld löscht.
Subdomains alle zu Domains "befördert" nach Upgrade
in German / Deutsch
Posted
Unter der 10.x hatte ich etliche sub.domain.tld angelegt als Admin-User, die Kunden und den entsprechenden domain.tld zugeordnet waren. Als Admin gab es früher einen Schaltfläche für "Diese Domain ist eine Subdomain von der Domain: ", da war dann jeweils domain.tld eingestellt.
Nach dem Upgrade ist die Option komplett weg - soll das so? Oder wurde der Parameter schlicht nicht genutzt, und was passiert wenn jemand domain.tld wegwirft...