1.FTP是什么?
FTP(File Transfer Protocol,文件传输协议) 是 TCP/IP 协议组中的协议之一。FTP协议包括两个组成部分,其一为FTP服务器,其二为FTP客户端。其中FTP服务器用来存储文件,用户可以使用FTP客户端通过FTP协议访问位于FTP服务器上的资源。在开发网站的时候,通常利用FTP协议把网页或程序传到Web服务器上。此外,由于FTP传输效率非常高,在网络上传输大的文件时,一般也采用该协议。 ——来自百度百科
2.如何在Linux上面使用FTP协议?
使用VSFTP软件——VSFTP是一个基于GPL发布的类Unix系统上使用的FTP服务器软件,它的全称是Very Secure FTP 从此名称可以看出来,编制者的初衷是代码的安全。
3.开始在Linux上安装vsftpd软件
(注意要使用root用户)
先测试一下Linux中是否安装了vsftpd;安装了会显示出vsftpd的信息,没有安装则什么都不显示
rpm –qa| grep vsftpd
安装vsftpd
yum -y install vsftpd
安装成功之后,启动vsftpd
systemctl start vsftpd.service
之后让我们查看一下vsftpd的状态
systemctl status vsftpd.service
systemctl restart vsftpd.service //这条语句是重新启动vsftpd服务
接下来,设置vsftpd开机自启动
systemctl enable vsftpd.service
好了,软件安装完成!
4.配置防火墙
yum install iptables-services //安装iptables
systemctl start iptables.service //启动iptables
systemctl restart iptables.service //重新启动iptables
systemctl status iptables.service //查看iptables 的状态
systemctl enable iptables.service //设置为开机启动
生成 iptables 的配置文件,位置为在/etc/sysconfig/iptables
service iptables save
效果:
接下来配置iptables
用vim打开/etc/sysconfig/iptables
vim /etc/sysconfig/iptables
如下图:
将以下命令:
A INPUT -p tcp -m state --state NEW-m tcp --dport 21 -j ACCEPT
放在这条命令之前,这条命令是让防火墙开发21端口
FTP中的21端口用于连接,20端口用于传输数据。客户端首先连接到FTP服务器的21端口,进行用户的认证,认证成功后,要传输文件时,服务器会开一个端口为20来进行传输数据文件。
配置好防火墙之后,我们的FTP服务并不能正常使用。因为还有一个叫SELinux的东西在“捣蛋~”
(自己去看看SELinux是啥吧~)
执行以下命令
getsebool -a | grep ftp
如图:
selinux禁止了所有的ftp服务
将ftp_home_dir,ftpd_connection_db
两个boolean
变量设为true
执行以下命令来修改
setsebool -P ftp_home_dir 1
setsebool -P ftpd_connection_db 1
好啦,ftp服务现在已经可以访问啦!
当然了,这是一个超级简单的ftp服务器,什么认证都没用设置。之后我还会继续写的。用户权限的设置和虚拟用户的设置。