This commit is contained in:
colben 2024-10-25 18:07:02 +08:00
parent 91a8a7f708
commit c85fb3f381

View File

@ -30,7 +30,7 @@ yum install vsftpd
- 服务端从 20 端口连接客户端正在监听的端口,向客户端发送数据 - 服务端从 20 端口连接客户端正在监听的端口,向客户端发送数据
- 相关配置 - 相关配置
```ini ```
# 开启主动模式 # 开启主动模式
pasv_enable = no pasv_enable = no
``` ```
@ -44,17 +44,17 @@ yum install vsftpd
- 客户端连接服务端新监听的端口,下载服务端数据 - 客户端连接服务端新监听的端口,下载服务端数据
- 相关配置 - 相关配置
```ini ```
# 开启被动模式 # 开启被动模式
pasv_enable = yes pasv_enable = yes
# 数据连接可以使用的端口范围的最大端口0 表示任意端口默认值为0 # 数据连接可以使用的端口范围的最大端口0 表示任意端口默认值为0
pasv_min_port=30000
# 数据连接可以使用的端口范围的最小端口0 表示任意端口默认值为0
pasv_max_port=30999 pasv_max_port=30999
# 数据连接可以使用的端口范围的最小端口0 表示任意端口默认值为0
pasv_min_port=30000
``` ```
## 匿名用户配置 ## 匿名用户相关配置
```ini ```
# 控制是否允许匿名用户登入 # 控制是否允许匿名用户登入
# 匿名用户使用的登陆名为 ftp 或 anonymous口令为空 # 匿名用户使用的登陆名为 ftp 或 anonymous口令为空
# 匿名用户不能离开匿名用户家目录/var/ftp且只能下载不能上传 # 匿名用户不能离开匿名用户家目录/var/ftp且只能下载不能上传
@ -102,23 +102,7 @@ chown_username=username
anon_umask=077 anon_umask=077
``` ```
## 配置 ## 匿名用户上传下载
### 常用配置
```ini
#允许匿名用户登陆
anonymous_enable=YES
#允许本地用户登陆
local_enable=YES
#允许登陆用户写可访问的目录或文件
write_enable=YES
#指定用户登陆后直接进入系统的/mnt目录
local_root=/mnt
chroot_list_enable=YES
#限定登陆用户可访问的目录只有自己的家目录或指定的local_root目录
chroot_list_file=/etc/vsftpd/chroot_list
```
### 允许 vsftpd 匿名用户上传和下载
- 创建匿名用户登陆目录 - 创建匿名用户登陆目录
```bash ```bash
mkdir -p /var/ftp/pub mkdir -p /var/ftp/pub
@ -127,7 +111,7 @@ chroot_list_file=/etc/vsftpd/chroot_list
``` ```
- 修改 vsftpd.conf - 修改 vsftpd.conf
```ini ```
允许匿名用户登录FTP 允许匿名用户登录FTP
anonymous_enable=YES anonymous_enable=YES
#设置匿名用户的登录目录(如需要,需自己添加并修改) #设置匿名用户的登录目录(如需要,需自己添加并修改)
@ -141,7 +125,18 @@ chroot_list_file=/etc/vsftpd/chroot_list
anon_umask=022 anon_umask=022
``` ```
### 本地用户登陆 ## 单用户
- 创建用户及数据目录
```bash
cd /sbin
ln -s nologin ftplogin
echo '/sbin/ftplogin' >> /etc/shells
useradd -M -s /sbin/ftplogin user1
passwd user1
mkdir -p -m 0700 /path/to/ftpdata
chown user1:user1 /path/to/ftpdata
```
- 修改 vsftpd.conf - 修改 vsftpd.conf
``` ```
# 不允许匿名用户登入 # 不允许匿名用户登入
@ -150,35 +145,46 @@ chroot_list_file=/etc/vsftpd/chroot_list
local_enable=YES local_enable=YES
# 当本地用户登入时,将被更换到定义的目录下 # 当本地用户登入时,将被更换到定义的目录下
# 默认值为各用户的家目录 # 默认值为各用户的家目录
local_root=/home/username local_root=/path/to/ftpdata
# 是否允许登陆用户有写权限 # 是否允许登陆用户有写权限
# 属于全局设置默认值为YES。 # 属于全局设置默认值为YES。
write_enable=YES/NO(YES) write_enable=YES/NO(YES)
# 本地用户新增档案时的 umask 值默认值为077 # 本地用户新增档案时的 umask 值默认值为077
local_umask=022 local_umask=022
# 本地用户上传档案后的档案权限 # 指定 local_root 为根目录,不允许切换到上级目录
# 与chmod所使用的数值相同默认值为0666
file_open_mode=0755
# 指定用户列表文件中的用户不允许切换到上级目录
chroot_local_user=YES chroot_local_user=YES
# chroot 后可写
allow_writeable_chroot=YES
``` ```
### 创建 ftp 专用账 ## 多用
- 创建用户 ftpuser1 - 创建用户及数据目录
```bash ```bash
useradd -s /sbin/nologin ftpuser1 cd /sbin
passwd ftpuser1 ln -s nologin ftplogin
echo '/sbin/ftplogin' >> /etc/shells
useradd -d /ftp_disk/user1 -s /sbin/ftplogin user1
useradd -d /ftp_disk/user2 -s /sbin/ftplogin user2
passwd user1
passwd user2
``` ```
- 修改 vsftpd.conf - 修改 vsftpd.conf
```ini ```
# 不允许匿名用户登入
anonymous_enable=no anonymous_enable=no
# 允许本地用户登入
local_enable=YES local_enable=YES
local_root=/home/ftpuser # 是否允许登陆用户有写权限
write_enable=YES # 属于全局设置默认值为YES。
write_enable=YES/NO(YES)
# 本地用户新增档案时的 umask 值默认值为077
local_umask=022 local_umask=022
file_open_mode=0755 # 指定家目录为根目录,不允许切换到上级目录
chroot_local_user=YES chroot_local_user=YES
# chroot 后可写
allow_writeable_chroot=YES
``` ```
## 参考 ## 参考