1.虚拟用户验证实验
虚拟用户需要人为创建用户和密码,来代替匿名用户和本地账户。
映射用户(真实)只是为了给虚拟用户一个登录目录。
1)服务器建立虚拟用户密码文件:
[root@vsftpd-server ~]# vim /etc/vsftpd/vsftpd.user
a1 # 奇数行为用户
123456 # 偶数行为密码
a2
123456
a3
123456
2)用户密码文件转化为数据库:
[root@vsftpd-server ~]# db_load -T -t hash -f /etc/vsftpd/vsftpd.user /etc/vsftpd/vsftpd.db
[root@vsftpd-server ~]# ll /etc/vsftpd/
total 40
-rw-r--r-- 1 root root 4 Aug 21 11:56 chroot_list
-rw------- 1 root root 131 Aug 21 14:29 ftpusers
-rw------- 1 root root 361 Jun 23 2016 user_list
-rw------- 1 root root 5150 Aug 21 14:35 vsftpd.conf
-rwxr--r-- 1 root root 338 Jun 23 2016 vsftpd_conf_migrate.sh
-rw-r--r-- 1 root root 12288 Aug 21 14:58 vsftpd.db # 登录之后用来验证的数据库文件,加密之后会大很多
-rw-r--r-- 1 root root 30 Aug 21 14:55 vsftpd.user
3)修改数据库权限,vsftp的要求:
[root@vsftpd-server ~]# cd /etc/vsftpd/
[root@vsftpd-server vsftpd]# chmod 600 vsftpd.db # 更改权限成功
[root@vsftpd-server vsftpd]# ll vsftpd.db
-rw------- 1 root root 12288 Aug 21 14:58 vsftpd.db #
4)创建映射用户,并指定他的用户目录:
[root@vsftpd-server vsftpd]# useradd -d /var/ftproot -s /sbin/nologin virtual
# 用户目录是/var/ftproot,之后的所有虚拟用户的登录目录就是这个目录。
5)建立支持虚拟用户的PAM(登录)认证文件,添加虚拟用户支持:
[root@vsftpd-server vsftpd]# cd /etc/pam.d/
[root@vsftpd-server pam.d]# ls
atd gdm-launch-environment pluto smartcard-auth su-l
chfn gdm-password polkit-1 smartcard-auth-ac system-auth
chsh gdm-pin postlogin smtp system-auth-ac
config-util gdm-smartcard postlogin-ac smtp.postfix systemd-user
crond liveinst ppp sshd vlock
cups login remote su vmtoolsd
fingerprint-auth other rhn_register subscription-manager vsftpd # 默认登录文件
fingerprint-auth-ac passwd runuser subscription-manager-gui xserver
gdm-autologin password-auth runuser-l sudo
gdm-fingerprint password-auth-ac setup sudo-i
[root@vsftpd-server pam.d]# vim vsftpd.pam # 新建一个
auth required pam_userdb.so db=/etc/vsftpd/vsftpd # 调用了数据库文件
account required pam_userdb.so db=/etc/vsftpd/vsftpd
6)修改主配置文件中:
[root@vsftpd-server ~]# vim /etc/vsftpd/vsftpd.conf
pam_service_name=vsftpd.pam # 修改用户登录文件
guest_enable=YES # 允许虚拟用户登录
guest_username=virtual # 映射用户
user_config_dir=/etc/vsftpd/dir # 虚拟用户的配置文件目录
7)建立虚拟用户的配置目录:
[root@vsftpd-server ~]# cd /etc/vsftpd
[root@vsftpd-server vsftpd]# mkdir dir
[root@vsftpd-server vsftpd]# ls
chroot_list dir ftpusers user_list vsftpd.conf vsftpd_conf_migrate.sh vsftpd.db vsftpd.user
8)取消匿名用户的