Wechseln zu:Navigation, Suche
Wiki

Vorlage:V11.6

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
Einstellungen

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

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.

UMA20 AHB hinweispic.png

Hinweis!
Es besteht kein Root Zugriff über die Benutzerauthentifizierung im Modus "hoch" und "sehr hoch". Hier ist nur die Authentifizierung per Public Key möglich.

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

Schlüsselpaar Generieren

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


Privaten Schlüssel zu einem Putty Profil hinzufügen
Putty Profil


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.







UMA20 AHB hinweispic.png

Achtung!
Mit Putty kann im Modus "hoch" und "sehr hoch" keine SSH Sitzung geöffnet werden. Die dort geforderten Key-Exchange Algorithmen werden von Putty nicht unterstützt.