开启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

效果如下:

centos sftp日志 sftp开启日志_运维

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