geerlingguy.ssh-chroot-jail

Rola Ansible: Konfiguracja chroot jail SSH

CI

Konfiguruje chroot jail specjalnie w celu ograniczenia dostępu zestawu użytkowników SSH do tego jaila. Przydatne, jeśli masz serwer, do którego chcesz pozwolić na bardzo ograniczony dostęp do minimalnej ilości funkcji.

Wymagania

Wymaga serwera OpenSSH. Nie wymaga roli geerlingguy.security, ale ta rola (lub podobna) jest zalecana, aby jak najbardziej zabezpieczyć swój serwer.

Zmienne roli

Dostępne zmienne są wymienione poniżej, wraz z wartościami domyślnymi (zobacz defaults/main.yml):

ssh_chroot_jail_path: /var/jail

Ścieżka do głównego katalogu chroot jail.

ssh_chroot_jail_group_name: ssh_jailed

Grupa, do której powinni być dodawani uwięzieni użytkownicy.

ssh_chroot_jail_users:
  - name: foo
    home: /home/foo
    shell: /bin/bash

Lista użytkowników, którzy powinni być w chroot jail. Pozostaw domyślną wartość ([]), jeśli chcesz zarządzać użytkownikami samodzielnie.

ssh_chroot_jail_dirs:
  - bin
  - dev
  - etc
  - lib
  - lib64
  - usr/bin
  - usr/lib
  - usr/lib64
  - home

Podstawowe katalogi, które powinny istnieć w jail.

ssh_chroot_jail_devs:
  - { dev: 'null', major: '1', minor: '3' }
  - { dev: 'random', major: '5', minor: '0' }
  - { dev: 'urandom', major: '1', minor: '5' }
  - { dev: 'zero', major: '1', minor: '8' }

Urządzenia, które powinny istnieć w jail.

ssh_chroot_bins:
  - /bin/cp
  - /bin/sh
  - /bin/bash
  - /bin/ls
  ...
  - /usr/bin/tail
  - /usr/bin/head
  - /usr/bin/awk
  - /usr/bin/wc
  ...
  - bin: /usr/bin/which
    l2chroot: false

Lista binariów, które powinny być skopiowane do jail. Każde binarium będzie miało również skopiowane swoje zależności biblioteczne do jail, korzystając ze skryptu l2chroot dołączonego do tej roli; możesz pominąć to zadanie, ustawiając klucz bin i ustawiając l2chroot: false, jak w ostatnim przykładzie powyżej.

ssh_chroot_l2chroot_template: l2chroot.j2
ssh_chroot_l2chroot_path: /usr/local/bin/l2chroot

URL do pobrania i ścieżka, w której powinien być zainstalowany l2chroot.

ssh_chroot_copy_extra_items:
  - /etc/hosts
  - /etc/passwd
  - /etc/group
  - /etc/ld.so.cache
  - /etc/ld.so.conf
  - /etc/nsswitch.conf

Dodatkowe elementy, które powinny zostać skopiowane do jail.

ssh_chroot_sshd_chroot_jail_config: |
  Match group {{ ssh_chroot_jail_group_name }}
      ChrootDirectory {{ ssh_chroot_jail_path }}
      X11Forwarding no
      AllowTcpForwarding no

Konfiguracja, którą należy dodać do sshd_config serwera, kontrolująca, jak użytkownicy w grupie chroot jail są obsługiwani.

ssh_chroot_jail_dirs_recurse: true

Przy dodawaniu katalogów jail, czy dodanie katalogu powinno być wykonane rekurencyjnie. Jeśli masz wiele katalogów z tysiącami plików i/lub katalogi są na wolnym systemie plików, powinno to być ustawione na false.

Zależności

Brak.

Przykład Playbooka

- hosts: servers
  become: yes
  roles:
    - geerlingguy.security
    - geerlingguy.ssh-chroot-jail

Wewnątrz vars/main.yml:

ssh_chroot_jail_users:
  - name: janedoe
    home: /home/janedoe
    shell: /bin/bash

Licencja

MIT (Expat) / BSD

Informacje o autorze

Ta rola została stworzona w 2017 roku przez Jeffa Geerlinga, autora Ansible for DevOps.

Szczególne podziękowania dla Acquia za sponsorowanie początkowego rozwoju tej roli.

Zainstaluj
ansible-galaxy install geerlingguy.ssh-chroot-jail
Licencja
mit
Pobrania
237k
Właściciel
Father, author, developer, maker. Sometimes called "an inflammatory enigma". #stl #drupal #ansible #k8s #raspberrypi #crohns