buluma.ssh_chroot_jail

Rol de Ansible ssh_chroot_jail

Gestión simple de cárceles chroot para SSH.

GitHub Versión Problemas Solicitudes de Extracción Descargas
github Versión Problemas SolicitudesDeExtracción Rol de Ansible

Ejemplo de Playbook

Este ejemplo se toma de molecule/default/converge.yml y se prueba con cada push, solicitud de extracción y lanzamiento.

---
- nombre: Convergencia
  hosts: todos
  become: true

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

  roles:
    - rol: buluma.ssh_chroot_jail

La máquina necesita ser preparada. En CI, esto se hace utilizando molecule/default/prepare.yml:

---
- nombre: Preparar
  hosts: todos
  become: yes
  gather_facts: no

  roles:
    - rol: buluma.bootstrap

También consulta una explicación y ejemplo completo sobre cómo usar estos roles.

Variables de Rol

Los valores predeterminados para las variables están establecidos en defaults/main.yml:

---
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

# puede incluir tipo: c, b, p
# c = dispositivo de caracteres (sin búfer) [el predeterminado]
# b = dispositivo de bloque (con búfer)
# p = dispositivo FIFO
# cualquier cosa más puede resultar en errores con mknod o systemd-tmpfiles
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
  # También se puede establecer el modo, p. ej., para setuid o para establecer diferentes permisos.
  # - 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: |
  Coincidir con el grupo {{ ssh_chroot_jail_group_name }}
      ChrootDirectory {{ ssh_chroot_jail_path }}
      X11Forwarding no
      AllowTcpForwarding no

ssh_chroot_jail_dirs_recurse: true

Requisitos

Estado de los roles utilizados

Los siguientes roles se utilizan para preparar un sistema. Puedes preparar tu sistema de otra manera.

Requisito GitHub Versión
buluma.bootstrap Ansible Molecule Versión

Contexto

Este rol es parte de muchos roles compatibles. Echa un vistazo a la documentación de estos roles para más información.

Aquí hay una visión general de los roles relacionados:

dependencias

Compatibilidad

Este rol ha sido probado en estas imágenes de contenedor:

contenedor tags
Debian todos
Ubuntu todos
Kali todos

La versión mínima de Ansible requerida es 2.12, se han realizado pruebas en:

  • La versión anterior.
  • La versión actual.
  • La versión de desarrollo.

Si encuentras problemas, por favor regístralos en GitHub

Historial de cambios

Historia del rol

Licencia

Apache-2.0

Información del autor

Shadow Walker

Acerca del proyecto

Simple SSH chroot jail management.

Instalar
ansible-galaxy install buluma.ssh_chroot_jail
Licencia
apache-2.0
Descargas
2.9k
Propietario
DevOps Engineer