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服务器测试本地用户认证和虚拟用户认证两种方式;
【Linux运维】第十三章(2):部署vsftpd--虚拟用户(db4)
最新推荐文章于 2023-04-06 14:17:45 发布