Beiträge von kk

    Ab sofort steht die erste Preview für v1.7.2 (r2781) zum Download bereit. Die neuen Funktionen sind:

    • Anzeige des Traffics der letzten 24 Stunden im "Top 10"-Bericht
    • Vertrag neu zuordnen: ein Vertrag kann nun auch einem Wiederverkäufer übereignet werden (Beispiel: admin hatte den Vertrag "web1" bisher selbst einem Kunden zugeordnet. Dieser Kunde erhält nun einen Resellervertrag (res1) - dann kann ab sofort der Vertrag "web1" diesem Kunden übertragen und in dessen res1-Vertrag verschoben werden).
      Die Übersetzungen sind in r2781 noch nicht mit drin, außerdem soll es noch die Möglichkeit geben, Verträge zwischen verschiedenen Resellerverträgen verschieben zu können.
    • Bugfix: Fehler in der Anzahl der IP-Adressen (bei der Serverübersicht, Business-Lizenz) beseitigt; hier wurden auch inaktive (früher mal irgendwann erkannte) IPs mitgezählt


    Viele Grüße


    -Klaus Keppler

    kk: evntl. einen entsprechenden Hinweis ins Handbuch aufnehmen ... mir kam es jetzt schon öfter unter, der Server in dem Schema ("example.com" statt "server.example.com" o.ä.) benannt wurden.


    http://www.liveconfig.com/de/h…/server.requirements.html => "Gültiger Hostname und Reverse DNS".
    Da das trotzdem recht häufig vorkommt werden wir das wohl mal noch irgendwie hervorheben, oder evtl. im LC-GUI eine Warnung ausgeben wenn man eine Domain hinzufügen will die den selben Namen trägt wie der Hostname. :)

    Eben wurde ein kleineres Update (v1.7.1-r2775) online gestellt. Damit werden zwei Probleme beseitigt:

    • der Autodiscover-Service arbeitet nun zuverlässiger (bei Outlook 2007/2010 und evtl. 2013 gab es je nach Konfiguration Probleme, obwohl der Exchange-Connectivity-Test keine Fehler meldete)
      Grundsätzlich sollte bei Bereitstellung von Autodiscover auch SMTP+SSL (Port 465) sowie POP3S/IMAPS (Port 993/995) aktiviert werden, dann gibt's erfahrungsgemäß die wenigsten Probleme.
    • in der Berechnung der SHA1-Prüfsumme für Backup-Downloads gab es unter bestimmten Umständen einen Pufferüberlauf, der zum Absturz von LiveConfig führen konnte (nicht sicherheitskritisch, da der betroffene Codeabschnitt ohnehin nur mit Benutzerrechten ausgeführt wurde - aber dennoch lästig).


    Das Update ist je nach Einsatzzweck also nicht kritisch, sollte aber bei Gelegenheit durchgeführt werden.
    Vielen Dank an dieser Stelle an die Techniker von iWelt, die mittels TCP-Dump bei der Lokalisierung der Autodiscover-Probleme weiterhelfen konnten. :)


    Viele Grüße


    -Klaus Keppler

    Langsam kann man das ganze LiveConfixx nennen. Updates gibt es zwar noch, aber am Kunden vorbei :(


    DoRob: wissen Sie was wahnsinnig viel unnötige Energie kostet? Sich mit hartnäckigen Betrugsfällen herumärgern zu müssen.
    Ihr Foren-Account ist ab sofort gesperrt. Ich denke, Sie wissen warum.

    Kleiner Nachtrag, wenn ich im Init Skript /etc/init.d/nginx-php-fcgi in der restart Sektion ein "sleep 1" einfüge, klappt es mit dem Restart.


    Wenn Sie kurz Zeit haben könnten Sie evtl. mal dieses Start-Script ausprobieren:
    http://download.liveconfig.com/tmp/nginx-php-fcgi
    Das wurde so umgeschrieben, dass es beim "restart" der Reihe nach jeden PHP-FCGI-Prozess beendet und neu startet (statt alle Prozesse zu beenden und dann alle zu starten). Zudem wird der killall-Befehl mit "-w" aufgerufen, so dass er wartet bis der gewünschte Prozess tatsächlich beendet wurde.
    (so ganz überzeugt bin ich von dem "-w"-Switch aber nicht wirklich; eventuell werden wir das tatsächlich durch ein "sleep 1" ersetzen)


    Viele Grüße


    -Klaus Keppler

    Mit Anzeige, wann eine Mail warum angenommen oder abgelehnt wurde?


    Nein, so etwas steht bislang selbst bei uns nur auf der Wunschliste.
    Das Tool wäre prinzipiell dazu in der Lage, da es alle Mail-Sessions verfolgt. Es wären da aber noch viele Detail-Fragen offen (Information-Leakage wenn eine Mail an verschiedene Empfänger geht; Performance bei großen Mail-Mengen (Speicherung der Detailsdaten in der DB? Wenn ja, wie lange? RRD? Datenschutz? usw...).


    Spontane Idee: optional könnte man auf dem Mailserver eine MySQL-DB aufsetzen, an die das Log-Tool dann alle Auswertungen meldet; via LC-GUI könnten dann Auswertungen auf diese DB gefahren werden. Hätte (meiner Meinung nach) die geringsten Auswirkungen auf die Performance und würde vielfältigste Möglichkeiten bieten. :)

    Entschuldigt bitte die Wartezeit, dafür erkläre ich das nun auch gleich etwas ausführlicher. :cool:


    Grundsätzlich kann man aktuell z.B. SpamAssassin per Milter oder über die master.cf in Postfix einbinden - Mails werden somit analysiert und bewertet; eine eventuelle Sortierung/Filterung muss dann aber im Mailprogramm (oder über ebenfalls selbst konfigurierte Sieve-Regeln) stattfinden.


    Aktuell stellen wir die SpamAssassin-Integration per LiveConfig fertig. Dabei gab es eine ganze Menge Herausforderungen, die schwer unter einen Hut zu bekommen sind:

    • die Spam-Filterung soll pro E-Mail-Adresse konfigurierbar sein (also die Schwellwerte zur Markierung bzw. Ablehnung einer Mail)
    • die Spam-Filterung soll sowohl mit "echten" Postfächern als auch mit reinen Weiterleitungen funktionieren. Bei Weiterleitungen müssen die Einstellungen der ursprünglichen Mailadresse genutzt werden (nicht die der eventuellen Ziel-Postfächer)
    • die Ablehnung einer Spam-Mail muss zum SMTP-Zeitpunkt der Einlieferung erfolgen, um keinen Backscatter zu erzeugen und die Mail-Ablehnung auch rechtssicher zu gestalten
    • Blacklist/Whitelist pro E-Mail-Adresse


    Das Hauptproblem besteht darin, eine Mail während der Einlieferung aufgrund einer Spam-Bewertung abzulehnen. Wird eine Mail eingeliefert, dann kann diese an mehrere Empfänger gleichzeitig gehen (z.B. kann eine Mail gleichzeitig an anton@kunde.de und berta@beispiel.de zugestellt werden). Nun kann es sein, dass Anton und Berta unterschiedliche Spam-Einstellungen haben und auch bei verschiedenen LiveConfig-Kunden eingerichtet sind - im Extremfall würde Anton vielleicht keine Spam-Filterung aktiviert haben und Berta per Blacklist fast jede Mail ablehnen lassen.
    Die Analyse der Mail kann erst nach deren vollständiger Übertragung (also zum Ende des DATA-Befehls hin) erfolgen. Zu diesem Zeitpunkt kann der Mailserver aber nur die gesamte E-Mail ablehnen (einzelne Empfänger können nur zum RCPT-Zeitpunkt abgelehnt werden, da ist der Mail-Inhalt aber noch unbekannt).


    Es gibt also rein technisch bedingt keine perfekte Lösung für dieses Problem, man muss sich auf einen Kompromiss einlassen:

    • entweder lehnt man zum SMTP-Zeitpunkt gar keine Mails ab (damit keine Bounces erzeugt werden dürfen Spam-Mails dann auch nur stillschweigend in einen Spam-Ordner verschoben werden; klappt nicht mit reinen Mail-Weiterleitungen),
    • oder man berücksichtigt bei mehreren Empfängern nur die Spam-Einstellungen des ersten Empfängers (also auch nur dessen Whitelist/Blacklist usw.)


    Unserer Erfahrung nach ist die Zustellung einer Mail an mehrere Empfänger auf einem Zielserver relativ selten (Ausnahme: "lokal" gesendete Mails, z.B. Rundschreiben/CC innerhalb einer Empfängerdomain; lokal eingelieferte Mails lassen sich aber am SASL-Header erkennen und können von einer Spam-Filterung ausgenommen werden).
    Gleichzeitig ist die erste Variante ("Spam-Ordner") in der Praxis etwas problematisch, da die Postfachnutzer nichts davon mitbekommen, dass eine Mail im Spam-Ordner liegt; wer Mails per POP3 abruft bekommt das überhaupt nicht mit. Man könnte dann zwar z.B. einen wöchentlichen Spam-Report verschicken, die meisten Nutzer erwarten aber dass Mails "sofort" zugestellt werden (sowohl als Absender als auch Empfänger).


    Unsere Lösung besteht nun darin, dass wir einen eigenen Milter-Service implementieren (liveconfig-milter). Ein Milter-Dienst ist bei Postfix rein technisch die einzige Möglichkeit, Mails nach dem DATA-Event abzugreifen und dann ggf. noch abzulehnen. Zudem kümmert sich dieses Tool um die Weiterleitung einer Mail durch SpamAssassin (via spamd) und sendet dabei den Ort der benutzerspezifischen SpamAssassin-Konfiguration mit - das ist etwas, was kein anderer uns bekannter Milter-Dienst beherrscht.
    Der Code ist (wie immer bei uns ;-)) in C geschrieben damit alles schön performant & ressourcenschonend läuft und wird nach Fertigstellung unter einer Open-Source-Lizenz freigegeben.


    Ich hoffe, damit für etwas mehr Verständnis bei der Mail-Konfiguration gesorgt zu haben. Für einen zuverlässigen, stabilen und rechtssicheren Mailserverbetrieb gehört eben etwas mehr dazu als eine Quick&Dirty-Integration vom SpamAssassin.


    Und weil ich gerade dabei bin: wir haben noch ein anderes Tool entwickelt, mit dem Logfiles (u.a. auch das Postfix-Log) ausgewertet werden können, um Statistiken über den Versand und Empfang von E-Mails pro E-Mail-Adresse erzeugen zu können. Dieses Tool (lclogparse) ist inzwischen fertig und läuft bei uns seit rund drei Wochen auf einem produktiven Mailserver völlig problemlos. Hier fehlt nun "nur" noch das Auslesen der aggregierten Statistikdaten und die Anzeige im LiveConfig; das alles kommt mit in die nächste Version (v1.7.2).


    Viele Grüße


    -Klaus Keppler

    Gehen Sie einfach in LiveConfig auf "Serververwaltung" -> "Web". Ganz unten bei den IP-Gruppen wählen Sie irgendeine Gruppe aus, die mit NGINX eingerichtet ist und bearbeiten diese: irgendeine IP entfernen -> speichern -> wieder hinzufügen -> wieder speichern.
    Damit wird auch die Hauptkonfiguration von NGINX neu erzeugt.

    Aaargh... :eek: danke für den Hinweis!
    Wir hatten in dem Script Änderungen vorgenommen, damit das auch mit Verträgen klappt die Großbuchstaben enthalten. Offenbar ist da aber ein Testfall drin hängen geblieben. :(


    Update wird gleich bereit gestellt.

    wenn ich die zusätzlichen PHP Version einrichte erzeugt mir der lcclient auch die php.ini in den jeweiligen phpxx Ordner jedoch keine php-fcgi-starter


    Die php-fcgi-starter werden nur angelegt, wenn man Apache verwendet und der betroffene Webspace für PHP via FastCGI konfiguriert ist.
    Werfen Sie ggf. einfach mal einen Blick in die vHost-Konfiguration unter /etc/apache2/sites-enabled/web###.conf - dort steht dann jeweils, wie PHP eingerichtet ist (# PHP configuration for this subscription: ...).

    hatte das Problem eben selber, habs manuell behoben


    Sys:
    LC Version: 1.7.1 - Platform: x86_64-unknown-linux-gnu - Revision: 2770
    nginx (Version 1.0.15)
    Centos6.5


    Dann wird die nginx-Konfiguration aber schon mit einer älteren LiveConfig-Version erzeugt worden sein. Mit v1.7.1 wird die o.g. Anweisung wieder "richtig" in die Konfigurationsdatei geschrieben.


    Viele Grüße


    -Klaus Keppler

    So lange nur ein Rechner aktiv ist reicht auch eine Lizenz.
    Falls Sie DRBD nutzen, dann speichern Sie /etc/liveconfig/liveconfig.key am besten auch auf dem DRBD-Volume (dann gibt es keine Probleme bei der Lizenzverlängerung, falls zwischenzeitlich ein Failover stattgefunden hat).


    Wie genau wir die Gültigkeit einer Lizenz prüfen möchte ich an dieser Stelle nicht verraten ;) aber die lokalen IPs (oder sonstige Hardware-spezifischen Informationen) spielen dabei keine Rolle.

    Das LiveConfig-Team freut sich, die Verfügbarkeit von Version 1.7.1 (r2770) bekanntgeben zu dürfen.


    Die neue Version steht ab sofort im Download-Bereich sowie in allen Repositories bereit.


    Die wichtigsten Änderungen zur vorherigen Version sind:

    • mit der Schnellsuche können nun auch Verträge unterhalb von eigenen Resellern gesucht werden (klassischer Fall: welchem Reseller ist der Vertrag "web123" zugeordnet? -> einfach "web123" in die Schnellsuche eingeben)
    • Konfiguration von MySQL-Optionen für LiveConfig-Datenbank (wenn MySQL-Backend verwendet wird)
    • automatische Konfiguration von FCgidIOTimeout anhand von max_execution_time
    • grundsätzlich ist nun die Verwendung verschiedener PHP-Versionen möglich (siehe Forum)


    Die vollständige Liste aller Änderungen finden Sie im Änderungsverlauf.


    Das Update ist wie gewohnt unkompliziert.


    WICHTIG: aufgrund einer Änderung im internen LCCP-Protokoll sind alle Versionen <=1.7.0 zu den Versionen >=1.7.1 inkompatibel. Bei Multi-Server-Installationen müssen also der LC-Server und alle LC-Clients aktualisiert werden. Der LC-Server lehnt Verbindungen von "alten" Clients automatisch ab und protokolliert das auch.

    Der Fehler mit PHP Einstellungen eines NNGINX-FCGI Hosts besteht in der aktuellen Preview
    immer noch:


    Ändere ich eine PHP Einstellung -> Stirbt der php-cgi Prozess.
    Ändere ich eine PHP Einstellungen erneut -> Wird der php-cgi PHP Prozess gestartet.


    Ich habe das eben mit CentOS 6.5 (AMD x64 via Xen) getestet und keine Probleme dabei gehabt - der Prozess wird jedes mal korrekt neu gestartet.


    Was passiert denn, wenn Sie den Befehl manuell ausführen? Geben Sie dazu als letzten Parameter den Namen des betroffenen Vertrages an, z.B.:

    Code
    /etc/init.d/nginx-php-fcgi restart web1


    LiveConfig führt ja letztendlich auch nur genau diesen Befehl aus, wenn es Änderungen an der Konfiguration eines NGINX-vHosts gab.


    Viele Grüße


    -Klaus Keppler

    Wo hinterlegt man die spezifischen php.inis für die zusätzlich installierten PHP Versionen? Zumindest ein globale Vorlage benötigt man ja, das man ein paar Werte, die dann grundsätzlich für alle gelten hinterlegen kann (Bsp ioncube Loader ...)


    Das hängt von der Compile-Time-Konfiguration von PHP an. Der einfachste Weg das herauszufinden ist über eine phpinfo().

    Soeben wurde die Preview noch mal aktualisiert (v1.7.1-r2769). Mit dieser Version ist es nun relativ einfach möglich, mehrere PHP-Versionen gleichzeitig nutzen zu können. :)


    Kurzanleitung:

    • installieren Sie irgendwo auf dem Server Ihre zusätzlichen PHP-Binaries (nur die CGI/FCGI-Variante ist notwendig).
      Beispiel: Source für php 5.5.9 irgendwo entpacken, mit "configure --prefix=/opt/php-5.5.9" compilieren und in o.g. Pfad installieren (dann kollidiert das nicht mit anderen PHP-Versionen)
    • Datei /usr/lib/liveconfig/lua/custom.lua anlegen bzw. folgende Zeile hinzufügen:

      Code
      LC.web.addPHP("php55", "/opt/php-5.5.9/bin/php-cgi")


      Der erste Parameter enthält das zu verwendende Versionkürzel (bei "php55" wird die Webspace-spezifische Konfiguration dann in ~/conf/php55 geschrieben); der zweite Parameter ist der Pfad zum CGI-Binary.

    • Der Aufruf "liveconfig --diag" sollte nun die automatisch erkannte PHP-Version sowie die zusätzlich installierten Versionen anzeigen.
    • LiveConfig neu starten.
    • Wird nun irgendeine Webspace-Konfiguration neu geschrieben (z.B. nach Änderung der Web-Einstellungen oder an php.ini-Werten), dann pflegt LiveConfig automatisch auch die php.ini sowie einen php-fcgi-starter für die zusätzlichen Versionen mit.
    • Um dann in einem Webspace z.B. PHP 5.5.9 zu verwenden, reicht folgende Zeile in einer .htaccess:

      Code
      FcgidWrapper /var/www/web1/conf/php55/php-fcgi-starter .php



    In unseren Tests lief soweit alles einwandfrei durch; falls irgendwas haken sollte, geben Sie bitte eine kurze Rückmeldung.
    Ab v1.7.2 werden die zusätzlichen Versionen dann auch in der LC-GUI mit angezeigt, so dass Anwender auch dort umschalten können.


    Alternativ zur FastCGI-Variante kann man übrigens mittels zusätzlicher suPHP-Handler analog auch suPHP nutzen. Der Benutzer muss dann aber mittels suPHP_ConfigPath selbst den Pfad zur jeweiligen php.ini mit in der .htaccess angeben.


    (ich glaube übrigens, dass man für die .htaccess hier die Berechtigung "AllowOverride FileInfo" (oder Options) braucht, hab' das noch nicht im Detail durchgetestet)


    Viele Grüße


    -Klaus Keppler

    Danke für den Hinweis!
    Um das kurzfristig zu beheben, öffnen Sie bitte die Datei /usr/lib/liveconfig/lua/apache.lua.
    In Zeile 30 fügen Sie folgende Zeile ein:

    Code
    local tonumber = tonumber


    In Zeile 1275 (nach der Zeile "local val, unit = ...") bitte folgende Zeile ein:

    Code
    val = tonumber(val)


    Starten Sie LC anschließend neu.


    Welchen Wert haben Sie für max_execution_time bzw. max_input_time für PHP eingerichtet? (suchen Sie bitte im betroffenen Webspace des Vertrags in ~/conf/php/php.ini nach diesen Werten).


    Besten Dank schon mal!


    -Klaus Keppler