silverlogic.sshd

Serwer OpenSSH

Status budowy Ansible Galaxy

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.

Zainstaluj
ansible-galaxy install silverlogic.sshd
Licencja
lgpl-3.0
Pobrania
11.1k
Właściciel