Turgon37.ssh_server

Ansible Rola Serwera SSH

Status budowy Licencja Rola Ansible

Opis

:grey_exclamation: Przed użyciem tej roli, proszę pamiętać, że wszystkie moje role Ansible są w pełni skonfigurowane zgodnie z moją infrastrukturą IT. Chociaż są jak najbardziej ogólne, niekoniecznie będą odpowiadać Twoim potrzebom. Radzę dokładnie przeanalizować, co robią i ocenić ich zdolność do bezpiecznej instalacji na Twoich serwerach.

Ta rola umożliwia konfigurację serwera SSH.

Wymagania

Wymagana wersja Ansible >= 2.4

Zależności

Rodzina systemów operacyjnych

Ta rola jest dostępna dla Debian i CentOS.

Funkcje

Obecnie rola może być używana do:

  • instalacji sshd
  • konfiguracji sshd
  • filtrowania początkowych moduli w celu usunięcia słabych liczb pierwszych
  • lokalnych faktów

Zmienne roli

Wszystkie zmienne, które mogą być nadpisane, są przechowywane w pliku defaults/main.yml oraz w poniższej tabeli. Aby zobaczyć domyślne wartości, proszę odwołać się do tego pliku.

Większość zmiennych odnosi się do parametrów konfiguracyjnych sshd. Proszę zasięgnąć informacji z dokumentacji.

Nazwa Typy/Wartości Opis
ssh_server__facts Boolean Instalacja skryptu lokalnego faktu
ssh_server__moduli_minimum Integer Minimalny rozmiar liczb pierwszych do zachowania w pliku moduli
ssh_server__service_enabled Boolean Włączenie lub wyłączenie usługi
ssh_server__protocol String Zobacz dokumentację
ssh_server__privilege_separation String Zobacz dokumentację
ssh_server__pidfile String Zobacz dokumentację
ssh_server__log_facility String Zobacz dokumentację
ssh_server__log_level String Zobacz dokumentację
ssh_server__ports Lista liczb Zobacz dokumentację
ssh_server__listen Lista adresów IP Zobacz dokumentację
ssh_server__address_family String Zobacz dokumentację
ssh_server__use_dns Boolean Zobacz dokumentację
ssh_server__tcp_keepalive Boolean Zobacz dokumentację
ssh_server__allow_agent_forwarding Boolean Zobacz dokumentację
ssh_server__allow_tcp_forwarding Boolean Zobacz dokumentację
ssh_server__permit_open String Zobacz dokumentację
ssh_server__gateway_ports String Zobacz dokumentację
ssh_server__allow_stream_local_forwarding Boolean Zobacz dokumentację
ssh_server__permit_tunnel Boolean Zobacz dokumentację
ssh_server__compression String Zobacz dokumentację
ssh_server__ip_qos Krotka Zobacz dokumentację
ssh_server__kex_algorithms Lista stringów Zobacz dokumentację
ssh_server__kex_algorithms_additional Lista stringów Zobacz dokumentację
ssh_server__ciphers Lista stringów Zobacz dokumentację
ssh_server__ciphers_additional Lista stringów Zobacz dokumentację
ssh_server__macs Lista stringów Zobacz dokumentację
ssh_server__macs_additional Lista stringów Zobacz dokumentację
ssh_server__server_key_bits Integer Zobacz dokumentację
ssh_server__key_regeneration_interval Integer Zobacz dokumentację
ssh_server__authentication_methods String Zobacz dokumentację
ssh_server__use_pam Boolean Zobacz dokumentację
ssh_server__use_login Boolean Zobacz dokumentację
ssh_server__password_authentication Boolean Zobacz dokumentację
ssh_server__permit_empty_passwords Boolean Zobacz dokumentację
ssh_server__challenge_response_authentication Boolean Zobacz dokumentację
ssh_server__keyboard_interactive_authentication Boolean Zobacz dokumentację
ssh_server__pubkey_authentication Boolean Zobacz dokumentację
ssh_server__authorized_keys Lista stringów Zobacz dokumentację
ssh_server__authorized_keys_system Lista stringów Zawiera ścieżkę do globalnego systemowego pliku autoryzowanych kluczy
ssh_server__authorized_keys_user String Zawiera ścieżkę do pliku autoryzowanych kluczy użytkownika
ssh_server__authorized_keys_command String Zobacz dokumentację
ssh_server__authorized_keys_command_user Lista stringów Zobacz dokumentację
ssh_server__permit_blacklisted_keys Zobacz dokumentację
ssh_server__rsa_authentication Boolean Zobacz dokumentację
ssh_server__rhosts_rsa_authentication Boolean Zobacz dokumentację
ssh_server__host_based_authentication Boolean Zobacz dokumentację
ssh_server__host_based_uses_name_from_packet_only Boolean Zobacz dokumentację
ssh_server__ignore_user_known_hosts Boolean Zobacz dokumentację
ssh_server__ignore_rhosts Boolean Zobacz dokumentację
ssh_server__kerberos_authentication Boolean Zobacz dokumentację
ssh_server__kerberos_get_afs_token Boolean Zobacz dokumentację
ssh_server__kerberos_or_local_passwd Boolean Zobacz dokumentację
ssh_server__kerberos_ticket_cleanup Boolean Zobacz dokumentację
ssh_server__kerberos_use_kuserok Boolean Zobacz dokumentację
ssh_server__gssapi_authentication Boolean Zobacz dokumentację
ssh_server__gssapi_key_exchange Boolean Zobacz dokumentację
ssh_server__gssapi_cleanup_credentials Boolean Zobacz dokumentację
ssh_server__gssapi_strict_acceptor_check Boolean Zobacz dokumentację
ssh_server__gssapi_store_credentials_on_rekey Boolean Zobacz dokumentację
ssh_server__gssapi_enable_k5_users Boolean Zobacz dokumentację
ssh_server__deny_users Lista stringów Zobacz dokumentację
ssh_server__allow_users Lista stringów Zobacz dokumentację
ssh_server__deny_groups Lista stringów Zobacz dokumentację
ssh_server__allow_groups Lista stringów Zobacz dokumentację
ssh_server__permit_root_login String Zobacz dokumentację
ssh_server__login_grace_time String Zobacz dokumentację
ssh_server__max_auth_tries Integer Zobacz dokumentację
ssh_server__max_sessions Integer Zobacz dokumentację
ssh_server__max_startups Słownik Ten słownik musi mieć klucze 'start', 'rate', 'full' (zobacz dokumentację)
ssh_server__accept_env Lista stringów Zobacz dokumentację
ssh_server__permit_user_environment Boolean Zobacz dokumentację
ssh_server__permit_user_rc Boolean Zobacz dokumentację
ssh_server__permit_tty Boolean Zobacz dokumentację
ssh_server__strict_modes Boolean Zobacz dokumentację
ssh_server__version_addendum String Zobacz dokumentację
ssh_server__banner String Zobacz dokumentację
ssh_server__debian_banner Boolean Zobacz dokumentację
ssh_server__print_motd Boolean Zobacz dokumentację
ssh_server__print_last_log Boolean Zobacz dokumentację
ssh_server__force_command String Zobacz dokumentację
ssh_server__chroot_directory String Zobacz dokumentację
ssh_server__client_alive_interval Integer Zobacz dokumentację
ssh_server__client_alive_count_max Integer Zobacz dokumentację
ssh_server__x11_forwarding Boolean Zobacz dokumentację
ssh_server__x11_display_offset Integer Zobacz dokumentację
ssh_server__x11_use_localhost Boolean Zobacz dokumentację
ssh_server__subsystems_global/group/host Słownik Mapowanie nazwy podsystemu i polecenia podsystemu
ssh_server__match_list_global/group/host Lista bloków dopasowań Konfiguracja bloków dopasowań (zobacz poniżej)

Dopasowania

Możesz skonfigurować dostępne dopasowania za pomocą zmiennych ssh_server__match_list_global/group/host. Te zmienne przyjmują listę słowników. Każdy słownik musi mieć następującą formę:

ssh_server__match_list_global
  - match: "kryteria dopasowania"
    options:                                     # opcje, które mają zastosowanie, jeśli "dopasowanie" jest spełnione
      - AllowUsers test                          # prosty ciąg opcji
      # słownik z opcjami uzależnionymi od wersji
      # zgodnie z bieżącą wersją sshd, wyższy warunek wersji wygrywa i jego opcje są stosowane
      - 8.2: AuthorizedKeysCommand /bin/true     # (ciąg znaków wersji)
        7.6:                                     # (lista wersji)
          - AuthenticationMethods publickey
          - AllowUsers root
    state: absent               # opcjonalny stan (domyślnie obecny)

Dostępne kryteria dopasowania i opcje, które możesz zastosować, zależą od Twojej bieżącej wersji sshd.

Przykład grupy, której zezwolono tylko na uruchamianie sftp, jest podany, jeśli chcesz to włączyć, możesz użyć tego bloku w inwentarzu:

ssh_server__match_list_global:
  - '{{ ssh_server__match_group_sftponly }}'

Fakty

Domyślnie lokalne fakty są instalowane i ujawniają następujące zmienne:

ansible_local.ssh_server:
  version_full: '7.9p1'
  version_major: '7'

Przykład

Playbook

Użyj tego w playbooku w następujący sposób:

- hosts: all
  roles:
    - turgon37.ssh_server

Inwentarz

Aby używać tej roli, stwórz lub zaktualizuj swój playbook zgodnie z następującym przykładem:

ssh_server__allow_agent_forwarding: false
ssh_server__allow_tcp_forwarding: false
ssh_server__allow_stream_local_forwarding: false
ssh_server__permit_tunnel: false
ssh_server__compression: true

ssh_server__allow_groups:
  - ssh
  - ssh-admins
ssh_server__permit_root_login: false
ssh_server__max_startups:
  start: 5
  rate: 80
  full: 10

ssh_server__match_list_global:
  - match: "LocalAddress 127.0.0.1"
    options:
      - AuthenticationMethods publickey,password
    state: present

  - match: "LocalAddress 10.0.0.1 Group ssh-admins"
    options:
    - AuthenticationMethods publickey password gssapi-with-mic

  - match: "LocalAddress 10.0.0.1 User root"
    options:
      - DenyUsers
      - AllowUsers root
      - DenyGroups
      - AllowGroups root
      - 7.0: 'PermitRootLogin prohibit-password'
        4.9: 'PermitRootLogin without-password'
      - AuthenticationMethods publickey
      - AuthorizedKeysFile /root/.ssh/authorized_keys
      - AuthorizedKeysCommand /bin/true

ssh_client__known_hosts_additionals:
  - '[gitlab]:7999 ssh-rsa XXXXX'

Przykład konfiguracji FreeIPA

ssh_server__authorized_keys: '/dev/null'
ssh_server__authorized_keys_lookup: true
ssh_server__authorized_keys_lookup_command: /usr/bin/sss_ssh_authorizedkeys
ssh_server__pubkey_authentication: true
ssh_server__gssapi_authentication: true
O projekcie

This role configure SSH server

Zainstaluj
ansible-galaxy install Turgon37.ssh_server
Licencja
mit
Pobrania
1.3k
Właściciel
Ingénieur, Informaticien, curieux de nouvelles technologies. Passionné par le libre et l'esprit de communauté