silverlogic.sshd
Serwer OpenSSH
Ta rola konfiguruje demona OpenSSH. Robi to:
- Domyślnie konfiguruje demona SSH z normalnymi ustawieniami systemu operacyjnego.
- Działa na różnych systemach UN*X.
- Może być konfigurowana za pomocą słownika lub prostych zmiennych.
- Obsługuje zestawy Match.
- Obsługuje wszystkie opcje sshd_config. Szablony są generowane programowo. (zobacz meta/make_option_list)
- Testuje sshd_config przed ponownym załadowaniem sshd.
OSTRZEŻENIE Błędna konfiguracja tej roli może zablokować dostęp do serwera! Proszę przetestować konfigurację i jej interakcję z konfiguracją użytkowników przed użyciem w produkcji!
OSTRZEŻENIE Digital Ocean pozwala na logowanie jako root z hasłami przez SSH na systemach Debian i Ubuntu. To nie jest domyślne ustawienie przypisane przez ten moduł - ustawi PermitRootLogin without-password
, co umożliwi dostęp poprzez klucz SSH, ale nie przez proste hasło. Jeśli potrzebujesz tej funkcjonalności, upewnij się, że ustawisz ssh_PermitRootLogin yes
dla tych hostów.
Wymagania
Testowano na:
- Ubuntu precise, trusty
- Debian wheezy, jessie
- FreeBSD 10.1
- Dystrybucje pochodne EL 6,7
- Fedora 22, 23
- OpenBSD 6.0
Prawdopodobnie będzie działać na innych wersjach, a dalsze wsparcie za pomocą odpowiednich plików vars/ jest mile widziane.
Zmienne roli
Nie skonfigurowana, ta rola dostarczy sshd_config, który odpowiada domyślnym ustawieniom OS, minus komentarze i w innej kolejności.
- sshd_skip_defaults
Jeśli ustawione na True, nie stosuj wartości domyślnych. Oznacza to, że musisz mieć kompletny zestaw ustawień konfiguracyjnych za pomocą słownika sshd lub zmiennych sshd_Key. Domyślnie False.
- sshd_manage_service
Jeśli ustawione na False, usługa/demon nie zostanie w żaden sposób zmieniona, tzn. nie spróbuje włączyć się przy starcie ani uruchomić lub przeładować usługi. Domyślnie True, chyba że działa w kontenerze docker (zakłada się, że ansible jest używane podczas fazy budowy).
- sshd_allow_reload
Jeśli ustawione na False, przeładowanie sshd nie nastąpi po zmianie. Może to pomóc w rozwiązywaniu problemów. Konieczne będzie ręczne przeładowanie sshd, jeśli chcesz zastosować zmienioną konfigurację. Domyślnie ma tę samą wartość co sshd_manage_service
.
- sshd_authorized_principals_file
Ścieżka, w której będą przechowywane pliki upoważnionych principalów. Używane tylko, jeśli także sshd_authorized_principals
jest ustawione.
Można użyć, aby ustawić konfigurację sshd_AuthorizedPrincipalsFile, np. sshd_AuthorizedPrincipalsFile: '{{ sshd_authorized_principals_file }}'
- sshd_authorized_principals
Słownik list określających, którzy principalowie mogą logować się do których użytkowników. Każdy klucz w słowniku to nazwa użytkownika. Wartość słownika to lista principalów, którzy mogą logować się do tego użytkownika. np.
sshd_authorized_principals:
root:
- root-everywhere
- bobby
- ryan
- sshd_trusted_user_ca_keys_file
Ścieżka, w której będzie przechowywany plik z kluczami CA zaufanych użytkowników. Używane tylko, jeśli także sshd_trusted_user_ca_keys
jest ustawione.
Można użyć, aby ustawić konfigurację sshd_TrustedUserCAKeys, np. sshd_TrustedUserCAKeys: '{{ sshd_trusted_user_ca_keys }}'
- sshd_trusted_user_ca_keys
Lista publicznych kluczy CA, którym ufamy.
- sshd
Słownik zawierający konfigurację, np.
sshd:
Compression: delayed
ListenAddress:
- 0.0.0.0
- ssh_...
Proste zmienne mogą być używane zamiast słownika. Proste wartości przysłaniają wartości słownika. np.:
sshd_Compression: off
We wszystkich przypadkach, wartości logiczne są poprawnie renderowane jako tak i nie w konfiguracji sshd. Listy mogą być używane dla wieloliniowych elementów konfiguracyjnych. np.
sshd_ListenAddress:
- 0.0.0.0
- '::'
Renderuje jako:
ListenAddress 0.0.0.0
ListenAddress ::
- sshd_match
Lista słowników dla sekcji match. Zobacz przykładowy playbook.
- sshd_match_1 do sshd_match_9
Lista słowników lub po prostu słownik dla sekcji Match.
Zależności
Brak
Przykładowy Playbook
NIEBEZPIECZEŃSTWO! Przykład ten ma na celu pokazanie zakresu konfiguracji, jaki ta rola oferuje. Uruchomienie go prawdopodobnie zablokuje dostęp SSH do serwera!
---
- 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
Rezultaty:
# Ansible zarządzane: ...
Compression yes
GSSAPIAuthentication no
UsePrivilegeSeparation no
Match Group user
GSSAPIAuthentication yes
Match Group xusers
X11Forwarding yes
Generowanie szablonów
Szablon sshd_config.j2 jest generowany programowo przez skrypty w meta. Nowe opcje powinny być dodawane do options_body lub options_match.
Aby ponownie wygenerować szablon, z katalogu meta/ uruchom:
./make_option_list >../templates/sshd_config.j2
Licencja
LGPLv3
Autor
Matt Willsher matt@willsher.systems
© 2014, 2015 Willsher Systems Ltd.
OpenSSH SSH deamon configuration
ansible-galaxy install silverlogic.sshd