geerlingguy.ssh-chroot-jail

Ansible 角色:SSH chroot 监狱配置

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

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