1、实施方案
因为用户在linux系统默认主要是通过sftp、scp和lrzsz命令实现文件上传和下载,可以通过以下几点来防制普通用户的上传和下载文件,相关设置必须使用root用户进行操作。
- 禁用普通用户使用scp命令,可以防止普通用户使用winscp软件下载上传,还能防止传送文件至其他服务器跳转下载。
- 禁用普通用户使用lrzsz中的sz命令,可以实现普通用户使用rz上传文件,而不下载。
- 禁用ssh中默认sftp服务,可以提高服务器的安全级别,防止用户用ftp进行上传下载。
2、实施步骤
2.1 禁用普通用户(test)使用scp命令
`scp`是Linux系统中一个基于SSH(Secure Shell)协议的文件传输命令。它允许用户在不安全的网络环境中安全地传输文件。由于使用了SSH协议,`scp`命令在传输过程中会加密数据,确保数据的安全性和完整性。
2.1.1 配置scp命令权限
which scp #查看scp命令的绝对路径
setfacl -m test:r /usr/bin/scp #取消hangshu对scp的执行权限
getfacl /usr/bin/scp #查看权限配置,bin为/usr/bin软连
注:取消对test的权限配置命令为:setfacl -x u:test /usr/bin/scp
2.1.2切换至test用户时行验证
# su - test
$ scp test.txt 192.168.1.74:/tmp/
-bash: /bin/scp: Permission denied
2.2禁用普通用户(test)使用sz命令
lrzsz是一款Linux系统中常用的一个文件传输工具,可代替ftp上传和下载的程序,可以在终端中使用命令行操作,支持将本地文件或目录上传到远程服务器,或者从远程服务器下载文件或目录到本地。
sz:将选定的文件发送(send)到本地机器,运行命令后会弹出保存位置窗口。
rz:运行该命令会弹出一个文件选择窗口,从本地选择文件上传到服务器(receive)。
2.2.1 配置sz命令权限
# which sz #查看scp命令的绝对路径
# setfacl -m test:r /usr/bin/sz #取消hangshu对scp的执行权限
# getfacl /usr/bin/sz #查看权限配置
setfacl -x u:test /usr/bin/scp #取消对hangshu的权限配置
2.2.2切换至hangshu用户时行验证
# su - test
$ sz test.txt #下载文件
-bash: /bin/sz: Permission denied
$ rz #执行rz选择文件进行上传
2.3禁用ssh中默认sftp服务
SFTP是SSH的一个功能,它允许用户和服务器之间进行安全文件传输。在SSH服务中,默认情况下是启用SFTP的,因为SFTP通常是通过SSH协议来进行的。SFTP服务的安全性是至关重要的,因为它们可能成为黑客攻击的目标,导致数据泄露或其他安全问题,所以建议禁用ssh中默认sftp服务。在/etc/ssh/sshd_config进行禁用sftp配置。
2.3.1禁用sftp服务
# vim /etc/ssh/sshd_config #注释以下配置,重启sshd服务即可
#Subsystem sftp /usr/libexec/openssh/sftp-server
# systemctl restart sshd
2.3.2验证sftp连接
使用filezilla软件进行sftp连接验证,经验证目标服务无法连接。