ftp服务概述
FTP,全称是File transfer protocol,即文件传输协议,是最常用的文件共享和文件传输方式。FTP常用的数据传输模式有2种,分别是主动传输模式(PORT FTP)和被动传输模式(PASV FTP)。
主动传输模式就是一般形式的FTP,首先由client建立传输请求,client通过port PORT与服务端建立连接,然后,FTP server端使用一个标准的20端口作为服务器端的数据连接端口,与客户端建立数据传输连接,并通过20端口传输数据。这里的端口20仅仅用于连接源地址是服务器的情况,同时端口20没有进程来检测client请求。
被动传输模式与PORT FTP类似,也是由client建立传输请求,client通过PASV命令与服务端建立连接,但是FTP服务端并不建立连接,而是等待client与其联系,默认情况下,服务端会通过非20端口的其它端口检测client请求。
由此我们可知两种传输模式的差异:PORT FTP模式下的数据传输port是由FTP server指定,而PASV FTP模式下的数据传输port是由FTP client 决定。通常使用的是PASV FTP模式, 用于有防火墙的环境下,透过client与server的沟通,决定数据传输的port。
Linux下有很多FTP server软件,比较常见的有WU-FTP,VSFTP等,WU-FTP功能强大,在linux早期的版本中,都自带了这个软件,不过VSFTP是后起之秀,VSFTP非常安全,同时还具有高速和稳定的优点,因此在现在的linux版本中都默认自带了VSFTP软件包,而抛弃了WU-FTP。
VSFTP的安装与配置
本节我们以linux下rpm包方式进行安装vsftp软件,操作系统版本为Red Hat Enterprise Linux Server release 5。
1.安装vsftp
检查vsftp是否已经安装,执行如下命令:
[root@localhost ~]#rpm -qa|grep vsftpd
没有任何输出,表示vsftp软件还没有安装。从系统的第二张光盘可找到vsftp对应的安装包vsftpd-2.0.5-10.el5.i386.rpm。
然后进行安装:
[root@localhost ~]#rpm -ivh vsftpd-2.0.5-10.el5.i386.rpm
warning: vsftpd-2.0.5-10.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing... ########################################### [100%]
1:vsftpd ########################################### [100%]
[root@localhost ~]# rpm -qa vsftpd
vsftpd-2.0.5-10.el5
可以看到,vsftp已经安装成功。
2.配置vsftp
Vsftp相关的配置文件都在/etc/vsftpd目录,默认文件如下:
[root@localhost ~]# ll /etc/vsftpd/
total 20
-rw------- 1 root root 125 Jan 18 2007 ftpusers
-rw------- 1 root root 361 Jan 18 2007 user_list
-rw------- 1 root root 4397 Jan 18 2007 vsftpd.conf
-rwxr--r-- 1 root root 338 Jan 18 2007 vsftpd_conf_migrate.sh
其中,vsftpd.conf是vsftp的核心配置文件,user.list是允许的用户列表,而ftpusers是禁止的用户列表。