Über den Autor

Tony

Ich bin Tony, begeistert von Einplatinencomputer und berichte über meine Erfahrungen und Projekte mit dem Raspberry Pi, Banana Pi und anderen Minicomputern.

Hinterlasse eine Antwort

Kommentare

  • Hallo Tony,

    kleiner Hinweis zu Fail2Ban. Die Standardversion unter Raspbian (Jessie) unterstützt noch kein Systemd Journal. Dies muss in der Datei „/etc/fail2ban/jail.local“ unter backend eingesellt werden. Allerdigns geht dies eben nur, wenn auch systemd als Option angezeigt wird. Alternativ empfehle ich komplett auf fail2ban zu verzichten und SSH Bruteforce Angriffe per iptables abzusichern. Ist zwar in der initialen Konfiguration etwas aufwendiger, dafür braucht man aber kein eigenes Paket, welches unter Umständen auch wieder anfällig ist. Meine iptables Konfiguration (nur für ipv4) dafür sieht z.B. so aus:

    iptables -N IN_SSH
    iptables -A INPUT -p tcp –dport ssh -m conntrack –ctstate NEW -j IN_SSH
    iptables -A IN_SSH -m recent –name sshbf –rttl –rcheck –hitcount 3 –seconds 15 -j DROP
    iptables -A IN_SSH -m recent –name sshbf –rttl –rcheck –hitcount 5 –seconds 1800 -j DROP

    Als weitere Alternative zum SSH absichern, kann man auch den SSH Port nur über ein VPN von außen erreichbar machen. Dann ist der Port über das Internet gar nicht erreichbar.

    Gruß
    Michi

  • Hi

    Ich würde diese Sachen als Basics ansehen wenn es etwas mehr Sicherheit seinen darf würde ich folgende Punkt noch beachten.

    1) Unsichere Host keys ausschalten.
    die beiden Zeilen mit

    HostKey /etc/ssh/ssh_host_dsa_key
    HostKey /etc/ssh/ssh_host_ecdsa_key

    auskommentieren [Grund: DSA ist unsicher und ecdsa gehört zur nist und die zur cia ]

    Zu dem würde ich empfehlen für den host einen neuen RSA und ed25519 Key zu erzeugen.
    Da manche Dist dieses nicht bei ersten Booten selbständig machen.

    2) Wenn man ssh Keys verwendet sollte man auf dem Server

    PasswordAuthentication no

    setzen . [Tip: es ist auch möglich den login mit Pw für einen IP Adress Raum zu erlauben mit

    Match User Address 192.168.1.*,192.168.3.*
    PasswordAuthentication yes
    ]

    3) ssh-key.
    Wichtig bei der Erzeugung von ssh-keys ist das wenn man RSA verwendet die Key mindesten 4096 Bits haben soll. Ich persönlich bevorzuge aber ed25519 Key da diese Deutlich keiner sind bei der gleichen bis besseren Sicherheit.

    4) Nur bestimmten Benutzer SSH erlauben.
    Durch Verwendung von

    AllowUsers

    Kann man einzelnen Benutzer den Login mit ssh erlauben. Oder man verwendet

    AllowGroups ssh

    erstellt einen Gruppe mit dem Namen ssh und fügt die Benutzer dieser Gruppe hinzu.

    5) KexAlgorithms und Ciphers.
    Es ist nicht gut wenn alle unterstützen Algorithmen auch aktiv sind da so der Client in der Lage ist einen unsicheren auszuwählen.
    Dies kann man einfach lösen in dem man folgenden Zeilen in die sshd_config schreibt.

    KexAlgorithms curve25519-sha256@libssh.org,diffie-hellman-group-exchange-sha256

    Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com,aes256-ctr,aes192-ctr,aes128-ctr

    Gruß
    Arne

    Quellen: https://bettercrypto.org/ und Vortrage der Rechner Betriebs Gruppe der Technischen Fakultät der Uni Bielefeld.

    • Ja und nein: Die Betonung liegt hier auf dem eigentlich. Wenn du den SSH-Port über den Router nicht nach außen hin freischaltest (Port geschlossen), dann kann von außen so erstmal keiner ran, insofern nicht andere Ports von anderen Geräten offen sind, wo eine Lücke entstehen kann. Im kleinen Heimnetz sollte das aber kein Problem sein. Aber das Passwort zu ändern ist immer zu empfehlen :)