vlambda博客
学习文章列表

手动搭建FTP站点(CentOS 8)

手动搭建FTP站点(CentOS 8)


Vol.

01.


vsftpd(very secure FTP daemon)是Linux下的一款小巧轻快、安全易用的FTP服务器软件。本教程介绍如何在Linux实例上安装并配置vsftpd。


手动搭建FTP站点(CentOS 8)

实验步骤:

背景信息

步骤一:安装vsftpd

步骤二:配置vsftpd

步骤三:关闭防火墙

步骤四:客户端测试

1

背景信息


FTP(File Transfer Protocol)是一种文件传输协议,基于客户端/服务器架构,支持以下两种工作模式:

主动模式:客户端向FTP服务器发送端口信息,由服务器主动连接该端口。

被动模式:FTP服务器开启并发送端口信息给客户端,由客户端连接该端口,服务器被动接受连接。


FTP支持以下三种认证模式:

匿名用户模式:任何人无需密码验证就可以直接登录到FTP服务器。这种模式最不安全,一般只用来保存不重要的公开文件,不推荐在生产环境中使用。

本地用户模式:通过Linux系统本地账号进行验证的模式,相较于匿名用户模式更安全。

虚拟用户模式:FTP服务器的专有用户。虚拟用户只能访问Linux系统为其提供的FTP服务,而不能访问Linux系统的其它资源,进一步增强了FTP服务器的安全性。

(本次实验主要设置本地用户模式)

2

安装vsftpd


1.运行以下命令安装vsftpd:

yum -y install vsftpd


出现如下图所示界面时,表示安装成功:

2.运行以下命令设置FTP服务开机自启动:


systemctl enable vsftpd.service


3.运行以下命令启动FTP服务:

systemctl start vsftpd.service


4.运行以下命令查看FTP服务监听的端口:

netstat -antup | grep ftp


5.出现如下图所示界面,表示FTP服务已启动,监听的端口号为21:

此时,vsftpd默认已开启本地用户模式,您还需要继续进行配置才能正常使用FTP服务。

3

配置vsftpd(本地用户模式)


1.运行以下命令为FTP服务创建一个Linux用户。本示例中,该用户名为ftptest:

useradd  ftptest


2.运行以下命令修改ftptest用户的密码:

passwd ftptest


3.运行以下命令创建一个供FTP服务使用的文件目录(重要):

mkdir /var/ftp/test


4.运行以下命令更改/var/ftp/test目录的拥有者为ftptest:

chown -R ftptest:ftptest /var/ftp/test

(-R 表示test目录下的所有文件夹所有权限都是ftptest拥有)

4

修改vsftpd.conf配置文件


(先备份vsftpd.conf配置文件)      

cp /etv/vsftpd/vsftpd.conf  /etc/vsftpd/vsftpd.conf.bak



1.运行以下命令打开配置文件:

vim /etc/vsftpd/vsftpd.conf


2.根据如下内容,修改或添加相关配置参数:

#除下面提及的参数外,其他参数保持默认值即可。

#修改下列参数的值

#禁止匿名登录FTP服务器:
anonymous_enable=
NO


#允许本地用户登录FTP服务器:

local_enable=YES


#监听IPv4 sockets:

listen=YES


#在行首添加#注释掉以下参数,关闭监听IPv6: sockets

#listen_ipv6=YES


#全部用户限制在主目录:

chroot_local_user=YES


#启用例外用户名单(默认开,不用改)

#chroot_list_enable=YES


#指定例外用户列表文件,列表中用户不被锁定在主目录(默认开,不用改)

#chroot_list_file=/etc/vsftpd/chroot_list





#添加下列参数#设置本地用户登录后所在目录:

local_root=/var/ftp/test



#开启被动模式:

pasv_enable=YES

allow_writeable_chroot=YES


#建立数据传输可使用的端口范围的最小值

pasv_min_port=65300


#设置被动模式下,建立数据传输可使用的端口范围的最大值

pasv_max_port=65400


#限制连接的客户端数:

max_clients=10


#限制每个客户端IP连接个数:

max_per_ip=2


#限制本地用户传输速度:

local_max_rate=1000000





5

关闭防火墙


systemctl stop firewalld.service

systemctl disable firewalld.service


6

关闭SELinux


SELinux(Security-Enhanced Linux) 是美国国家安全局(NSA)对于强制访问控制的实现,是 Linux历史上最杰出的新安全子系统。


操作前先备份:

cp /etc/selinux/config /etc/selinux/config.backup


任选其一:

临时关闭SElinux:

setenforce 0


永久关闭SElinux:

vim /etc/selinux/config ==>SELINUX=disable



7

重启vsftpd服务

I

systemctl restart vsftpd.service

8

本地windows网页端访问or资源管理器访问


浏览器访问:

ftp://服务器网址


资源管理器访问:

ftp://服务器网址

9

远程图形窗口访问(前提要有公网IP和开启DDNS)


1.安装WinScp


https://winscp.net/eng/download.php