buluma.ssh_chroot_jail

Ansible-Rolle ssh_chroot_jail

Einfache Verwaltung von SSH-Chroot-Gefängnissen.

GitHub Version Probleme Pull-Anfragen Downloads
github Version Problems PullRequests Ansible Role

Beispiel-Playbook

Dieses Beispiel stammt aus molecule/default/converge.yml und wird bei jedem Push, jeder Pull-Anfrage und jeder Veröffentlichung getestet.

---
- name: Konvergenz
  hosts: alle
  become: true

  vars:
    ssh_chroot_l2chroot_path: /usr/bin/l2chroot
    ssh_chroot_jail_users:
      - name: foo
        home: /home/foo
        shell: /bin/bash

  roles:
    - role: buluma.ssh_chroot_jail

Die Maschine muss vorbereitet werden. In CI geschieht dies mit molecule/default/prepare.yml:

---
- name: Vorbereiten
  hosts: alle
  become: yes
  gather_facts: no

  roles:
    - role: buluma.bootstrap

Siehe auch eine vollständige Erklärung und Beispiel, wie man diese Rollen verwendet.

Rollenvariablen

Die Standardwerte für die Variablen sind in defaults/main.yml festgelegt:

---
ssh_chroot_jail_path: /var/jail

ssh_chroot_jail_group_name: ssh_jailed

ssh_chroot_jail_users: []

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

# kann Typ angeben: c, b, p
# c = Zeichengerät (unbuffered) [der Standard]
# b = Blockgerät (buffered)
# p = FIFO-Gerät
# alles andere könnte zu Fehlern mit mknod oder systemd-tmpfiles führen
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'}

ssh_chroot_tmpfiles_conf_path: /etc/tmpfiles.d/ssh-chroot.conf

ssh_chroot_bins:
  - /bin/cp
  - /bin/sh
  - /bin/bash
  - /bin/ls
  - /bin/rm
  - /bin/cat
  - /bin/grep
  - /bin/sed
  - /bin/chmod
  - /bin/chown
  - /bin/ed
  - /bin/nano
  - /usr/bin/tail
  - /usr/bin/head
  - /usr/bin/awk
  - /usr/bin/wc
  - /usr/bin/sort
  - /usr/bin/uniq
  - /usr/bin/cut
  - /usr/bin/scp
  - /usr/bin/tee
  - /usr/bin/touch
  - /usr/bin/vim
  - /usr/bin/vi
  - /usr/bin/dircolors
  - /usr/bin/tput
  - /usr/bin/free
  - /usr/bin/top
  - /usr/bin/find
  - bin: /usr/bin/which
    l2chroot: false
  - /usr/bin/id
  - /usr/bin/whoami
  - /usr/bin/groups
  # Kann auch den Modus angeben, z.B. um setuid oder verschiedene Berechtigungen festzulegen.
  # - bin: /bin/ping
  #   mode: 4755

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

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

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

ssh_chroot_jail_dirs_recurse: true

Anforderungen

Status der verwendeten Rollen

Die folgenden Rollen werden verwendet, um ein System vorzubereiten. Sie können Ihr System auch auf andere Weise vorbereiten.

Anforderung GitHub Version
buluma.bootstrap Ansible Molecule Version

Kontext

Diese Rolle ist Teil vieler kompatibler Rollen. Schauen Sie sich die Dokumentation dieser Rollen für weitere Informationen an.

Hier ist eine Übersicht über verwandte Rollen:

Abhängigkeiten

Kompatibilität

Diese Rolle wurde auf diesen Container-Images getestet:

Container Tags
Debian alle
Ubuntu alle
Kali alle

Die minimale benötigte Ansible-Version ist 2.12, Tests wurden durchgeführt für:

  • Die vorherige Version.
  • Die aktuelle Version.
  • Die Entwicklungs-Version.

Wenn Sie Probleme finden, melden Sie diese bitte in GitHub.

Änderungsprotokoll

Rollengeschichte

Lizenz

Apache-2.0

Autoreninformation

Shadow Walker

Über das Projekt

Simple SSH chroot jail management.

Installieren
ansible-galaxy install buluma.ssh_chroot_jail
GitHub Repository
Lizenz
apache-2.0
Downloads
2.9k
Besitzer
DevOps Engineer