Wiki-Quellcode von Erweiterte SSH-Einstellungen am Server
Version 18.1 von Christian Germann am 2022/05/24 09:10
Zeige letzte Bearbeiter
author | version | line-number | content |
---|---|---|---|
1 | (% class="box errormessage" %) | ||
2 | ((( | ||
3 | **Hinweis:** Von einer Anpassung der hier vorgestellten Optionen ist in der Regel abzuraten, dies wird nicht empfohlen! | ||
4 | ))) | ||
5 | |||
6 | |||
7 | Ab der Puppet-Version 1.5.x kamen weitere SSH-Einstellungen hinzu, die für die Nutzung unter LogoDIDACT brauchbar sein können. | ||
8 | |||
9 | {{toc start="4"/}} | ||
10 | |||
11 | |||
12 | ==== __Spezifisch für ldhost__ ==== | ||
13 | |||
14 | Die hier vorgestellte Option kann im Puppeteer-Container über die YAML-Datei {{box}}/etc/logodidact/hiera.d/custom.d/ldhost.yaml{{/box}} angepasst werden. | ||
15 | |||
16 | |||
17 | 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. | ||
18 | |||
19 | {{code language="bash"}} | ||
20 | ld_ssh::server::firewall_port: 1212 # Default-Port | ||
21 | {{/code}} | ||
22 | |||
23 | 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. | ||
24 | |||
25 | |||
26 | |||
27 | ==== __Containerübergreifend nutzbare Einstellungen__ ==== | ||
28 | |||
29 | (% class="wikigeneratedid" id="HGFCltigkeitsbereichderEinstellungdurchAuswahlderSpeicherortsfestlegen" %) | ||
30 | (% id="cke_bm_186S" style="display:none" %) (%%)Der Speicherort der konfigurierten YAML-Datei gibt den Gültigkeitsbereich der Option am Server vor. | ||
31 | |||
32 | * 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. | ||
33 | * 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. | ||
34 | * ((( | ||
35 | Einstellungen für den ldhost selbst müssen in der Datei {{box}}/etc/logodidact/hiera/custom.d/ldhost.yaml{{/box}} gespeichert werden. | ||
36 | ))) | ||
37 | |||
38 | ---- | ||
39 | |||
40 | Festlegen, ob ein Login am Server als root-Benutzer im SSH-Dienst erlaubt ist: | ||
41 | |||
42 | {{code language="bash"}} | ||
43 | ld_ssh::server::permit_root_login: true / false # Default = true | ||
44 | {{/code}} | ||
45 | |||
46 | ---- | ||
47 | |||
48 | Authentifizierung neben der Public-Key Methode auch per Passwort zulassen: | ||
49 | |||
50 | {{code language="bash"}} | ||
51 | ld_ssh::server::auth_passwd: true / false # Default = true | ||
52 | {{/code}} | ||
53 | |||
54 | ---- | ||
55 | |||
56 | 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: | ||
57 | |||
58 | {{code language="bash"}} | ||
59 | ld_ssh::server::authorize::root::extern: true / false # Default = true | ||
60 | ld_ssh::server::authorize::root::intern: true / false # Default = true | ||
61 | {{/code}} | ||
62 | |||
63 | 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: | ||
64 | |||
65 | {{code language="bash"}} | ||
66 | root@puppeteer:~ $ /etc/logodidact/ssh/keys/[USERNAME]/[intern|extern|global] | ||
67 | |||
68 | # Hinweise: | ||
69 | # --------- | ||
70 | # | ||
71 | # * Zur Autorisierung einer SSH-Key Anmeldung für den root-Benutzer muss also "[USERNAME]" im Pfad durch "root" ersetzt werden | ||
72 | # | ||
73 | # * Im letzten Teil des Pfades gibt man vor, ob die SSH-Anmeldung mit dem entsprechenden Key... | ||
74 | # ... intern = nur für das lokale Netz (10.16.x.x) freigeschaltet werden soll | ||
75 | # ... extern = nur für Fernzugriffe auf den Server über das Internet freigeschaltet werden soll | ||
76 | # ... global = von beiden Seiten freigeschaltet werden soll, also für die interne & externe Zone | ||
77 | {{/code}} | ||
78 | |||
79 | 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. | ||
80 | |||
81 | ---- | ||
82 | |||
83 | 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. | ||
84 | |||
85 | {{code language="bash"}} | ||
86 | # Folgende Standard-Einstellungen können bei Bedarf erhöht werden | ||
87 | ld_ssh::server::auto_logout_timeouts: | ||
88 | ssh: 12h | ||
89 | console: 8h | ||
90 | {{/code}} | ||
91 | |||
92 | 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. |