VSFTP服务器安装与配置详解

Java技术 潘老师 3年前 (2020-10-19) 2480 ℃ (0) 扫码查看

首先我们先了解下什么是FTP?FTP全称为File Transfer Protocol,意为“文件传输协议”,是一种互联网上用来传送文件的协议,FTP服务器是在互联网上提供文件存储和访问服务的计算机,它们依照FTP协议提供服务。

VSFTP是一个基于GPL发布的类Unix系统上使用的FTP服务器软件,它的全称是Very Secure FTP 从此名称可以看出来,编制者的初衷是代码的安全。

VSFTP是一个安全、高速、稳定的FTP服务器,基于C/S 模式, 端口20 用于传数据,端口 21 用于传指令。

环境说明:我这里使用的是CentOS7 64位Linux操作系统

1、执行如下指令安装VSFTP:

yum -y install vsftpd

这里我安装的版本是vsftpd-3.0.2-27.el7.x86_64,如下图:
VSFTP服务器安装与配置详解

2、安装好后,其所在主要目录为/etc/vsftpd/,我们cd进去,查看其目录如下图:
VSFTP服务器安装与配置详解

目录说明:
/etc/vsftpd/vsftpd.conf: vsftpd 的核心配置文件
/etc/vsftpd/ftpusers/etc/vsftpd/user_list
ftpusers是存放禁止访问FTP的用户列表,即黑名单列表,不受任何配置项的影响,总是有效。而user_list则是和vsftpd.conf中的userlist_enable和userlist_deny两个配置项紧密相关的,它可以有效,也可以无效,有效时它可以是一个黑名单,也可以是一个白名单,ftpusers和user_list没有任何关系,ftpusers文件总是生效,user_list则取决于userlist_enable和userlist_deny两项配置。

/etc/vsftpd/vsftpd_conf_migrate.sh:是vsftpd 操作的一些变量和设置脚本
/var/ftp/:默认情况下匿名用户的根目录

3、执行如下指令添加一个 Linux 用户

useradd panziye

我这里添加的用户名为panziye,该用户登录后默认的路径为 /home/panziye

4、执行如下指令给用户添加密码:

 passwd panziye

执行后输入两次密码即可。

5、执行如下指令开启防火墙2021 端口(我这里CentOS7默认没有开启):

firewall-cmd --zone=public --add-port=20/tcp --permanent
firewall-cmd --zone=public --add-port=21/tcp --permanent

6、开启端口需要重启防火墙才能生效,执行如下指令重启防火墙:

firewall-cmd --reload

7、执行如下指令查看已开启端口,发现20和21端口都开启了:

firewall-cmd --list-ports

VSFTP服务器安装与配置详解
8、修改selinux配置:
1)查看selinux状态

getsebool -a | grep ftp

VSFTP服务器安装与配置详解
2)执行如下两个指令将其置为ON

setsebool -P ftpd_full_access on
setsebool -P tftp_home_dir on

然后再去查看状态发现这两个值为ON,当然也可以直接关闭selinux

9、执行如下命令启动vsftp服务器

service vsftpd start

10、本地电脑下载FileZilla客户端,点击下载
1)新建站点管理,连接linux服务器,这里我们使用panziye账户登录(目前匿名登录也可以):
VSFTP服务器安装与配置详解
2)传输设置选择主动,如果选择默认和被动,会发现虽然可以登录但无法获取目录
VSFTP服务器安装与配置详解

ftp有port模式和pasv模式两种连接方案:
1、port模式就是我们熟知的,21端口为控制端口,20端口为数据传输端口;
2、pasv模式是一种被动连接方案,控制端口还是21端口,但是数据传输端口是一个在指定范围内随机的端口,这个随机的端口信息会在client与server通过21端口通信时才会告知

11、连接测试,发现可以获取目录并上传图片
VSFTP服务器安装与配置详解
12、修改/etc/vsftpd/vsftpd.conf核心配置文件
1)为了安全起见,我们在此关闭匿名登录,将anonymous_enable=YES改为

anonymous_enable=NO

2)设置ftp用户只能访问自己的home目录,不能跳出其home目录,否则很危险,需要做如下设置:
a)将chroot_local_user=YES前面的#去掉,使其生效
b)在chroot_local_user=YES下面新增如下配置:

allow_writeable_chroot=YES
如不配置b),FTP连接会报错如下:
500 OOPS: vsftpd: refusing to run with writable root inside chroot()

13、执行如下命令重启VSFTP,再去使用FileZilla连接测试发现:

service vsftpd restart

1)无法匿名登录
2)使用panziye账号登录,其目录如下:
VSFTP服务器安装与配置详解
附录(vsftpd.conf核心配置参数说明):

VSFTP服务器安装与配置详解


版权声明:本站文章,如无说明,均为本站原创,转载请注明文章来源。如有侵权,请联系博主删除。
本文链接:https://www.panziye.com/java/1508.html
喜欢 (8)
请潘老师喝杯Coffee吧!】
分享 (0)
用户头像
发表我的评论
取消评论
表情 贴图 签到 代码

Hi,您需要填写昵称和邮箱!

  • 昵称【必填】
  • 邮箱【必填】
  • 网址【可选】