Beiträge von ehlers

    Statt eines recht komplexen ip-tables/ip rule/ip route Konstrukt (wobei ich mangels Know-How dir auch nicht helfen kann), würde ich versuchen im Python-Programm direkt die unterschiedlichen Source-IPs zu nutzen. Leider ist das bei den meisten Bibliotheken nicht einfach. Für requests gibt es die Hilfsbibliothek requests_toolbelt, die das erlaubt, siehe https://toolbelt.readthedocs.i…html#sourceaddressadapter.

    Hier eine kleine Anleitung, wie ich DNS-Probleme eingrenze, alles ohne Gewähr:


    Änderungen in den DNS-Einstellungen werden nicht sofort übernommen. Nach meiner Beobachtung werden die alle 10 Minuten in die Netcup-DNS-Server übernommen. Nach Änderungen sollte man also mindestens eine Viertelstunde warten. Weiterhin cachen DNS-Server die Einträge standardmäßig 24 Stunden. Änderungen im Netcup-DNS brauchen also eine ganze Weile, bis die bei den DNS-Servern ankommen. Allerdings fliegen die selten genutzten Einträge in den großen DNS-Servern wie die von Google oder Cloudflare recht schnell wieder raus, so dass man bei denen früher die Änderungen sieht.


    Das folgende habe ich im guten alten Windows-7 gemacht, sollte so ähnlich aber auch in anderen Betriebssystemen funktionieren.


    Ich teste hier die DNS-Aufösung von "netcup-wiki.de", das muss natürlich durch die gewünschte Domain ersetzt werden.


    1. Test, ob die DNS-Änderung schon beim lokalen DNS angekommen ist:

    Bash
    C:\>nslookup netcup-wiki.de
    Server:  UnKnown
    Address:  10.0.2.3
    
    Nicht autorisierende Antwort:
    Name:    netcup-wiki.de
    Address:  46.38.225.15

    Falls das OK ist, braucht man beim DNS nicht weiter suchen, dann muss man sich auf die Dienste-Konfiguration stürzen.


    2. Test, ob die DNS-Änderung schon bei Google angekommen ist:

    Bash
    C:\>nslookup netcup-wiki.de 8.8.8.8
    Server:  dns.google
    Address:  8.8.8.8
    
    Nicht autorisierende Antwort:
    Name:    netcup-wiki.de
    Address:  46.38.225.151


    Falls das OK ist, braucht der lokale DNS wohl noch etwas. Eventuell hilft es, den Internet-Router neu zu starten.


    3. Test, ob der Netcup-DNS die Domain überhaupt verwaltet

    Bash
    C:\>nslookup -query=ns netcup-wiki.de 8.8.8.8
    Server:  dns.google
    Address:  8.8.8.8
    
    Nicht autorisierende Antwort:
    netcup-wiki.de  nameserver = root-dns.netcup.net
    netcup-wiki.de  nameserver = third-dns.netcup.net
    netcup-wiki.de  nameserver = second-dns.netcup.net

    Falls man eigene Nameserver verwendet, sollten diese eingetragen sein, ansonsten die Netcup-Nameserver. Falls die Einträge nicht korrekt sind, ist die Domain vermutlich noch nicht zu Netcup geschwenkt. Dann "darf" man sich mit der Domain-Registrierung abärgern. Also z.B. mittels whois prüfen, ob die Domain richtig eingetragen ist.


    4. Root-Nameserver der Domain direkt abfragen

    Bash
    C:\>nslookup netcup-wiki.de root-dns.netcup.net
    Server:  root-dns.netcup.net
    Address:  46.38.225.225
    
    Name:    netcup-wiki.de
    Address:  46.38.225.151

    Falls dort die Daten nach einer kurzen Wartezeit, z.B. eine halbe Stunde, noch nicht angekommen sind, würde ich den Netcup-Support kontakten.

    Hallo,


    hier ein bash script, dass die Datenrate aus /proc/net/dev errechnet, den Output mußt du an deine Anforderungen anpassen.


    Ich habe normalerweise 15-25 Pakets/sec, größtenteils ARP und IPv6 Neighbor Discovery. 100 Pakete/sec sind nicht normal.


    Hier meine Tagesübersicht an empfangenen Paketen:

    net02.1day.png


    Wie aRaphael schon vorgeschlagen hat, würde ich den Support kontaktieren. Du kannst da selber wenig machen, es sei dein Server sendet die ARPs.

    Für Webcrawler, die sich halbwegs vernünftig verhalten, gibt es robots.txt.


    Um anderen Zeitgenossen nicht zu viel Unsinn zu erlauben, nutze ich Rate Limiting. Ich prüfe, was bei normaler Nutzung an Requests auflaufen, nehme das mal 3 und konfiguriere das als Ratelimit. Hauptsächlich nutze ich das in Bereichen, wo ein Request recht viel Last erzeugt. Beim normalen Ausliefern von Dateien sind die Webserver derart performant, dass die nicht besonders schütze.


    Da mein Webserver im vServer läuft, habe ich da natürlich alle Freiheiten. Wenn du ein Webserver-Produkt nutzt, bist du da etwas eingeschränkter.

    Ich nutze Debian Buster und war mit dessen fail2ban nicht vollkommen glücklich. Ziemlich viele Loginversuche wurden nicht erkannt, Ich habe dann an den Rules herumgeschraubt, das hat dann einigermaßen gepasst. Ich finde die fail2ban-Lösung aber recht aufwendig. Der Openssh-Server hat keine wirklichen Performance-Probleme bei den "üblichen" Loginversuchen. Nur wenn das einer übertreibt sollte man ihn auf die Finger hauen.


    Ich habe also die fail2ban-Lösung durch ein RateLimit der Firewall ersetzt, hier ein Auszug meiner nftables Regeln:


    Code
    chain input {
        ct state invalid drop
        ct state { established, related } accept
        iif "lo" accept
        tcp dport { http, https } accept
        ip version 4 tcp dport ssh meter ssh4blocked size 1024 { ip saddr & 255.255.255.0 timeout 1h limit rate 1/minute burst 10 packets}  counter name "ssh_connections" accept
        ip6 version 6 tcp dport ssh meter ssh6blocked size 1024 { ip6 saddr & ffff:ffff:ffff:ff00:: timeout 1h limit rate 1/minute burst 10 packets}  counter name "ssh_connections" accept
        tcp dport ssh counter name "ssh_rate_limit" reject

    Die Syntax ist angepasst an die etwas angestaubte Version von nftables in Debian Buster, für aktuelle Versionen siehe https://wiki.nftables.org/wiki-nftables/index.php/Meters.


    Damit darf jedes /24 IPv4-Netz bzw. /56 IPv6-Netz einen ssh-Verbindungsaufbau pro Minute machen, der Burst von 10 erlaubt ein Überschreiten dieses Limits um bis zu 10 Verbindungsaufbauten. Alles was drüber liegt, wird von der Firewall abgeschmettert.


    Mit einem kurzen Script hole ich mir alle 3 Strunden eine Statistik:


    Bash
    conn=$(/usr/sbin/nft reset counter inet filter ssh_connections | awk '$1 == "packets" { print $2 }')
    [ -z "$conn" ] && exit 1
    rl=$(/usr/sbin/nft reset counter inet filter ssh_rate_limit | awk '$1 == "packets" { print $2 }')
    [ -z "$rl" ] && exit 1
    logger -p auth.info -t nftables "SSH connections: $conn, rate limit exceeded: $rl"


    Hier mal ein Auszug aus dem Log:

    Code
    Nov 17 15:00:01 netcup nftables: SSH connections: 43, rate limit exceeded: 0
    Nov 17 18:00:01 netcup nftables: SSH connections: 68, rate limit exceeded: 0
    Nov 17 21:00:01 netcup nftables: SSH connections: 35, rate limit exceeded: 4
    Nov 18 00:00:01 netcup nftables: SSH connections: 72, rate limit exceeded: 4
    Nov 18 03:00:01 netcup nftables: SSH connections: 40, rate limit exceeded: 0
    Nov 18 06:00:01 netcup nftables: SSH connections: 105, rate limit exceeded: 98
    Nov 18 09:00:01 netcup nftables: SSH connections: 80, rate limit exceeded: 0


    Ich bekomme also so etwa 80 Requests/3 Stunden, die vom ssh-Server bearbeitet werden müssen, heftigere Scans blockt die Firewall ab. Das ganze auf dem Standardport 22. Diese recht simple Konfiguration hat sich bislang bestens bewährt. Die "normalen" Scans kann der ssh-Server locker ab, heftigere Scans filtert die Firewall weg.

    Prinzipiell wäre es smarter das zu splitten, aber dann fühle ich mich blöd wenn bspw. Minecraft für einige Monate uncool ist aber ich dann trotzdem noch extra für einen Server reinbuttere.

    Auch die Root-Server bekommt zu mit unterschiedlichen Vertragslaufzeiten (1, 6, 12 Monate). Wenn du unsicher bist, kannst du ja mit einem 1-Monats Vertrag anfangen.

    Ich würde keine große Arbeit in die SCP-Statistiken stecken. Sie sind als Überblick ganz nützlich, für genauere Statistiken schlage ich die Installation von Servermonitoring-Software wie munin vor, bei größeren Anforderungen gerne auch grafana/prometheus.

    Mit den obigen Befehlen änderst du nur die Destination IP in deinen Paketen, dein Router versucht dann die Pakete direkt an dein Handy zurückzusenden ohne die Rückroute über deinen Server zu nutzen. Du musst auch noch die Source IP über POSTROUTING auf die des Servers ändern.

    Skl Hast du das schon probiert?


    Hier ein Artikel, wie man die Weiterleitung mit iptables realisieren kann:

    http://jensd.be/343/linux/forw…t-using-nat-with-iptables

    Git's eigentlich einen Artikeln, weche Regeln hier so gelten? Ich habe nichts gefunden.


    Ich würde sowas im Forum Informationen / Aktuelle Informationen als angepinnten Artikel erwarten.

    Seit dem letzten Herunterfahren/Neustart habe ich diese Meldung auch, vorher war sie nicht da. Merkwürdig ist, dass die Meldung direkt nach dem Start weg ist, sie taucht erst nach einiger Zeit auf. Habe natürlich den Status des qemu-guest-agent kontrolliert, sieht sauber aus.


    Da der qemu-guest-agent wohl nicht erkannt wird, habe ich ihn gerade deinstalliert. Ich habe die erweiterten Features im SCP eh nicht genutzt.

    Da mein E-Mail Server ebenfalls auf der Maschine liegt, kann ich auch keine Mails vom Support empfangen.

    Das halte ich für keine gute Idee. Ich würde die email-Adresse für den Supportkontakt in den CCP-Stammdaten auf eine Adresse setzen, die komplett unabhängig von Netcup ist. Also irgendwo eine kostenlose email-Adresse holen und diese im CCP eintragen, das kannst du ja auch jetzt noch machen.


    Damit du nicht dauernd diese separate email-Adresse prüfen musst, kannst du ja eine Weiterleitung an deine normale email-Adresse einrichten. Hauptsache die eMails werden nach der Weiterleitung nicht sofort automatisch gelöscht, damit du auf die auch im Fehlerfall noch zugreifen kannst.

    Ich finde man sollte zwischen Sicherheit und Schutz vor unnötiger Last unterscheiden.


    Ein Server muss sicher sein, egal wie der Angreifer versucht reinzukommen. Ein Änden des SSH-Ports ändert nach meiner Einschätznung nicht die Sicherheit. Es macht nur die Anzahl der dummen Angriffe etwas geringer, die sollten aber eh keine Chance haben.


    Aber ein Server soll auch nicht mit unnötigen Aufgaben belastet werden. Gut, die SSH-Scans erzeugen wohl keine große Last. Aber es ist auch lästig, wenn die Logfiles mit Einträgen von Einbruchsversuchen geflutet werden.


    Allerdings macht die Nutzung eines alternativen Ports die gewollte Nutzung etwas umständlicher. Aus meiner Sicht sollte man beide Aspekte abwägen und sich entsprechend entscheiden, beide Alternativen sind überlegenswert.

    Du hast dich sehr unglücklich ausgedrückt. Du sprichst in der Überschrift und im ersten Beitrag davon deine Domain nach Netcup umzuziehen. Das versteht tab und ich so, dass du die Domain bei deinem alten Registar kündigen und zu Netcup unziehen willst. Dabei würden Kosten auflaufen, eine Domain kostet halt. Bei deinem Produkt sind allerdings 12 .de Domains schon inklusive.


    Deinem zweiten Beitrag interpretiere ich so, dass du deine Domains beim bisherigen Registar behalten willst, nur die Webseite soll zu Netcup umziehen. Das nennt Netcup "externe Domains" und bis zu 12 sind in deinem Produkt kostenlos, egal ob DE, ORG, COM, ....


    Doku: https://www.netcup-wiki.de/wiki/Produkte_CCP#Externe_Domains


    Da ich selber keinen Webspace nutze, kann ich nicht weiter ins Detail gehen.

    Keine Sorge. Als ich auf meinen VPS mit der Produktbezeichnung VPS 2000 G8 Plus den weiter oben gemachten Test durchgeführt habe, hat sich mein Server währenddessen eher gelangweilt.

    Du teilst aber nicht nur CPU, sondern auch Festplatte und Netzwerk mit den anderen VPS. Wenn du unnötig Last auf der Festplatte erzeugst, bremst du andere damit aus. Das ist auch der Hintergrund des Posts von Bodenhaltung .


    Ansonsten finde ich, dass netcup etwas Mitschuld trägt. Wenn die zumindest eine grobe Aussage zu IOPS machen würden, wären die vielen Benchmarks überflüssig. So hat man jetzt zumindest einen Anhaltspunkt.

    Netcup hat keinen eigenen DYNDNS-Dienst.


    Prinzipiell gibt es 3 Lösungen:

    1. Du nutzt einen beliebigen DYNDNS-Dienst und setzt einen CNAME für einen Namen in deiner Domain, der auf die DYNDNS-Domain zeigt.
    2. Falls du nicht Netcup als DNS-Registar nutzt, sondern einen externen und dieser externe DNS-Registrar einen DYNDNS anbietet, kannst du den natürlich nutzen.
    3. Selber bauen, schau mal bei https://forum.netcup.de/entwic…12-eigener-dyndns-dienst/ vorbei, da wurde ausführlich diskutiert wie man das macht. Das wird natürlich einiges an Arbeit machen.