一、FTP服务概述
1、FTP连接及传输模式 控制连接:TCP 21,用于发送FTP命令信息 数据连接:TCP 20,用于上传、下载数据 数据连接的建立类型: 主动模式:服务端从20端口主动向客户端发起连接 被动模式:服务端在指定范围内某个端口被动等待客户端连接
2、FTP传输模式 文本模式:ASCII模式,以文本序列传输数据 二进制模式:Binary模式,以二进制序列传输数据
3、FTP用户的类型 匿名用户:anonymous或ftp 本地用户: 帐号名称、密码等信息保存在passwd、shadow文件中 虚拟用户: 使用独立的帐号/密码数据文件
4、常见的FTP服务器程序 IIS、Serv-U wu-ftpd、Proftpd vsftpd(Very Secure FTP Daemon)
5、常见的FTP客户端程序 ftp命令 CuteFTP、FlashFXP、LeapFTP、Filezilla gftp、kuftp
二、vsftpd服务基础
1、vsftpd软件包:vsftpd-3.0.2-22.el7.x86_64.rpm
用rpm安装vsftpd: rpm ivh 软件包名(要先找到该包位置)
用yum安装vsftpd: yum -y install vsfptd
2、Vsftpd服务资料
官方站点:http://vsftpd.beasts.org/
主程序:/usr/sbin/vsftpd
服务名:vsftpd
用户控制列表文件
/etc/vsftpd/ftpusers
/etc/vsftpd/user_list
3、主配置文件
/etc/vsftpd/vsftpd.conf
三、主配置文件vsftpd.conf
1、常用的全局配置项
listen=YES:是否以独立运行的方式监听服务
listen_address=192.168.168.129:设置监听的IP地址
listen_port=21:设置监听FTP服务的端口号
write_enable=YES:是否启用写入权限
download_enable=YES:是否允许下载文件
userlist_enable=YES:是否启用user_list列表文件
userlist_deny=YES:是否禁用user_list中的用户
max_clients=0:限制并发客户端连接数
max_per_ip=0:限制同一IP地址的并发连接数
2、常用的匿名FTP配置项
anonymous_enable=YES:启用匿名访问(默认已有该项,不再输入这行)
anon_umask=022:匿名用户所上传文件的权限掩码
anon_root=/var/ftp:匿名用户的FTP根目录
anon_upload_enable=YES:允许上传文件(若无全局参数write_enable=YES则不能生效) anon_mkdir_write_enable=YES:允许创建目录
anon_other_write_enable=YES:开放其他写入权
anon_max_rate=0:限制最大传输速率(字节/秒)
四、构建可匿名上传的FTP服务器
1.安装vsftpd软件包:
[root@localhost ~]# yum -y install vsftpd
2.备份主配置文件:
[root@localhost ~]# cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
[root@localhost ~]# ls /etc/vsftpd
ftpusers user_list vsftpd.conf vsftpd.conf.bak vsftpd_conf_migrate.sh
3.去掉#号开头的行:
[root@localhost ~]# grep -v "^#" /etc/vsftpd/vsftpd.conf.bak > /etc/vsftpd/vsftpd.conf
4.编辑主配置文件,启用白名单:
[root@localhost ~]# vi /etc/vsftpd/vsftpd.conf
5.编辑名单文件user_list ,添加zhangsan、lisi:
[root@localhost ~]# vi /etc/vsftpd/user_list
6.使用useradd在系统中添加本地账号zhangsan和lisi并且使用passwd修改密码:
[root@localhost ~]# useradd lisi
[root@localhost ~]# passwd lisi
更改用户 lisi 的密码 。
新的 密码: 无效的密码: 密码未通过字典检查 - 过于简单化/系统化
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@localhost ~]# useradd zhangsan
[root@localhost ~]# passwd zhangsan
更改用户 zhangsan 的密码 。
新的 密码:
无效的密码: 密码未通过字典检查 - 过于简单化/系统化
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
7.查看已有的系统本地普通账号:
[root@localhost ~]# tail -3 /etc/passwd
8.关闭防火墙:
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
9.启动ftp服务:
[root@localhost ~]# systemctl start vsftpd
10.在物理机资源管理器地址栏输入ftp协议及服务器IP地址:
11在弹出的登录窗口输入白名单中账号及密码:
如果不出现登录窗口,而是提示出错(如下图)
则点击“确定”,然后在空白处点右键,选择“登录”
就会出现登录窗口了
登录成功界面:
12.尝试上传文件,成功
13.改用白名单以外的账号登录:
登陆失败: