Wiki-Quellcode von Erweiterte SSH-Einstellungen am Server
Version 16.1 von Jonas Mayer am 2022/05/24 08:55
Zeige letzte Bearbeiter
author | version | line-number | content |
---|---|---|---|
1 | Ab der Puppet-Version 1.5.x kamen weitere SSH-Einstellungen hinzu, die für die Nutzung unter LogoDIDACT brauchbar sein können. | ||
2 | |||
3 | {{toc start="4"/}} | ||
4 | |||
5 | |||
6 | ==== __Spezifisch für ldhost__ ==== | ||
7 | |||
8 | Die hier vorgestellte Option kann im Puppeteer-Container über die YAML-Datei {{box}}/etc/logodidact/hiera.d/custom.d/ldhost.yaml{{/box}} angepasst werden. | ||
9 | |||
10 | |||
11 | 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. | ||
12 | |||
13 | {{code language="bash"}} | ||
14 | ld_ssh::server::firewall_port: 1212 # Default-Port | ||
15 | {{/code}} | ||
16 | |||
17 | 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>>doc:xwiki:Main.LD Server.Puppet-Version.1\.5\.x.SSH-Keys für Fernzugriff am LD-Server hinzufügen.WebHome]]" genauer beschrieben. | ||
18 | |||
19 | |||
20 | |||
21 | ==== __Containerübergreifend nutzbare Einstellungen__ ==== | ||
22 | |||
23 | (% class="wikigeneratedid" id="HGFCltigkeitsbereichderEinstellungdurchAuswahlderSpeicherortsfestlegen" %) | ||
24 | (% id="cke_bm_186S" style="display:none" %) (%%)Der Speicherort der konfigurierten YAML-Datei gibt den Gültigkeitsbereich der Option am Server vor. | ||
25 | |||
26 | * Um die Einstellung für alle LXC-Container und den ldhost zu verwenden, müssen die Einstellungen in {{box}}/etc/logodidact/hiera/custom.yaml{{/box}} abgespeichert werden. | ||
27 | * Möchten Sie die Einstellungen auf einen einzelnen LXC-Container einschränken, so müssen die Einstellungen in {{box}}/etc/logodidact/hiera/custom.d/[NameDesContainers].yaml{{/box}} gespeichert werden. | ||
28 | * ((( | ||
29 | Einstellungen für den ldhost selbst müssen in der Datei {{box}}/etc/logodidact/hiera/custom.d/ldhost.yaml{{/box}} gespeichert werden. | ||
30 | ))) | ||
31 | |||
32 | |||
33 | ---- | ||
34 | |||
35 | Festlegen, ob ein Login am Server als root-Benutzer im SSH-Dienst erlaubt ist: | ||
36 | |||
37 | {{code language="bash"}} | ||
38 | ld_ssh::server::permit_root_login: true / false # Default = true | ||
39 | {{/code}} | ||
40 | |||
41 | ---- | ||
42 | |||
43 | Authentifizierung neben der Public-Key Methode auch per Passwort zulassen: | ||
44 | |||
45 | {{code language="bash"}} | ||
46 | ld_ssh::server::auth_passwd: true / false # Default = true | ||
47 | {{/code}} | ||
48 | |||
49 | ---- | ||
50 | |||
51 | 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: | ||
52 | |||
53 | {{code language="bash"}} | ||
54 | ld_ssh::server::authorize::root::extern: true / false # Default = true | ||
55 | ld_ssh::server::authorize::root::intern: true / false # Default = true | ||
56 | {{/code}} | ||
57 | |||
58 | 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: | ||
59 | |||
60 | {{code language="bash"}} | ||
61 | root@puppeteer:~ $ /etc/logodidact/ssh/keys/[USERNAME]/[intern|extern|global] | ||
62 | |||
63 | # Hinweise: | ||
64 | # --------- | ||
65 | # | ||
66 | # * Zur Autorisierung einer SSH-Key Anmeldung für den root-Benutzer muss also "[USERNAME]" im Pfad durch "root" ersetzt werden | ||
67 | # | ||
68 | # * Im letzten Teil des Pfades gibt man vor, ob die SSH-Anmeldung mit dem entsprechenden Key... | ||
69 | # ... intern = nur für das lokale Netz (10.16.x.x) freigeschaltet werden soll | ||
70 | # ... extern = nur für Fernzugriffe auf den Server über das Internet freigeschaltet werden soll | ||
71 | # ... global = von beiden Seiten freigeschaltet werden soll, also für die interne & externe Zone | ||
72 | {{/code}} | ||
73 | |||
74 | Für jeden Public-Key einer Person muss eine eigene Datei im oben beschriebenen Verzeichnis abgespeichert werden, die auf die Dateiendung (% style="color:#2980b9" %)**.pub**(%%) endet. | ||
75 | |||
76 | ---- | ||
77 | |||
78 | 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. | ||
79 | |||
80 | {{code language="bash"}} | ||
81 | # Folgende Standard-Einstellungen können bei Bedarf erhöht werden | ||
82 | ld_ssh::server::auto_logout_timeouts: | ||
83 | ssh: 12h | ||
84 | console: 8h | ||
85 | {{/code}} | ||
86 | |||
87 | 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>>https://wiki.ubuntuusers.de/Screen/]], damit das Kommando in Hintergrund und losgelöst von der SSH-Verbindung verarbeitet werden kann. |