VSFTP三种用户模式的配置

本文详细介绍了在CentOS7系统中如何安装和配置Apache及VSFTP服务,包括匿名用户、本地用户和虚拟用户三种访问模式。针对每种模式,文章详细讲解了配置步骤,如修改vsftpd主配置文件、设置用户权限、启动服务等,并提供了相应的安全注意事项和权限控制。最后,文章还展示了如何添加和验证新的虚拟用户。
摘要由CSDN通过智能技术生成


在Centos7+Apache环境下

安装apache

yum -y install httpd						#安装apache
yum -y install net-tools					#安装netstat命令
systemctl restart httpd				
netstat -anput |grep httpd					#查看apache是否正常运行
tcp6       0      0 :::80                   :::*                    LISTEN      1223/httpd  

FTP指定目录为:/var/www/html,且需要具有下载上传权限

安装VSFTP

yum -y install vsftpd
systemctl restart vsftpd
netstat -anput |grep vsftpd
tcp6       0      0 :::21                   :::*                    LISTEN      1282/vsftpd 

vsftp有三种用户访问模式:

匿名用户
本地用户
虚拟用户
现在将分别对其进行设置

首先备份配置文件

cp /etc/vsftpd/vsftpd.conf{,.bak}  #复制文件的快捷写法
ls /etc/vsftpd/
ftpusers  user_list  vsftpd.conf  vsftpd.conf.bak  vsftpd_conf_migrate.sh  vsftpd.conf.rpmsave

一.匿名用户模式

配置vsftpd主配置文件,匿名用户相关权限

vim /etc/vsftpd/vsftpd.conf

找到anonymous_enable=YES行,在下面添加

anon_root=/var/www/
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_umask=022

备注:
本来此处FTP指定目录该为/var/www/html,但是新版本的vsftp加入了安全策略,切换了根目录(默认是/var/ftp),根目录不能有写入权限,但是我们需要具备写入权限,所有就把实际上传的路径往上取了一层,不给写入权限,把写入权限给到实际需要的www下一层html目录

给/var/www/html目录赋予文件系统other写入权限

chmod -R o+rw /var/www/html
ll /var/www
total 0
drwxr-xr-x 2 root root  6 Apr 21  2018 cgi-bin
drwxr-xrwx 2 root root 24 Aug  8 15:16 html

以上便配置好,以匿名用户的形式登陆FTP,并将FTP的工作目录指定到了apache的工作目录,方便直接通过FTP客户端,直接上传下载及管理web代码
但是,缺点很明显,只要知道ftp站点IP就可以上去对web代码进行管理,安全性极差,所以实际使用中也很少使用该方式,该方式仅限自己测试用.下面将说下常用的方式,本地用户验证方式

二.本地用户模式

配置vsftpd主配置文件文件

先用备份的配置文件覆盖一次配置文件

cp /etc/vsftpd/vsftpd.conf.bak /etc/vsftpd/vsftpd.conf 
cp: overwrite ‘/etc/vsftpd/vsftpd.conf’? y

将如果忘记备份配置文件可以直接先卸载一次vsftpd,再安装一次

 yum -y remove vsftpd && yum -y install vsftpd

修改配置文件,禁用匿名用户,配置本地用户相关权限

vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO

找到被注释的chroot_local_user=yes,取消掉其注释并添加两行字段,最后效果如下

chroot_local_user=YES			#限制用从/var/www/html切换到上一级目录
local_root=/var/www/html		#指定用户登陆后的默认目录
allow_writeable_chroot=YES		#设置启用用户不能切换目录后的上传,删除,改名等权限

新建本地用户并设置密码

useradd -s /sbin/nologin u1     #加 -s /sbin/nologin意思是该用户不能以系统用户身份登陆到centos系统中,只能作为ftp的用户登陆到ftp用
useradd -s /sbin/nologin u2
echo "u1:123" |chpasswd
echo "u2:123" |chpasswd

设置 /var/www/html写入权限

chmod o+w /var/www/html -R
ll /var/www/
total 0
drwxr-xr-x 2 root root  6 Apr 21  2018 cgi-bin
drwxr-xrwx 2 root root 24 Aug  8 16:23 html

启动服务

systemctl restart vsftpd

测试效果如下:

在这里插入图片描述
这里说下为什么本地用户时,ftp默认目录是/var/www/html,而匿名则是/var/www/,刚才介绍匿名的时候就说了因为vsftp本身的安全策略导致,但是我们在配置本地用户时,加入了allow_writeable_chroot=YES字段,该字段正好可以修改此策略,但是该字段只用于本地用户和虚拟用户,匿名用户类似该字段功能字段我没有找到,如果有人找到了可以告知一下.
备注一下:

chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

三个字段的关系
chroot_local_user=YES
是防止登陆的用户切换到上一级及更上一级目录,如果想测试,可以把YES改成NO试试效果
chroot_list_enable=YES
则是启用例外名单
chroot_list_file=/etc/vsftpd/chroot_list
则是指定例外名单的文件名

可以这样理解三个字段的意思
chroot_local_user=YES 是公司不准迟到的规则
chroot_list_enable=YES 是启用公司老总可以例外
chroot_list_file=/etc/vsftpd/chroot_list 则是通过chroot_list名单来指定哪些是公司领导

chroot_local_user设置为YES,然后通过chroot_list_file指定了例外名单文件名,把刚才创建的用户名随便一个写进chroot_list(一个用户名写一行),则该用户则不受切换目录限制,可以通过ftp在linux系统目录中任意切换,也具备一定的安全风险,所以才使用chroot_local_user=YES

三.虚拟用户模式

安装pam认证方式

yum -y install pam pam-devel

添加虚拟用户映射的本地用户

useradd -s /sbin/nologin virftp
echo "virftp:123" |chpasswd

配置vsftp主配置文件

如果之前做了其他配置建议覆盖一下配置文件

vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO			#禁用匿名用户登录

guest_enable=YES			#启用虚拟用户登陆,需添加
guest_username=virftp		#指定虚拟用户映射的本地用户,需添加
user_config_dir=/etc/vsftpd/vsftpd_virusers		#设置各虚拟用户的配置文件目录

pam_service_name=vsftpd		#指定使用pam验证的配置文件,已存在不用修改

配置虚拟用户

添加虚拟用户
vim /etc/vsftpd/vir_user				#奇数行为账号,偶数行为密码
cat /etc/vsftpd/vir_user			
test01
123
test02
123
创建虚拟用户数据库
db_load -T -t hash -f /etc/vsftpd/vir_user  /etc/vsftpd/vir_user.db
修改数据库权限属主权限
chmod 700 /etc/vsftpd/vir_user.db
配置pam验证文件
cp /etc/pam.d/vsftpd{,.bak}
vim /etc/pam.d/vsftpd

将auth及account的所有配置行均注释掉,再添加如下两行

auth       required     pam_userdb.so   db=/etc/vsftpd/vir_user  
account    required     pam_userdb.so   db=/etc/vsftpd/vir_user
单独配置虚拟用户的权限
mkdir /etc/vsftpd/vsftpd_virusers/
vim /etc/vsftpd/vsftpd_virusers/test01

输入以下字段控制权限

anon_upload_enable=YES				#虚拟用户的上传权限
anon_mkdir_write_enable=YES			#虚拟用户创建文件目录权限
anon_other_write_enable=YES			#虚拟用户改名等其他权限
anon_umask=022						#设置在ftp中新建和上传的文件的初始权限
local_root=/var/www/html			#设置虚拟用户登陆后的目录
allow_writeable_chroot=YES			#设置启用用户不能切换目录后的上传,删除,改名等权限
chroot_local_user=YES				#启用用户登录后不能切上一级目录

设置 /var/www/html写入权限

chmod o+w /var/www/html -R
ll /var/www/
total 0
drwxr-xr-x 2 root root  6 Apr 21  2018 cgi-bin
drwxr-xrwx 2 root root 24 Aug  8 16:23 html

重启vsftp服务

systemctl restart vsftpd

最后验证

在这里插入图片描述

添加新虚拟用户

设置虚拟用户名称和密码
vim /etc/vsftpd/vir_user

在奇数行设置用户名,紧随其后的偶数行为其密码
导入到pam验证的用户数据库

db_load -T -t hash -f /etc/vsftpd/vir_user  /etc/vsftpd/vir_user.db
配置新用户的权限

只需要把之前的用户的权限配置文件复制一份并重新命名为新用户即可,如果有权限需要设置,可以根据具体情况进行调整

cp /etc/vsftpd/vsftpd_viruser/test01 /etc/vsftpd/vsftpd_viruser/test02

============================================================================================
至此,vsftp的三种用户验证方式都配置完成,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值