Zum ersten Mal einen SSH-Server für das Internet öffnen, was zu überprüfen ist

9

Ich habe einige Server für eine relativ lange Zeit ausgeführt, aber ich habe sie immer nur gemietet, daher habe ich nicht viel Erfahrung mit der Sicherung des tatsächlichen Servers (im Gegensatz zu der Anwendung, die ich darauf ausführe).

Jetzt möchte ich meinen kleinen Heim-SSH-Server für das Internet öffnen.

Ich werde der einzige sein, der es verwendet, meine Passwörter sind kompliziert genug, ich habe den Standard-SSH-Port auf etwa 4000 geändert, der einzige zugängliche Port ist dieser SSH-Port durch Portweiterleitung auf meinem Router / meiner Firewall, und er wird aktualisiert automatisch jede Nacht (es läuft Arch Linux, eine rollierende Release-Distribution).

Was sollte ich gegebenenfalls tun, um die Sicherheit zu gewährleisten?

Vielen Dank!

houbysoft
quelle

Antworten:

22

Stellen Sie sicher, dass Root-Anmeldungen deaktiviert sind PermitRootLogin no. Ich würde auch in Betracht ziehen, Passwörter insgesamt zu deaktivieren PasswordAuthentication nound öffentliche Schlüssel zu verwenden PubkeyAuthentication yes.

chx
quelle
+1 schlagen mich dazu ...
Soße Gesicht
1
Wenn Sie Kennwörter verwenden, versuchen Sie möglicherweise, ein Zwei-Faktor-Authentifizierungssystem zu untersuchen. Wenn nicht, empfehle ich, Ihr Passwort nicht in einem zufälligen Internetcafé / Bibliothekssystem einzugeben.
Mark Wagner
4
Wenn Sie die Kennwortauthentifizierung zulassen, sollten Sie fail2ban installieren, um Brute-Force-Angriffe zu verhindern, und
sichere
@embobo - warum ist das so? Über das Kabel gesendete Passwörter werden in ssh verschlüsselt. Ja, die Schlüsselauthentifizierung ist in vielerlei Hinsicht weit überlegen, aber solange die Passwörter ausreichend sicher sind und Sie überprüft haben, dass niemand auf der Schulter surft, ist dies keine große Sache.
EEAA
3
@Erika Ich denke, Embobo spielt auf das allgemeine Misstrauen gegenüber einem fremden System an. Obwohl SSH verschlüsselt ist, kann ein fremder Computer dennoch sagen, dass Sie Ihre Tastenanschläge protokollieren müssen. Also Passwort = kompromittiert.
Thomson
9

Stellen Sie sicher, dass nur SSH-2 zulässig ist (da SSH-1 in der Vergangenheit einige Sicherheitsbedenken aufgeworfen hat ):

Protocol 2

Geben Sie an, welche Benutzer sich nur über SSH anmelden dürfen:

AllowUsers bob, john

Deaktivieren Sie zur Erhöhung der Sicherheit die Kennwortauthentifizierung und verwenden Sie die Authentifizierung mit öffentlichem Schlüssel:

PasswordAuthentication no
PubkeyAuthentication yes

Hinweis: Dieses Lernprogramm enthält Anweisungen zum Erstellen von Schlüsseln und zum Konfigurieren der Authentifizierung mit öffentlichen Schlüsseln.

Bam Bam
quelle
5

Neben den Punkten zum Deaktivieren der Root-Anmeldung oder zum Verwenden nur der Authentifizierung mit öffentlichem Schlüssel würde ich auch überprüfen, ob auf dem System keine Benutzerkonten mit trivialen oder leeren Kennwörtern vorhanden sind. Sie haben gesagt, dass Ihre persönlichen Passwörter in Ordnung sind, aber das schließt nicht aus, dass ein Konto mit einem schlechten Passwort aus einem anderen Grund erstellt wurde.

Als Beispiel: Ich musste ein Netzwerk einrichten, in dem der vorherige Administrator Nagios auf allen seinen Systemen von der Quelle aus installiert hatte, einen Nagios-Benutzer ohne Kennwort oder mit dem Kennwort "Nagios" erstellen und dann drei verschiedene Computer abrufen kompromittiert.

Daniel Lawson
quelle
4

Vielleicht möchten Sie sich eine Art IP-Blacklisting-Tool wie http://denyhosts.sourceforge.net/ ansehen . Es blockiert alle IPs, die versuchen, sich zu oft erfolglos anzumelden, und ist hochgradig konfigurierbar.

Lynden Shields
quelle
Wahrscheinlich Zeitverschwendung, wenn Sie Root-Anmeldungen deaktiviert haben. Nach meiner Erfahrung (2 Jahre SSH-Server im Internet) haben nur wenige jemals meinen (offensichtlichen) Benutzernamen richtig verstanden. Die Bots überprüfen nur offensichtliche Passwörter auf gängigen Benutzernamen (99% der fehlgeschlagenen Anmeldungen auf meinem Server beziehen sich auf root, was natürlich deaktiviert ist).
Brendan Long
4
Auf keinen Fall Zeitverschwendung - aber schauen Sie sich fail2ban an
symcbean
+1 für fail2ban.
JamesBarnett
1
root ist nicht das einzige offensichtliche Konto, nach dem Bots suchen, siehe Nagios wie oben erwähnt. Es gibt auch Datenbankkonten wie MySQL und Postgres. Plus alle anderen Anwendungskonten.
JamesBarnett
Ja, ich habe meine SSH-Maschine mit Blick auf das Netz tatsächlich von einem Bot übernehmen lassen, der ein Nicht-Root-Passwort erraten hat, also definitiv keine Zeitverschwendung. Außerdem ist ein sehr kleiner Prozentsatz der Versuche, da sie einen solchen Blacklister erhalten und sich die Protokolle ansehen, tatsächlich für root.
Lynden Shields
3

Ich schlage vor, dass Sie Fail2ban installieren! http://www.fail2ban.org

Es verbietet eine IP nach x fehlgeschlagenen Versuchen für y Minuten und hilft so, Scriptkiddies in Schach zu halten;)

Krawattenkämpfer
quelle
0

Wiederkehrende Protokollüberprüfungen in den relevanten Teilen / Komponenten Ihres Systems (abhängig von der tatsächlichen / spezifischen Konfiguration) ...

user48838
quelle