SSH-Server schützen

SSH-Server schützen

Ich habe eine Debian-Maschine, auf der mehrere Dienste laufen, wie Apache mit http und https, Jabber und ein OpenSSH-Server zur Verwaltung. Der SSH-Server läuft nicht auf Port 22. Er ist auf Port 62111. Ich sichere OpenSSH mit Fail2Ban. Wenn also ein Angreifer versucht, eine Verbindung zu SSH auf Port 62111 herzustellen, hat er zwei Versuche, bevor er von Fail2Ban auf Port 62111 für zwei Tage gesperrt wird.

Ich möchte einen (gefälschten) SSH-Server auf Port 22 starten und immer wenn jemand versucht, sich mit diesem Port zu verbinden, wird er gebannt aufallePort von iptables für immer oder zumindest bis ich die iptables-Regel aufhebe. Jede legale SSH-Verbindung wird nicht versuchen, per SSH auf Port 22 zuzugreifen, da jeder Administrator den richtigen SSH-Port kennt.

Die Idee ist, dass ein Angreifer zuerst versucht, Port 22 anzugreifen. Daher hat er nicht einmal die Chance, per SSH auf Port 62111 zuzugreifen. Mir ist es egal, ob diese Cracker meine Website sehen. Daher ist es in Ordnung, sie auf jedem Port zu blockieren (einschließlich 80 und 443).

Irgendwelche Vorschläge, wie das geht?

Antwort1

Ich werde versuchen, Ihnen eine andere Lösung für Paranoide vorzuschlagen:)

http://www.portknocking.org/view/

Es funktioniert, indem Verbindungsversuche zu einer Reihe vordefinierter geschlossener Ports erforderlich sind. Wenn die richtige Sequenz von Port-"Knocks" (Verbindungsversuchen) empfangen wird, öffnet die Firewall bestimmte Ports, um eine Verbindung zu ermöglichen.

Und natürlich nur SSH-Schlüsselauthentifizierung.

Antwort2

Keine gute Idee (meiner Meinung nach).

Eine Verbindung über Port 22 bedeutet nicht automatisch, dass jemand versucht, in Ihren Server einzudringen.

Befolgen Sie einige einfache Regeln, um Ihren Server vor Hackern/Crackern zu schützen (Beispiel):

  • Verwenden Sie Tools wie fail2ban wise
  • Halten Sie Ihre Dienste (SSH, HTTP, ...) immer auf dem neuesten Stand
  • sichere Passwörter verwenden (und diese regelmäßig ändern)
  • Verwenden Sie SSH-Schlüssel für SSHD und deaktivieren Sie die Kennwortauthentifizierung

Antwort3

Wenn Sie SSHD auf einem anderen Port ausführen und trotzdem dasselbe Fail2Ban usw. verwenden möchten, habe ich hier ein sehr schönes, ähnliches Handbuch gefunden:http://www.kudos.be/multiple_sshd

Werde es hier noch einmal posten und für dich ändern:

Das Ziel besteht darin, denselben Daemon auf zwei verschiedenen Ports auszuführen und jegliche Art der Authentifizierung auf einer Instanz zu deaktivieren.

  1. Konfiguration kopieren:

    cd /etc/ssh/sshd_config /etc/ssh/sshd_config-fake

  2. Ändern Sie die Konfiguration wie folgt:

    ändern Port, SyslogFacility, *AuthenticationZeichenfolgen (für Fake deaktivieren),PidFile

  3. Symlink erstellen: ln -s /usr/sbin/sshd /usr/sbin/sshd-fake

  4. Init-Skript erstellen: cp /etc/init.d/sshd /etc/init.d/sshd-fakeund Inhalt der SSHD-Fake-Datei entsprechend ändern.

  5. ändern Sie /etc/sysconfig/sshd-fake:OPTIONS="-f /etc/ssh/sshd_config-fake"

  6. Dienst hinzufügenchkconfig --add sshd-fake

  7. PAM-Konfiguration erstellen:cp /etc/pam.d/sshd /etc/pam.d/sshd-fake

  8. Bearbeiten Sie /etc/pam.d/sshd-fake und verbieten Sie alles, oder verwenden Sie eine andere Methode, z. B. die aus der Datei aufgelisteten Benutzer:http://linux.die.net/man/8/pam_listfile

  9. Dienste neu starten:service sshd restart;service sshd-fake restart;chkconfig sshd-fake on

  10. fail2ban entsprechend konfigurieren

Antwort4

Dies ist vielleicht nicht die eleganteste Lösung, sollte aber schnell und funktional sein:

iptables -I INPUT --m recent --name blocked --rcheck -j DROP
iptables -I INPUT -p tcp --dport 22 -m state --state NEW -m recent --name blocked --set

Erläuterung:

Fügen Sie (oben) eine Firewall-Regel in die Eingabekette ein, die überprüft, ob sich die Quelladresse des Pakets derzeit in der Liste „gesperrt“ befindet. Wenn dies der Fall ist, löschen Sie das Paket.

Fügen Sie eine weitere Firewall-Regel (über der gerade eingefügten) in die Eingabekette ein, die die Quelladresse aller Verbindungsversuche zu Port 22 zur Liste „blockiert“ hinzufügt.

Ich sehe keine Notwendigkeit, auf Port 22 tatsächlich einen (falschen) Server oder überhaupt einen Listener auszuführen.

Bearbeiten: Wenn ich mir meine Antwort ansehe, möchte ich hinzufügen, dass Sie Ihre Sperrliste wahrscheinlich auf eine andere Weise aussetzen sollten als

„für immer oder zumindest bis ich die iptables-Regel fallen lasse“

weil Sie viele Treffer von dynamischen IP-Adressen erhalten, die später (innerhalb von Stunden oder sogar Minuten) legitimen Benutzern neu zugewiesen werden.

Sehen:http://www.netfilter.org/documentation/HOWTO/netfilter-extensions-HOWTO-3.html#ss3.16

verwandte Informationen