geerlingguy.ssh-chroot-jail
Rola Ansible: Konfiguracja chroot jail SSH
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.
ansible-galaxy install geerlingguy.ssh-chroot-jail