sftp chroot Jails
如何创建sftp chroot Jails
SFTP Chroot Jails是在Linux系统上创建可用于传输文件的安全区域的简便方法。SFTP chroot Jails允许您创建一个安全目录,该目录将用户限制在特定区域。
在下面的示例中,我们将创建一个SFTP chroot Jails,将用户限制在特定目录中。我们的远程服务器正在运行RHEL 6.6(Red Hat Enterprise Linux)。我们将从Ubuntu 15.04系统连接到sftp服务器。
SFTP Chroot Jails
修改文件 "/etc/ssh/sshd_config"
注释掉以Subsystem开头的行,并将其替换为以下行:
Subsystem sftp internal-sftp
在文件最底部添加下面行
Match Group sftpgroup ChrootDirectory %h ForceCommand internal-sftp AllowTcpForwarding no X11Forwarding no
文件/etc/ssh/sshd_config
是OpenSSH守护进程配置文件。
以下是对上述参数的解释:
Subsystem子系统选项允许配置外部子系统。 在我们的系统中,我们指定了
internal-sftp
,这允许我们实现一个进程中的sftp
服务器。这用于简化ChrootDirectory的配置。Match被称为条件块。如果满足匹配行的所有条件,则使用它下面的行代替全局部分中的设置。
在我们的示例中,我们指定了一个名为sftpgroup的
组
。也是是它下面的行只适用于指定组的成员。 您可以将此名称更改为与系统命名约定相匹配的名称。ChrootDirectory %h指定用户将被chroot到他们的主目录。
force ecommand internal-sftp将强制执行internal-sftp子系统。
AllowTcpForwarding no不允许TCP转发。默认设置是
yes
。请注意,禁用TCP转发并不能提高安全性,除非用户也被拒绝shell访问。X11Forwarding no指定不允许X11转发。
创建一个sftp用户和组
创建一个sftp组
groupadd sftpgroup
创建sftp用户帐户
useradd -G sftpgroup -s /sbin/nologin sftpuser
更改sftpuser的所有权和权限
chown root:root /home/sftpuser chmod 755 /home/sftpuser/
为sftpuser创建目录结构
cd /home/sftpuser/ mkdir upload mkdir download chown sftpuser:sftpgroup upload chown sftpuser:sftpgroup download
为sftpuser创建密码
passwd sftpuser
配置iptables防火墙规则
ssh和sftp的默认端口是22
查看防火墙是否打开端口22
service iptables status
如果没有打开,则添加
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
为Chroot Jails配置SELinux设置
如果打开了selinux,需要授予对chroot主目录的读/写访问权限。
[root@rhel01a ~]# sestatus SELinux status: enabled SELinuxfs mount: /selinux Current mode: enforcing Mode from config file: enforcing Policy version: 24 Policy from config file: targeted
授予读/写权限
setsebool -P ssh_chroot_rw_homedirs on
测试对SFTP服务器的访问
john@ubuntu01-pc:~$ sftp [email protected] [email protected]\'s password: Connected to 192.168.0.40. sftp> pwd Remote working directory: / sftp> ls download upload sftp> cd upload/ sftp> lcd /home/john sftp> put test.txt Uploading test.txt to /upload/test.txt test.txt 100% 15 0.0KB/s 00:00 sftp> ls -l -rw-r--r-- 1 502 503 15 Jun 7 13:24 test.txt sftp> cd .. sftp> pwd Remote working directory: / sftp> cd download/ sftp> pwd Remote working directory: /download sftp> cd / sftp> pwd Remote working directory: / sftp> quit