SFTP限制目录和端口

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SFTP限制目录和端口相关的知识,希望对你有一定的参考价值。

参考技术A

使用 root 操作

注:该目录权限最大为 755 ,设置成 777 会报错

注:设置用户sftpuser,如果设置拥有者为root,表示该目录sftpuser没有权限读写,在该目录下建立其它目录,赋权给sftpuser用户读写权限;
若需要对该目录拥有读写权限,设置权限:

注:这里的目录sftpuser 权限也只能是755,否则无法限制目录。

在配置文件末尾添加

在用户登录测试过程中,可能会遇到如下错误:

是目录权限导致了该问题,具体解决方案,回看以上4、5步骤!

以上用户和目录都是测试使用,按实际进行更改。

SuSE sftp 限制用户活动目录

需求:使用sftp替代vsftpd,要求用户没有权限登录操作系统,并且只能在指定目录进行上传下载。

 

使用 sftp  chrootdirectory 功能。

注释掉原来的Subsystem一行,添加以下三行就可以了.Subsystem指定sftp的处理方式.Matchsshd_config中用来指定条件的,后面可以跟group也可以跟ip,也可以三者或者两者同时出现.要注意的是,match所匹配的用户受match以后的语句影响,直到文件尾或者下一个match.ChrootDirectory就是指定匹配的用户登陆以后所在的目录了,这里还可以加%u%h分别指代用户名和家名.

 

1
2
3
4
5
6
7
#vim /etc/ssh/sshd_config
#Subsystem      sftp    /usr/lib64/ssh/sftp-server
Subsystem sftp internal-sftp                
Match User xx                                
ChrootDirectory /chroot
#rcsshd restart
#useradd xx && echo “a”|passwd –stdin xx

 



技术分享

 

目录权限设置上要遵循2点:

ChrootDirectory设置的目录权限及其所有的上级文件夹权限,属主和属组必须是root

ChrootDirectory设置的目录权限及其所有的上级文件夹权限,只有属主能拥有写权限,也就是说权限最大设置只能是755

由于上面设置了目录的权限是755,因此所有非root用户都无法在目录中写入文件。我们需要在ChrootDirectory指定的目录下建立子目录,重新设置属主和权限。

 

1
2
3
4
#mkdir /chroot
#chmod 755 /chroot
#mkdir –p /chroot/xx
#chown xx.users /chroot/xx

 



测试如下:

技术分享

 

xx用户的shell  /bin/bash ,理论上是可以登录操作系统的,为什么会提示/bin/bash: No such file or directory 后关闭连接呢?

因为前面的Match 语句已经将xx 用户限定只能在 /chroot 目录下活动,xx通过ssh登录系统后会去查找 /bin/bash,即 /chroot/bin/bash ,这个目录是不存在的,所以无法登录。





以上是关于SFTP限制目录和端口的主要内容,如果未能解决你的问题,请参考以下文章

iptables限制同一IP连接数,防防CC/DDOS攻击

sftp是主动式还是被动式ftp? 使用的端口是22还是115?

SFTP应用

sftp ssh服务分离

端口转发和使用 Python Paramiko 的开放式 SFTP

sftp常用指令