开启sftp日志并限制sftp访问目录
文章目录
- 开启sftp日志并限制sftp访问目录
- 1. 开启sftp日志
- 1.1 修改sshd_config
- 1.2 修改syslogs
- 1.3 重启服务查看日志
- 2 限制sftp用户操作目录
- 2.1 前提说明
- 2.2 home目录做根目录
- 2.3 单独创建目录做根目录
- 3 实操
- 3.1方法1实操
- 3.2 方法2实操
1. 开启sftp日志
1.1 修改sshd_config
vim /etc/ssh/sshd_config
注释掉Subsystem行,然后写入新Subsystem,信息如下
Subsystem sftp internal-sftp -l INFO -f local5
LogLevel INFO
效果如下:
1.2 修改syslogs
vim /etc/rsyslog.conf
在最后增加如下配置
auth,authpriv.*,local5.* /var/log/sftp.log
1.3 重启服务查看日志
/etc/init.d/rsyslog restart
/etc/init.d/sshd restart
tailf /var/log/sftp.log
2 限制sftp用户操作目录
2.1 前提说明
如果要让sftp用户只能使用规定的目录,则需要再配置文件中开启ChrootDirectory,并限定目录作为sftp用户登录的根目录.
但这里规定的根目录,属主必须是root,文件夹权限只能是755,因此sftp用户对此根目录只有读取权限,需要再在根目录下创建一个属主为改sftp用户的文件夹,用于该用户上传数据
由此规则,可以产生两种sftp方案
2.2 home目录做根目录
创建用户时,不指定-M参数,默认会在home目录下生产该用户的家目录,用户对该目录具有完全操作权限,且不能访问其他用户的家目录,因此适合作为sftp目录
- ChrootDirectory写法
- ChrootDirectory /home/
2.3 单独创建目录做根目录
单独创建一个目录做根目录,然后再创建下级的操作目录,此方法需要按要求配置主目录及下级目录的权限和属主等信息
- 用户
- 创建用户 加-M参数
- 主目录
- 创建主目录 /data/sftp
- 授权 755
- 属主 root.root
- 下级目录
- 创建下级目录 /data/sftp/test_sftp
- 授权 755
- 属主 test_sftp.test_sftp
- ChrootDirectory写法
- ChrootDirectory /data/sftp/
3 实操
3.1方法1实操
- 创建用户
useradd test_sftp && echo "123456"|passwd --stdin test_sftp
- 修改sshd_conf
vim /etc/ssh/sshd_config
# 在最后增加以下关键字
Match User test_sftp
ChrootDirectory /home
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
重要说明:配置在Match User字段中的用户,会被禁止使用ssh方式登录系统
- 重启sshd服务
/etc/init.d/sshd restart
3.2 方法2实操
- 创建用户
useradd test_sftp && echo "123456"|passwd --stdin test_sftp
- 创建主目录并授权
mkdir -p /data/sftp/
#chown -R root.root /data/sftp/
#chmod 755 /data/sftp/
说明:注释掉的命令默认不用执行,写出来是为了避免乱做其他授权
- 创建操作目录并操作
mkdir -p /data/sftp/test_sftp
chown -R test_sftp.test_sftp /data/sftp/test_sftp
#chmod 755 /data/sftp/test_sftp
说明:注释掉的命令默认不用执行,写出来是为了避免乱做其他授权
- 修改sshd_conf
vim /etc/ssh/sshd_config
# 在最后增加以下关键字
Match User test_sftp
ChrootDirectory /data/sftp
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
- 重启sshd服务
/etc/init.d/sshd restart