Jump to content
Froxlor Forum

hoschi

Members
  • Posts

    14
  • Joined

  • Last visited

Posts posted by hoschi

  1. 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...

     

  2. 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.

  3. 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?

     

  4. 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.

  5. 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.

     

×
×
  • Create New...