Linux系统FTP服务器搭建与配置

一、简介

     1、简介

          File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文件传输协议”。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种哦协议以传输文件。在FTP的使用当中,用户经常遇到两个概念:“下载(Download)”和“上传(Upload)”。

          下载文件就是将文件从远程主机拷贝到自己的计算机上;

          上传文件就是将文件从自己的计算机拷贝到远程主机上。

          支持FTP协议的服务器就是FTP服务器。

     2、工作模式

        主动模式:

          FTP客户机向服务器的FTP控制端口(默认是21)发送请求,服务器接受连接,建立一 条命令链路,当需要传送数据时候,客户端在命令链路上用PORT命令告诉服务器:“我打开了某个端口,你过来连接我。”于是服务器从20端口向客户端的改端口发送连接请求,建立一条数据链路来传送数据。在数据链路建立的过程中是服务器主动请求,所以称为主动模式。
FTP 主动模式(命令行是主动模式)
服务器用20号端口,主动连接客户机的大于1024的随机端口。

        被动模式:
          FTP客户端向服务器的FTP控制端口发送连接请求,服务器接收连接,建立一条命令链路,当需要传送数据时候,服务器在命令链路上用PASV命令告诉客户端;“我打开了某端口,你过来连接我。”于是客户端向服务器的该端口发送连接请求,建立一条数据链路来传送数据。在数据链路建立的过程中是服务器被动等待客户端请求,所以称为被动模式。
        FTP被动模式客户机用大于1024的随机端口,主动连接服务器大于1024的随机端口。

  主动模式下的FTP服务器,需要在服务器和客户端之间的防火墙中设置一下策越:

          允许FTP客户机从大于1024的端口连接FTP服务器的21端口
          允许FTP服务器从21端口回应FTP客户机中大于1024端口的网络连接。
          允许FTP服务器从20端口主动连接FTP客户机中大于1024的端口
          允许FTP客户机从大于1024的端口回应来自FTP服务器20端口的网络连接
        被动模式下的FTP服务器,需要在服务器和客户端之间的防火墙中设置一下策越:
          允许FTP客户机从大于1024的端口连接FTP服务器的21端口
          允许FTP服务器从21端口回应FTP客户机中大于1024端口的网络连接。
          允许FTP客户机从大于1024端口主动连接FTP服务器中大于1024的端口
          允许FTP服务器从大于1024的端口回应来自FTP客户机大于1024端口的网络连接

     3、服务端和客户端程序

          1)常见的FTP服务器程序:

               Windows:IIS 、Serv-U

               Linux:  wu-ftpd 、Proftpd 、vsftpd(Very Secure FTP Daemon,常用)

          2)常见的FTP客户端程序:

               CuteFTP、FlashFXP、LeapFTP、Filezilla

               gftp、kuftp、FTP命令(Linux中可能需要自己安装,yum -y install ftp)


二、FTP服务器的安装与配置

      1、安装

        1)服务器端: vsftpd

        2)客户端:

             Linux系统:安装ftp命令

             Windows系统:使用第三方软件连接

      2、配置文件详解

            /etc/vsftpd/vsftpd.conf      #主配置文件             

                anonymous_enable=YES  #允许匿名用户访问

                anon_umask=022        #匿名用户所上传文件的权限掩码(无此项,默认是600)

                anon_root=/var/ftp    #匿名用户的FTP根目录

                anon_upload_enable=YES   #允许匿名用户上传(服务器权限和目录权限均需要设置)

                anon_mkdir_write_enable=YES   #允许创建目录

                anon_other_write_enable=YES   #开放其他写入权

                anon_max_rate=0     #限制最大传输速度(字节/秒)

                local_enable=YES   #是否启用本地系统用户

                local_umask=022   #本地用户所上传文件的权限掩码

                local_root=/var/ftp   #设置本地用户的FTP根目录

                chroot_local_user=YES  #是否将用户禁锢在主目录

                local_max_rate=0      #限制最大传输速率

            listen_address=192.168.4.1  #设置监听的IP地址

                listen_port=21             #设置监听FTP服务的端口号

                write_enable=YES           #是否启用写入权限

                download_enable=YES        #是否允许下载文件

                max_clients=0              #限制并发客户端连接数

                max_per_ip=0               #限制同一IP地址的并发连接数

     3、虚拟用户配置       

        1)建立虚拟FTP用户的帐号数据库文件

           vi /etc/vsftpd/vusers.list(奇数行写用户名,偶数行写密码)

              lc

              123

              sc

              123

           cd /etc/vsftpd

           db_load -T -t hash -f vusers.list vusers.db

           chmod 600 /etc/vsftpd/vusers.*

         2)创建FTP根目录及虚拟用户映射的系统用户

          useradd -d /var/ftproot -s /sbin/nologin virtual

          chmod 755 /var/ftproot

         3)建立支持虚拟用户的PAM认证文件

          vi /etc/pam.d/vsftpd.vu

           #%PAM-1.0

           auth      required       pam_userdb.so db=/etc/vsftpd/vusers

           account   required       pam_userdb.so db=/etc/vsftpd/vusers

          添加虚拟用户支持

         4)在vsftpd.conf文件中添加支持配置

           local_enable=YES

           write_enable=YES

               anon_umask=022

               guest_enable=YES

               guest_username=virtual

               pam_service_name=vsftpd.vu

               user_config_dir=/etc/vsftpd/vusers_dir

       5)为个别虚拟用户建立独立的配置文件

           mkdir  /etc/vsftpd/vusers_dir

           cd  /etc/vsftpd/vusers.dir

           vi lc

            anon_upload_enable=YES

            anon_mkdir_write_enable=YES

          启动服务并测试

         6)重新加载vsftpd配置

            service vsftpd  reload

         7)使用虚拟FTP帐号访问测试

            每个用户都可以通过自己独立配置文件中分配的权限来访问FTP服务器。



本文出自 “Linux运维” 博客,请务必保留此出处http://jinghsy.blog.51cto.com/7648537/1654805

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。