GodLike: (FTP-)Sicherheit

Hallo,

hab gerade nach langer, langer Zeit(viel zu langer Zeit, wie ich jetzt weiss) meine Logdateien wieder mal gecheckt und mit erschrecken feststellen müssen das irgendjemand schon seit 1 Monat alle paar Tage 8 Stunden am Tag versucht sich Zutritt zu meinem FTP-Server zu verschaffen. Wie es scheint hat er zwar keinen Rechten Plan was die User namen angeht, da die meisten willkürlich(wie es mir scheint) gewählt wurden.

Der/Die "Angriffe" waren bisher (Gott sei Dank) erfolglos.
Aber ich mache mir trotzdem Sorgen und Gedanken ob mein (FTP-)Server (noch) sicher ist.

Bisher ist mein FTP so geregelt das ein anonymous-Zugang auf das Verzeichnis /var/ftp zugreift(Die öffentlichen Daten) und ein Benutzer mit Passwort auf das Verzeichnis /var/www/ zugreift(dort liegt meine Seite(n)).

Der User mit Passwort hat die vollen Rechte, bei erfolgreicher Anmeldung könnte er meine ganze Seite ins Nirvana schicken mit allen Games und Videos(ich habe ein kleines Video- und Gamesportal). Bisher sind die auch nicht bei meinen Backups dabei.
Der User wurde deshalb von mir gewählt weil Apache unter diesem Benutzer läuft und dem auch das komplette /var/www/ abwärts gehört.

Also ist mein (FTP-)Server sicher?
Ich weis die Frage klingt wie "Wie heisst du?", die logische Antwort wäre "Nein, dein Server ist genauso sicher und unsicher wie jeder andere vergleichbare Server".

Deshalb will ich meine Frage anders formulieren: Wie sieht ein halbwegs sicherer FTP-Server aus?

GodLike

  1. hi,

    Deshalb will ich meine Frage anders formulieren: Wie sieht ein halbwegs sicherer FTP-Server aus?

    Abgeschaltet.

    --roro

    1. hi,

      Deshalb will ich meine Frage anders formulieren: Wie sieht ein halbwegs sicherer FTP-Server aus?

      Abgeschaltet.

      Glückwunsch der Kandidat hat 100 Punke :)

      Natürlich ein abgeschalteter Server ist sicher ... bis einer mit dem Hammer kam ...

      GodLike

      1. hi,

        Deshalb will ich meine Frage anders formulieren: Wie sieht ein halbwegs sicherer FTP-Server aus?

        Abgeschaltet.

        Glückwunsch der Kandidat hat 100 Punke :)

        Natürlich ein abgeschalteter Server ist sicher ... bis einer mit dem Hammer kam ...

        Ja was hast Du denn als Antwort erwartet? Einen Workaround gegen Brut-Force-Attacks? Sei sogut und konsultiere dazu das Handbuch zu Deinem FTP-Server.

        --roro

  2. Hi!

    Deshalb will ich meine Frage anders formulieren: Wie sieht ein halbwegs sicherer FTP-Server aus?

    Also abgesehen davon, daß das FTP-Protokoll schon verdammt alt ist und nicht mehr als sicher angesehen werden kann, gibt es da schon einiges, was du machen kannst.
    Wenn du wirklich was Sicheres suchst, dann solltest du auf FTP verzichten und etwas anderes wählen.
    Vielleicht SCP oder vielleicht mit "Secure FTP" arbeiten (nicht zu verwechseln mit SFTP).
    Da wird mit einer starken Verschlüsselung gearbeitet, was bei FTP nicht der Fall ist.
    Dort werden alle Daten (und Passwörter) unverschlüsselt über das Netz geschickt.

    Naja, bei deinen "Angriffen" handelt es sich scheinbar um Brute-Force-Angriffe.
    Das heißt, daß jemand durch wildes (oder systematisches) Ausprobieren versucht, Username und Passwort zu erraten.
    Dagegen kannst du dich ein wenig absichern, sofern du Zugriff auf die Konfiguration des FTP-Servers hast.
    Du kannst es dem Angreifer erschweren, indem beispielsweise nur drei Loginversuche hintereinander möglich sind.
    Danach wird die Verbindung dann automatisch getrennt.
    Erneuter Verbindungsaufbau zum Server dauert dann natürlich ein wenig.
    So ist es dann nicht möglich, in allzu kurzer Zeit viele Rateversuche zu starten.
    Außerdem kannst du den Server so konfigurieren, daß z.B. nach drei fehlgeschlagenen Logins von ein und derselben IP-Adresse, diese für einige Zeit gesperrt wird (z.B. eine halbe Stunde).
    Damit der Angreifer eine neue IP-Adresse bekommt, müßte er dann seine Internetverbindung trennen und diese erneut herstellen, damit ihm sein Provider eine neue IP zuweist (sofern er keine statische IP hat).
    Es gäbe natürlich auch noch die Möglichkeit mit Proxies zu arbeiten oder eine IP-Adresse zu spoofen, aber das wollen wir hier mal außen vor lassen...
    Bei solchen Angriffen handelt es sich mit um Script-Kiddies, die einfach ein wenig "spielen" wollen.
    Wenn du es ihnen zu schwer machst, werden sie sicherlich schnell aufgeben...
    Im Prinzip bringt Brute-Force immer 100%igen Erfolg. Es kommt halt nur auf den Zeitfaktor an...
    Wenn es nicht möglich ist, per Script zigtausend Rateversuche hintereinander abzugeben, sondern vielleicht nur 3 pro Minute, dann senkst du damit die Möglichkeit, die Daten zu erraten beträchtlich.
    Ich hatte früher auch oft solche Angriffsversuche.
    Meist von Deppen, die nach FTPs gescannt haben, um dann Warez rauf zu laden.
    Mit Hilfe eine zeitlichen IP-Sperre war das Thema eigentlich immer recht schnell gegessen.

    Naja und dann kannst du natürlich noch zusehen, daß Anonymous-Login nicht erlaubt ist. (Anonymous-User sollten außerdem niemals über Schreib- oder gar Löschrechte verfügen!)
    Dann solltest du Passwörter vergeben, die nicht leicht zu erraten sind.
    Ein Passwort wie "123" oder "Passwort" bietet keinen Schutz.
    Auch solltest du auf Paßwörter verzichten, die man in einem Wörterbuch finden.
    Ein "Dictionary-Attack" ist sozusagen ein systematischer Brute-Force-Angriff.
    Hier wird kein wildes Raten eingesetzt, sondern das Angriffsprogramm wird mit einem Wörterbuch gefüttert.
    Diese Wortlisten werden dann durchprobiert (mit Variationen, z.B. in Groß- und Kleinschreibung).
    Du solltest also dafür sorgen, daß User ihre Passwörter nicht selbst wählen dürfen.
    Vergib die Passwörter selber. Setze keine Passwörter mit weniger als sechs Zeichen ein.
    Nutze Kombinationen aus Buchstaben und Zahlen, möglichst noch mit Sonderzeichen.
    Setze Passwörter mit begrenzter Haltbarkeit ein bzw. zwinge den User das Passwort nach einer bestimmten Zeit zu wechseln.
    Es gibt Programme wie "John the Ripper" oder "Crack", womit du die Sicherheit von Passwörtern überprüfen kannst.
    Auch im Internet findest du Websites, die diesen Service (online) bieten.

    Was noch?
    In jedem Fall solltest du die Rechte vernünftig setzen und den Usern nicht mehr zugestehen als unbedingt notwendig.
    Bietest du nur Files zum Download, die sich auch nicht ändern, könntest du diese sogar noch auf einer Partition ablegen, die nur readonly gemountet wird.

    Und in jedem Fall solltest du dir überlegen, ob es nicht möglich ist, auf FTP komplett zu verzichten und SecureFTP einzusetzen.

    Schöner Gruß,
    rob

    1. Moin!

      Also abgesehen davon, daß das FTP-Protokoll schon verdammt alt ist und nicht mehr als sicher angesehen werden kann, gibt es da schon einiges, was du machen kannst.

      Wenn ich da mal direkt einhaken darf:

      Wieso machst du irgendeine Sicherheit eines Protokolls an dessen Alter fest? Weißt du, wie alt HTTP ist? Da ist man über Version 1.1 auch nicht hinausgekommen, trotzdem ist an diesem Protokoll hinsichtlich der Sicherheit noch keinerlei Kritik laut geworden.

      Das gleiche gilt für FTP: Das Protokoll an sich ist prima. Und es ist auch sicher - es macht ganz sicher das, was man von ihm verlangt.

      Nur ein Punkt ist halt blöd: Es ist ein Klartextprotokoll ohne Verschlüsselung, weshalb übermittelte Usernamen und Passworte eben sehr leicht mitgelesen werden können - wenn der Angreifer denn über diese Macht verfügt.

      Da aber trotzdem eigentlich alle Hostinganbieter ihren Webspace-Kunden immer noch FTP-ZUgang anbieten, scheint dieses Angriffsszenario nicht allzu häufig aufzutreten.

      Wenn du wirklich was Sicheres suchst, dann solltest du auf FTP verzichten und etwas anderes wählen.
      Vielleicht SCP oder vielleicht mit "Secure FTP" arbeiten (nicht zu verwechseln mit SFTP).
      Da wird mit einer starken Verschlüsselung gearbeitet, was bei FTP nicht der Fall ist.

      Die Verschlüsselung auf dem Übertragungsweg ist nur ein Faktor von "Sicherheit". Denn auch mit supertoller Verschlüsselung ist es für den Angreifer, wie er jetzt beschrieben wurde, absolut identisch schwierig, durch Ausprobieren von Usernamen und Passwörtern Zugang zu erlangen.

      Dagegen hilft nur, keine erratbaren Passwörter zu benutzen. Wenn man das aber tut, ist man auch mit normalem FTP gut gegen diese Angriffsform gerüstet.

      Im Prinzip bringt Brute-Force immer 100%igen Erfolg. Es kommt halt nur auf den Zeitfaktor an...

      Jaja, aber stelle den Zeitfaktor mal nicht so in Abrede! Der ist durchaus relevant, denn wer wartet denn schon gerne länger, als das Universum bis jetzt alt geworden ist?

      Und in jedem Fall solltest du dir überlegen, ob es nicht möglich ist, auf FTP komplett zu verzichten und SecureFTP einzusetzen.

      Es gibt nicht nur SFTP, es gibt auch FTPS. Nur bringt das im Vergleich zu FTP und dessen Resistenz gegen Brute Force keinen Unterschied.

      SFTP hingegen hängt meist an einem SSH-Zugang mit dran - und Shellzugriff will man für unbedarfte Benutzer nun erst recht vermeiden. Vermutlich auch deshalb sind FTP-Zugänge noch so beliebt.

      - Sven Rautenberg

      --
      "Love your nation - respect the others."
      1. Hi!

        Wieso machst du irgendeine Sicherheit eines Protokolls an dessen Alter fest?

        Es war nicht so gemeint, daß die Sicherheit des Protokolls mit dem Alter zu tun hat. Aber mittlerweile gibt es halt andere Protokolle, mit denen es möglich ist, die Daten auch verschlüsselt zu übertragen, wodurch das Sniffen dann nichts mehr bringt.

        Im Prinzip bringt Brute-Force immer 100%igen Erfolg. Es kommt halt nur auf den Zeitfaktor an...
        Jaja, aber stelle den Zeitfaktor mal nicht so in Abrede! Der ist durchaus relevant, denn wer wartet denn schon gerne länger, als das Universum bis jetzt alt geworden ist?

        Ja, natürlich ist der Zeitfaktor relevant. Das habe ich doch geschrieben. Aus diesem Grund wäre hier ja auch eine Zeitsperre sinnvoll (und ein längeres Passwort, daß man nicht in einem Wörterbuch findet).
        Wenn nach drei Loginversuchen die Verbindung getrennt wird oder die IP für einige Minuten gesperrt wird, dann ist es halt nicht mehr möglich, zigtausend Rateversuche in kurzer Zeit hintereinander zu starten, was somit die Sicherheit erhöht.

        Schöner Gruß,
        rob

        1. Moin!

          Wieso machst du irgendeine Sicherheit eines Protokolls an dessen Alter fest?
          Es war nicht so gemeint, daß die Sicherheit des Protokolls mit dem Alter zu tun hat. Aber mittlerweile gibt es halt andere Protokolle, mit denen es möglich ist, die Daten auch verschlüsselt zu übertragen, wodurch das Sniffen dann nichts mehr bringt.

          Sniffing war ja aber auch nicht geschildert. :)

          Im Prinzip bringt Brute-Force immer 100%igen Erfolg. Es kommt halt nur auf den Zeitfaktor an...
          Jaja, aber stelle den Zeitfaktor mal nicht so in Abrede! Der ist durchaus relevant, denn wer wartet denn schon gerne länger, als das Universum bis jetzt alt geworden ist?
          Ja, natürlich ist der Zeitfaktor relevant. Das habe ich doch geschrieben. Aus diesem Grund wäre hier ja auch eine Zeitsperre sinnvoll (und ein längeres Passwort, daß man nicht in einem Wörterbuch findet).
          Wenn nach drei Loginversuchen die Verbindung getrennt wird oder die IP für einige Minuten gesperrt wird, dann ist es halt nicht mehr möglich, zigtausend Rateversuche in kurzer Zeit hintereinander zu starten, was somit die Sicherheit erhöht.

          Sorry, aber ich widerspreche entschieden. Die Sicherheit wird durch solche Maßnahmen keinesfalls erhöht.

          Der einzige limitierende Faktor bei Brute Force sind die verfügbaren Ressourcen: CPU-Serverleistung und Bandbreite ins Internet. Denn wer es drauf anlegt, in kurzer Zeit zu bruteforcen, der wird kaum so idiotisch sein, das von zuhause mit seiner popeligen DSL-Leitung zu versuchen, sondern er wird Bot-Netze ansetzen. Und wahlweise massivst (bis zur Auslastung der Serveranbindung) oder eben subtil (von den unterschiedlichsten IPs, je IP aber nur mit wenigen Versuchen) vorgehen. In keinem Szenario dürfte die Antwortzeit des Servers (seien es Verzögerungen oder Sperren) irgendeine Relevanz haben.

          Wobei es beim "Aufmachen" von FTP-Accounts ja nur sehr selten wirklich auf einen konkreten Account ankommt, sondern es viel eher um Zufallstreffer geht, die in den Massen von Servern und Accounts gefunden werden. Der beste Schutz liegt daher ganz schlicht in der Nutzung eines hinreichend sicheren Passwortes.

          - Sven Rautenberg

          --
          "Love your nation - respect the others."
  3. Danke erstmal für die Antworten.

    Also alles trifft nicht so auf mein Problem zu, aber daran habe ich eigentlich selbst Schuld, da ich meinen FTP-Server nicht genauer erklärt habe.

    Also der Server ist eigentlich nur dazu da das ich einen bequemen Zugriff auf das Serververzeichnis habe. Und der Anonymouszugang ist für die Downloads da(Naja eigentlich liegt dort so ziemlich alles was ich offiziell zum Download freigebe, nicht alles ist auf meiner Seite verlinkt). Ich dachte mir einfach damit den Apache ein wenig zu entlasten und dafür proftpd einen Teil der Arbeit zu überlassen und wenn es dafür dann auch noch ein schönes altes Protokoll gibt (File Transfer Protocol) ist es umso besser.
    Im übrigen sind meine zwei Zugänge die einzigen, abgesehen von anonymous. Ein Zugang /var/www der andere /var/ftp nur die beiden haben alle Rechte anonymous hat sehr eingeschränkte Rechte, so wie es sich auch gehört.

    Inzwischen habe ich 2 neue Benutzernamen angelegt (beide 32 Zeichen lang mit 32 Zeichen Passwort, ja da gibt es einige Möglichkeiten, es steht nicht einmal ein Fetzen dieser Kolonnen in einem Wörterbuch). Die beiden Benutzer habe ich dann den Gruppen apache/ftp(anonymous) zugeordnet. Ich fühle mich so zumindestens wieder ein wenig sicherer vielleicht gibt er/sie ja auch früher oder später auf.

    Das das ein BruteForce-Angriff ist wusste ich bereits vorher und was das ist auch. Ich habe es nur der Einfachheitshalber nur "Angriff" genannt. Aber trotztdem Danke ich.

    GodLike