一、基于文件验证虚拟用户
①创建虚拟用户数据库文件。
命令:vim /etc/vsftpd/viruser
把文件转化为数据库格式。
命令:db_load -T -t hash -f viruser viruser.db
②创建系统用户和访问FTP目录。
③创建pam配置文件。
命令:vim /etc/vsftpd/viruser.db
④指定pam配置文件
⑤关闭防火墙和selinux
⑥给虚拟用户设置各自的权限。
创建配置文件存放的目录
命令:mkdir /etc/vsftpd/viruser.d/
修改ftp配置文件
命令:vim /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/viruser.d/
进入虚拟用户配置目录下,创建各自虚拟用户的权限。
命令:cd /etc/vsftpd/viruser.d/
ftp1虚拟用户可读可写可上传。
命令:vim ftp1
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
ftp2只可读。
命令:anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
二、基于mysql实现验证虚拟账户。 【就不贴照片了】
A机器:mysql服务器
B机器:ftp服务器
A机器:
①A安装数据库,运行安全脚本,创建数据库用户(存放虚拟账户)。
yum install mariadb
mysql_seure_installation 【运行安全脚本】
create database vsftpd; 【创建数据库】
use vsftpd 【进入vsftpd数据库里面】
create table ftpusers(name char(30),passwd char(50)); 【在数据库vsftpdb创建表】
grant all on vsftpd.* to 'ftp'@'host' identified by 'centos'; 【创建vsftpd数据库管理员】
insert into ftpusers values ('ftp1',password('centos')), ('ftp2',password('magedu')); 【对ftpusers表插入用户
select * from ftpusers; 【查看创建的用户】
B主机:
②安装vsftpd包,编译安装pam_mysql【centos6光盘有】
yum install mariadb-devel pam-devel
./configure --with-pam-mods-dir=/lib64/security --with-pam=/usr/
make && make install
在FTP服务器上建立pam认证所需文件
vim /etc/pam.d/vsftpd.mysql 添加如下两行
auth required pam_mysql.so user=ftpd 【远程数据库用户名】passwd=centos host=远程主机 db=vsftpd table=ftpusers usercolumn=name passwdcolumn=password crypt=2
account required pam_mysql.so user=vsftpd passwd=magedu host=mysqlserver db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2
修改ftpd主配置文件
vim /etc/ftpd/ftpd.conf
anonymous_enable=YES
guest_enable=YES
guest_username=vuser
pam_service_name=vsftpd.mysql
user_config_dir=/etc/vsftpd/vusers_config 【配置vsftpd为虚拟用户使用配置文件目录】
创建账户:在/etc/vsftpd/vusers_config下创建账户(文件)
创建所需要目录,并为虚拟用户提供配置文件
mkdir /etc/vsftpd/vusers_config/
cd /etc/vsftpd/vusers_config/
创建文件:
vim ftp1
anon_upload_enable=yes 【允许ftp1修改文件】
vim ftp2
local_root=/app/ftpdir2 【非匿名用户登录所在目录】