linux – 在CentOS 7上创建chroot SSH的正确方法

有很多关于如何创建chrooted SFTP的教程,但我想使用SSH,因为简单地wget,unzip,mysqlmysqldump要比绕FTP和PHPMyAdmin快得多.该方法也应该是干净的(没有手动ldd魔术)和可扩展,所以我可以轻松添加升级包.

解决方法

幸运的是,我能想出办法来做到这一点.

第1步:为chrooted用户添加一个

groupadd chrootusers

第2步:配置SSH

nano /etc/ssh/sshd_config

更换

Subsystem     sftp    /usr/libexec/openssh/sftp-server

Subsystem     sftp    internal-sftp

粘贴在最后

Match Group chrootusers
  ChrootDirectory /home/%u

systemctl restart sshd
systemctl status sshd

第3步:添加用户

将peter更改为您想要的用户名.

export NEW_USER_NAME=peter

useradd ${NEW_USER_NAME}
usermod -G chrootusers -d / ${NEW_USER_NAME}
passwd ${NEW_USER_NAME}

第4步:安装包并创建必要的目录结构

yum --installroot=/home/${NEW_USER_NAME} --releasever=7 --nogpg --disablerepo='*' --enablerepo=base install centos-release openssh-clients wget vi nano zip unzip tar mariadb findutils iputils bind-utils rsync

第5步:安装proc和dev

echo "none /home/${NEW_USER_NAME}/proc proc defaults 0 0" >> /etc/fstab
echo "/dev /home/${NEW_USER_NAME}/dev none bind 0 0" >> /etc/fstab

mount -a

步骤6:配置DNS服务器

echo "nameserver 8.8.8.8" >> /home/${NEW_USER_NAME}/etc/resolv.conf
echo "nameserver 8.8.4.4" >> /home/${NEW_USER_NAME}/etc/resolv.conf

就这样.

请注意,$NEW_USER_NAME已绑定到当前会话!

添加其他用户时从步骤3开始.

要在以后安装更多软件包,请使用与步骤4中相同的命令.

使用SSH登录时,您将收到无法找到用户ID x名称的消息.它们可以安全地忽略,但是如果你想摆脱它们,你需要在chroot中复制用户

export NEW_USER_ID=$(id -u ${NEW_USER_NAME})
export NEW_USER_GROUP_ID=$(id -g ${NEW_USER_NAME})

chroot /home/${NEW_USER_NAME} /bin/bash -c 'useradd -u ${NEW_USER_ID} ${NEW_USER_NAME}'
chroot /home/${NEW_USER_NAME} /bin/bash -c 'groupadd -g ${NEW_USER_GROUP_ID} chrootusers'

相关文章

Linux中的ARP防火墙主要用于防御ARP欺骗攻击,其效果取决于多...
insmod和modprobe加-f参数导致Invalid module format错误 这...
将ArchLinux安装到U盘 几个月前入门Arch的时候上网搜了不少安...
1、安装Apache。 1)执行如下命令,安装Apache服务及其扩展包...
一、先说一下用ansible批量采集机器信息的实现办法: 1、先把...
安装配置 1. 安装vsftpd 检查是否安装了vsftpd # rpm -qa | ...