FTP文件传输服务
➤FTP简介
FTP服务–用来传输文件协议
FTP是一种上传和下载用的软件。用户可以通过它把自己的PC机与运行FTP协议的服务器相连,访问服务器上的程序和信息。
➤FTP通信端口
FTP服务器默认使用TCP协议的20、21端口于客户端进行通信
20端口用于建立数据连接,并传输文件数据
21端口用于建立控制连接,并传输FTP控制命令
➤FTP数据连接模式
FTP数据连接分为主动模式和被动模式
主动模式:服务器主动发起数据连接
被动模式:服务器被动等待数据连接
➤FTP连接实操实验(一)
实验环境:虚拟机CentOS7、虚拟机Win10
1.安装软件
►YUM安装
yum -y install vsftpd
►本地无网络安装
mount /dev/sr0 /mnt
cd Packages
ls vsftpd*
rpm -ivh vsftpd-3.0.2-28.el7.x86_64.rpm
2.备份FTP配置文件
cd /etc/vsftpd/ #切换到/etc/vsftpd目录下,配置文件为/etc/vsftpd/vsftpd.conf
cp ./vsftpd.conf ./vsftpd.conf.bak #修改配置文件之前先备份,它没有模板
3.编辑FTP配置文件(设置匿名用户访问的FTP服务)
vim /etc/vsftpd/vsftpd.conf #修改配置文件
anonymous_enable=YES #开启匿名用户访问,默认已开启
write_enable=YES #开放服务器的写权限(若要上传,必须开启),默认已开启
anon_umask=022 #设置匿名用户所上传数据的权限掩码(反掩码),默认已开启
anon_upload_enable=YES #允许匿名用户上传文件,默认已注释,需取消注释
anon_mkdir_write_enable=YES #允许匿名用户创建(上传)目录。默认已注释,需取消注释
anon_other_write_enable =YES #允许删除、重命名、覆盖等操作,需添加
4.为匿名访问ftp的根目录下的 pub子目录设置最大权限,以便匿名用户上传数据
chmod 777 /var/ftp/pub
5.开启ftp服务和关闭防火墙
systemctl start vsftpd #开启服务
systemctl stop firewalld #关闭防火墙
setenforce 0 #关闭系统安全机制
6.匿名访问测试
在虚拟机Windows10打开 开始 菜单,输入 cmd 命令打开命令提示符
ftp 192.168.100.100 #建立ftp连接
匿名访问,用户名为ftp,密码为空,直接回车即可完成登录
ftp> pwd #匿名访问ftp的根目录为Linux系统的/var/ftp/目录
ftp> ls #查看当前目录
ftp> cd pub #切换到pub 目录
ftp> get 文件名 #下载文件到当前Windows本地目录
ftp> put 文件名 #上传文件到ftp目录
ftp> quit #退出
➤FTP连接实操实验(二)
设置本地用户验证访问ftp,并禁止切换到ftp以外的目录(默认登录的根目录为本地用户的家目录)
1.编辑配置文件
vim /etc/vsftpd/vsftpd.conf #修改配置文件
local_enable=Yes #启用本地用户
anonymous_enable=NO #关闭匿名用户访问
write_enable=YES #开放服务器的写权限(若要上传,必须开启)
anon_umask=077 #可设置仅宿主用户拥有被上传的文件的权限(反掩码)
chroot_local_user=YES #将访问禁锢在用户的宿主目录中
allow_writeable_chroot=YES #允许被限制的用户主目录具有写权限
2.重启FTP服务
systemctl restart vsftpd #重启服务
3.访问测试
CentOS7取消匿名访问
创建zhangsan账户
测试虚拟机win10,ftp 192.168.100.100建立连接,用zhangsan账户登陆,可以访问任何一个目录
虚拟机CentOS7,配置文件再次更改添加限制用户权限和禁锢在宿主目录
测试虚拟机win10,ftp 192.168.100.100建立连接,用zhangsan账户登陆,发现无法访问宿主目录以外的任何目录
修改匿名用户、本地用户登录的默认根目录
anon_root=/var/www/html #anon_root 针对匿名用户
local_root=/var/www/html #local_root 针对系统用户
➤FTP连接实操实验(三)
设置黑白名单访问
1.编辑/etc/vsftp/user_list
末尾添加禁止登陆的账户名例如zhangsan
2.编辑vim /etc/vsftpd/vsftpd.conf
userlist_enable=YES
// 开启白名单
userlist_deny=NO
// 不阻止白名单内用户登录
win10虚拟机 测试结果