目录
一、FTP服务器
FTP服务器(File Transfer Protocol Server)是在互联网上提供文件存储和访问服务的计算机,它们依照FTP协议提供服务,常被用作文件共享和传输,并可根据用户实际需求设置访问权限,同时还具备跨平台的特性,是互联网中应用十分广泛的服务之一。
FTP服务是internet最早应用于主机之间进行数据传输的基本服务之一。它的特点:
(1)ftp简化了文件传输的复杂性,弄够独立于平台,不受计算机和操作系统类型的限制。无论是PC、服务器,还是Windows、linux、unix操作系统,都可以作为ftp客户端和服务器。
(2)ftp实现了可靠的数据传输。ftp是运行在TCP上的,这就保证了数据传输的正确性,并在发生错误的情况下修正。
(3)支持端点续传功能,极大方便用户并减少CPU和网络开销。
FTP服务器是按照FTP协议在互联网上提供文件存储和访问服务的主机,FTP客户端则是向服务器发送连接请求,以建立数据传输链路的主机。
目前在局域网下建立的FTP服务器由于ADSL拨号后获得的IP不同,外网无法根据确定的IP地址访问到FTP服务器,而购买公网IP对于普通企业及个人用户来说,费用过于昂贵。目前常见的解决方法是通过路由器端口映射并将动态IP绑定至域名上,通过该域名访问内网FTP服务,这也就是大家熟知的DDNS动态域名解析。
二、FTP文化传输协议
FTP是一种在互联网中进行文件传输的协议,基于客户端/服务器模式,默认使用20、21号端口,其中端口20(数据端口)用于进行数据传输,端口21(命令端口)用于接受客户端发出的相关FTP命令与参数。FTP服务器普遍部署于内网中,具有容易搭建、方便管理的特点。而且有些FTP客户端工具还可以支持文件的多点下载以及断点续传技术,因此FTP服务得到了广大用户的青睐。文件传输协议(File Transfer Protocol)定义了一个在远程计算机系统和本地计算机系统之间传输文件的标准。ftp运行在OSI参考模型的 应用层,利用传输控制协议TCP在不同的主机之间提供可靠的数据传输。
FTP的传输模式有两种:
主动模式:FTP服务器主动向客户端发起连接请求。
被动模式:FTP服务器等待客户端发起连接请求(FTP的默认工作模式)。
(防火墙一般是用于过滤从外网进入内网的流量,因此有些时候需要将FTP的工作模式设置为主动模式,才可以传输数据。)
三、Vsftpd服务程序
vsftpd作为更加安全的文件传输的服务程序,允许用户以三种认证模式登录到FTP服务器上。
匿名开放模式:是一种最不安全的认证模式,任何人都可以无需密码验证而直接登录到FTP服务器。
本地用户模式:是通过Linux系统本地的账户密码信息进行认证的模式,相较于匿名开放模式更安全,而且配置起来也很简单。但是如果被黑客破解了账户的信息,就可以畅通无阻地登录FTP服务器,从而完全控制整台服务器。
虚拟用户模式:是这三种模式中最安全的一种认证模式,它需要为FTP服务单独建立用户数据库文件,虚拟出用来进行口令验证的账户信息,而这些账户信息在服务器系统中实际上是不存在的,仅供FTP服务程序进行认证使用。这样,即使黑客破解了账户信息也无法登录服务器,从而有效降低了破坏范围和影响。
ftp是Linux系统中以命令行界面的方式来管理FTP传输服务的客户端工具。我们首先手动安装这个ftp客户端工具,以便在后续实验中查看结果。
四 、实验步骤
1.安装vsftpd软件包:
首先搭建实验环境,需要安装 vsftpd ,vsftpd :“very secure FTP daemon”,简单说 vsftpd 是一款 ftp 服务器,支持 ftp 协议,最大特点:安全性;搭建 ftp 服务器的目的:从 windows 系统传程序文件到 linux 系统服务器。安装vsftpd软件包:
[root@localhost ~]# yum -y install vsftpd
2.备份主配置文件:
[root@localhost ~]# cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
[root@localhost ~]# ls /etc/vsftpdftpusers 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 登录 FTP,权限过高可能导致核心文件受到破坏。编辑主配置文件,启用白名单:
[root@localhost ~]# vi /etc/vsftpd/vsftpd.conf
5.编辑名单文件user_list ,添加zhangsan、lisi:
[root@localhost ~]# vi /etc/vsftpd/user_list
6.在系统中添加本地账号zhangsan和lisi:
[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.改用白名单以外的账号登录:
登陆失败: