1.FTP简介
文件传输协议(英文:File Transfer Protocol,缩写:FTP)是用于在网络上进行文件传输的一套标准协议,也是网络上常用的最老的网络协议之一,它使用客户/服务器模式。它属于网络传输协议的应用层。
FTP服务器的名称为vsftpd,它代表Very Secure File Transfer Protocol Damon。默认配置文件让anonymous用户(匿名用户)只能下载位于chroot目录中的内容。
/var/ftp/这意味着远程ftp客户端能以anonymous用户或ftp身份连接到服务器(无需密码),并从ftp服务器上的/var/ftp/目录下载文件(其本地ftp用户可以读取这些文件)
与大多数Internet服务一样,FTP也是一个客户机/服务器系统。用户通过一个支持FTP协议的客户机程序,连接到在远程主机上的FTP服务器程序。用户通过客户机程序向服务器程序发出命令,服务器程序执行用户所发出的命令,并将执行的结果返回到客户机。比如说,用户发出一条命令,要求服务器向用户传送某一个文件的一份拷贝,服务器会响应这条命令,将指定文件送至用户的机器上。客户机程序代表用户接收到这个文件,将其存放在用户目录中。
匿名FTP
使用FTP时必须首先登录,在远程主机上获得相应的权限以后,方可下载或上传文件。也就是说,要想同哪一台计算机传送文件,就必须具有哪一台计算机的适当授权。换言之,除非有用户ID和口令,否则便无法传送文件。这种情况违背了Internet的开放性,Internet上的FTP主机何止千万,不可能要求每个用户在每一台主机上都拥有帐号。匿名FTP就是为解决这个问题而产生的。
当远程主机提供匿名FTP服务时,会指定某些目录向公众开放,允许匿名存取。系统中的其余目录则处于隐匿状态。作为一种安全措施,大多数匿名FTP主机都允许用户从其下载文件,而不允许用户向其上传文件,也就是说,用户可将匿名FTP主机上的所有文件全部拷贝到自己的机器上,但不能将自己机器上的任何一个文件拷贝至匿名FTP主机上。即使有些匿名FTP主机确实允许用户上传文件,用户也只能将文件上传至某一指定上传目录中。随后,系统管理员会去检查这些文件,他会将这些文件移至另一个公共下载目录中,供其他用户下载,利用这种方式,远程主机的用户得到了保护,避免了有人上传有问题的文件,如带病毒的文件。
2.部署ftp服务器
1)部署前我们需要先关闭selinux【内核级加强型火墙】
vim /etc/sysconfig/selinux ##disabled
getenforce ##查看状态是否改变
reboot ##重启系统
2)安装并开启ftp服务
yum install vsftpd -y ##需提前搭建好yum源,详情可参考作者前面关于yum源搭建的博客
systemctl start vsftpd
systemctl enable vsftpd ##设置服务开机自启
systemctl status vsftpd
yum install lftp -y
3)设置火墙永久允许ftp服务
方法一:命令设置
firewall-cmd --permanent --add-service=ftp
firewall-cmd --reload
方法二:图形设置
![firewall-config](https://img-blog.csdnimg.cn/2019021401024415.png)
在下图中选择【Permanent】,在【Options】中选择第一项
firewall-cmd --list-all ##查看是否设置成功
4)测试服务
lftp 172.25.254.106
lftp 172.25.254.106:~> ls
4.ftp服务的基本信息
软件安装包:vsftpd
默认发布目录:/var/ftp
协议接口:21/tcp
服务配置文件: /etc/vsftpd/vsftpd.conf