vsftpd基于系统用户访问ftp服务器,系统用户越多越不利于管理,不利于系统安全,这样就以vsftp虚拟防护的方式来解决。
虚拟用户没有实际的真实系统用户,,而是通过映射到其中一个真实用户以及设置相应权限来访问验证,虚拟用户不能登陆系统。
1.安装虚拟用户需要用到的软件以及认证模块
[root@www ~]# yum install pam* libd-utils libdb* --skip -broken -y
2.创建虚拟用户临时文件
/etc/vsftpd/ftpusers.txt
xj3
123456
xj4
123456
3.生成虚拟用户数据库认证文件,权限为700
[root@www vsftpd]# db_load -T -t hash -f /etc/vsftpd/ftpusers.txt /etc/vsftpd/vsftpd_login.db
[root@www vsftpd]# chmod 700 /etc/vsftpd/vsftpd_login.db
4.配置pam认证文件/etc/pam.d/vsftpd加入下面两行代码:
auth_required pam_userdb .so db=/etc/vsftpd/vsftpd_login
account_required pam_userdb.so db=/etc/vsftpd/vsftpd_login
5.vsftp虚拟用户需要映射到一个系统用户,该系统用户不需要密码,也不需要登陆,主要用于虚拟用户映射使用
useradd -s /sbin/nologin ftpuser
6.vsftpd配置
#globle config vsftpd 2018
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
listen_ipv6=NO
userlist_enable=YES
tcp_wrappers=YES
# config virtual user ftp
pam_service_name=vsftpd 虚拟用户企业pam认证
guest_enable=YES 启用虚拟用户
guest_username=ftpuser 映射虚拟用户至系统用户ftpuser
user_config_dir=/etc/vsftpd/vsftpd_user_conf虚拟用户配置文件所在的目录
virtual_use_local_privs=YES 虚拟用户使用与本地用户相同的权限
7至此,所有虚拟用户共同使用/home/ftpuser主目录实现上传下载,可以在/etc/vsftpd/vsftpd_user_conf目录创建虚拟用户各自的配置文件,创建虚拟用户配置文件主目如下:
mkdir -p /etc/vsftpd/vsftpd_user_conf/
8,为虚拟用户创建配置文件,同时创建私有的虚拟目录
vim /etc/vsftpd/vsftpd_user_conf/xj3
local_root=/home/ftpuser/xj3 虚拟用户配置文件路径
write_enable=YES 允许登陆用户有写权限
anon_world_readable_onle=YES允许匿名用户下载,然后读取文件
anon_upload_enable=YES允许匿名用户上传文件权限,只有在write_enable=yes是才生效
anon_mkdir_write_enable=YES允许匿名用户创建目录,只有在write_enable=yes是才生效
anon_other_write_enable=YES允许匿名用户其它权限,如删除,重命名
vim /etc/vsftpd/vsftpd_user_conf/xj3
local_root=/home/ftpuser/xj3
write_enable=YES
anon_world_readable_onle=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
9创建虚拟用户各自虚拟目录
mkdir -p /home/ftpuser/{xj3,xj4};
chown -R ftpuser:ftpuser /home/ftpuser
总结
以上所述是小编给大家介绍的Linux文件服务器实战详解,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!