vsftpd

安装vsftpd

1
[root@storagesrv ~]# yum install -y vsftpd

VSFTP配置

创建虚拟用户

创建vsftp宿主用户

1
[root@storagesrv ~]# useradd -s /sbin/nologin -d /webdata webadmin

限定用户 webadmin 的 bash 为 /sbin/nologin 是为了防止用户登录 Linux,因为这个用户只是vsftp创建虚拟用户的媒介。

创建vsftp虚拟用户表

虚拟用户并不是系统用户,也就是说这些 ftp 的用户在系统中是不存在的。他们的总体权限其实是集中映射在一个系统用户身上,所谓 vsftpd 的宿主用户,就是这样一个支持着所有虚拟用户的宿主用户。

1
2
3
4
5
[root@storagesrv ~]# vim /etc/vsftpd/user.txt

1:webuser //奇数行为用户名
2:000000 //偶数行为密码
# 可以在里面写多个虚拟用户

创建vsftp虚拟用户数据库

使用 db_load 工具生成虚拟用户的数据库。

1
[root@storagesrv ~]# db_load -T -t hash -f /etc/vsftpd/user.txt /etc/vsftpd/user.db 

创建虚拟用户 PAM 认证

vsftp的虚拟用户认证是根据 pam 来认证的,pam 里面要写上 vsftp 的认证方法和认证账户。

1
2
3
4
5
6
7
8
#复制模板,方便配置
[root@storagesrv ~]# cp /usr/share/doc/vsftpd-3.0.2/EXAMPLE/VIRTUAL_USERS/vsftpd.pam /etc/pam.d/vsftpd
cp: overwrite ‘/etc/pam.d/vsftpd’? y
[root@storagesrv ~]# vim /etc/pam.d/vsftpd

auth required pam_userdb.so db=/etc/vsftpd/user
account required pam_userdb.so db=/etc/vsftpd/user
#注意模板里pam_userdb.so的前缀路径要删除掉,保持和我的配置一样

VSFTP配置文件

VSFTP 配置文件还是先使用模板,方便配置。

1
[root@storagesrv ~]# cat /usr/share/doc/vsftpd-3.0.2/EXAMPLE/VIRTUAL_USERS/vsftpd.conf >> /etc/vsftpd/vsftpd.conf 

对 /etc/vsftpd/vsftpd.conf 进行配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
[root@storagesrv ~]# vim /etc/vsftpd/vsftpd.conf 

115 #listen=NO
124 #listen_ipv6=YES

129 #anonymous_enable=NO
130 #local_enable=YES
131 #write_enable=NO
132 #anon_upload_enable=NO
133 #anon_mkdir_write_enable=NO
134 #anon_other_write_enable=NO

137 guest_username=webadmin #vsftp宿主用户的用户名

139 #listen_port=10021

140 pasv_min_port=40000 #数据传输端口
141 pasv_max_port=41000
142 max_clients=2 #服务器可以接受的最大并发连接数量
143 max_per_ip=2 #客户端IP可以发起的最大连接数

#vsftpd增强了安全检查,如果用户被限定在了其主目录下,则该用户的主目录不能再具有写权限了
146 allow_writeable_chroot=YES #修改主目录具有写权限

148 ssl_enable=YES
149 rsa_cert_file=/root/ftp.pem
#rsa_private_key_file=* #私钥文件
#user_config_dir=/user #设置用户配置文件主目录
#listen_port=990 # 设置990端口,隐匿模式用的ftp ssl端口,必须用ftps方式访问。
#implicit_ssl=yes # 开启隐匿模式

150 local_root=/webdate #设置用户主目录

151 deny_file={*.doc,*.docx,*.xlsx} #禁止上传文件
152 local_max_rate=100000 # 限制下载速度
153 anon_max_rate=100000 # 限制匿名下载速度
1
2
3
4
5
chroot_local_user 和 chroot_list_file 两个配置项是配合使用的。

当 chroot_local_user=YES 时,只有 chroot_list_file 中指定的用户才能够 chroot,其他用户禁止 chroot

当 chroot_local_user=NO 时, chroot_list_file 中指定的用户禁止 chroot,其他用户可以 chroot