虚拟用户:
所有虚拟用户都是系统用户的映射。
0.创建系统用户:
#useradd vusers -s /sbin/nologin -d /var/ftproot
#password vusers
#chown vusers:vusers /var/ftproot
使用账号文件:
1.创建虚拟用户名单:
#vim /etc/vsftpd/vusers
USERNAME
PASSWORD
#db_load -T -t hash -f /etc/vsftpd/vusers /etc/vsftpd/vusers.db 使用db_load命令转换为二进制文件,此命令由db4-utils包提供。
#chmod 600 /etc/vsftpd/vusers.db 更改权限,保证安全。
2.编辑pam配置文件:
#vim /etc/pam.d/vsftpd.vusers
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vusers
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vusers
3.编辑配置文件:
#vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES
local_enable=YES
write_enable=YES
anon_upload_enable=NO
anon_mkdir_write_enable=NO
chroot_local_user=YES
guest_enable=YES 启用虚拟账户
guest_username=vuser 虚拟账户对应的系统账户
#virtual_user_local_privs=NO 虚拟账户权限是否和系统账户权限一致,YSE表示一致,NO表示和匿名账户权限一致。默认为NO。
pam_service_name=vsftpd.vusers pam验证服务
user_config_dir=/etc/vsftpd/vusers_dir 虚拟用户权限文件夹
4.创建虚拟用户配置文件夹:
#mkdir /etc/vsftpd/vsftpd_user_conf
#cd /etc/vsftpd/vsftpd_user_conf
#vim USERNAME1
#write_enable=YES 用户是否有写权限。默认是YES
anon_world_readable_only=YES 匿名用户是否可以下载,默认为YES。
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
使用mysql:
1.安装pam_mysql
#tar xf pam_mysql-xxx.tar.gz
#cd pam_mysql-xxx
#./configure --with-mysql=/usr -with-pam-mods-dir=/lib/security --with-openssl
#make && make install
2.编辑pam认证文件:
#vim /etc/pam.d/vsftpd.mysql
auth required /lib/security/pam_mysql.so user=vsftpd passwd=test host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2
account required /lib/security/pam_mysql.so user=vsftpd passwd=test host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2
crypt=NUM
0 明文
1 使用加密功能
2 使用mysql,但是mysql的password()和pam的password()功能不同。使用mysql加密的字符串pam解密时可能失败。如果失败则使用明文crypt=0。
3 使用md5
4 sha1
3.编译mysql,添加数据库:
#mysql -uroot -p
mysql> create database vsftpd;
mysql> grant select on vsftpd.* to [email protected] identified by ‘test‘;
mysql> grant select on vsftpd.* to [email protected] identified by ‘test‘;
mysql> flush privileges;
mysql> use vsftpd;
mysql> create table users (
-> id int AUTO_INCREMENT NOT NULL,
-> name char(20) binary NOT NULL,
-> password char(48) binary NOT NULL,
-> primary key(id)
-> );
mysql> insert into users(name,password) values(‘USERNAME1‘,password(‘PASSWORD‘));
mysql> insert into users(name,password) values(‘USERNAME2‘,password(‘PASSWORD‘));
4.编辑配置文件:
#vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES
local_enable=YES
write_enable=YES
anon_upload_enable=NO
anon_mkdir_write_enable=NO
chroot_local_user=YES
guest_enable=YES 启用虚拟账户
guest_username=vuser 虚拟账户对应的系统账户
#virtual_user_local_privs=NO 虚拟账户权限是否和系统账户权限一致,YSE表示一致,NO表示和匿名账户权限一致。默认为NO。
pam_service_name=vsftpd.mysql pam验证服务
user_config_dir=/etc/vsftpd/vusers_dir 虚拟用户权限文件夹
5.创建虚拟用户配置文件夹:
#mkdir /etc/vsftpd/vsftpd_user_conf
#cd /etc/vsftpd/vsftpd_user_conf
#vim USERNAME2
#write_enable=YES 用户是否有写权限。默认是YES
anon_world_readable_only=YES 匿名用户是否可以下载,默认为YES。
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES