ssh-chroot-jail
Ansible Роль: Конфигурация chroot тюрьмы для SSH
Настраивает 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 за финансирование начальной разработки этой роли.
ansible-galaxy install geerlingguy/ansible-role-ssh-chroot-jail