内容预知

 1.ftp的相关知识

 1.1 ftp的简介

1.2 ftp的数据连接模式

 主动模式:服务器主动发起数据连接

被动模式:服务器被动等待数据连接

 2.svftpd的安装和配置

 2.1 svftpd安装

 2.2  掌握vsftpd中配置作用

 vsftpd初始化全局配置

 3.实验引入

3.1 实验一 :匿名用户访问本机 

 测试1 获取文件(准备一台windows普通办公电脑,打开cmd操作)

 测试2 写入文件

3.2  设置本地用户验证访问ftp

3.2.1 设置本地用户可以访问ftp,禁止匿名用户登录

 3.2.2 对本地用户访问切换目录进行限制

3.3 黑名单和白名单的使用 

 3.3.1 黑名单的使用

编辑  3.3.2 白名单的运用 

3.4 windows 可以通过windows的方式访问Linux主机端

 总结


 

 1.ftp的相关知识

 1.1 ftp的简介

FTP是FileTransferProtocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。

 

FTP服务器默认使用TCP协议的20、21端口与客户端进行通信

20端口用于建立数据连接,并传输文件数据

21端口用于建立控制连接,并传输FTP控制命令  


1.2 ftp的数据连接模式

 主动模式:服务器主动发起数据连接

 

centos7 ftp服务器不允许匿名登录 windows ftp不允许匿名登录_服务器

 

被动模式:服务器被动等待数据连接

 

centos7 ftp服务器不允许匿名登录 windows ftp不允许匿名登录_数据连接_02

 

 

 2.svftpd的安装和配置

 2.1 svftpd安装

rpm -qc vsftpd    //检查vsftpd安装包是否存在,存在即不需要安装


 yum install -y vsftpd   //yum 安装vsftpd

 

centos7 ftp服务器不允许匿名登录 windows ftp不允许匿名登录_数据连接_03

 

cd /etc/vsftpd
ls                //切换到安装好vsftpd目录下查看文件

centos7 ftp服务器不允许匿名登录 windows ftp不允许匿名登录_linux_04

 

cp vsftpd.conf vsftpd.conf.bak   //将vsftpd的配置文件进行备份

 

centos7 ftp服务器不允许匿名登录 windows ftp不允许匿名登录_白名单_05

 2.2  掌握vsftpd中配置作用

 vsftpd初始化全局配置

vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES            #开启匿名用户访问。默认已开启
local_enable=YES                #允许系统用户进行访问
write_enable=YES                #开放服务器的写权限(若要上传,必须开启)。默认已开启
anon_umask=022                  #设置匿名用户所上传数据的权限掩码(反掩码)。

centos7 ftp服务器不允许匿名登录 windows ftp不允许匿名登录_linux_06

 3.实验引入

本次实验运用ftp服务,模拟实际运用场景,分别针对匿名用户访问,本地用户访问不同的管控方式和权限设置。实现安全场景下,也能进行双方传输的操作环境 

3.1 实验一 :匿名用户访问本机 

简单设置,让匿名用户拥有访问本机和各种权限 

anon_umask=022                  #设置匿名用户所上传数据的权限掩码(反掩码)。
anon_upload_enable=YES          #允许匿名用户上传文件。默认已注释,需取消注释
anon_mkdir_write_enable=YES     #允许匿名用户创建(上传)目录。默认已注释,需取消注释
anon_other_write_enable =YES    #允许删除、重命名、覆盖等操作。需添加

 修改配置vim /etc/vsftpd/vsftpd.conf

centos7 ftp服务器不允许匿名登录 windows ftp不允许匿名登录_服务器_07

 

 重启vsftpd服务,关闭安全防护

[root@localhost vsftpd]#systemctl restart vsftpd
[root@localhost vsftpd]#systemctl stop firewalld
[root@localhost vsftpd]#setenforce 0

centos7 ftp服务器不允许匿名登录 windows ftp不允许匿名登录_数据连接_08

 

 测试1 获取文件(准备一台windows普通办公电脑,打开cmd操作)

本访问端放入一个a.txt的文件

centos7 ftp服务器不允许匿名登录 windows ftp不允许匿名登录_linux_09

 访问端获取文件

centos7 ftp服务器不允许匿名登录 windows ftp不允许匿名登录_服务器_10

 测试2 写入文件

为了发送的畅通,可以修改一下匿名用户访问的根目录权限

chmod 777 /var/ftp/pub/

访问端准备一个文件,写入信息 

centos7 ftp服务器不允许匿名登录 windows ftp不允许匿名登录_服务器_11

 发送文件b.txt

centos7 ftp服务器不允许匿名登录 windows ftp不允许匿名登录_数据连接_12

 

centos7 ftp服务器不允许匿名登录 windows ftp不允许匿名登录_数据连接_13

 存在的缺点:匿名用户权限过高,存在安全隐患

3.2  设置本地用户验证访问ftp

3.2.1 设置本地用户可以访问ftp,禁止匿名用户登录

 

vim /etc/vsftpd/vsftpd.conf
local_enable=Yes        		 #启用本地用户
anonymous_enable=NO     		 #关闭匿名用户访问
write_enable=YES        		 #开放服务器的写权限(若要上传,必须开启)
local_umask=077          		 #可设置仅宿主用户拥有被上传的文件的权限(反掩码)

centos7 ftp服务器不允许匿名登录 windows ftp不允许匿名登录_linux_14


systemctl restart  vsftpd

 重启服务,后进行验证

centos7 ftp服务器不允许匿名登录 windows ftp不允许匿名登录_白名单_15

 

安全隐患:

centos7 ftp服务器不允许匿名登录 windows ftp不允许匿名登录_linux_16

 

 3.2.2 对本地用户访问切换目录进行限制

添加切换目录的限制配置 :

vim /etc/vsftpd/vsftpd.conf
chroot_local_user=YES   		 #将访问禁锢在用户的宿主目录中
allow_writeable_chroot=YES		 #允许被限制的用户主目录具有写权限

 

centos7 ftp服务器不允许匿名登录 windows ftp不允许匿名登录_linux_17

centos7 ftp服务器不允许匿名登录 windows ftp不允许匿名登录_数据连接_18

 

 除此之外我们还能修改ftp服务访问时,宿主家目录,让它的家目录成为我们指定的地方

同样是修改 vsftpd.conf (在响应的版块添加即可,保存退出重启服务)

修改匿名用户、本地用户登录的默认根目录
anon_root=/var/www/html			#anon_root 针对匿名用户
local_root=/var/www/html		#local_root 针对系统用户

 

3.3 黑名单和白名单的使用 

 在安装vsftpd服务后,官方贴心的为我们在服务目录中提供了user_list   (其中就是为了我们更好利用黑名单和白名单的手册)。

黑名单:在黑名单上标记的用户,是我们禁止访问的对象。

白名单:在白名单上标记的用户是我们允许访问的对象,从某种意义上来讲,白名单比黑名单的制定更为严格和安全。

centos7 ftp服务器不允许匿名登录 windows ftp不允许匿名登录_白名单_19

 3.3.1 黑名单的使用

 

userlist_enable=YES				#启用user_list用户列表文件
userlist_deny=YES				#默认为YES,为黑名单,禁止user_list名单上的用户进行访问

 

centos7 ftp服务器不允许匿名登录 windows ftp不允许匿名登录_linux_20

 

vim /etc/vsftpd/user_list

centos7 ftp服务器不允许匿名登录 windows ftp不允许匿名登录_linux_21

 重启服务,用访问端进行测试:

centos7 ftp服务器不允许匿名登录 windows ftp不允许匿名登录_服务器_22

 3.3.2 白名单的运用 

userlist_enable=YES				#启用user_list用户列表文件
userlist_deny=NO				#设置白名单,仅允许user_list用户列表文件的用户访问。

 

centos7 ftp服务器不允许匿名登录 windows ftp不允许匿名登录_白名单_23

 再次查看微调user_list

centos7 ftp服务器不允许匿名登录 windows ftp不允许匿名登录_服务器_24

 重启服务进行测试:

centos7 ftp服务器不允许匿名登录 windows ftp不允许匿名登录_数据连接_25

3.4 windows 可以通过windows的方式访问Linux主机端

ftp://zhangsan@192.168.73.105 

centos7 ftp服务器不允许匿名登录 windows ftp不允许匿名登录_白名单_26

 

centos7 ftp服务器不允许匿名登录 windows ftp不允许匿名登录_服务器_27

 

 

centos7 ftp服务器不允许匿名登录 windows ftp不允许匿名登录_linux_28

 总结

1. ftp的服务中有两个端口,一个20用于数据连接,一个21用户ftp传输控制指令。同时它使用的是TCP传输协议

2. ftp运用中可以又匿名登录和本地用户登录。匿名登录,没有密码限制,无法看清来访者,存在安全风险比较高。本地用户登录,也可以通过修改vsftp.conf 限制其切换目录。

3.黑名单,是名单上的用户被拒绝访问。白名单是只有名单上的用户才可以进行访问