ssh-chroot-jail

Ansible Роль: Конфигурация chroot тюрьмы для SSH

CI

Настраивает chroot тюрьму, специально предназначенную для ограничения доступа группы пользователей SSH. Полезно, если у вас есть сервер, где нужно предоставить очень ограниченный доступ к минимальному функционалу.

Требования

Требуется сервер OpenSSH. Необходимость в geerlingguy.security отсутствует, но очень рекомендуется использовать эту роль (или аналогичную) для максимальной защиты вашего сервера.

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

Доступные переменные перечислены ниже с значениями по умолчанию (см. defaults/main.yml):

ssh_chroot_jail_path: /var/jail

Путь к корню chroot тюрьмы.

ssh_chroot_jail_group_name: ssh_jailed

Группа, в которую должны быть добавлены пользователи в тюрьме.

ssh_chroot_jail_users:
  - name: foo
    home: /home/foo
    shell: /bin/bash

Список пользователей, которые должны находиться в chroot тюрьме. Оставьте в значении по умолчанию ([]), если хотите управлять пользователями самостоятельно.

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

Базовые директории, которые должны существовать в тюрьме.

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

Список бинарных файлов, которые должны быть скопированы в тюрьму. Каждый бинарный файл также будет иметь свои библиотечные зависимости, скопированные в тюрьму с помощью скрипта l2chroot, включенного в эту роль; вы можете пропустить эту задачу, установив ключ bin и l2chroot: false, как в последнем примере выше.

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

URL для скачивания и путь, по которому должен быть установлен 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

Конфигурация, которая будет добавлена в sshd_config сервера, контролирующая, как обрабатываются пользователи в группе chroot тюрьмы.

ssh_chroot_jail_dirs_recurse: true

При добавлении директорий в тюрьму, следует ли добавлять директории рекурсивно или нет. Если у вас много директорий с тысячами файлов и/или эти директории находятся на медленной файловой системе, это значение следует установить на false.

Зависимости

Нет.

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

- hosts: servers
  become: yes
  roles:
    - geerlingguy.security
    - geerlingguy.ssh-chroot-jail

Внутри vars/main.yml:

ssh_chroot_jail_users:
  - name: janedoe
    home: /home/janedoe
    shell: /bin/bash

Лицензия

MIT (Expat) / BSD

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

Эта роль была создана в 2017 году Джеффом Гирлингом, автором Ansible for DevOps.

Особая благодарность Acquia за финансирование начальной разработки этой роли.

О проекте

Simple SSH chroot jail management.

Установить
ansible-galaxy install geerlingguy/ansible-role-ssh-chroot-jail
Лицензия
mit
Загрузки
235669
Владелец
Father, author, developer, maker. Sometimes called "an inflammatory enigma". #stl #drupal #ansible #k8s #raspberrypi #crohns