Erweiterte SSH-Einstellungen am Server

Version 15.1 von Christian Germann am 2022/05/23 16:42

Ab der Puppet-Version 1.5.x kamen weitere SSH-Einstellungen hinzu, die für die Nutzung unter LogoDIDACT brauchbar sein können.

Spezifisch im ldhost

Die hier vorgestellte Option kann im Puppeteer-Container über die YAML-Datei /etc/logodidact/hiera.d/custom.d/ldhost.yaml angepasst werden.

Um zwischen internen und externen SSH-Zugriffen unterscheiden zu können, wurde der SSH-Dienst neben Port 22 zusätzlich an den Port 1212 gebunden. Über die nachfolgende Variable ist es möglich, den verwendeten Port 1212 für den SSH-Dienst in der Zone "extern" zu ändern.

ld_ssh::server::firewall_port: 1212   # Default-Port

Ergänzend dazu ist eine manuelle Anpassung an der Shorewall rules-Datei für die richtige Zuordnung nötig. Diese Firewall-Regel wird im Artikel "SSH-Keys für Fernzugriff am LD-Server hinzufügen" genauer beschrieben.

Gültigkeitsbereich der Einstellung durch Auswahl der Speicherorts festlegen

Der Speicherort der konfigurierten YAML-Datei gibt den Gültigskeitsbereich am Server vor.

  • Um die Einstellung für alle LXC-Container und den ldhost zu verwenden, müssen die Einstellungen in /etc/logodidact/hiera/custom.yaml abgespeichert werden
  • Möchten Sie die Einstellungen auf einen einzelnen LXC-Container einschränken, so müssen die Einstellungen in /etc/logodidact/hiera/custom.d/[Name des LXC-Containers].yaml gespeichert werden.
  • Einstellungen für den ldhost selbst, müssen in folgender Datei  /etc/logodidact/hiera/custom.d/ldhost.yaml gespeichert werden.

     

Containerübergreifend nutzbare Einstellungen

Festlegen, ob ein root-Login am Server per SSH erlaubt ist

ld_ssh::server::permit_root_login: true / false     # Default = true

Authentifizierung neben der Public-Key Methode auch per Passwort zulassen.

ld_ssh::server::auth_passwd: true / false     # Default = true

Die Bereitstellung von zusätzlichen SSH-Schlüsseln für den externen und internen Zugriff kann über hiera keys aktiviert/deaktiviert werden:

ld_ssh::server::authorize::root::extern: true / false     # Default = true
ld_ssh::server::authorize::root::intern: true / false     # Default = true

Die zusätzlichen SSH-Schlüssel müssen dann in folgenden Verzeichnis abgelegt werden

root@puppeteer:~ # /etc/logodidact/ssh/keys/[USERNAME]/[extern,global]

Bei einer längeren SSH-Sitzung kann es vorkommen, dass diese über eine längere Zeit geöffnet ist. Das kann zu einem großen Sicherheitsrisiko führen und wird über einen automatisierten Logout umgangen.

# Folgende Standard-Einstellungen können bei Bedarf erhöht werden
ld_ssh::server::auto_logout_timeouts:
  ssh: 12h
  console: 8h