Dirkg (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
KKeine Bearbeitungszusammenfassung |
||
(7 dazwischenliegende Versionen von 4 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. | ||
Zeile 7: | Zeile 15: | ||
!style="width: 8em"|Sicherheitsstufen:|| | !style="width: 8em"|Sicherheitsstufen:|| | ||
|- | |- | ||
|Mittel:||Standardeinstellungen der UTM, Root Login ist | |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 | |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 | |Benutzerdefiniert:||Der Benutzer definiert seine Liste von Hash-Algorithmen, Verschlüsselungen und Schlüsselaustausch-Algorithmen, Root Login aktivierbar | ||
Zeile 53: | Zeile 62: | ||
<TD> | <TD> | ||
<P><B>Hinweis!</B><br> | <P><B>Hinweis!</B><br> | ||
Es besteht kein Root Zugriff über die Benutzerauthentifizierung im Modus "hoch" und "sehr hoch". Hier ist nur die Authentifizierung per Public Key möglich. | |||
</P> | </P> | ||
</TD> | </TD> | ||
Zeile 80: | Zeile 89: | ||
|} | |} | ||
===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 | |||
<span style="color:red;"> |SECMODE |2 </span> | |||
|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: | |||
{| style="width:15em" | |||
|style="width:2em"|0||style="width:13em"|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=== | ===Root Zugriff per Public-Key=== |
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! |