1.什么是FTP
FTP(File Transfer Protocol)文件传输协议。本质上是一个应用程序,用于在互联网上控制文件的双向传输,上传和下载。同时具有客户端和服务端。在实战中,我们通常在Linux的主机上创建FTP的服务,同时在我们本地创建FTP的客户端,从而进行连接。
2.什么是VSFTP
VSFTP(Very Secure FTP)是一个类Unix系统上使用的FTP服务应用程序。是Linux系统下使用最多的FTP服务端,具有很多其他FTP服务不支持的特性。
3.VSFTP服务的特性
安全性
带宽设置
虚拟用户
高性能
高速
支持IPv6
4.VSFTP的安装与模式
- 安装
- Redhat、CentOS等使用RPM包的发行版
yum install vsftpd
或者下载vsftp的rpm包,通过rpm命令来安装
rpm -ivh vsftpd*.rpm
-
- Debian、Ubuntu等使用DEBB的发行版
apt-get install vsftpd
-
- 源码包安装
下载源码包
解包 tar zxvf vsftpd-2.0.3.tar.gz
进入解包目录 cd vsftpd-2.0.3
执行安装 make; make install
将配置文件复制到/etc目录下 cp vsftpd.conf /etc
- 启动和关闭
启动 service vsftpd start (或者/etc/init.d/vsftpd start)
关闭 service vsftpd stop(或者 /etc/init.d/vsftpd stop)
重启 service vsftpd restart(或者/etc/init.d/vsftpd restart)
查看服务 service vsftpd status(或者 /etc/init.d/vsftpd status)
- 传输模式
- FTP会话的两个通道:控制通道和数据通道
- 控制通道,是客户端和FTP服务器进行沟通的通道,连接FTP、发送FTP指令
- 数据通道,是客户端和服务器真正进行文件传输或者列表的通道
- FTP的两种传输模式
- PORT模式(主动模式)
- FTP会话的两个通道:控制通道和数据通道
-
-
- PASV模式(被动模式)
-
vsftp的服务端大多数情况下同时支持主动和被动传输模式,在数据传输过程中,究竟使用何种传输模式,主要取决于vsftp的的客户端所发送的指令
- 运行模式
- 代理模式(xinetd模式)---由xinnetd的21端口进行监听
代理模式的运行模式多存在与比较新的Linux系统,比如说Redhat以及CentOS,监听21端口,当21端口有数据请求使,xinet的会唤醒vsftpd的服务来处理由21端口发来的请求
具体设置方法是,在/etc/xinetd.d/vsftp中配置
disabled = no
socket_type = stream
wait = no
如果在/etc/vsftpd/vsftpd.conf中的有选项为“listen=YES”,注销它之后,重启xinetd (/etc/rc.d/init.d/xinetd restart)
代理模式的好处是可以节省系统资源,因为xinetd不仅可以代理ftp服务,还可以代理其他很多类似服务,只有在该服务端口的请求时才会唤起端口进程,这样就避免了服务一直在系统的存在,从而有效的利用系统资源。代理模式并非默认模式
-
- 独立模式(standalone模式)---由ftp服务监听(默认模式)
设置方式:
在/etc/xinetd/vsftp中
disabled=yes
修改/etc/vsftpd/vsftpd.conf中Listen=YES
重启vsftpd服务,service vsftpd restart
独立模式的进程会一直存在系统内存,作为一个守护进程来监听21端口,21端口有数据请求,主进程会释放一个子进程来处理21端口请求,主进程会继续监听
5.vsftp服务的配置详解
- SELinux
SELinux是内嵌在Linux内核中的一个安全管理工具,限制较多,一般运维人员不太喜欢用,相当于一道防火墙。如果不关闭SELinux会影响后续的所有操作,建议关闭。通常存在与RedHat、CentOS等发行版中。
查看SELinux的状态命令:getenforce
Enforcing:开启状态
Permissive:开启警告状态
Disabled:完全关闭
关闭SELinux的方法
临时关闭: setenforce 0
永久关闭:修改/etc/selinux/config文件
SETLINUX=disabled
重启
- Linux系统下FTP用户管理
Ftp根据/etc/passwd和/etc/group来进行管理的,同样FTP对权限的管理也遵循Linux系统中的权限设置
- Ftp的匿名用户
作用:不需要验证用户名和密码也能够登录并浏览数据
开启ftp匿名用户:在vsftp主配置文件中修改anonymous_enable=YES保存重启
- vsftp服务配置详解
- 主配置文件 /etc/vsftpd/vsftpd.conf
- 主程序 /usr/sbin/vsftpd
- Ftp用户黑名单 /etc/vsftpd/ftpusers