Dirkg (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
KKeine Bearbeitungszusammenfassung |
||
(4 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
{{ | {{Archivhinweis|UTM/AUTH/SSH}} | ||
{{DISPLAYTITLE:SSH}} | |||
== Informationen == | |||
Letzte Anpassung zur Version: '''11.7''' | |||
<br> | |||
Bemerkung: Artikelanpassung | |||
<br> | |||
Vorherige Versionen: - | |||
<br> | |||
==Einleitung== | |||
Unter diesem Menüpunkt kann der SSH Zugang zur UTM in drei fest definierten und einer Benutzerdefinierten Sicherheitsstufe gehärtet werden. | Unter diesem Menüpunkt kann der SSH Zugang zur UTM in drei fest definierten und einer Benutzerdefinierten Sicherheitsstufe gehärtet werden. | ||
Aktuelle Version vom 14. April 2021, 17:56 Uhr
notempty
Informationen
Letzte Anpassung zur Version: 11.7
Bemerkung: Artikelanpassung
Vorherige Versionen: -
Einleitung
Unter diesem Menüpunkt kann der SSH Zugang zur UTM in drei fest definierten und einer Benutzerdefinierten Sicherheitsstufe gehärtet werden.
Einstellungen
Sicherheitsstufen: | |
---|---|
Mittel: | Standardeinstellungen der UTM, Root Login ist möglich, wenn ein entsprechender User angelegt wurde. |
Hoch: | Längere Host Keys, keine potentiell unsicheren Hash-Algorithmen, kein Root Login, auch wenn ein entsprechender User angelegt wurde. |
Sehr hoch: | Extrem eingeschränkte Liste von Hash-Algorithmen, Verschlüsselungen und Schlüsselaustausch-Algorithmen, kein Root Login, auch wenn ein entsprechender User angelegt wurde. |
Benutzerdefiniert: | Der Benutzer definiert seine Liste von Hash-Algorithmen, Verschlüsselungen und Schlüsselaustausch-Algorithmen, Root Login aktivierbar |
Erlaubte nichtauthentifizierte Verbindungen:
Menge an gleichzeitig aufgebauten Verbindungen die noch nicht authentifiziert sind
Anteil der verworfenen nichtauthentifizierten Verbindungen:
Prozentualer Anteil der Verbindungen die über den erlaubten unauthentifizierten verworfen werden
Maximale nichtauthentifizierte Verbindungen:
Menge an gleichzeitigen Verbindungen, ab denen alle unauthentifizierten verworfen werden
Login Zeit:
Zeit in Sekunden, die für die Authentifizierung zur Verfügung steht
Benutzerdefinierte Einstellungen
HMAC-Liste:
Liste der zugelassenen Keyed-Hash Message Authentication Code Hash-Algorithmen.
Cipher-Suite:
Legt fest, welche Verschlüsselungen für SSH zugelassen werden.
KEX-Algorithmus:
Nur die hier angegeben Schlüsselaustausch-Algorithmen dürfen verwendet werden.
Root-Zugriff
Root-Zugriff erlauben: muss im Custom Modus aktiviert sein um mit dem Benutzer Root administrieren zu können.
Hinweis! |
Wenn Root Zugriff in den Sicherheitsstufen "Hoch" und "Sehr hoch" gewünscht ist, können die Listen aus diesen Modi im Modus "Benutzerdefiniert" hineinkopiert und Root aktiviert werden.
Hoch | |
---|---|
HMAC-Liste: | hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-ripemd160-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-512,hmac-sha2-256,hmac-ripemd160,umac-128@openssh.com |
Cipher-Suite: | chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com,aes256-ctr,aes192-ctr,aes128-ctr |
KEX-Algorithmus: | curve25519-sha256@libssh.org,diffie-hellman-group-exchange-sha256 |
Sehr hoch | |
---|---|
HMAC-Liste: | hmac-sha2-256-etm@openssh.com |
Cipher-Suite: | chacha20-poly1305@openssh.com |
KEX-Algorithmus: | curve25519-sha256@libssh.org |
CLI
Die Einstellungen, die im Webinterface vorgenommen werden sind auf dem CLI über die nachfolgenden Befehle sichtbar.
extc value get application "sshd"
Das Ergebnis sollte ähnlich wie folgt aussehen:
application|variable |value
-----------+------------------------+-----
sshd |CIPHER_LIST |
|CIPHER_LIST_H |chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com,aes256-ctr,aes192-ctr,aes128-ctr
|CIPHER_LIST_M |aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-gcm@openssh.com,aes256-gcm@openssh.com,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,rijndael-cbc@lysator.liu.se
|CIPHER_LIST_P |chacha20-poly1305@openssh.com
|HMAC_LIST |
|HMAC_LIST_H |hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-ripemd160-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-512,hmac-sha2-256,hmac-ripemd160,umac-128@openssh.com
|HMAC_LIST_M |hmac-md5-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-ripemd160-etm@openssh.com,hmac-sha1-96-etm@openssh.com,hmac-md5-96-etm@openssh.com,hmac-md5,hmac-sha1,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-ripemd160,hmac-ripemd160@openssh.com,hmac-sha1-96,hmac-md5-96
|HMAC_LIST_P |hmac-sha2-256-etm@openssh.com
|KEX_LIST |
|KEX_LIST_H |curve25519-sha256@libssh.org,diffie-hellman-group-exchange-sha256
|KEX_LIST_M |ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1
|KEX_LIST_P |curve25519-sha256@libssh.org
|LOGIN_GRACE_TIME |10
|PERMIT_ROOT_LOGIN |no
|PERMIT_ROOT_LOGIN_H |no
|PERMIT_ROOT_LOGIN_M |yes
|PERMIT_ROOT_LOGIN_P |no
|RATE_ALLOW_PENDING_CONNS|10
|RATE_MAX_PENDING_CONNS |100
|RATE_START_DROP_CHANCE |30
|SECMODE |2
|USE_HOSTKEY_DSA |0
|USE_HOSTKEY_EC25519 |1
|USE_HOSTKEY_ECDSA |1
|USE_HOSTKEY_RSA |1
|USE_OTP |0
Die Variable SECMODE zeigt an, welche SSH Konfiguration gegenwärtig aktiv ist.
Es gibt vier Konfigurationen, die dieser Variablen zugeordnet werden können:
0 | Sehr hoch |
1 | Hoch |
2 | Mittel |
3 | Benutzerdefiniert |
Wird die Variable im CLI einer anderen Konfiguration zugeordnet, dann muss diese Anweisung durch den Neustart der Anwendung SSHD aktiviert werden.
appmgmt restart application "sshd"
Hinweis: Sicherheitsvorkehrungen bei Konfigurationstests
Wird geplant, über das Webinterface oder das CLI, neue Verschlüsselungen oder die SSH Einstellungen zu manipulieren, ist diese BEST PRACTICE zu beachten:
Vor der Umstellungen soll eine SSH-Verbindung zur UTM bestehen. Bestehende SSH-Verbindungen werden nicht durch die Umstellung der Verschlüsselung oder SSH Einstellungen unterbrochen.
Root Zugriff per Public-Key
Um per ssh-public-key eine Authentifizierung ohne Passwort über eine SSH-Konsole durchzuführen sind folgende Schritte notwendig:
Erstellen eines SSH-RSA Schlüsselpaares
Dieses kann auf einem Windowssystem mit einem Zusatzprogramm wie z.B. "puttygen" generiert werden.
Auf einem Linux/Unix System steht das Tool "ssh-keygen" zur Verfügung, welches mit der Option "ssh-keygen -t rsa" ausgeführt wird.
Den öffentlichen Schlüssel auf die UTM übertragen
Das Schlüsselpaar befindet sich nach der Erstellung mit "puttygen" standardmässig im Download-Verzeichnis des Windowssystem.
Bei Linux/Unix befinden sich diese im Benutzerverzeichniss unter /home/benutzer/.ssh/ .
Der public-key muss das folgende Format haben:
ssh-rsa <public-key>
Da sich zwischen "ssh-rsa" und dem Key ein Leerzeichen befindet, muss der gesamte Inhalt in Anführungszeichen gesetzt werden.
In der Linuxdatei "id_rsa.pub" ist dieses schon so eingerichtet, die Puttygen-Datei muss diesbezüglich noch angepasst werden. Weiterhin muss darauf geachtet werden, dass die Zeilenumbrüche des Public-Key entfernt werden.
Weiterhin sollte auch der optionale Eintrag des Benutzers in Form "Benutzer@Rechner" angefügt werden. Dieses sieht dann insgesamt folgendermassen aus:
"ssh-rsa AAAAB3NzaC1....93stGrJPeQ== dirk.gnass@securepoint.de"
Nun wird dieser Schlüssel kopiert und über eine SSH-Konsole mit dem folgenden CLI-Kommando hinzugefügt:
system ssh pubkey new key "ssh-rsa AAAAB3NzaC1....93stGrJPeQ== dirk.gnass@securepoint.de"
Um den RSA-Schlüssel zu nutzen, wird dieser mit dem folgenden CLI-Kommando aktiviert:
system ssh pubkey enable id 1
Die ID dieses Key kann über das Kommando
system ssh pubkey get
abgefragt werden.
Authentifizierung per Public-Key aktivieren
Um sich über eine SSH-Konsole per Public-Key Authentifizieren zu können, muss dieses aktiviert werden. Das entsprechende CLI-Kommando auf der UTM lautet:
extc global set variable "GLOB_SSH_PUBKEY_AUTH" value 1
Abschließend erfolgt noch eine Aktualisierung des UTM-Systems mit dem CLI-Kommando
system update system
Unter Putty muss nun noch die Datei mit dem Privaten Schlüssel im Menü Category -> Connection -> SSH -> Auth hinzugefügt werden und im Feld Host Name wird der Benutzer mit übergeben im Format root@<IP-Adresse>.
Mit dem SSH-Client unter Linux genügt das Kommando ssh root@<IP-Adresse> da hier der Key an einer definierten Stelle im System abgelegt ist.
Achtung! |