Beiträge von antondollmaier

    Wie will man das zu 100% verhindern? Allein z.B. WordPress müllt die Postfächer der Kunden teilweise richtig zu. Viele Kunden sichern Kontaktforumlare z.B. nicht gegen Spam ab und sind dann auch noch so "blöd" und melden diese Mails als Spam bei hotmail, statt die Formulare zu deaktivieren oder mit einem Captcha gegen Spam abzusichern. Bei Kommentaren das gleiche.


    "Ihre Webseite versendet Spam-E-Mails an Hotmail, wir haben diese daher gesperrt. Bitte sorgen Sie durch geeignete Schutzmaßnahmen dafür, dass keine Spam-E-Mails mehr verschickt werden, oder nutzen einen externen SMTP-Server, so dass diese Spam-Mails nicht mehr über unsere Mailserver verschickt werden."


    Zitat

    Das selbe gilt auch für Weiterleitungen: es gibt Kunden, die lassen sich alles mögliche ungefiltert(!) an deren Mailadressen weiterleiten, z.B. hotmail. Somit wird natürlich auch der Spam massenweise ungefiltert weitergeleitet. Auch hier gibt es dann leider "Deppen", welche die bereits weitergeleiteten Mails als Spam bei hotmail melden, statt die entsprechenden Filter in LiveConfig zu aktivieren.


    LCDEFAULTS: mail.forwards.blacklist


    Zitat

    Bei einer Handvoll Kunden kann man ggf. noch "aufpassen", bei tausenden wird es schon schwierig. Nicht das wir ein Problem mit hotmail und Co hätten, aber hin und wieder trifft es auch mal einen unserer Server.


    Wie gesagt, wir sind seit 1,5 Jahren an genau dem Thema dran.

    Für die nächste Rundmail an die PHP v5 Kunden wollte ich mir noch die LC-Datenbank anschauen
    ob man nicht mit 1-2 Queries alle E-Mail-Adressen von Kunden mit aktivem PHP 5.x Webspace erhält.


    Schleife:


    SQL
    SELECT * FROM CUSTOMERS LEFT JOIN CONTACTS ON (CUST_OWNER_C=CON_ID AND CON_CUSTOMERID=CUST_OWNER) WHERE CUST_OWNER=1


    für jeden Kunden:

    SQL
    SELECT * FROM SUBDOMAINS
    LEFT OUTER JOIN DOMAINS ON SD_DOMAINID=D_ID
    LEFT OUTER JOIN HOSTINGCONTRACTS ON D_CONTRACTID=HC_ID
    LEFT JOIN WEBRUNTIMES ON ( SD_PHPVERSIONID =WR_ID OR ( SD_PHPVERSIONID IS NULL AND HC_SERVERID=WR_SERVERID AND WR_PRIO=0 AND WR_FOUND=1))
    LEFT JOIN SERVERS ON ( SRV_ID=HC_SERVERID)
    WHERE (SD_WEBCONFIG IN (1,5) OR SD_SSL_WEBCONFIG IN (1,5)) AND HC_LOCKED & 1 = 0 AND HC_RCIDROOT IS NULL AND HC_CUSTOMERID=%s ORDER BY HC_NAME ASC, D_NAME ASC, SD_HOST ASC


    Läuft hier in einem Python-Skript, das dann die tatsächlich unsicheren PHP-Versionen noch im Code ausfiltert.

    Hintergrund ist: wenn Kunden über den Aufruf von sendmail E-Mails verschicken ohne einen korrekten "Envelope-From" (Paramater "-f") anzugeben, dann gehen diese mit dem Absender <vertrag>@<hostname> raus.


    Ein verflixxtes anderes Config-Panel hat dafür früher[tm] einen Alias erstellt, so dass die eingehenden Mails dann an den Kunden weitergeleitet wurden.


    Nachdem LC die Mailadresse beim Kunden eh optional hat - und Sendmail auch Teufelszeug ist (also, das Sendmail-Binary! Wer Sendmail statt Postfix/Exim einsetzen will, soll das gerne weiterhin tun) - ist das eigentlich die sauberste Lösung.


    Mir tun jetzt nur die Kunden leid, die so falsch konfigurierte WP-Installationen aufweisen und damit keine Mails mehr an HostEurope-Kunden senden können. Da schlägt nämlich dann die Absender-Validierung endgültig fehl.

    Und egal welcher Resolver es wird: er sollte DNSSEC unterstützen.


    Das ist bei BIND und Unbound der Fall, aber ja - sollte 2021 explizit sichergestellt werden.


    Zitat

    (persönlich bevorzuge ich die Resolver des RZ bzw Uplinks sofern diese zuverlässig sind)


    Mit dem Nachteil, dass deren Cache dann natürlich zwar größer ist, aber auch nicht beeinflusst werden kann.


    Wir haben im Netz eigene Resolver mit Unbound/dnsdist/corosync am laufen, um keine Abhängigkeiten zu haben.

    Welche Resolver / Einträge für resolv.conf sind zu empfehlen?


    Einen DNS-Resolver, der schnell und zuverlässig arbeitet:


    - die Resolver, die vom RZ/Provider bereitgestellt und gepflegt werden. Dort anfragen.
    - einen der bekannten öffentlichen DNS-Resolver, wie Google/Cloudflare/Quad9, mit den dazugehörigen Nachteilen (gefilterte Einträge, Datenschutz, ...)
    - sich selbst mit Bind/Unbound einen eigenen Resolver aufsetzen und diesen über 127.0.0.1/::1 ansprechen


    Welche Option "die beste" ist, muss jeder für sich entscheiden.

    Da lässt sich nur schwer ein Kunde ausfindig machen


    Entweder die Mail kommt via php mail(), dann steht die UID mit im Log:


    Code
    Feb  9 12:34:22 venus postfix/pickup[32433]: 36BEA68B3DB: uid=1153 from=<web800>


    Hier kann man auch einen Sendmail-Wrapper verwenden, um die mail()-Aufrufe gezielt zu loggen.


    Oder die Mail wurde per SMTP auf localhost:25 eingeliefert - dann wird es in der Tat etwas komplizierter. Passiert aber denkbar selten - und von außen gibt es die SASL-Authentifizierung, um den Absender zu identifizieren.

    "journalctl -u logrotate.service"


    Logs prüfen, Problem identifizieren, ggf. via "systemctl start logrotate.service" manuell ausführen.


    Wenn das Quota erreicht ist, kann gzip nicht komprimieren - das kann dann schon das gesamte Logrotate mit Exit-Code 1 beenden lassen.

    Bestimmt wird es noch etwas zu Lebzeiten! :confused:


    Im alten Handbuch (Seite 95) steht ja auch "In Kürze wird es für LiveConfig eine Erweiterung der SOAPAPI geben, mit der Sie diesen Vorgang aber teilweise automatisieren können" wovon man bisher nichts sah.


    Admin -> Reseller-Vertrag bearbeiten -> Tab Domains -> DNS-Vorlage auswählen.


    Reseller können dann genau diese Vorlage nutzen, um eigene Domains auf den Nameservern zu erstellen.


    Validierung gibt es IMHO nicht, so dass "gmx.de" durchaus auch angelegt werden könnte (Authoritive Nameserver sollten aber sowieso nicht als Recursor genutzt werden).

    ja, das ist der korrekte Weg, siehe auch "man lcphp":


    Bei der IPv4 wird wohl die erste IPv4 in der Liste genommen (oder Haupt-IPv4 vom Server) seitens Liveconfig/BIND9.
    Dagegen bei IPv6 die letzte IPv6 aus der Liste wenn eine Meldung an PowerDNS raus geht seitens Liveconfig/BIND9..


    Das ist das reguläre Verhalten bei Source-Adress-Auswahl, wenn die Adresse nicht explizit gesetzt wird.


    Für IPv6 kann eine IP mit "preferred_lft 0" auf "nicht für ausgehende Verbindungen nutzen" gesetzt werden. Ob das dann das Mail-Outbound-IP-Szenario weiterhin funktioniert, weiß ich adhoc nicht.

    Ich kenne Ihre Server nicht, aber dieses Verhalten basiert vermutlich auf einer lokalen "Spezialkonfiguration". Der Aufruf von logrotate (via cron.daily) erfolgt normalerweise um 06:25 (siehe /etc/crontab). Wenn bei Ihnen alles um 00:00 statt findet, dann passiert da vielleicht zu viel gleichzeitig.



    Wie ich kürzlich (aka über Weihnachten) gelernt habe: es gibt in Debian Buster neben dem cron.daily-Cronjob auch einen logrotate.timer:


    Code
    ~# systemctl list-timers
    NEXT                         LEFT       LAST                         PASSED       UNIT                         ACTIVATES
    Wed 2020-12-30 00:00:00 UTC  11h left   Tue 2020-12-29 00:00:02 UTC  12h ago      logrotate.timer              logrotate.service


    Das erklärt damit die 00:00 Uhr Ausführungen.


    Fehlersuche sollte jedoch komplett im Journal über "journalctl -u logrotate.service" möglich sein.

    Der Hintergrund ist, wenn sich ein Kunde einen Spammer-Virus einfängt, schafft er es u.U. den Server (bzw. die IP) über Nacht auf alle möglichen Blacklists zu schießen.
    Im Protokoll kann ich relativ schnell erkennen, woher die Spams kommen und könnte die Situation dann relativ minimalinvasiv entschärfen, indem ich für dieses Postfach ganz einfach den Mailversand stoppe bis der Kunde seinen PC gefunden und wieder im Griff hat.



    Wir setzen ein neues Passwort für das Postfach und informieren den Kunden.


    Somit kann dieser selbst aktiv werden und es muss keine Entsperrung vorgenommen werden.


    Auch bekommt der Kunde aktiv mit, dass er ein Problem hat - und nicht erst, wenn er zufälligerweise eine Mail verschicken will.

    Zitat

    Leider kein Erfolg Bind nutzt immernoch die Anderen IPs für anfrage und notify


    Sprich, wenn BIND ein ausgehendes Paket sendet, wird dafür die .1 als Source-IP verwendet?


    Es soll aber die .4 genutzt werden?



    Das ist kein BIND-Problem, sondern ein Linux-Problem, insbesondere dann, wenn das Programm, das die ausgehende Datenverbindung initiiert, die Quell-IP nicht explizit angibt.


    Lässt sich daher so nicht lösen.