前言:
FTP有三种登录方式:匿名登录、本地系统用户登录和虚拟用户登录。
虚拟用户是ftp服务器的专用用户,它的特点是只能访问服务器为其提供的FTP服务,而不能访问系统的其它资源。所以,如果想让用户对FTP服务器站内具有写权限,但又不允许访问系统其它资源,可以使用虚拟用户来提高系统的安全性。在VSFTP中,认证这些虚拟用户使用的是单独的口令库文件(pam_userdb),由可插入认证模块(PAM)认证。使用这种方式更加安全,并且配置更加灵活。
1
2
3
4
5
|
yum install -y vsftpd
vi /etc/vsftpd/vsftpd .conf #开启用户登录认证
anonymous_enable=NO local_root= /data
chroot_local_user=YES |
1.生成虚拟用户口令库文件(为了建立此口令库文件,先要生成一个文本文件。)
1
2
3
4
5
|
vi /etc/vsftp/user_list .txt
user1 pass user2 pass |
2.生成用户数据库
1
2
|
db_load -T -t hash -f /etc/vsftpd/user_list .txt /etc/vsftpd/user_list .db
chmod 600 /etc/vsftpd/user_list .db
|
3.创建虚拟用户PAM文件
1
2
3
|
vi /etc/pam .d /vsftpd .vu
auth required /lib64/security/pam_userdb .so db= /etc/vsftpd/user_list
account required /lib64/security/pam_userdb .so db= /etc/vsftpd/user_list
|
4.建立本地用户来映射虚拟用户
1
2
|
useradd -s /sbin/nologin vftp
chmod 700 /home/vftp
|
5.启动虚拟用户并映射到本地用户
1
2
3
4
|
vi /etc/vsftpd/vsftpd .conf
guest_enable=YES guest_username=vftp pam_service_name=vftpd.vu |
6.默认虚拟用户都在vsftp家目录,需要设置指定的目录,添加虚拟用户配置文件位置
添加用户配置目录:
1
2
3
|
vi /etc/vsftpd/vsftpd .conf
user_config_dir= /etc/vsftpd/vsftpd_user_conf
mkdir /etc/vsftpd/vsftpd_user_conf
|
添加用户配置文件:
1
2
3
4
5
6
7
|
vi /etc/vsftpd/vsftpd_user_conf/user1
local_root= /ftp/share
write_enable=YES anon_upload_enable=YES anon_mkdir_write_enable=YES anon_world_readable_only=NO #开放用户浏览、下载权限
anon_other_write_enable=YES #重命名权限、续传,不建议开
|
设置权限:
1
2
|
chown vftp:root -R /ftp/share
service vsftpd restart
|