文件传输协议 (File Transfer Protocol,FTP),用于在网络上进行文件传输的协议。如果用户需要将文件从本机发送到另一台计算机,可以使用FTP上传操作;反之,用户可以使用FTP从其他计算机将文件下载到本机。基于C/S架构
建立两种类型连接:
数据连接:20端口用于建立数据连接,并传输文件数据;控制连接:21端口用于建立控制连接,并传输FTP控制命令
数据传输模式:
主动模式(PORT模式):服务器主动发起数据连接;被动模式(PASV模式):服务器被动等待数据连接
FTP服务器的用户:
匿名、本地、虚拟用户
安装与配置FTP服务器
vsftpd(very secure FTP daemon)是一款免费、开源的FTP服务器软件。
一、配置网络、配置本地yum仓库,并安装vsftpd软件包
yum -y install vsftpd
二、更改配置文件
vsftpd的配置文件 |
|
文件名: | 说明: |
/etc/vsftpd/vsftpd.conf |
FTP服务器主配置文件 |
etc/vsftpd/ftpusers | 禁止登陆FTP服务器的用户列表(黑名单) |
etc/vsftpd/user_list | 禁止或允许登陆FTP服务器的用户列表 (白名单) |
/etc/vsftpd/chroot_list | 限制/排除名单,控制用户能否切换到自己根目录之外 |
cd /etc/vsftpd
cp vsftpd.conf vsftpd.conf.bak # 备份
设置匿名用户访问FTP服务(最大权限)
anonymous_enable=[YES|NO] | 是否允许匿名用户访问 |
local_enable=[YES|NO | 是否允许本地用户登录FTP;主要是为虚拟宿主用户,如果该项目设定为NO那么所有虚拟用户将无法访问。 |
write_enable=YES | 是否启用写入权限 |
anon_umask=022 | 匿名用户上传文件的umask值 |
anon_upload_enable=[YES|NO] | 是否允许匿名用户上传文件 |
anon_mkdir_write_enable[YES|NO] | 是否允许匿名用户创建目录 |
anon_other_write_enable=[YES|NO] | 是否开放匿名用户的其他写入权限(包括重命名、删除等操作权限) |
anon_root=/ftp | 指定匿名用户的主目录 |
或:在配置文件最上面一行添加:anon_root=/mnt(为mkdir创建路径文件)
修改目录权限:为匿名访问ftp的根目录下的pub子目录设置最大权限,以便匿名用户上传数据
三、设置权限、关防火墙、重启
cd /var/ftp
chmod -R 777 /var/ftp/pub
systemctl stop firewalld
setenforce 0
systemctl restart vsftpd
查看21号端口是否被监听,确认vsftpd服务正常运行:
netstat -ntlp | grep vsftpd
四、测试
client:匿名访问测试---在Linux创建文件:
yum -y install ftp
在windows上创建文件:
或:在此电脑 》 ftp://IP地址
设置本地用户验证访问ftp,并禁止切换到ftp以外的目录(默认登录的根目录为本地用户的家目录)
设置用户并测试
useradd lll
passwd 123456
设置黑名单、白名单并测试