【Linux运维】第十三章(2):部署vsftpd--虚拟用户(db4)

1.设置网络参数:
vi /etc/sysconfig/network-scripts/ifcfg-eth0 
DEVICE="eth0"
HWADDR="00:0C:29:68:b1:0f"
NM_CONTROLLED="no"
ONBOOT="yes"
BOOTPROTO=static
IPADDR=10.10.10.95
NETMASK=255.255.255.0
GATEWAY=10.10.10.1
DNS1=10.10.10.95
:wq

vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=ftp.linuxfan.cn
:wq

vi /etc/selinux/config 
SELINUX=disabled
:wq

chkconfig iptables off

reboot

2.安装软件vsftpd
rm -rf /etc/yum.repos.d/*
vi /etc/yum.repos.d/rhel.repo
[local]
name=local
baseurl=file:///mnt
enabled=1
gpgcheck=0
:wq
mount /dev/cdrom /mnt
yum -y install vsftpd  db4-utils

3.创建虚拟用户和本地用户:
[root@ftp vsftpd]# vi vusers.list 	##编写虚拟用户的配置文件,指定用户名密码;
mike
123
tom
456
:wq
cd /etc/vsftpd/
db_load -T -t hash -f vusers.list vusers.db	##创建Berkeley DB格式的数据库文件
chmod 600 vusers.*

useradd -d /var/vftproot -s /sbin/nologin virtual	##创建虚拟用户所映射的本地用户,设置其用户的宿主目录和登陆shell
chmod 777 /var/vftproot/		##给予测试目录最大权限

4.生成PAM认证文件:
[root@ftp vsftpd]# vi /etc/pam.d/vsftpd.vu 				##修改如下,文件中的db=所指的vusers文件就是刚刚创建的vusers.db文件;
#%PAM-1.0
auth            required        pam_userdb.so db=/etc/vsftpd/vusers
account         required        pam_userdb.so db=/etc/vsftpd/vusers
:wq

5.主配置文件:
[root@ftp vsftpd]# vi vsftpd.conf 
anonymous_enable=NO
local_enable=YES
write_enable=NO
anon_umask=022
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
local_root=/var/vftproot/
chroot_local_user=YES
guest_enable=YES
guest_username=virtual
pam_service_name=vsftpd.vu
listen=YES
pasv_min_port=30000
pasv_max_port=30999
user_config_dir=/etc/vsftpd/vusers_dir/
:wq
[root@ftp vsftpd]# mkdir vusers_dir	##配置文件中user_config_dir配置项指定了此目录下的用户权限,若开启了此配置项,但是在这个目录下没有相应的用户文件,那么不能登陆ftp,创建以用户名为文件名的空文件,则此用户可以访问下载,不能上传;
cd vusers_dir/
ls
touch mike
[root@ftp vusers_dir]# vi tom   ##tom能上传,mike只能下载
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
:wq

touch /var/vftproot/1.file	##创建测试文件

/etc/init.d/vsftpd  restart
netstat -utpln |grep 21
chkconfig vsftpd on
6.测试:
windows:
ftp://10.10.10.95
linux:
测试结果:tom用户可以写入并上传,mike用户只能访问下载,不能上传

7.虚拟用户验证成功之后,发现本地用户认证无法实现;
##配置虚拟用户及本地用户认证的方式######
[root@ftp pam.d]# vi /etc/pam.d/vsftpd		##第一二行指定虚拟用户的认证,指定/etc/vsftpd/vusers.db虚拟用户的db数据文件,下边几行指定本地用户认证;
#%PAM-1.0
auth            sufficient        pam_userdb.so db=/etc/vsftpd/vusers
account         sufficient        pam_userdb.so db=/etc/vsftpd/vusers
session    optional     pam_keyinit.so    force revoke
auth       required     pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
auth       required     pam_shells.so
auth       include      password-auth
account    include      password-auth
session    required     pam_loginuid.so
session    include      password-auth
:wq
[root@ftp vsftpd]# vi vsftpd.conf 		##编辑主配置文件如下
anonymous_enable=NO
local_enable=YES
write_enable=NO
anon_umask=022
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
local_root=/var/vftproot/
chroot_local_user=YES
guest_enable=YES
guest_username=virtual
pam_service_name=vsftpd
listen=YES
pasv_min_port=30000
pasv_max_port=30999
user_config_dir=/etc/vsftpd/vusers_dir/
:wq
[root@lwh ~]# /etc/init.d/vsftpd restart		##重启服务

8.创建本地测试用户;
[root@lwh ~]# useradd u01
[root@lwh ~]# useradd u02
[root@lwh ~]# echo 123123 |passwd --stdin u01
更改用户 u01 的密码 。
passwd: 所有的身份验证令牌已经成功更新。
[root@lwh ~]# echo 123123 |passwd --stdin u02
更改用户 u02 的密码 。
passwd: 所有的身份验证令牌已经成功更新。

8.客户端登陆访问ftp服务器测试本地用户认证和虚拟用户认证两种方式;
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值