Beiträge von kk

    Hallo,


    ab sofort steht die erste Preview für LiveConfig 2.14.0 bereit.


    Mit diesem Update gibt es umfangreiche Änderungen am LiveConfig-Datenbankschema. Unsere internen Tests zeigten bislang keine Probleme, wir empfehlen aber insbesondere bei MySQL-Datenbanken vor dem Upgrade ein Backup (mysqldump) zu erstellen.


    Die Änderungen stellen u.a. auch die Grundlage für LiveConfig 3 dar - das Datenbankschema von v2.14.x und 3.x ist ab sofort bis auf weiteres identisch. Damit sind in Kürze dann auch Testinstallation mit LiveConfig 3 und bestehenden "eigenen" Datenbanken möglich.


    Viele Grüße


    -Klaus Keppler

    Die Informationsseite zu LiveConfig 3 ist online.
    Diese Seite wird regelmäßig aktualisiert, sobald es Updates gibt.


    https://www.liveconfig.com/v3


    Unsere nächsten Schritte sind:
    - Online-Demo bereitstellen
    - Downloads der beta1 bereitstellen (zum Test auf eigenen Servern)


    Habt bitte etwas Nachsicht beim Video - wir sind keine Youtuber, sondern Softwareentwickler. ;)


    Viele Grüße


    -Klaus Keppler

    Hallo,


    ab sofort steht LiveConfig 2.13.1 zum Download bereit.


    Es handelt sich hierbei um ein Sicherheitsupdate - die XML-Parser-Bibliothek Expat wurde auf Version 2.4.4 aktualisiert.


    Die Sicherheitslücke CVE-2022-23852 wird mit einem CVSS-Score von 9.8 als kritisch eingestuft (kann ohne Authentifizierung remote ausgenutzt werden). Eine Remote Code Execution ist prinzipiell möglich, allerdings ziemlich anspruchsvoll (LiveConfig hat Sicherheitsmechanismen wie ALSR, Stack Protection etc. aktiviert). Der Prozess, in dem LiveConfig die Expat-Bibliothek nutzt, läuft als Benutzer "liveconfig" (also nicht als root).


    Wir empfehlen daher allen Anwendern das Update bei nächster Gelegenheit einzuspielen.


    Viele Grüße


    -Klaus Keppler

    In der XML-Parser-Bibliothek "Expat" ist eine äußerst kritische Lücke bekannt geworden (CVE-2022-23852, CVSS-Score 9.8 von 10).


    Derzeit steht noch kein Update von Expat zur Verfügung (daran wird mit Hochdruck gearbeitet). Auch LiveConfig setzt Expat ein, nach unserem aktuellen Kenntnisstand aber nicht in Prozessen die mit root-Rechten laufen.
    Sobald Expat 2.4.4 verfügbar ist, werden wir sehr kurzfristig ein Sicherheitsupdate von LiveConfig (v2.13.1) bereitstellen.


    Ein umfangreiches Update der Preview-Version (2.14) wird unabhängig davon erfolgen.


    Viele Grüße


    -Klaus Keppler

    Hallo Herr Keppler, steht der 31.01.2022 für die erste Beta von Liveconfig 3 immer noch?!


    Ja, ist nach wie vor für nächsten Montag geplant.
    Aber: diese erste Beta-Version wird (ganz grob) nur ca. 10% des geplanten Funktionsumfang "fertig" haben - diese Version dient somit primär dazu, die neue Oberfläche, Architektur und vor allem die neue API kennenzulernen.


    Details sowie (wenn alles klappt) ein kleines Video dazu dann ab Montag...

    Wir können das leider nicht reproduzieren (Debian 11, MariaDB 10.5.12-MariaDB-0+deb11u1)


    LiveConfig prüft bei der Passwortänderung lediglich, ob die MySQL/MariaDB-Version <= 5.7.6 ist.
    Wenn nicht, dann wird zur Änderung der Befehl "SET PASSWORD FOR 'user'@'localhost' = PASSWORD('StReNgGeHeIm');" ausgeführt.


    Die Versionsnummer wird wiederum aus dem Befehl "SHOW VARIABLES" ausgelesen (Variable "version"). Standardmäßig geht LiveConfig aber davon aus, dass MySQL/MariaDB > 5.7.6 läuft.


    Die nächsten Schritte wären daher:
    - führen Sie mal manuell (als root-Benutzer in MariaDB) den o.g. "SET PASSWORD FOR..."-Befehl aus
    - haben Sie im LiveConfig externen Datenbankzugriff konfiguriert? (Serververwaltung -> Datenbanken) Wenn ja, dann prüfen Sie bitte mal ob auch folgender SQL ausgeführt werden kann: SELECT Password FROM user WHERE User='user' AND Host='localhost'

    Starten Sie LiveConfig bitte mal neu. Melden Sie sich dann als "admin" an und gehen auf "Serververwaltung" -> "Datenbanken". Wird dort "Status: verbunden" angezeigt?


    Ist evtl. beim Upgrade irgendwas schief gelaufen? Führen Sie ggf. mal das Programm "mysql_upgrade" aus (als root)

    Nur so ein Gedanke: Die angenehmste Lösung wäre natürlich, dass die Hashes bei erfolgreicher Passworteingabe automatisch aktualisisiert werden.


    Sehe ich persönlich auch so, wird aber leider nicht klappen.
    LiveConfig bekommt nichts davon mit, wenn sich ein virtueller FTP-Benutzer anmeldet - das läuft komplett im pam_userdb ab. Das greift wiederum nur lesend auf die passwd-Datenbank zu.
    LiveConfig kennt die Passwörter auch nicht im Klartext (um die pauschal neu zu setzen): nach dem Anlegen/Aktualisieren des Hashes wird das Klartext-Passwort im LC gelöscht.

    Also, der Hintergrund dürfte nun klar sein.
    Alte pam_userdb-Versionen haben ausschließlich nur DES-Passwörter unterstützt. Besonders schlimm sind da immer alte CentOS-Versionen betroffen, da es dort keinen bequemen Upgrade-Pfad wie bei Debian/Ubuntu gibt.
    Da CentOS 6 ja nun langsam aber sicher ausstirbt, und wir Ubuntu 14 LTS auch nicht mehr offiziell unterstützen (das würde noch bis April 2024 dauern!), sollte eine Umstellung keine Auswirkungen haben.


    Die interne Ursache (warum das auf manchen Systemen klappt und auf anderen nicht) liegt eventuell in der zugrundeliegenden Crypto-Bibliothek. Modernene OpenSSL-Builds enthalten gar kein DES mehr, wie das mit GNU-Crypto aussieht weiß ich ehrlich gesagt gar nicht.


    Viele Grüße


    -Klaus Keppler

    Ich habe das eben mal geprüft: LiveConfig ruft bei "LC.crypt.crypt()" eine crypt-Variante von OpenSSL auf. Bislang war diese offenbar immer identisch mit der (nicht-portablen) POSIX crypt()-Funktion, welche pam_userdb für den Passwortvergleich nutzt.
    (wir testen das ja automatisiert durch - auf jeder unterstützten Distibution wird u.a. auch ein virtueller FTP-User angelegt und ein Login mit diesem durchgeführt)


    Wir planen nun, LC.crypt.crypt() auf die POSIX-Variante umzustellen, müssen aber prüfen dass das bei alten Systemen keine Probleme macht. Parallel prüfen wir, ob sich die alten Hashes übergangsweise weiter nutzen lassen - alternativ werden dokumentieren wir man auslesen kann, welche Accounts betroffen sind.


    Update folgt in Kürze...

    Ein anderer Kunde hatte uns auch schonmal von diesem Problem berichtet - allerdings können wir das leider nicht reproduzieren.


    Je nach Systemkonfiguration kann es sein, dass nach dem Upgrade keine "alten" crypt()-Hashes mehr für die Passwortprüfung beim proftpd funktionieren (um genau zu sein: im Modul pam_userdb.so).


    Ändern Sie testweise mal in der Datei /usr/lib/liveconfig/lua/vsftpd.lua die Zeile 675 ab, und ersetzen darin "crypt(...)" durch "crypt_md5(...)":

    Code
    pwd = LC.crypt.crypt_md5(pwd)


    Anschließend bitte LiveConfig neu starten, dann das Passwort eines virtuellen FTP-Accounts noch einmal ändern und damit dann die Anmeldung versuchen.


    Wir prüfen aktuell ob es möglich ist, dass pam_userdb.so auch die "alten" Hashes weiterhin akzeptiert. Laut man-Page zu pam_userdb sollte mit der PAM-Option "crypt=crypt" ja eben ein "crypt()"-Passwort akzeptiert werden - tut es aber nicht. :(

    Die Arbeiten kommen gut voran:

    • Im Backend ist der technische Unterbau der REST-API komplett fertig (Authentisierung, Prüfung der Berechtigungen, Prüfung der Eingabedaten, Fehlerbehandlung).
      Die Fehlermeldungen werden sogar lokalisiert ausgegeben. :)


    • Auch im Frontend geht's voran. Die neue Oberfläche basiert übrigens auf dem "Material Design":
      forum.liveconfig.com/cms/attachment/21/
      Komponenten, Kommunikation und Fehlerbehandlung sind auch zum größten Teil abgeschlossen.
    • Das Datenbankschema wurde verbessert - u.a. sind nun fast alle Tabellen über "referenzielle Integrität" miteinander verknüpft. Die Änderungen werden auch in LiveConfig 2.14 "zurück" fließen, um die Schemata wie versprochen konsistent zu halten.
    • Eine der größten technischen Änderungen - die Kommunikation zwischen Client und Server - ist zu etwa 80% abgeschlossen. Der Download von großen Dateien (z.B. Backups) von einem "separaten" Client klappt stabil und mit maximaler Geschwindigkeit. :)
    • LiveConfig und alle verwendeten Bibliotheken nutzen ab sofort OpenSSL 3.0 (und zwar die "neue", sicherere API)
    • .deb- und .rpm-Pakete werden erfolgreich gebaut



    Die folgenden APIs sind bereits fertig:

    • Serververwaltung: Abruf der Serverliste, Anlegen neuer Server, Löschen von Servern
      (neu: "force"-Option: Server auch löschen, wenn noch Objekte darauf liegen)
    • Kunden: Abruf der Kundenliste
    • Domains: Abruf aller Domain/Subdomains inkl. Einstellungen



    Wir planen weiterhin am 31.01.2022 die erste Beta-Version bereitzustellen, die dann parallel zu einer bestehenden LiveConfig 2.x-Installation getestet werden kann.


    Da jede einzelne Eingabemaske und jede einzelne API-Funktion angepasst werden müssen, und wir im Zuge des Umbaus auch unzählige Detailverbesserungen vornehmen, wird die "Beta-1" im Funktionsumfang natürlich noch recht beschränkt sein. Aber ich kann jetzt schon sagen: die Arbeit lohnt sich. :)


    Viele Grüße


    -Klaus Keppler

    oder die gewünschte PHP-Version vor den Standard-Suchpfad stellen:


    Code
    PATH="/opt/php-7.4/bin:$PATH" php /var/www/admin/priv/roundcubemail-1.5.1/bin/installto.sh /var/www/admin/apps/webmail/

    Unsere PHP-Pakete enthalten (eigentlich) durchaus mbstring.


    Der Roundcube-Updater wird ja i.d.R. immer mit der PHP-CLI-Version der Distribution ausgeführt, daher muss da das Paket "php-mbstring" (Debian/Ubuntu) installiert sein.


    Viele Grüße


    -Klaus Keppler

    In der Datei /usr/lib/liveconfig/lua/web.lua finden Sie in Zeile 890 das hier:

    Code
    value = string.gsub(value, "%%PHP%%", code)


    Fügen Sie danach einfach folgende Zeile hinzu:

    Code
    value = string.gsub(value, "%%USER%%", opts.user)


    Anschließend LiveConfig noch neu starten.
    Damit wird %%USER%% durch den Benutzernamen (=Vertragsnamen) ersetzt.

    Hallo,


    derzeit werden nur diese beiden Platzhalter (%%HOME%%, %%PHP%%) ersetzt.
    Wozu bräuchten Sie denn den Vertragsnamen? Wir können den gerne ins nächste Update aufnehmen (ist nur eine Kleinigkeit)


    Viele Grüße


    -Klaus Keppler