rgar12 发表于 2015-5-25 08:46:58

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 vsftpdreload
         7)使用虚拟FTP帐号访问测试
            每个用户都可以通过自己独立配置文件中分配的权限来访问FTP服务器。

页: [1]
查看完整版本: Linux系统FTP服务器搭建与配置