Interessanter Tipp zur Verbesserung der SSH-Sicherheit

Dieses Mal werden wir einen sehen kurzer und einfacher Tipp Das wird uns helfen, das zu verbessern Sicherheit unserer Fernverbindungen mit SSH.


OpenSSH, das von GNU/Linux-Systemen bereitgestellte Paket zur Handhabung von SSH-Verbindungen, bietet eine Vielzahl von Optionen. Das Buch lesen SSH Die sichere Shell und in den Manpages habe ich die Option -F gefunden, die den SSH-Client anweist, eine andere Konfigurationsdatei zu verwenden als die, die standardmäßig im Verzeichnis /etc/ssh zu finden ist.

Wie nutzen wir diese Option?

Wie folgt:

ssh -F /path/to_your/configuration/file user@ip/host

Wenn wir beispielsweise eine nach unseren Wünschen angepasste Konfigurationsdatei namens my_config auf dem Desktop haben und uns mit dem Benutzer carlos mit dem Computer mit der IP 192.168.1.258 verbinden möchten, dann würden wir den Befehl wie folgt verwenden:

ssh -F ~/Desktop/my_config carlos@192.168.1.258

Wie trägt es zur Sicherheit der Verbindung bei?

Denken Sie daran, dass ein Angreifer, der sich in unserem System befindet, sofort versuchen wird, Administratorrechte zu erlangen, sofern er diese nicht bereits besitzt. Dann wäre es für ihn recht einfach, ssh auszuführen, um eine Verbindung zu den übrigen Maschinen im Netzwerk herzustellen. Um dies zu vermeiden, können wir die Datei /etc/ssh/ssh_config mit falschen Werten konfigurieren und wenn wir eine Verbindung über SSH herstellen möchten, verwenden wir die Konfigurationsdatei, die wir an einem Ort gespeichert haben, den nur wir kennen (sogar auf einem externen Speicher). Gerät), das heißt, wir hätten Sicherheit durch Dunkelheit. Auf diese Weise wäre der Angreifer verwirrt, wenn er feststellen würde, dass er keine Verbindung über SSH herstellen kann und versucht, Verbindungen gemäß den Angaben in der Standardkonfigurationsdatei herzustellen, sodass es für ihn etwas schwierig sein wird, herauszufinden, was passiert. und wir werden ihm den Job ziemlich schwer machen.

Hinzu kommt das Ändern des Überwachungsports des SSH-Servers, das Deaktivieren von SSH1, das Festlegen, welche Benutzer eine Verbindung zum Server herstellen können, das explizite Zulassen, welche IP oder welcher IP-Bereich eine Verbindung zum Server herstellen kann, sowie weitere Tipps, die wir in finden können http://www.techtear.com/2007/04/08/trucos-y-consejos-para-asegurar-ssh-en-linux Sie werden es uns ermöglichen, die Sicherheit unserer SSH-Verbindungen zu erhöhen.

Alles, was oben beschrieben wurde, kann in einer einzigen Zeile erledigt werden. Für meinen Geschmack wäre es ziemlich mühsam, jedes Mal, wenn wir versuchen, uns über SSH bei einem Remote-PC anzumelden, eine lange Zeile mit mehreren Optionen schreiben zu müssen. Das Folgende wäre beispielsweise ein Beispiel für das, was ich sage:

ssh -p 1056 -c blowfish -C -l carlos -q -i yourself 192.168.1.258

-p Gibt den Port an, zu dem auf dem Remote-Host eine Verbindung hergestellt werden soll.
-c Gibt an, wie die Sitzung verschlüsselt werden soll.
-C Gibt an, dass die Sitzung komprimiert werden soll.
-l Gibt den Benutzer an, mit dem Sie sich beim Remote-Host anmelden können.
-q Gibt an, dass Diagnosemeldungen unterdrückt werden.
-i Gibt die Datei an, mit der es identifiziert wird (privater Schlüssel)

Wir müssen auch bedenken, dass wir den Terminalverlauf nutzen könnten, um zu vermeiden, jedes Mal den gesamten Befehl eingeben zu müssen, was ein Angreifer ebenfalls ausnutzen könnte, weshalb ich es zumindest bei der Verwendung von SSH-Verbindungen nicht empfehlen würde.

Obwohl das Sicherheitsproblem nicht der einzige Vorteil dieser Option ist, fallen mir noch andere ein, z. B. das Vorhandensein einer Konfigurationsdatei für jeden Server, zu dem wir eine Verbindung herstellen möchten, sodass wir vermeiden, die Optionen jedes Mal zu schreiben, wenn wir eine Verbindung zu einem herstellen möchten Server. SSH mit einer bestimmten Konfiguration.

Die Verwendung der Option -F kann sehr nützlich sein, wenn Sie mehrere Server mit unterschiedlicher Konfiguration haben. Andernfalls müssen alle Einstellungen gespeichert werden, was praktisch unmöglich ist. Die Lösung wäre, eine Konfigurationsdatei zu haben, die perfekt auf die Anforderungen jedes Servers zugeschnitten ist und den Zugriff auf diese Server erleichtert und sicherstellt.

In diesem Link http://www.openbsd.org/cgi-bin/man.cgi?query=ssh_config Hier erfahren Sie, wie Sie die SSH-Client-Konfigurationsdatei bearbeiten.

Denken Sie daran, dass dies nur ein weiterer Tipp von Hunderten ist, die wir zur Sicherung von SSH finden können. Wenn Sie also sichere Remote-Verbindungen wünschen, sollten Sie die Möglichkeiten kombinieren, die uns OpenSSH bietet.

Das ist alles für den Moment. Ich hoffe, dass diese Informationen für Sie nützlich sind und warte auf einen weiteren Beitrag zum Thema SSH-Sicherheit nächste Woche.

Hinweis: Wenn Sie das Buch „SSH The Secure Shell“ lesen möchten, konsultieren Sie unbedingt die Handbuchseiten der von Ihnen installierten Version, da das Buch in Bezug auf die von OpenSSH unterstützten Optionen ziemlich hinter der Zeit zurückbleibt.
Vielen Dank, Izkalotl, für den Beitrag!
Interessiert an beitragen?

Hinterlasse einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert mit *

*

*

  1. Verantwortlich für die Daten: Miguel Ángel Gatón
  2. Zweck der Daten: Kontrolle von SPAM, Kommentarverwaltung.
  3. Legitimation: Ihre Zustimmung
  4. Übermittlung der Daten: Die Daten werden nur durch gesetzliche Verpflichtung an Dritte weitergegeben.
  5. Datenspeicherung: Von Occentus Networks (EU) gehostete Datenbank
  6. Rechte: Sie können Ihre Informationen jederzeit einschränken, wiederherstellen und löschen.

  1.   HacKan & CuBa co. sagte

    Das? Ich glaube, Sie beziehen sich auf einen anderen Beitrag, da ich nicht verstehe, was Sie erwähnen. Dieser Beitrag gibt einen kleinen Tipp, den Sie beim Herstellen der Verbindung mit einem Gerät anwenden können. Er bezieht sich nicht darauf, seine Einstellungen zu ändern oder Probleme zu lösen, wenn es jemandem gelingt, sich einzuloggen. Die Idee besteht darin, die Kommunikation zwischen den Computern sicher zu machen und dabei die Standardparameter zu umgehen, die möglicherweise nicht das ausreichende Maß an Sicherheit bieten.
    Port-Knocking ist interessant, um Angriffe einzuschränken (es verhindert sie nicht vollständig, aber es tut seinen Zweck), auch wenn ich die Verwendung etwas umständlich finde ... vielleicht habe ich nicht viel Erfahrung damit.
    Es gibt mehrere Programme, die die Protokolle scannen, um den Zugriff per IP zu blockieren, wenn falsche Anmeldungen erkannt werden.
    Am sichersten ist die passwortlose Anmeldung mit Schlüsseldateien.

    Viele Grüße!

  2.   HacKan & CuBa co. sagte

    Das? Ich glaube, Sie beziehen sich auf einen anderen Beitrag, da ich nicht verstehe, was Sie erwähnen. Dieser Beitrag gibt einen kleinen Tipp, den Sie beim Herstellen der Verbindung mit einem Gerät anwenden können. Er bezieht sich nicht darauf, seine Einstellungen zu ändern oder Probleme zu lösen, wenn es jemandem gelingt, sich einzuloggen. Die Idee besteht darin, die Kommunikation zwischen den Computern sicher zu machen und dabei die Standardparameter zu umgehen, die möglicherweise nicht das ausreichende Maß an Sicherheit bieten.
    Port-Knocking ist interessant, um Angriffe einzuschränken (es verhindert sie nicht vollständig, aber es tut seinen Zweck), auch wenn ich die Verwendung etwas umständlich finde ... vielleicht habe ich nicht viel Erfahrung damit.
    Es gibt mehrere Programme, die die Protokolle scannen, um den Zugriff per IP zu blockieren, wenn falsche Anmeldungen erkannt werden.
    Am sichersten ist die passwortlose Anmeldung mit Schlüsseldateien.

    Viele Grüße!

  3.   HacKan & CuBa co. sagte

    Außerdem sucht ssh in ~/.ssh/config nach der Standardbenutzerkonfiguration
    Es sei denn, Sie haben den Daemon so konfiguriert, dass er dies nicht tut, aber standardmäßig tut er dies.
    Es ist wichtig, den für Hashes verwendeten Algorithmus mit der Option -m zu berücksichtigen; Ich empfehle hmac-sha2-512, hmac-sha2-256, hmac-ripemd160, da sie die beste Sicherheit bieten. Seien Sie vorsichtig, denn standardmäßig wird MD5 (oder mit Glück sha1) verwendet!! Das sind die Dinge, die du nicht verstehst...
    Auf jeden Fall wäre es eine gute Idee, es auszuführen mit:
    ssh -p PORT -c aes256-ctr -m hmac-sha2-512 -C IP
    Mit -c wird der verwendete Verschlüsselungsalgorithmus angegeben, wobei der CTR (Zählermodus) am meisten empfohlen wird (aes256-ctr und aes196-ctr), und falls nicht, der cbc (Cipher-Block-Chaining): aes256-cbc,aes192-cbc , Blowfish-CBC, cast128-CBC

    Viele Grüße!

  4.   HacKan & CuBa co. sagte

    Außerdem sucht ssh in ~/.ssh/config nach der Standardbenutzerkonfiguration
    Es sei denn, Sie haben den Daemon so konfiguriert, dass er dies nicht tut, aber standardmäßig tut er dies.
    Es ist wichtig, den für Hashes verwendeten Algorithmus mit der Option -m zu berücksichtigen; Ich empfehle hmac-sha2-512, hmac-sha2-256, hmac-ripemd160, da sie die beste Sicherheit bieten. Seien Sie vorsichtig, denn standardmäßig wird MD5 (oder mit Glück sha1) verwendet!! Das sind die Dinge, die du nicht verstehst...
    Auf jeden Fall wäre es eine gute Idee, es auszuführen mit:
    ssh -p PORT -c aes256-ctr -m hmac-sha2-512 -C IP
    Mit -c wird der verwendete Verschlüsselungsalgorithmus angegeben, wobei der CTR (Zählermodus) am meisten empfohlen wird (aes256-ctr und aes196-ctr), und falls nicht, der cbc (Cipher-Block-Chaining): aes256-cbc,aes192-cbc , Blowfish-CBC, cast128-CBC

    Viele Grüße!

  5.   ivaan11 sagte

    Was ich wollte, war, dass niemand auf meinen PC zugreifen und ihn fernsteuern konnte
    Ihren Worten entnehme ich also, dass es zumindest auf diesem Weg keinen Zugang gibt, wenn ich den Port nicht öffne

    Danke für die Antwort!

  6.   ivaan11 sagte

    holaa
    Ich habe einige der Tricks befolgt und habe eine Frage! Von den Optionen habe ich auch geändert
    den Port für einen anderen als den herkömmlichen. Wenn ich diesen Port im Router nicht öffne, können sie dann keine Verbindung zu meinem PC herstellen? Oder wird es auf einen anderen Port umgeleitet?

    Da ich keine Remote-Verbindung herstellen muss, wollte ich wissen, was effektiver wäre, wenn ich den Port öffne oder ihn blockiert lasse.

    Ich warte auf Antworten!

  7.   Sergio Weizenegger sagte

    >Am sichersten ist die passwortlose Anmeldung mit Schlüsseldateien.
    Das ist genau das, was ich sagen wollte: Die einzige Möglichkeit, sich an verschiedenen Computern anzumelden, ist mit einem Schlüssel, der sich auf einem Flash-Laufwerk um den Hals hängt 😉
    Der Angreifer kann sein ganzes Leben damit verschwenden, mit roher Gewalt ein Passwort zu knacken, und er wird nie merken, dass er kein Passwort, sondern eine XD-Datei benötigt

  8.   Linux izkalotl sagte

    Ich bin kein Experte für Sicherheit und Netzwerke, aber um Ihr Sicherheitssystem mit einer passwortlosen Anmeldung zu knacken, würde es ausreichen, einfach ein Skript zu erstellen, um Ihren auf einem Flash-Laufwerk gespeicherten Schlüssel zu kopieren, wenn Sie ihn bereitstellen, sodass Sie ihn in Sekundenschnelle erhalten Wenn Sie mit Ihrer eigenen Schlüsselfernbedienung Zugriff auf den Server haben würden (und natürlich ohne die Notwendigkeit eines Passworts), besteht das Problem bei Passwortlosigkeit darin, dass Sie sich dadurch falsch sicher fühlen, wie Sie anhand einiger Zeilen in einem Skript sehen können Es wäre sehr einfach, die Kontrolle über Ihre Remote-Server zu erlangen. Denken Sie daran, dass ein Angreifer weder Zeit noch Ressourcen mit dem Versuch verschwendet, Passwörter zu knacken, wenn es einen kürzesten Weg gibt, Ihre Sicherheit zu durchbrechen. Ich empfehle Ihnen, mindestens 20 der Optionen zu verwenden, die Sie mit SSH konfigurieren können, und beispielsweise TCP-Wrapper oder eine gute Firewall hinzuzufügen. Selbst dann wäre Ihr Server nicht zu 100 % geschützt. Der schlimmste Feind in Sicherheitsfragen ist Vertrauen.

  9.   Gorlok sagte

    Das ist interessant, auch wenn ich mir über den tatsächlichen Nutzen nicht sicher bin, da es hier nur darum geht, die Dinge etwas schwieriger zu machen, sobald ein Angreifer bereits in das Team eingedrungen ist, und den Administratoren mehr Komplexität zu verleihen.
    Eine Honeypot-Technik, die einen Alarm auslöst (und Maßnahmen ergreift?), scheint bei verdächtigen Aktivitäten nützlicher zu sein, oder eine Art Sandbox, die die Aktionen des Angreifers einschränkt.
    Oder ich würde nach anderen Arten von Techniken suchen, die den Zutritt verhindern, wie zum Beispiel Port-Knocking.
    Vielen Dank auch für das Teilen und die Eröffnung der Diskussion.