vsftpd虚拟用户配置

  • 此配置可以满足审计的审核和区分各用户权限属性的功能。

  • 实验环境关闭selinux和防火墙

1.安装
yum  install  -y vsftpd

a.ftp默认匿名登陆的用户是系统ftp用户
b.ftp用户的家目录就是在/var/ftp目录
c.匿名用户没有上传权限只有下载权限
2.安装vsftpd相关工具包
yum install -y  pam  db4 db4-utils

a.pam是用来提供身份验证的
b.db4-4是db4支持文件数据库
c.db4-utils-4是db4的工具包
3.创建虚拟用户
  #创建一个不能登录的用户,用作ftp服务的虚拟用户,由于这个ftp用户将来都是用来像网站上传文件的,所以创建用户的时候将这个用户的家目录设置在服务器的根目录
useradd  -d /data/ftproot/ -s /sbin/nologin vuser_ftp

a. -d /data/ftproot/  指定用户家目录
b. /data/ftproot/ 指定服务器根目录
c. -s /sbin/nologin指定用户的Shell,/sbin/nologin表示此用户不能登录到当前系统
d. 使用vuser_ftp作为虚拟用户的映射对象
4.创建虚拟用户配置文件,并设置登陆密码
a.格式如下:
cat >/etc/vsftpd/login.txt<<EOF
user1
user1passwd
user2
user2passwd
EOF
  
b.例:
[root@XuJiftp ~]# cat /etc/vsftpd/login.txt 
uftp_1
123456  #正式环境不能使用弱密码
5.生成虚拟用户认证文件
a.生成虚拟用户认证文件
db_load  -T -t hash -f /etc/vsftpd/login.txt  /etc/vsftpd/vsftpd_login.db
#login.txt是新建的用户名和密码文件
#vsftpd_login.db 是db_load生成的虚拟用户认证文件,权限是600,db_load 命令是由db4-utils软件包提供的。
#如果需要增加用户就把用户名和密码按照规定的格式写入login.txt文件,每次增加完虚拟用户之后都用使用db_load 
执行过那条命令来更新vsftpd_login.db这个虚拟用户认证文件
#虚拟用户名单文件中用户的用户名和口令信息格式:“奇数行用户名,偶数行口令”
 
 b.将/etc/vsftpd/vsftpd_login.db 文件修改权限为600
 chmod 600  /etc/vsftpd/vsftpd_login.db 
6.修改主配置文件(简化版配置)
#配置文件不可以有空格
cp -av /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak

vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
listen=YES
userlist_enable=YES
tcp_wrappers=YES
max_per_ip=5
max_clients=100
guest_enable=YES
guest_username=vuser_ftp
pam_service_name=ftp.vu
user_config_dir=/etc/vsftpd/vsftpd_user_conf
7.创建vsftpd服务验证文件
a.查找验证模块模板
rpm -ql vsftpd |grep vsftpd.pam

b.拷贝到vsftpd.conf文件中配置的路径中并改变文件名,这条选项 pam_service_name=ftp.vu中ftp.vu使用的是相对路径,绝对路径为: /etc/pam.d/ftp.vu
pam_config="/usr/share/doc/vsftpd-3.0.2/EXAMPLE/VIRTUAL_USERS/vsftpd.pam"
echo $pam_config
/bin/cp -av ${pam_config} /etc/pam.d/ftp.vu
8.修改下ftp.vu这个文件(让vsftpd虚拟用户的这个功能用到的一个特殊的pam认证)
cat >/etc/pam.d/ftp.vu<<EOF                                               
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login   
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
EOF
#db=/etc/vsftpd_login改成db=/etc/vsftpd/vsftpd_login  #db= 定义的是验证数据文件存放的位置,这个文件是以.db结尾的。但是在/etc/pam.d/ftp.vu 中配置的时候不要加上.db
#配置文件中间的 /lib/security/pam_userdb.so 如果系统是64位的,那么相应的路径应是/lib64/security/pam.userdb.so 不然会出错,查看命令getconf LONG_BIT
9.创建虚拟用户目录
a. user_config_dir=/etc/vsftpd/vsftpd_user_conf    #可以不要
b. mkdir -pv /etc/vsftpd/vsftpd_user_conf
c. cd /etc/vsftpd/
10.创建虚拟用户配置文件
#在/etc/vsftpd/vsftpd_user_conf目录下面分别创建之前在login.txt中写的虚拟用户的配置文件
vim /etc/vsftpd/vsftpd_user_conf/uftp_1
anon_world_readable_only=no
write_enable=yes
anon_upload_enable=yes
anon_mkdir_write_enable=yes
anon_other_write_enable=yes
local_root=/data/ftproot/uftp_1

#配置语句两端都不可以有空格
#anon_world_readable_only=no 用户可以浏览和下载文件,不能设为yes,否则无法看到文件
#write_enable=yes 用户可以创建文件
#anon_upload_enable=yes 用户可以上传文件
#anon_mkdir_write_enable=yes 用户有创建和删除目录的权限
#anon_other_write_enable=yes 用户具有文件改名和删除文件的权限
#local_root=/data/web/html 指定这个虚拟FTP用户的家目录
11.创建虚拟用户家目录
mkdir -pv /data/ftproot/uftp_1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值