ssh_chroot_jail

Ansible роль ssh_chroot_jail

Простое управление SSH chroot jail.

GitHub Версия Проблемы Запросы на слияние Скачивания
github Версия Проблемы ЗапросыНаСлияние Ansible Role

Пример Плейбука

Этот пример взят из molecule/default/converge.yml и тестируется при каждом пуше, запросе на слияние и релизе.

---
- name: Свести воедино
  hosts: all
  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

Машина должна быть подготовлена. В CI это делается с помощью molecule/default/prepare.yml:

---
- name: Подготовка
  hosts: all
  become: yes
  gather_facts: no

  roles:
    - role: buluma.bootstrap

Также смотрите полное объяснение и пример о том, как использовать эти роли.

Переменные роли

Значения по умолчанию для переменных указаны в 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

# может включать тип: c, b, p
# c = символьное устройство (буферизованное) [по умолчанию]
# b = блочное устройство (буферизованное)
# p = FIFO устройство
# все остальное может привести к ошибкам с mknod или 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
  # Также можно установить режим, например, для установки setuid или других разрешений.
  # - 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

Требования

Состояние используемых ролей

Следующие роли используются для подготовки системы. Вы можете подготовить свою систему другим способом.

Требование GitHub Версия
buluma.bootstrap Ansible Molecule Версия

Контекст

Эта роль является частью многих совместимых ролей. Ознакомьтесь с документацией этих ролей для получения дополнительной информации.

Вот обзор связанных ролей:

зависимости

Совместимость

Эта роль была протестирована на следующих контейнерных образах:

контейнер теги
Debian все
Ubuntu все
Kali все

Минимальная версия Ansible, необходимая для работы, составляет 2.12, тесты проводились на:

  • Предыдущей версии.
  • Текущей версии.
  • Разработческой версии.

Если вы обнаружите проблемы, пожалуйста, зарегистрируйте их на GitHub

История изменений

История роли

Лицензия

Apache-2.0

Информация о авторе

Shadow Walker

О проекте

Simple SSH chroot jail management.

Установить
ansible-galaxy install buluma/ansible-role-ssh_chroot_jail
Лицензия
apache-2.0
Загрузки
2923
Владелец
DevOps Engineer