geerlingguy.ssh-chroot-jail

Ansible-Rolle: SSH Chroot Jail Konfiguration

CI

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.

Über das Projekt

Simple SSH chroot jail management.

Installieren
ansible-galaxy install geerlingguy.ssh-chroot-jail
Lizenz
mit
Downloads
237k
Besitzer
Father, author, developer, maker. Sometimes called "an inflammatory enigma". #stl #drupal #ansible #k8s #raspberrypi #crohns