linux的sftp日志在哪看,开启sftp日志并限制sftp访问目录

时间:2025-04-04 12:25:40

# 开启sftp日志并限制sftp访问目录

[TOC]

## 1. 开启sftp日志

### 1.1 修改sshd_config

```

vim /etc/ssh/sshd_config

```

注释掉Subsystem行,然后写入新Subsystem,信息如下

```

Subsystem sftp internal-sftp -l INFO -f local5

LogLevel INFO

```

效果如下:

![enter description here](/noah-luo/imags/raw/master/year/)

### 1.2 修改syslogs

```

vim /etc/

```

在最后增加如下配置

```

auth,authpriv.*,local5.* /var/log/

```

###1.3 重启服务查看日志

```

/etc//rsyslog restart

/etc//sshd restart

tailf /var/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

- 属主

- 下级目录

- 创建下级目录 /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//sshd restart

```

### 3.2 方法2实操

- 创建用户

```

useradd test_sftp && echo "123456"|passwd --stdin test_sftp

```

- 创建主目录并授权

```

mkdir -p /data/sftp/

#chown -R /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//sshd restart

```