Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Mysql vor DOS schützen?

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] Mysql vor DOS schützen?

    Hallo Leute,

    mir wurde vor kurzem für knapp 2 Stunden (zum Glück früh morgens) die Website "lahmgelegt". Da ich einige Scripte auch per Command line laufen lasse, wurde ich per Email minütlich über auftretende Fehler informiert.

    Erste Meldung in der Email lautet:
    PHP Warning: mysql_connect(): Too many connections in /var/www/p....

    Meine max_connections ist auf 151 und die meißten Scripts laufen in weniger als 10 ms durch und mysql_close wird auch aufgerufen. Ich habe noch keine 100 Nutzer gleichzeitig aufm Server und schon gar nicht dermaßen viele Verbindungen gleichzeitig offen.

    Ich vermute dahinter eher eine Mini-DOS-Attacke von ... "Nicht-Freunden"

    In /var/log/mysql.* und auch nicht in /var/log/mysql/* steht leider nichts drin.

    Wie kann ich mich richtig vor derartigen Anfragen schützen?

    Klar, ich könnte eine Firewall nutzen. Ich könnte auch die Anfragen der letzten 10 min in einer anderen externen DB speichern oder in einer Datei und dann pro Minute maximal 60 Connects bzw max 3 gleichzeitige Verbindungen pro IP nutzen. Oder ...

    Mir wird bestimmt noch mehr einfallen. Aber wie löst man derartige Schwierigkeiten am besten?

    Ich bin dankbar für alle Hinweise

    Gruß,
    tobobant

  • #2
    Mein Hoster sperrt als DOS erkannte requests gleich auf dem Haupt-Router aus. Bevor du dir nen Kopp machst, frag da lieber nach, was die schon unternommen haben.

    Kommentar


    • #3
      Ich bin bei OVH. Alle Infos die ich jetzt bei google zu "OVH DOS sperre" gefunden hab, lauten nur: OVH sperrt keine IPs am Router.

      Also fällt diese Option für mich flach

      Kommentar


      • #4
        Hast du überhaupt irgendwelche Anzeichen dass das Problem von außen herbeigeführt wurde? Erhöhter Traffic, mehr Zugriffe als normal, eigenartige Anfragen im Web log, mehr Queries, ungewöhnliche Log Einträge, irgendwas? Das ist nämlich so ein typisches Problem von MyIsam. Wenn du in einer Live-Datenbank ein Query hast der ein paar Minuten länger läuft passiert genau das. Der Query blockiert andere Queries und irgend wann hast du 130 Verbindungen die mit warten beschäftigt sind.

        Kommentar


        • #5
          Kann ich bestätigen, ist mir vor 2 Tagen passiert. Eine PHP-Script, mit dem ich seriell alle Zeilen einer 2-Mio-Tabelle geprüft und mit anderen Daten abgeglichen habe, und das ggf. ein Update auf die gelesene Zeile durchführt hat innerhalb von 2 min so viel andere Zugriffe von draußen blockiert, dass ich beim Versuch, PMA zu öffnen die Max-Conn-Fehlermeldung bekommen habe. Nach weiteren 2 min ging's dann wieder.

          Kommentar


          • #6
            Vlt. wars einfach nur nen Webcrawler? Da kommen in kürzester Zeit ziemlich viele Verbindungen auf. Das muss aber nicht gleich ne DOS Attacke sein. Schau doch mal in die Logs was für nen User-Agent/IP die Requests hatten.

            Kommentar


            • #7
              Ich denke ich habe den Fehler gefunden:

              Download-Manager, die zuvor generierte Links versuchen runterzuladen, und bei denen die Links durch zu langes Warten abgelaufen sind und bei denen die Anzahl der Versuche bei einem Fehler auf einen sehr hohen Wert oder unendlich gestellt worden sind, rufen ein verhältnismäßig aufwendiges Query auf (ca 0,2 sek bearbeitungszeit pro anfrage).
              Wenn dann noch mehrere Verbindungen pro Datei eingestellt wurde, dann ist schnell mal die max. Anzahl an Verbindung zur MySQL DB erreicht.

              Ich hab das Query jetzt separat geschützt, dass derartige Fehler nicht mehr auftreten können und zudem die Verbindungen zur DB auf 1000 erhöht. Im Falle des Falles wird somit höchstens der DB Server überlastet, aber alle Querys sollten erfolgreich durchgehen. Ich prüfe sowieso mehrfach täglich die RTM werte und wenn da was auffällig ist, kann ich sofort einschreiten.

              Danke für eure Hinweise!

              Gruß,
              tobobant

              Kommentar


              • #8
                nimm in deine Geschäfts- / Nutzungsbedingungen unbedingt ein Verbot von DL-Managern auf ... oder hast du soo viele Downloads ?

                Kommentar

                Lädt...
                X