SSH/Gateway: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung  | 
				|||
| (364 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
'''SSH-Gateway''' - vermittelt verschlüsselte Tunnelverbindungen zwischen SSH-Clients  | |||
= Beschreibung =  | == Beschreibung ==  | ||
* Keine   | ; Teilnehmer bauen aktiv einen Tunnel zum Gateway auf  | ||
*   | * Keine Portweiterleitungen erforderlich  | ||
*   | * Keine Namensauflösung der Teilnehmer erforderlich  | ||
; Gateway vermittelt den Kontakt  | |||
* Gateway ist ein SSH-Server im Internet  | |||
; Trennung verschiedener Kunden/Dienstleiter  | |||
* Je Tunnel (Kombination aus Kunde/Dienstleiter) ein Zugang  | |||
=  | ; Szenario  | ||
{| class="wikitable sortable"  | |||
! Hostname !! Username  | |||
|-  | |||
| gateway.foxtom.de || sshTnlKunde001  | |||
|-  | |||
| kunde001 || support  | |||
|-  | |||
| support || user  | |||
|}  | |||
== Gateway ==  | == Gateway ==  | ||
=== Kunden-Zugang ===  | |||
==== Tunnel-Benutzerkonto ====  | |||
 '''root@gateway#''' useradd --create-home --groups users --shell /bin/bash --comment "Tunnel-User Kunden001" sshTnlKunde001  | |||
<!-- Ist ein Loginshell notwendig?, Ist die Gruppe users erforderlich? -->  | |||
===   | ==== Passwort vergeben ====  | ||
  '''root@gateway#''' passwd sshTnlKunde001  | |||
  root@gateway#   |  New password:  | ||
 Retype new password:  | |||
  passwd: password updated successfully  | |||
==== Zugang testen ====  | |||
 '''user@support#''' ssh -p22 sshTnlKunde001@gateway.foxtom.de  | |||
 sshTnlKunde001@gateway's password:  | |||
===  | === SSH-Server ===  | ||
; UNIX Sockets  | |||
*   | Damit sich Kunden nicht mit dem System eines anderen Kunden verbinden können, werden hier UNIX Sockets verwandt.  | ||
* Diese besitzen im Gegensatz zu TCP-Ports eine Zugriffssteuerung  | |||
Damit der Socket beim Abbau des Tunnels eine neue Socket-Datei erstellt wird, wird die Konfiguration des SSH-Dienstes ergänzt  | |||
* ein erneuter Aufbau des Tunnels ist ansonsten mit dem gleichen Socket-Namen nicht möglich  | |||
''/etc/ssh/sshd_config''  | |||
  # Specifies whether to remove an existing Unix-domain socket file for local or remote port forwarding before creating a new one.  | |||
  # Specifies whether to remove an existing Unix-domain socket file  | |||
  StreamLocalBindUnlink yes  |   StreamLocalBindUnlink yes  | ||
== Kunden-Rechner ==  | == Kunden-Rechner ==  | ||
=== Tunnel-Benutzerkonto ===  | |||
  root@  |   '''root@kunde001#''' useradd -m -G users -s /bin/bash kunde001Tnl  | ||
=== SSH-Key erzeugen ===  | |||
 '''root@kunde001#''' sudo -u support -i  | |||
 '''support@kunde001$''' ssh-keygen -f /home/support/.ssh/gateway -t ecdsa  | |||
Keine Passphrase eingeben (Enter)  | |||
  support@  | === Public-Key übertragen ===  | ||
  '''support@kunde001$''' ssh-copy-id -p22 -i /home/support/.ssh/gateway.foxtom.de.pub sshTnlKunde001@gateway.foxtom.de  | |||
=== Public-Key-Zugang testen ===  | |||
 '''support@kunde001$''' ssh -i /home/support/.ssh/gateway.foxtom.de -p22 sshTnlKunde001@gateway.foxtom.de  | |||
# [[SSH/Fingerprint |Fingerprint vergleichen]]  | |||
# Bestätigung durch Eingabe von "yes"  | |||
Fehlermeldung "PTY allocation request failed on channel 0" und die Verbindung wird abgebrochen. Das ist beabsichtigt.  | |||
=== Automatisierung ===  | |||
==== Systemd konfigurieren ====  | |||
; Systemd-Service-Unit   | |||
''/etc/systemd/system/ssh-reverse@.service''  | |||
  [Unit]  |   [Unit]  | ||
  Description=Reverse SSH Tunnel Service  |   Description=Reverse SSH Tunnel Service  | ||
| Zeile 129: | Zeile 82: | ||
  User=support  |   User=support  | ||
  Environment="GWSOCK=40%I"  |   Environment="GWSOCK=40%I"  | ||
  Environment="GWUSER=  |   Environment="GWUSER=sshTnlKunde001"  | ||
  Environment="GWHOST=gateway  |   Environment="GWHOST=gateway"  | ||
  Environment="SSHKEY=/home/support/.ssh/gateway  |   Environment="SSHKEY=/home/support/.ssh/gateway"  | ||
  ExecStart=/usr/bin/ssh -NTC -o ServerAliveInterval=60 -o ExitOnForwardFailure=yes -o StrictHostKeyChecking=no -i ${SSHKEY} -R ${GWSOCK}:localhost:%I ${GWUSER}@${GWHOST}  |   ExecStart=/usr/bin/ssh -NTC -o ServerAliveInterval=60 -o ExitOnForwardFailure=yes -o StrictHostKeyChecking=no -i ${SSHKEY} -R ${GWSOCK}:localhost:%I ${GWUSER}@${GWHOST}  | ||
| Zeile 141: | Zeile 94: | ||
  WantedBy=multi-user.target  |   WantedBy=multi-user.target  | ||
Durch das @ im Namen der Unit können verschiedene Instanzen  | Durch das @ im Namen der Unit-Datei können verschiedene Instanzen (also Tunnel) erstellt werden:  | ||
  '''root@kunde001#''' systemctl daemon-reload  | |||
  root@  |   '''root@kunde001#''' systemctl start ssh-reverse@22.service  | ||
  root@  |   '''root@kunde001#''' systemctl start ssh-reverse@443.service  | ||
  root@  | |||
* Der Port des Tunnels auf dem Gateway wird auf "40%I" gesetzt wobei %I dem Instanznamen (hier 22 und 443) entspricht  | |||
* Hier ergibt das auf dem Gateway TCP-Sockets mit den Ports 4022 und 40443.  | |||
; Parameter für Instanzen  | |||
* Drop-In-Files  | |||
''/etc/systemd/system/ssh-reverse@22.service.d/tunnel.conf''  | |||
  [Service]  |   [Service]  | ||
  # Port of the tunnel at the remote gateway  |   # Port of the tunnel at the remote gateway  | ||
| Zeile 160: | Zeile 112: | ||
  Environment="GWUSER=ssh-kunde1"  |   Environment="GWUSER=ssh-kunde1"  | ||
  # remote gateway  |   # remote gateway  | ||
  ##Environment="GWHOST=gateway  |   ##Environment="GWHOST=gateway"  | ||
  # Location of the SSH key  |   # Location of the SSH key  | ||
  ##Environment="SSHKEY=/home/support/.ssh/gateway  |   ##Environment="SSHKEY=/home/support/.ssh/gateway"  | ||
''/etc/systemd/system/ssh-reverse@443.service.d/tunnel.conf''  | |||
  [Service]  |   [Service]  | ||
  # Port of the tunnel at the remote gateway  |   # Port of the tunnel at the remote gateway  | ||
| Zeile 172: | Zeile 123: | ||
  Environment="GWUSER=ssh-kunde1"  |   Environment="GWUSER=ssh-kunde1"  | ||
  # remote gateway  |   # remote gateway  | ||
  ##Environment="GWHOST=gateway  |   ##Environment="GWHOST=gateway"  | ||
  # Location of the SSH key  |   # Location of the SSH key  | ||
  ##Environment="SSHKEY=/home/support/.ssh/gateway  |   ##Environment="SSHKEY=/home/support/.ssh/gateway"  | ||
* Hier werden die auf dem Gateway verwendeten Sockets angepasst, statt den TCP-Ports werden verschiedene UNIX-Sockets verwendet.  | |||
* Außerdem wird ein anderer User auf dem Gateway verwendet.  | * Außerdem wird ein anderer User auf dem Gateway verwendet.  | ||
== Support-Rechner ==  | == Support-Rechner ==  | ||
=== Public-Key-Zugang ===  | |||
  user@  | ==== Public-Key übertragen ====  | ||
 '''user@support#''' ssh-copy-id -p22 sshTnlKunde001@gateway.foxtom.de  | |||
==== Public-Key-Zugang testen ====  | |||
 '''user@support#''' ssh -p22 sshTnlKunde001@gateway.foxtom.de  | |||
 '''sshTnlKunde001@gateway:~$''' exit  | |||
== Anwendung ==  | |||
=== Public-Key-Zugang ===  | |||
 '''support@kunde001$''' ssh -i /home/support/.ssh/gateway.foxtom.de.pub -p22 sshTnlKunde001@gateway.foxtom.de  | |||
# Fingerprint vergleichen  | |||
# Bestätigung durch Eingabe von "yes"  | |||
'''"PTY allocation request failed on channel 0"'''   | |||
Fehlermeldung und die Verbindung wird abgebrochen, das ist beabsichtigt.  | |||
=== Tunnel starten ===  | |||
  '''user@support$''' ssh -nNT -L 10022:localhost:10001 sshTnlKunde001@gateway  | |||
Damit wird ein Tunnel vom lokalen Port 10022 zum Port 10001 auf dem Gateway erstellt  | Damit wird ein Tunnel vom lokalen Port 10022 zum Port 10001 auf dem Gateway erstellt  | ||
"  | === Tunnelaufbau ===  | ||
; Manueller Aufbau  | |||
 '''support@debian01:~$''' ssh -N -T -C -o ServerAliveInterval=60 -o ExitOnForwardFailure=yes -o StrictHostKeyChecking=no -i '''${SSHKEY}''' -R '''${GWSOCK}''':localhost:'''${LOCALPORT}''' '''${GWUSER}'''@'''${GWHOST}'''  | |||
{| class="wikitable sortable"  | |||
|-  | |||
! Optionen  !! Bedeutung  | |||
|-  | |||
| '''-N''' || Keinen Befehl in der Ferne ausführen  | |||
|-  | |||
| '''-T''' || Deaktiviert Pseudo-Terminal-Zuweisung  | |||
|-  | |||
| '''-C''' || Komprimierung sämtlicher Daten  | |||
|-  | |||
| '''-o ServerAliveInterval=60''' ||  | |||
|-  | |||
| '''-o ExitOnForwardFailure=yes''' ||  | |||
|-  | |||
| '''-o StrictHostKeyChecking=no''' ||  | |||
|-  | |||
| '''-i ${SSHKEY}''' ||absoluter Pfad zum SSH-Key, beispielsweise  ~/.ssh/gateway  | |||
|-  | |||
| '''-R ${GWSOCK}:localhost:${LOCALPORT}''' ||  Reverse Tunnel erstellt, um vom Gateway aus auf den Kundenrechner zugreifen zu können  | |||
|}  | |||
{| class="wikitable sortable"  | |||
|-  | |||
! Parameter !! Bedeutung  | |||
|-  | |||
| '''${SSHKEY}''' || Der komplette Pfad zum SSH-Key, beispielsweise  ~/.ssh/gateway  | |||
|-  | |||
| '''${GWSOCK}''' || Der Socket, welcher auf dem Gateway für den Tunnel verwendet wird  | |||
* Diesen muss man dort ansprechen, um sich mit dem Zielsystem zu verbinden  | |||
* Werden mehrere Tunnel zum Gateway aufgebaut (was recht wahrscheinlich ist), muss jeweils ein anderer Socket verwendet werden  | |||
* Ein Socket kann ein TCP- oder ein UNIX-Socket sein. Ein TCP-Socket ist einfach eine Port-Nummer  | |||
* Da zum Tunnelaufbau normale User (nicht root) genutzt werden, können dabei nur Ports über 1024 verwendet werden. Bei einem UNIX-Socket muss dessen kompletter Pfad angegeben werden, beispielsweise  "/home/ssh-kunde1/zielsystem3.socket" (nicht "~/zielsystem3.socket")  | |||
|-  | |||
| '''${LOCALPORT}''' ||  | |||
* Das ist der Port, mit welchem der Tunnel auf dem Zielsystem verbunden wird  | |||
* Soll über den Tunnel eine SSH-Sitzung aufgebaut werden, nimmt man den Port 22. Läuft auf dem Zielsystem ein Webserver und dieser soll über den Tunnel erreichbar sein, wird Port 443 genommen (für verschlüsselte Seiten).  | |||
|-  | |||
| '''${GWUSER}''' ||  | |||
* Der User auf dem Gateway  | |||
* In unserem Beispiel also "sshTnlKunde001" oder "ssh-kunde1".  [FIXME]  | |||
|-  | |||
| '''${GWHOST}''' ||  | |||
* Der Hostname des Gateways, also beispielsweise  "gateway".  | |||
|}  | |||
; Beispiel  | |||
  $ ssh -N -T -C -o ServerAliveInterval=60 -o ExitOnForwardFailure=yes -o StrictHostKeyChecking=no -i ~/.ssh/gateway.foxtom.de -R 227:localhost:22 -p22 sshTnlKunde001@gateway.foxtom.de  | |||
== Sicherheit ==  | |||
; Angriffsmöglichkeiten  | |||
Es wird ein Tunnel durch die Firewall gebohrt, welche das Netzwerk mit dem Zielsystem schützt  | |||
; Risiken  | |||
Angreifer erlangt Zugriff auf das Gateway   | |||
* könnte von dort alle zu managenden Zielsysteme erreichen  | |||
* Das Zielsystem und das dahinter liegende Netzwerk ist dann nur noch durch die Sicherheitsmechanismen geschützt, welche die über den Tunnel erreichbare Anwendung auf dem Zielsystem bietet (beispielsweise  SSH- oder Webserver).  | |||
; Gateway gut absichern  | |||
Das ist gar nicht so anspruchsvoll  | |||
* weil es sich beim Gateway um ein Minimalsystem handelt  | |||
* welches vergleichsweise einfach upgedatet und sicher konfiguriert werden kann  | |||
; Sicherheitsmaßnahmen auf dem Zielsystem  | |||
* laufende Updates  | |||
*   | * kein root-logins zulassen  | ||
*   | * starke Passwörter  | ||
; Bewertung  | |||
Bei Einhaltung dieser Maßnahmen die Sicherheit im Vergleich zu anderen Varianten (proprietäre Fernwartungstools, Port-Forwarding durch Firewalls) als höher einzuschätzen  | |||
; Zusätzliche Absicherung  | |||
* [[fail2ban]]  | |||
* Durch die Supporter benutzte SSH-Schlüssel auf Smartcard ablegen  | |||
* Die können beispielsweise , wie unter "[https://www.unitas-network.de/support/wiki/smartcards/ssh-login-mit-openpgp-card/ SSH-Login mit OpenPGP Card]" beschrieben, auf einer Smartcard abgelegt werden  | |||
== Siehe auch ==  | |||
{{Special:PrefixIndex/{{BASEPAGENAME}}/}}  | |||
=== Dokumentation ===  | |||
==== RFC ====  | |||
==== Man-Page ====  | |||
==== Info-Pages ====  | |||
=== Links ===  | |||
==== Projekt ====  | |||
==== Weblinks ====  | |||
# https://www.unitas-network.de/support/wiki/management/remote-management-mit-ssh-tunnel/  | |||
[[Kategorie:SSH/Tunnel]]  | |||
Aktuelle Version vom 2. Oktober 2025, 09:40 Uhr
SSH-Gateway - vermittelt verschlüsselte Tunnelverbindungen zwischen SSH-Clients
Beschreibung
- Teilnehmer bauen aktiv einen Tunnel zum Gateway auf
 
- Keine Portweiterleitungen erforderlich
 - Keine Namensauflösung der Teilnehmer erforderlich
 
- Gateway vermittelt den Kontakt
 
- Gateway ist ein SSH-Server im Internet
 
- Trennung verschiedener Kunden/Dienstleiter
 
- Je Tunnel (Kombination aus Kunde/Dienstleiter) ein Zugang
 
- Szenario
 
| Hostname | Username | 
|---|---|
| gateway.foxtom.de | sshTnlKunde001 | 
| kunde001 | support | 
| support | user | 
Gateway
Kunden-Zugang
Tunnel-Benutzerkonto
root@gateway# useradd --create-home --groups users --shell /bin/bash --comment "Tunnel-User Kunden001" sshTnlKunde001
Passwort vergeben
root@gateway# passwd sshTnlKunde001 New password: Retype new password: passwd: password updated successfully
Zugang testen
user@support# ssh -p22 sshTnlKunde001@gateway.foxtom.de sshTnlKunde001@gateway's password:
SSH-Server
- UNIX Sockets
 
Damit sich Kunden nicht mit dem System eines anderen Kunden verbinden können, werden hier UNIX Sockets verwandt.
- Diese besitzen im Gegensatz zu TCP-Ports eine Zugriffssteuerung
 
Damit der Socket beim Abbau des Tunnels eine neue Socket-Datei erstellt wird, wird die Konfiguration des SSH-Dienstes ergänzt
- ein erneuter Aufbau des Tunnels ist ansonsten mit dem gleichen Socket-Namen nicht möglich
 
/etc/ssh/sshd_config
# Specifies whether to remove an existing Unix-domain socket file for local or remote port forwarding before creating a new one. StreamLocalBindUnlink yes
Kunden-Rechner
Tunnel-Benutzerkonto
root@kunde001# useradd -m -G users -s /bin/bash kunde001Tnl
SSH-Key erzeugen
root@kunde001# sudo -u support -i support@kunde001$ ssh-keygen -f /home/support/.ssh/gateway -t ecdsa
Keine Passphrase eingeben (Enter)
Public-Key übertragen
support@kunde001$ ssh-copy-id -p22 -i /home/support/.ssh/gateway.foxtom.de.pub sshTnlKunde001@gateway.foxtom.de
Public-Key-Zugang testen
support@kunde001$ ssh -i /home/support/.ssh/gateway.foxtom.de -p22 sshTnlKunde001@gateway.foxtom.de
- Fingerprint vergleichen
 - Bestätigung durch Eingabe von "yes"
 
Fehlermeldung "PTY allocation request failed on channel 0" und die Verbindung wird abgebrochen. Das ist beabsichtigt.
Automatisierung
Systemd konfigurieren
- Systemd-Service-Unit
 
/etc/systemd/system/ssh-reverse@.service
[Unit]
Description=Reverse SSH Tunnel Service
ConditionPathExists=|/usr/bin
After=network.target
[Service]
User=support
Environment="GWSOCK=40%I"
Environment="GWUSER=sshTnlKunde001"
Environment="GWHOST=gateway"
Environment="SSHKEY=/home/support/.ssh/gateway"
ExecStart=/usr/bin/ssh -NTC -o ServerAliveInterval=60 -o ExitOnForwardFailure=yes -o StrictHostKeyChecking=no -i ${SSHKEY} -R ${GWSOCK}:localhost:%I ${GWUSER}@${GWHOST}
# Restart every >2 seconds to avoid StartLimitInterval failure
RestartSec=3
Restart=always
[Install]
WantedBy=multi-user.target
Durch das @ im Namen der Unit-Datei können verschiedene Instanzen (also Tunnel) erstellt werden:
root@kunde001# systemctl daemon-reload root@kunde001# systemctl start ssh-reverse@22.service root@kunde001# systemctl start ssh-reverse@443.service
- Der Port des Tunnels auf dem Gateway wird auf "40%I" gesetzt wobei %I dem Instanznamen (hier 22 und 443) entspricht
 - Hier ergibt das auf dem Gateway TCP-Sockets mit den Ports 4022 und 40443.
 
- Parameter für Instanzen
 
- Drop-In-Files
 
/etc/systemd/system/ssh-reverse@22.service.d/tunnel.conf
[Service] # Port of the tunnel at the remote gateway Environment="GWSOCK=/home/ssh-kunde1/ziel3-ssh.socket" # User at gateway to create the tunnel Environment="GWUSER=ssh-kunde1" # remote gateway ##Environment="GWHOST=gateway" # Location of the SSH key ##Environment="SSHKEY=/home/support/.ssh/gateway"
/etc/systemd/system/ssh-reverse@443.service.d/tunnel.conf
[Service] # Port of the tunnel at the remote gateway Environment="GWSOCK=/home/ssh-kunde1/ziel3-https.socket" # User at gateway to create the tunnel Environment="GWUSER=ssh-kunde1" # remote gateway ##Environment="GWHOST=gateway" # Location of the SSH key ##Environment="SSHKEY=/home/support/.ssh/gateway"
- Hier werden die auf dem Gateway verwendeten Sockets angepasst, statt den TCP-Ports werden verschiedene UNIX-Sockets verwendet.
 - Außerdem wird ein anderer User auf dem Gateway verwendet.
 
Support-Rechner
Public-Key-Zugang
Public-Key übertragen
user@support# ssh-copy-id -p22 sshTnlKunde001@gateway.foxtom.de
Public-Key-Zugang testen
user@support# ssh -p22 sshTnlKunde001@gateway.foxtom.de sshTnlKunde001@gateway:~$ exit
Anwendung
Public-Key-Zugang
support@kunde001$ ssh -i /home/support/.ssh/gateway.foxtom.de.pub -p22 sshTnlKunde001@gateway.foxtom.de
- Fingerprint vergleichen
 - Bestätigung durch Eingabe von "yes"
 
"PTY allocation request failed on channel 0"
Fehlermeldung und die Verbindung wird abgebrochen, das ist beabsichtigt.
Tunnel starten
user@support$ ssh -nNT -L 10022:localhost:10001 sshTnlKunde001@gateway
Damit wird ein Tunnel vom lokalen Port 10022 zum Port 10001 auf dem Gateway erstellt
Tunnelaufbau
- Manueller Aufbau
 
support@debian01:~$ ssh -N -T -C -o ServerAliveInterval=60 -o ExitOnForwardFailure=yes -o StrictHostKeyChecking=no -i ${SSHKEY} -R ${GWSOCK}:localhost:${LOCALPORT} ${GWUSER}@${GWHOST}
| Optionen | Bedeutung | 
|---|---|
| -N | Keinen Befehl in der Ferne ausführen | 
| -T | Deaktiviert Pseudo-Terminal-Zuweisung | 
| -C | Komprimierung sämtlicher Daten | 
| -o ServerAliveInterval=60 | |
| -o ExitOnForwardFailure=yes | |
| -o StrictHostKeyChecking=no | |
| -i ${SSHKEY} | absoluter Pfad zum SSH-Key, beispielsweise ~/.ssh/gateway | 
| -R ${GWSOCK}:localhost:${LOCALPORT} | Reverse Tunnel erstellt, um vom Gateway aus auf den Kundenrechner zugreifen zu können | 
| Parameter | Bedeutung | 
|---|---|
| ${SSHKEY} | Der komplette Pfad zum SSH-Key, beispielsweise ~/.ssh/gateway | 
| ${GWSOCK} | Der Socket, welcher auf dem Gateway für den Tunnel verwendet wird
  | 
| ${LOCALPORT} | 
  | 
| ${GWUSER} | 
  | 
| ${GWHOST} | 
  | 
- Beispiel
 
$ ssh -N -T -C -o ServerAliveInterval=60 -o ExitOnForwardFailure=yes -o StrictHostKeyChecking=no -i ~/.ssh/gateway.foxtom.de -R 227:localhost:22 -p22 sshTnlKunde001@gateway.foxtom.de
Sicherheit
- Angriffsmöglichkeiten
 
Es wird ein Tunnel durch die Firewall gebohrt, welche das Netzwerk mit dem Zielsystem schützt
- Risiken
 
Angreifer erlangt Zugriff auf das Gateway
- könnte von dort alle zu managenden Zielsysteme erreichen
 - Das Zielsystem und das dahinter liegende Netzwerk ist dann nur noch durch die Sicherheitsmechanismen geschützt, welche die über den Tunnel erreichbare Anwendung auf dem Zielsystem bietet (beispielsweise SSH- oder Webserver).
 
- Gateway gut absichern
 
Das ist gar nicht so anspruchsvoll
- weil es sich beim Gateway um ein Minimalsystem handelt
 - welches vergleichsweise einfach upgedatet und sicher konfiguriert werden kann
 
- Sicherheitsmaßnahmen auf dem Zielsystem
 
- laufende Updates
 - kein root-logins zulassen
 - starke Passwörter
 
- Bewertung
 
Bei Einhaltung dieser Maßnahmen die Sicherheit im Vergleich zu anderen Varianten (proprietäre Fernwartungstools, Port-Forwarding durch Firewalls) als höher einzuschätzen
- Zusätzliche Absicherung
 
- fail2ban
 - Durch die Supporter benutzte SSH-Schlüssel auf Smartcard ablegen
 - Die können beispielsweise , wie unter "SSH-Login mit OpenPGP Card" beschrieben, auf einer Smartcard abgelegt werden