geerlingguy.ssh-chroot-jail
Ansible 角色:SSH chroot 监狱配置
专门配置一个 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
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
作者信息
此角色由 Jeff Geerling 于 2017 年创建,他是 Ansible for DevOps 的作者。
特别感谢 Acquia 赞助此角色的初始开发。
安装
ansible-galaxy install geerlingguy.ssh-chroot-jail
许可证
mit
下载
237k
拥有者
Father, author, developer, maker. Sometimes called "an inflammatory enigma". #stl #drupal #ansible #k8s #raspberrypi #crohns