Erweiterte SSH-Einstellungen am Server
Ab der Puppet-Version 1.5.x kamen weitere SSH-Einstellungen hinzu, die für die Nutzung unter LogoDIDACT brauchbar sein können.
Spezifisch für 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.
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.
Containerübergreifend nutzbare Einstellungen
Der Speicherort der konfigurierten YAML-Datei gibt den Gültigkeitsbereich der Option 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/[NameDesContainers].yaml gespeichert werden.
Einstellungen für den ldhost selbst müssen in der Datei /etc/logodidact/hiera/custom.d/ldhost.yaml gespeichert werden.
Festlegen, ob ein Login am Server als root-Benutzer im SSH-Dienst erlaubt ist:
Authentifizierung neben der Public-Key Methode auch per Passwort zulassen:
Die Autorisierung von SSH-Schlüsseln zur Anmeldung am Server erfolgt über sogenannte Hiera-Einstellungen im Puppeteer. Standardmäßig ist dieses Anmeldeverfahren (PubkeyAuthentication) dort für den SSH-Dienst aktiviert:
ld_ssh::server::authorize::root::intern: true / false # Default = true
Der Public-Key Teil aller SSH-Schlüssel, die zur Anmeldung am Server autorisiert werden sollen, müssen dann in folgenden Verzeichnis im Puppeteer abgelegt werden:
# Hinweise:
# ---------
#
# * Zur Autorisierung einer SSH-Key Anmeldung für den root-Benutzer muss also "[USERNAME]" im Pfad durch "root" ersetzt werden
#
# * Im letzten Teil des Pfades gibt man vor, ob die SSH-Anmeldung mit dem entsprechenden Key...
# ... intern = nur für das lokale Netz (10.16.x.x) freigeschaltet werden soll
# ... extern = nur für Fernzugriffe auf den Server über das Internet freigeschaltet werden soll
# ... global = von beiden Seiten freigeschaltet werden soll, also für die interne & externe Zone
Für jeden Public-Key einer Person muss eine eigene Datei im oben beschriebenen Verzeichnis abgespeichert werden, die auf die Dateiendung .pub endet.
In Bezug zu länger geöffneten SSH-Sitzungen gibt es einen vordefinierten Timeout, zu dem die Verbindung geschlossen wird und ein automatischer Logout erfolgt.
ld_ssh::server::auto_logout_timeouts:
ssh: 12h
console: 8h
Zur Ausführung von Kommandos, die selbst sehr viel Zeit am Server in Anspruch nehmen (z.B. das Kopieren größerer Mengen an Daten), empfiehlt sich die Verwendung einer Screen-Sitzung, damit das Kommando in Hintergrund und losgelöst von der SSH-Verbindung verarbeitet werden kann.