第二阶段基础
时 间:2023年5月22日
参加人:全班人员
内 容:
文件共享服务器之FTP服务
目录
一、基本信息
(一)概述
FTP:file transfer protocol 文件传输协议
linux下最常见的文件服务器,工作于应用层,实现文件传输
(二)FTP连接类型
命令连接:客户端发起请求,服务器响应
默认一直保持连接
数据连接:按需打开,按需关闭,与命令连接相关联
有可能同时打开多个数据连接
(三)端口
控制连接:TCP/21
数据连接:20/随机端口
(四)工作模式
主动模式:
1、客户端用端口n连接服务器端的21号端口,建立连接并使用PORT命令告知服务器开启了n+1端口
2、连接建立后,服务器使用20端口主动向客户端的n+1端口发送连接,以建立数据连接
被动模式:
1、客户端使用端口n连接FTP的21号端口,告知服务器使用被动模式
2、控制连接建立后,服务器建立端口P,使用PASV命令并告知客户端
3、客户端收到端口P后,使用n+1端口连接FTP的P端口,建立数据连接
二、安装配置
(一)服务名:vsftpd
(二)主配置文件: /etc/vsftpd/vsftpd.conf
(三)用户控制文件
/etc/vsftpd/ftpusers
/etc/vsftpd/user_list
(四)用户验证类型
匿名用户:是一种最不安全的模式,任何人都可无需密码验证而直接登录到FTP服务器
本地用户:是通过linux系统本地的账号密码进行验证登录,相比较匿名开放模式更安全,配置也比较简单。
虚拟用户:没有权限登录系统的用户一般也被称之为虚拟用户,虚拟用户实际上就是去掉了登录SHELL权限的用户,它没有能力登录系统,但可以进行其他任何操作。同时,管理员也可以对这些虚拟用户的权限做出设定,保证系统不被恶意攻击。
(五)安装:
服务器安装vsftpd软件(yum -y install vsftpd)
客户端安装ftp,否则无法使用ftp命令(yum -y install ftp)
登录时,直接使用ftp命令加上服务器IP地址
匿名用户验证:
例:(前提配置,防火墙关闭,yum安装,同模式vmware11)
现有一台计算机huyanggw(视作服务端),IP地址为192.168.50.1,安装了vsftpd服务,并启动
另一台计算机hy02(视为客户端),IP地址为192.168.50.50,安装了ftp服务
1:使用hy02计算机操作:ftp 1920.168.50.1 可进入
Name=ftp passwd:enter(回车) exit退出
2:验证是否允许匿名用户上传文件
anon_upload_enable=[YES|NO]
操作:cd /etc/vsftpd---ll---vim vsftpd.conf
启动服务:systemctl start vsftpd
可以发现默认配置为关闭状态,打开,删除#
进入到/var/ftp,查看
为pub赋予其他人权限chmod 777 pub
匿名用户客户端建立文件aaa.txt
ftp 192.168.50.1
ftp 回车
cd pub ->put aaa.txt->ls查看aaa.txt已经在目录下
3:验证是否允许匿名用户创建目录
anon_mkdir_write_enable=[YES|NO]
操作:设置anon_mkdir_write_enable=YES
wq保存退出,重启服务systemctl restart vsftpd
客户端进入ftp,可以建立a300文件夹
4:验证是否开放匿名用户的其他写入权限(删除、改名) anon_other_write_enable=[YES|NO]
操作: anon_other_write_enable=YES
wq保存退出,重启服务systemctl start vsftpd
客户端进入ftp,将1.txt删除
delete 1.txt 或者 del1.txt
本地用户验证:
例:(前提配置,防火墙关闭,yum安装,同模式vmware11)
现有一台计算机huyanggw(视作服务端),建立普通用户a1,a2,a3,IP地址为192.168.50.1,安装了vsftpd服务,并启动
另一台计算机hy02(视为客户端),IP地址为192.168.50.50,安装了ftp服务
可选配置项:
local_enable=[YES|NO] 是否允许本地用户登录FTP
local_umask=022 本地用户上传文件的umask值
local_root=/var/ftp 本地用户的FTP根目录
chroot_local_user=[YES|NO] 是否将用户权限禁锢在FTP目录,确保安全
allow_writeable_chroot=YES 是否允许写入
chroot_list_enable=YES|NO 是否启用chroot_list_file
在/etc/vsftpd/chroot_list文件中列出被不限制的用户的列表chroot_list_file=/etc/vsftpd/chroot_list
1:验证是否允许本地用户登录FTP
local_enable=[YES|NO]
操作:默认为YES,直接验证,可以登陆
ftp 192.168.50.1 name=a1 passwd=密码 回车
且umask=022
2:验证是否允许写入、删除
allow_writeable_chroot=YES
操作:添加allow_writeable_chroot=YES,wq保存退出,重启服务systemctl restart vsftpd
删除文件,del 文件名
删除目录,rmdir 文件名
3:验证是否将用户权限禁锢在FTP目录,确保安全
local_root=/var/ftp 本地用户的FTP根目录
chroot_local_user=[YES|NO]
操作:添加chroot_local_user=YES,
删除local_root=/var/ftp的#注释,wq保存退出,
重启服务systemctl restart vsftpd
设置后显示为“/”,不可以切换目录
设置前显示为“/var/ftp”,可以切换目录
4:验证是否启用chroot_list_file以不限制用户列表
chroot_list_enable=YES|NO 是否启用chroot_list_file
在/etc/vsftpd/chroot_list文件中列出被不限制的用户的列表chroot_list_file=/etc/vsftpd/chroot_list
操作:添加chroot_list_enable=YES,
在新建chroot_list目录
在chroot_list添加a1用户,验证是否a1是否可以切换,目录,若可以,验证成功,否则验证失败
重启服务systemctl restart vsftpd
ftp 192.168.50.1
a1 密码 回车
pwd查看当前路径
cd /etc 切换路径 切换成功
ftp 192.168.50.1
a2 密码 回车
pwd查看当前路径
cd /etc 切换路径 切换失败 验证成功
本地用户访问控制:
userlist_enable=YES
userlist_deny=YES
不允许/etc/vsftpd/user_list
文件中出现的用户名登录FTP
userlist_enable=YES
userlist_deny=NO
仅允许/etc/vsftpd/user_list文件中出现的用户名登录FTP
ftpusers
不允许/etc/vsftpd/ftpusers文件中出现的用户名登录FTP,无论user_list如何设置
1:验证userlist_enable=YES、userlist_deny=YES
不允许/etc/vsftpd/user_list文件中出现的用户名登录FTP
操作:vim /etc/vsftp/vsftp.conf
添加userlist_enable=YES、userlist_deny=YES
vim /etc/vsftp/vsftp.conf 输入a1 wq保存退出
重启服务systemctl restart vsftpd
验证a1用户是否可以登录ftp,若不可以,验证成功;
否则失败 验证成功
2:验证userlist_enable=YES userlist_deny=NO
仅允许/etc/vsftpd/user_list文件中出现的用户名登录FTP
操作:vim /etc/vsftp/vsftp.conf
添加userlist_enable=YES、userlist_deny=NO
wq保存退出 重启服务systemctl restart vsftpd
验证a1,a2用户是否可以登录ftp,若a1可以a2不可以,验证成功;若a2可以a1不可以,则验证失败 验证成功
3:验证ftpusers
userlist_enable=YES、userlist_deny=YES
不允许/etc/vsftpd/ftpusers文件中出现的用户名登录FTP,无论user_list如何设置
操作:vim ftpusers 输入a1
wq保存退出 重启服务systemctl restart vsftpd
验证a1,a2用户是否可以登录ftp,若a2可以a1不可以,验证成功;若a1可以a2不可以,则验证失败 验证成功
4:验证ftpusers 优先级是否高于userlist_deny=YES
操作:vim ftpusers 输入a1
wq保存退出 重启服务systemctl restart vsftpd
验证a1,a2用户是否可以登录ftp,若a1,a2均不可以,验证成功;若a1仍然可以,则验证失败 验证成功
本地用户使用被动模式传输:
配置项
pasv_enable=YES 启用被动模式
pasv_min_port=2001 被动模式使用的最小端口号
pasv_max_port=2005 被动模式使用的最大端口号
验证:
服务器主配置文件添加上述3条记录
客户端下载文件时,查看端口号
操作:
vim /etc/vsftpd/vsftpd.conf
输入pasv_enable=YES
pasv_min_port=3001
pasv_max_port=3005
wq保存退出 重启服务systemctl restart vsftpd
查看当前端口状态 netstat -anptl
客户端操作:
ftp 192.168.50.1
a1 密码 回车
而后回到服务端 查看当前端口状态 netstat -anptl