内容预测
FTP是FileTransferProtocol(文件传输合约)的中文缩写,英文缩写是“文本传输合约”。通过 Internet 单向传输控制文件。同时,它也是一个应用程序(Application)。不同的操作系统有不同的 FTP 应用程序,所有这些应用程序都遵循相同的合同来传输文件。
默认情况下c ftp下载文件到本地,FTP 服务器使用 TCP 合约的 20、21 端口与客户端通信
20端口用于建立数据连接和传输文件数据
21端口用于建立控制连接和传输FTP控制命令
1.2ftp数据连接模式主动模式:服务器主动发起数据连接
被动模式:服务器被动等待数据连接
2.svftpd安装与配置2.1svftpd安装
rpm -qc vsftpd //检查vsftpd安装包是否存在,存在即不需要安装
yum install -y vsftpd //yum 安装vsftpd
cd /etc/vsftpd
ls //切换到安装好vsftpd目录下查看文件
cp vsftpd.conf vsftpd.conf.bak //将vsftpd的配置文件进行备份
2.2 掌握vsftpd中的配置角色 vsftpd初始化全局配置
vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES #开启匿名用户访问。默认已开启
local_enable=YES #允许系统用户进行访问
write_enable=YES #开放服务器的写权限(若要上传,必须开启)。默认已开启
anon_umask=022 #设置匿名用户所上传数据的权限掩码(反掩码)。
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
重启vsftpd服务并关闭安全保护
[root@localhost vsftpd]#systemctl restart vsftpd
[root@localhost vsftpd]#systemctl stop firewalld
[root@localhost vsftpd]#setenforce 0
测试1获取文件(规划windows普通office笔记本,打开cmd运行)
这个接入终端加载一个a.txt文件
访问文件
测试 2 写入文件
为了发送顺利,可以更改匿名用户访问的根目录权限
chmod 777 /var/ftp/pub/
接入终端打算写入文件并写入信息
发送文件 b.txt
缺点:匿名用户权限低,存在潜在的安全风险
3.2 设置本地用户认证访问ftp3.2.1 设置本地用户访问ftp,严禁匿名用户登录
vim /etc/vsftpd/vsftpd.conf
local_enable=Yes #启用本地用户
anonymous_enable=NO #关闭匿名用户访问
write_enable=YES #开放服务器的写权限(若要上传,必须开启)
local_umask=077 #可设置仅宿主用户拥有被上传的文件的权限(反掩码)
systemctl restart vsftpd
重启服务c ftp下载文件到本地,然后验证
安全风险:
3.2.2 限制本地用户访问切换目录
添加切换目录的限制配置:
vim /etc/vsftpd/vsftpd.conf
chroot_local_user=YES #将访问禁锢在用户的宿主目录中
allow_writeable_chroot=YES #允许被限制的用户主目录具有写权限
另外,我们可以在访问ftp服务的时候,改变宿主机的家目录,让它的家目录变成我们指定的地方
同样是修改vsftpd.conf(可以在响应部分添加,保存退出重启服务)
修改匿名用户、本地用户登录的默认根目录
anon_root=/var/www/html #anon_root 针对匿名用户
local_root=/var/www/html #local_root 针对系统用户
3.3黑名单和白名单的使用
安装vsftpd服务后,官方在服务目录下给我们提供了user_list(指导我们更好的使用黑名单和白名单)。
黑名单:被列入黑名单的用户严禁访问。
白名单:白名单上标记的用户是我们允许访问的对象。从某种意义上说,白名单比黑名单更严格、更安全。
3.3.1 黑名单的使用
userlist_enable=YES #启用user_list用户列表文件
userlist_deny=YES #默认为YES,为黑名单,禁止user_list名单上的用户进行访问
vim /etc/vsftpd/user_list
重启服务,用接入终端测试:
3.3.2 白名单的使用
userlist_enable=YES #启用user_list用户列表文件
userlist_deny=NO #设置白名单,仅允许user_list用户列表文件的用户访问。
再次查看微调的 user_list
重启服务进行测试:
3.4windows可以windows形式访问Linux主机端
通过“我的笔记本”或“网页”进入ftp: //zhangsan@192.168.73.105 回车进入
总结
1.ftp服务有两个端口,一个是20,用于数据连接,另一个是21,用于用户ftp传输控制命令。同时使用TCP传输合约
2.在 ftp 应用程序中可以使用匿名登录和本地用户登录。匿名登录,无密码限制,无法识别访客,存在较高的安全隐患。本地用户可以登录,也可以通过修改vsftp.conf来限制切换目录。
3.黑名单是被拒绝访问的用户列表。白名单是指只有名单上的用户可以访问