silverlogic.sshd
OpenSSH-Server
Diese Rolle konfiguriert den OpenSSH-Dämon. Sie:
- Konfiguriert standardmäßig den SSH-Dämon mit den üblichen Betriebssystemstandardeinstellungen.
- Funktioniert über verschiedene UN*X-ähnliche Distributionen hinweg.
- Kann über ein Wörterbuch oder einfache Variablen konfiguriert werden.
- Unterstützt Match-Sets.
- Unterstützt alle sshd_config-Optionen. Vorlagen werden programmgesteuert generiert. (siehe meta/make_option_list)
- Testet die sshd_config, bevor sshd neu geladen wird.
WARNUNG Eine falsche Konfiguration dieser Rolle kann dazu führen, dass Sie sich nicht mehr auf Ihrem Server anmelden können! Bitte testen Sie Ihre Konfiguration und deren Wechselwirkung mit der Benutzerkonfiguration, bevor Sie sie in der Produktion verwenden!
WARNUNG Digital Ocean erlaubt root-Zugänge mit Passwörtern über SSH auf Debian und Ubuntu.
Dies ist nicht die standardmäßige Einstellung dieses Moduls - es setzt PermitRootLogin without-password
, was den Zugang über SSH-Schlüssel erlaubt, aber nicht über einfache Passwörter.
Wenn Sie diese Funktion benötigen, stellen Sie sicher, dass Sie ssh_PermitRootLogin yes
für diese Hosts setzen.
Anforderungen
Getestet auf:
- Ubuntu precise, trusty
- Debian wheezy, jessie
- FreeBSD 10.1
- EL 6,7 abgeleitete Distributionen
- Fedora 22, 23
- OpenBSD 6.0
Es wird wahrscheinlich auch auf anderen Versionen funktionieren, weitere direkte Unterstützung über geeignete vars/ Dateien ist willkommen.
Rollenvariablen
Unkonfiguriert bietet diese Rolle eine sshd_config, die den Betriebssystemstandard entspricht, ohne Kommentare und in anderer Reihenfolge.
- sshd_skip_defaults
Wenn auf True gesetzt, werden keine Standardwerte angewendet. Das bedeutet, dass Sie eine vollständige Sammlung von Konfigurationsstandards über entweder das sshd-Wörterbuch oder sshd_Key-Variablen haben müssen. Standardmäßig auf False gesetzt.
- sshd_manage_service
Wenn auf False gesetzt, wird der Dienst/Dämon gar nicht berührt, d.h. es wird nicht versucht, ihn beim Start zu aktivieren oder zu starten oder den Dienst neu zu laden. Standardmäßig auf True gesetzt, es sei denn, es wird in einem Docker-Container ausgeführt (es wird davon ausgegangen, dass Ansible während der Build-Phase verwendet wird).
- sshd_allow_reload
Wenn auf False gesetzt, wird ein Reload von sshd bei Änderungen nicht erfolgen. Dies kann bei der Fehlersuche helfen. Sie müssen sshd manuell neu laden, wenn Sie die geänderte Konfiguration anwenden möchten. Standardmäßig auf den gleichen Wert wie sshd_manage_service
gesetzt.
- sshd_authorized_principals_file
Der Pfad, wo die Dateien der autorisierten Principals gespeichert werden. Wird nur verwendet, wenn sshd_authorized_principals
ebenfalls gesetzt ist.
Kann verwendet werden, um Ihre sshd_AuthorizedPrincipalsFile-Konfiguration festzulegen. z.B. sshd_AuthorizedPrincipalsFile: '{{ sshd_authorized_principals_file }}'
- sshd_authorized_principals
Ein Wörterbuch von Listen, das angibt, welche Principals für welche Benutzer angemeldet werden dürfen. Jeder Schlüssel im Wörterbuch ist der Name des Benutzers. Der Wert des Wörterbuchs ist eine Liste von Principals, die für diesen Benutzer zugelassen sind. z.B.
sshd_authorized_principals:
root:
- root-everywhere
- bobby
- ryan
- sshd_trusted_user_ca_keys_file
Der Pfad, wo die Datei der vertrauenswürdigen Benutzer-CA-Schlüssel gespeichert wird. Wird nur verwendet, wenn sshd_trusted_user_ca_keys
ebenfalls gesetzt ist.
Kann verwendet werden, um Ihre sshd_TrustedUserCAKeys-Konfiguration festzulegen. z.B. sshd_TrustedUserCAKeys: '{{ sshd_trusted_user_ca_keys }}'
- sshd_trusted_user_ca_keys
Eine Liste von CA-Öffentlichen Schlüsseln, denen vertraut wird.
- sshd
Ein Wörterbuch, das Konfigurationen enthält, z.B.
sshd:
Compression: delayed
ListenAddress:
- 0.0.0.0
- ssh_...
Einfachvariablen können anstelle eines Wörterbuchs verwendet werden. Einfache Werte überschreiben Werte aus dem Wörterbuch. z.B.:
sshd_Compression: off
In allen Fällen werden Booleans korrekt als ja und nein in der sshd-Konfiguration gerendert. Listen können für mehrzeilige Konfigurationselemente verwendet werden. z.B.
sshd_ListenAddress:
- 0.0.0.0
- '::'
Führt zu:
ListenAddress 0.0.0.0
ListenAddress ::
- sshd_match
Eine Liste von Wörterbüchern für einen Match-Abschnitt. Siehe das Beispiel-Playbook.
- sshd_match_1 bis sshd_match_9
Eine Liste von Wörterbüchern oder nur ein Wörterbuch für einen Match-Abschnitt.
Abhängigkeiten
Keine
Beispiel-Playbook
GEFAHR! Dieses Beispiel zeigt den Bereich der Konfiguration, den diese Rolle bietet. Das Ausführen wird wahrscheinlich Ihren SSH-Zugang zum Server unterbrechen!
---
- hosts: all
vars:
sshd_skip_defaults: true
sshd:
Compression: true
ListenAddress:
- "0.0.0.0"
- "::"
GSSAPIAuthentication: no
Match:
- Condition: "Group user"
GSSAPIAuthentication: yes
sshd_UsePrivilegeSeparation: no
sshd_match:
- Condition: "Group xusers"
X11Forwarding: yes
roles:
- role: willshersystems.sshd
Ergebnisse in:
# Von Ansible verwaltet: ...
Compression yes
GSSAPIAuthentication no
UsePrivilegeSeparation no
Match Group user
GSSAPIAuthentication yes
Match Group xusers
X11Forwarding yes
Vorlagenerstellung
Die sshd_config.j2 Vorlage wird programmgesteuert von den Skripten in meta generiert. Neue Optionen sollten zum options_body oder options_match hinzugefügt werden.
Um die Vorlage neu zu generieren, führen Sie aus dem meta/-Verzeichnis folgendes aus:
./make_option_list >../templates/sshd_config.j2
Lizenz
LGPLv3
Autor
Matt Willsher matt@willsher.systems
© 2014,2015 Willsher Systems Ltd.
OpenSSH SSH deamon configuration
ansible-galaxy install silverlogic.sshd