geerlingguy.ssh-chroot-jail
Ansible-Rolle: SSH Chroot Jail Konfiguration
Konfiguriert ein Chroot Jail, um eine Gruppe von SSH-Nutzern darin zu beschränken. Nützlich, wenn Sie auf einem Server sehr eingeschränkten Zugriff auf eine limitierte Funktionalität gewähren möchten.
Voraussetzungen
Benötigt einen OpenSSH-Server. Es ist nicht zwingend erforderlich, die Rolle geerlingguy.security
zu verwenden, aber es wird dringend empfohlen, um den Server so sicher wie möglich zu machen.
Rollenvariablen
Verfügbare Variablen sind unten aufgeführt, einschließlich der Standardwerte (siehe defaults/main.yml
):
ssh_chroot_jail_path: /var/jail
Der Pfad zum Stamm des Chroot Jails.
ssh_chroot_jail_group_name: ssh_jailed
Die Gruppe, in die die gesperrten Benutzer aufgenommen werden sollen.
ssh_chroot_jail_users:
- name: foo
home: /home/foo
shell: /bin/bash
Eine Liste von Benutzern, die im Chroot Jail sein sollen. Lassen Sie den Standardwert ([]
) unverändert, wenn Sie die Benutzer selbst verwalten möchten.
ssh_chroot_jail_dirs:
- bin
- dev
- etc
- lib
- lib64
- usr/bin
- usr/lib
- usr/lib64
- home
Basisverzeichnisse, die im Jail existieren sollten.
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' }
Geräte, die im Jail existieren sollen.
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
Eine Liste von Binärdateien, die ins Jail kopiert werden sollen. Jede Binärdatei wird auch mit ihren Bibliotheksabhängigkeiten ins Jail kopiert; Sie können diese Aufgabe überspringen, indem Sie den bin
-Schlüssel explizit setzen und l2chroot: false
wie im letzten Beispiel oben angeben.
ssh_chroot_l2chroot_template: l2chroot.j2
ssh_chroot_l2chroot_path: /usr/local/bin/l2chroot
Die Download-URL und der Pfad, in den l2chroot
installiert werden soll.
ssh_chroot_copy_extra_items:
- /etc/hosts
- /etc/passwd
- /etc/group
- /etc/ld.so.cache
- /etc/ld.so.conf
- /etc/nsswitch.conf
Zusätzliche Elemente, die ins Jail kopiert werden sollen.
ssh_chroot_sshd_chroot_jail_config: |
Match group {{ ssh_chroot_jail_group_name }}
ChrootDirectory {{ ssh_chroot_jail_path }}
X11Forwarding no
AllowTcpForwarding no
Konfiguration, die der sshd_config
des Servers hinzugefügt wird, um zu steuern, wie Benutzer in der Chroot Jail-Gruppe behandelt werden.
ssh_chroot_jail_dirs_recurse: true
Ob die Verzeichnisse im Jail rekursiv hinzugefügt werden sollen. Wenn Sie viele Verzeichnisse mit Tausenden von Dateien haben und/oder die Verzeichnisse auf einem langsamen Dateisystem liegen, sollte dies auf false
gesetzt werden.
Abhängigkeiten
Keine.
Beispiel Playbook
- hosts: servers
become: yes
roles:
- geerlingguy.security
- geerlingguy.ssh-chroot-jail
Innerhalb von vars/main.yml
:
ssh_chroot_jail_users:
- name: janedoe
home: /home/janedoe
shell: /bin/bash
Lizenz
MIT (Expat) / BSD
Autor Informationen
Diese Rolle wurde 2017 von Jeff Geerling erstellt, Autor von Ansible for DevOps.
Besonderer Dank an Acquia für die Finanzierung der ursprünglichen Entwicklung dieser Rolle.
Simple SSH chroot jail management.
ansible-galaxy install geerlingguy.ssh-chroot-jail