CentOs 7 安装 Vsftpd 服务器

文件传输协议(File Transfer Protocol, FTP), 基于该协议 FTP 客户端与服务端
可以实现共享文件、上传文件、下载文件。 FTP 基于 TCP 协议生成一个虚拟的连接,
主要用于控制 FTP 连接信息,同时再生成一个单独的 TCP 连接用于 FTP 数据传输。
用户可以通过客户端向 FTP 服务器端上传、下载、删除文件, FTP 服务器端可以同时提
供给多人共享使用。

1,Vsftpd 服务器安装配置
在命令行执行如下命令 yum install vsftpd* -y
在这里插入图片描述
2,打印 vsftpd 安装后的配置文件路径、启动 Vsftpd 服务及查看进程是否启动

[root@10-210 mnt]# rpm -ql vsftpd|more
/etc/logrotate.d/vsftpd
/etc/pam.d/vsftpd
/etc/vsftpd

[root@10-210 mnt]# systemctl restart vsftpd 
[root@10-210 mnt]# ps -ef |grep vsftpd
root      1273     1  0 17:54 ?        00:00:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
root      1276  1198  0 17:54 pts/0    00:00:00 grep --color=auto vsftpd

3, 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 服务管理,
建议改成 YES;
listen_ipv6=YES 启用 IPV6 监听;
pam_service_name=vsftpd 登录 FTP 服务器,依据/etc/pam.d/vsftpd 中内容进行
认证;
userlist_enable=YES vsftpd.user_list 和 ftpusers 配置文件里用户禁止访

防火墙上开放ftp服务端口

 [root@10-210 ~]# firewall-cmd --zone=public --add-servic=ftp --permanent

重新启动防火墙,查看状态

[root@10-210 ~]# firewall-cmd --reload

success
[root@10-210 ~]# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: ens192
sources:
services: ssh dhcpv6-client ftp
ports: 21/tcp
protocols:
masquerade: no
forward-ports:
分别通过网页,客户端访问
在这里插入图片描述在这里插入图片描述至此已可成功访问ftp服务器。
3,Vsftpd 匿名用户配置
Vsftpd 默认以匿名用户访问,匿 名用 户默 认访 问的 FTP 服务器端路径为:
/var/ftp/pub,匿名用户只有查看权限,无法创建、删除、修改。如需关闭 FTP 匿名
用户访问,需修改配置文件/etc/vsftpd/vsftpd.conf,将 anonymous_enable=YES 修
改为 anonymous_enable=NO,重启 Vsftpd 服务即可
在这里插入图片描述
4,Vsftpd 系统用户配置
实现 Vsftpd 系统用户方式验证,只需在 Linux 系统中创建多个用户即可,创建
用户使用 useradd,同时给用户设置密码,即可通过用户和密码登录 FTP,进行文件上
传、下载、删除等操作。 Vsftpd 系统用户实现方法步骤如下:
Linux 系统中创建系统用户 user1、 user2,分别设置密码为 123456

[root@10-210 vsftpd]# useradd user1
[root@10-210 vsftpd]# useradd user2
[root@10-210 vsftpd]# echo 123456|passwd --stdin user1
Changing password for user user1.
passwd: all authentication tokens updated successfully.
[root@10-210 vsftpd]# echo 123456|passwd --stdin user2
Changing password for user user2.
passwd: all authentication tokens updated successfully.

通过 Windows 资源客户端验证
在这里插入图片描述成功登录并上传文档至ftp服务器user1用户的家目录下
在这里插入图片描述5,Vsftpd 虚拟用户配置
如果基于 Vsftpd 系统用户访问 FTP 服务器, 系统用户越多越不利于管理, 而且不利
于系统安全管理, 鉴于此, 为了能更加的安全使用 VSFTPD, 需使用 Vsftpd 虚拟用户方式。
Vsftpd 虚拟用户原理:虚拟用户就是没有实际的真实系统用户, 而是通过映射到其
中一个真实用户以及设置相应的权限来实现访问验证,虚拟用户不能登录 Linux 系统,
从而让系统更加的安全可靠。
Vsftpd 虚拟用户企业案例配置步骤如下:
1) 安装 Vsftpd 虚拟用户需用到的软件及认证模块:

[root@10-210 user1]# yum install pam* libdb-utils libdb* --skip-broken -y

在这里插入图片描述2) 创建虚拟用户临时文件/etc/vsftpd/ftpusers.txt,新建虚拟用户和密码,其
中 user01,user02 为虚拟用户名, 123456 为密码, 如果有多个用户, 依次格式
填写即可

[root@10-210 user1]# vim /etc/vsftpd/ftpusers.txt

在这里插入图片描述3) 生成 Vsftpd 虚拟用户数据库认证文件,设置权限 700:

[root@10-210 user1]# db_load -T -t hash -f /etc/vsftpd/ftpusers.txt /etc/vsftpd/vsftpd_login.db
[root@10-210 user1]# chmod 700 /etc/vsftpd/vsftpd_login.db 

4) 配置 PAM 认证文件, 配置之前先备份原配置文件

[root@10-210 user1]# cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak
[root@10-210 user1]# vim /etc/pam.d/vsftpd

加上如下内容

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

以上两条是手动添加的,内容是对虚拟用户的安全和帐户权限进行验证。
这里的auth是指对用户的用户名口令进行验证。
这里的accout是指对用户的帐户有哪些权限哪些限制进行验证。
其后的sufficient表示充分条件,也就是说,一旦在这里通过了验证,那么也就不用经过下面剩下的验证步骤了。相反,如果没有通过的话,也不会被系统立即挡之门外,因为sufficient的失败不决定整个验证的失败,意味着用户还必须将经历剩下来的验证审核。
最后的db=/etc/vsftpd/vsftpd_login则指定了验证库函数将到这个指定的数据库中调用数据进行验证
这里有一个问题需要注意一下:
如果你的系统是64位的,那么这里要改成:
/lib64/security/pam_userdb.so

在这里插入图片描述
所有 Vsftpd 虚拟用户需要映射到一个系统用户, 该系统用户不需要密码, 也不
需要登录, 主要用于虚拟用户映射使用,创建命令如下:

[root@10-210 user1]# useradd -s /sbin/nologin ftpuser

6) 新增 vsftpd.conf 配置文件代码如下:

[root@10-210 user1]# vim /etc/vsftpd/vsftpd.conf 

在这里插入图片描述

#config virtual user FTP

    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 目录创建虚拟用户各自的配置文件,创建虚
拟用户配置文件主目录

[root@10-210 user1]# mkdir -p /etc/vsftpd/vsftpd_user_conf/

8) 如下分别为虚拟用户 user01,user02 用户创建配置文件:
vim /etc/vsftpd/vsftpd_user_conf/user01,同时创建私有的虚拟目录,代码
如下:

local_root=/home/ftpuser/user01
write_enable=YES
anon_world_readable_only=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

虚拟用户配置文件内容详解:
local_root=/home/ftpuser/user01 user01 虚拟用户配置文件路径;
write_enable=YES 允许登陆用户有写权限;
anon_world_readable_only=YES 允许匿名用户下载,然后读取文件;
anon_upload_enable=YES 允 许 匿 名 用 户 上 传 文 件 权 限 , 只有 在write_enable=YES 时该参数才生效;
anon_mkdir_write_enable=YES 允 许 匿 名 用 户 创 建 目 录 , 只 有 在 write_enable=YES 时该参数才生效;
anon_other_write_enable=YES 允许匿名用户其他权限,例如删除、重命名 等。
9) 创建虚拟用户各自虚拟目录:

[root@10-210 user1]# mkdir -p /home/ftpuser/{usr01,user02,user03}

[root@10-210 user1]# chown -R ftpuser:ftpuser /home/ftpuser

重启 Vsftpd 服务,通过 Windows 客户端资源管理器登录 Vsftpd 服务端,测试结果如图
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值