Centos7下搭建Vsftp服务器三种认证(匿名用户、本地用户、虚拟用户)模式的配置和使用详解

Vsftpd服务器的安装以及三种(匿名、本地、虚拟)用户模式的配置和使用

1.安装
命令行基于yum源安装,搭建本地yum源可参考利用镜像文件搭建本地yum源

yum install vsftpd* -y

安装完成后启动Vsftpd服务查看进程是否启动,使用服务控制命令systemctl,启动start,重启restart,查看状态status;使用ps命令查看进程状态并过滤出vsftpd进程状态。

systemctl restart vsftpd.service
ps -ef | grep vsftpd

2.vsftpd主配置文件的详解(/etc/vsftpd/vsftpd.conf)

anonymous_enable=YES  开启匿名用户访问;
local_enable=YES      启用本地系统用户访问;
write_enable=YES      本地系统用户写入权限;
local_umask=022       本地用户创建文件及目录默认权限掩码;
dirmessage_enable=YES 打印目录显示信息,用户第一次访问目录时提示信息;
xferlog_enable=YES    启用上传/下载日志记录;
connect_from_port_20=YES  FTP使用20端口进行数据传输;
xferlog_std_format=YES    日志文件将根据xferlog的标准格式写入;
listen=NO	      Vsftpd不以独立的服务启动,通过Xinetd服务管理;
listen_ipv6=YES	      启用IPV6监听;
pam_service_name=vsftpd	登录FTP服务器,根据/etc/pam.d/vsftpd中的内容进行认证;
userlist_enable=YES   在vsftpd.user_list和ftpusers配置文件里用户禁止访问FTP;
tcp_wrappers=YES      设置vsftpd与tcp wrapper结合进行主机的访问控制,
Vsftpd服务器检查/etc/hosts.allow和/etc/hosts.deny中设置,
来请求连接的主机,是否允许访问该FTP服务器。

启动Vsftpd服务后,通过浏览器访问Vsftpd服务器端 ftp://vsftpd服务器IP地址
在这里插入图片描述
或者通过Windows客户端资源管理器访问Vsftp服务器端
在这里插入图片描述

(一)匿名用户

Vsftpd默认以匿名用户访问,匿名用户默认访问FTP服务器端路径为:/var/ftp/pub,匿名用户默认只有查看权限,无法创建、删除、修改。如需关闭FTP匿名用户访问,需修改配置文件/etc/vsftpd/vsftpd.conf,将anonymous_enable=YES修改为anonymous_enable=NO,重启Vsftpd服务即可。
如果允许匿名用户能够上传、下载、删除文件,需要修改配置文件/etc/vsftpd/vsftpd.conf添加以下内容。

anon_upload_enable=YES		允许匿名用户上传文件;
anon_mkdir_write_enable=YES	允许匿名用户创建目录;
anon_other_write_enable=YES	允许匿名用户其他写入权限;

配置修改完成后重启vsftp服务

systemctl restart vsftpd

如想要用匿名用户进行文件的上传,还需要进行以下的操作

systemctl stop firewalld.service   关闭防火墙;
setenforce 0                       关闭selinux;

还需要对ftp登录后的目录的权限进行修改,匿名登录anonymous对于服务端而言属于其他用户,而默认登陆后的目录为/var/ftp在此路径下创建一个目录对其进行赋权添加写权限:

chmod -R o+w /var/ftp/pub    其他用户添加写权限

首先进行连通性测试在这里插入图片描述
windows命令行下进行测试
ftp +服务器IP地址 进行登录
用户名anonymous 无密码
在这里插入图片描述
对文件进行下载使用get命令 get + 文件名
在这里插入图片描述
匿名用户上传文件 put + 文件名
在这里插入图片描述

(二)本地用户

首先在Linux系统上创建两个系统用户lzx和wjn,分别对其设置密码。

useradd lzx
useradd wjn
echo 123456 | passwd --stdin lzx
echo 123456 | passwd --stdin wjn

在wjn的家目录中添加一些文件
在这里插入图片描述
本地用户配置修改如下:

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=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES

在浏览器中访问登录系统中创建的本地用户名和密码
在这里插入图片描述
登录成功后即可看到wjn用户家目录下的内容。
在这里插入图片描述
在文件资源管理器中进行访问,输入用户名和密码登录成功后可对其路径下的文件进行增删查改。
在这里插入图片描述
如果想要将用户限制在某一目录下,不允许其用户随意访问,可以进行如下配置:

chroot_local_user=YES       将所有用户限制在主目录;
local_root=/home/wjn/test   让用户登录vsftp服务时到此目录下;

chroot_local_user为是否将所有用户限制在主目录。
local_root为使用本地用户登陆到ftp时的默认目录。
anon_root为使用匿名用户登陆到ftp时的默认目录。

(三)虚拟用户

当使用本地用访问FTP服务器时,本地用户越多就越不利于管理,而且不利于系统的安全管理,所以需要使用Vsftpd虚拟用户的方式。
虚拟用户就是没有实际的系统上的用户存在,而是通过映射到一个真实的用户上,设置相应的权限来实现验证,并且虚拟用户不能够登录Linux系统这样就更加安全。
1.安装Vsftpd虚拟用户需要用到的软件及认证模块:

yum install pam* libdb-utils libdb*  -y

2.创建虚拟用户临时文件/etc/vsftpd/ftpusers.txt,新建虚拟用户和密码,jianan1和jianan2为用户名123456为密码一行用户名接着下一行为密码,依次往下排:
jianan1
123456
jianan2
123456
3.生成Vsftpd虚拟用户数据库认证文件,设置其权限为700:

db_load -T -t hash -f /etc/vsftpd/ftpusers.txt  /etc/vsftpd/vsftpd_login.db
chmod 700 /etc/vsftpd/vsftpd_login.db

4.配置PAM认证文件,/etc/pam.d/vsftpd行首加入如下两行:

auth       sufficient     pam_userdb.so   db=/etc/vsftpd/vsftpd_login
account    sufficient     pam_userdb.so   db=/etc/vsftpd/vsftpd_login

5.所有的Vsftpd虚拟用户需要映射到一个系统用户,该系统用户不需要密码,也不需要登录,主要用于虚拟用户映射使用,创建命令如下:

useradd -s /sbin/nologin  ftpuser   创建一个不需要进行登录的用户ftpuser

6.vsftpd配置文件内容如下:

anonymous_enable=YES	
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=NO
listen_ipv6=YES
userlist_enable=YES
tcp_wrappers=YES
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.可分别为jianan1和jianan2两个虚拟用户创建虚拟目录:

vim /etc/vsftpd/vsftpd_user_conf/jianan1
local_root=/home/ftpuser/jianan1	jianan1虚拟用户配置文件路径;
write_enable=YES	允许登录用户有写权限;
anon_world_readable_only=YES	允许匿名用户下载,然后读取文件;
anon_upload_enable=YES	允许上传文件,只有在write_enable=YES是生效;
anon_mkdir_write_enable=YES	允许匿名用户创建目录,同上生效;
anon_other_write_enable=YES	允许匿名用户其他权限,删除、重命名等。

9.创建虚拟用户各自虚拟目录:

mkdir -p /home/ftpuser/jianan1
chown -R ftpuser:ftpuser /home/ftpuser

最后重启Vsftpd服务即可。
10.测试
先在jianan1目录中创建三个文件在这里插入图片描述
文件资源管理器进行访问输入虚拟用户的用户名和密码
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
如上两张测试图片在进行登录后根据虚拟用户的配置文件定义的内容,将虚拟用户登录后锁定在/home/ftpuser/jianan1目录下。

  • 9
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT运维Finley

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值