FTP服务
一、FTP的相关概念
1、FTP文件传输协议,用于远程数据传输。
2、数据传输的方法:
         局域网传输
         HTTP传输(常用)
         FTP传输
3、FTP的优点
         比HTTP传输效率高,适用于大容量文件传输。
         FTP可以在不同的操作系统间提供服务。
         FTP支持断点续传,减少了CPU和网络的开销。
4、FTP的数据传输模式
         主动模式:FTP服务器向客户端主动发起数据传输连接。(默认)
         被动模式:FTP客户端向服务器主动发起数据传输连接。(防火墙)
         单端口模式:客户端使用一个端口连接服务器的控制和数据端口。
二、Linux中FTP的服务器与客户端程序
1、Linux下的FTP服务器
         Wu-ftpd(功能强大、稳定性高、安全性差)
         Proftpd(稳定性和安全性高)
         Vsftpd(安全、稳定、高速,功能强大)
         win Server-U
2、FTP的客户端
         ftp命令行工具(效率最高)
         gftp图形工具
         浏览器
3、ftp的使用者
         本地用户:如果在远程FTP服务器上拥有帐号,则该用户称为本地用户。本地用户
                 登录FTP时进入用户主目录,默认具有文件上传和下载功能。
         虚拟用户:Guest用户,如果在远程FTP服务器上拥有帐号,但帐号只能用于文件
                 传输,则该帐号为虚拟帐号。默认具有文件下载功能。
         匿名用户:anonymous,ftp密码为任意的Email地址。
                    默认的登录位置/var/ftp。默认为文件下载功能。
三、安装vsftp
1、安装包:vsftpd-2.0.5-10.el5.i386.rpm
2、启动vsftpd:服务名vsftpd
四、vsftpd的配置文件
1、主配置文件:/etc/vsftpd/vsftpd.conf
2、用户访问控制文件:/etc/vsftpd/ftpusers
3、用户列表文件:/etc/vsftpd/user_list
 
4、主配置文件/etc/vsftpd/vsftpd.conf
         anonymous_enable=YES (允许匿名用户访问,NO为匿名用户禁止访问)
         local_enable=YES (允许本地用户登录,NO为禁止本地用户访问FTP)
         write_enable=YES (开放本地用户写入权限(上传),NO为禁止写入)
         local_umask=022 (本地用户文件生成掩码)
         dirmessage_enable=YES (切换目录时,显示目录中.message文件内容)
         xferlog_enable=YES (激活上传和下载日志)
         connect_from_port_20=YES (激活FTP的20数据端口)
         xferlog_std_format=YES (使用标准的FTP日志格式)
         listen=YES (将vsftp作为独立服务使用)
         pam_service_name=vsftpd (pam认证服务器的配置文件名)
         userlist_enable=YES (user_list文件控制选项)
         tcp_wrappers=YES (ip连接控制选项)
5、vsFTP的默认功能
         匿名用户可登录下载,但无法上传。/var/ftp/pub
         本地用户可登录,可上传下载。用户主目录
         当切换目录时,显示目录下的.message文件内容
五、允许匿名用户上传--/etc/vsftpd/vsftpd.conf
         27 anon_upload_enable=YES 允许匿名用户上传
         31 anon_mkdir_write_enable=YES 激活匿名用户创建目录和写入权限
      添加 anon_world_readable_only=NO (激活匿名用户对整个服务器的浏览权限)
 
         18 write_enable=YES(前提)
 
         创建匿名用户上传目录:/var/ftp/awr,其它用户有写入权限的目录。
        
         重命名或删除文件
      添加   anon_other_write_enable=YES(慎重使用)
六、基本性能和安全选项配置
         设置空闲的用户会话的中断时间
         59 idle_session_timeout=600(秒,用户会话空闲10分钟后中断)
         设置空闲数据连接的中断时间
         62 data_connection_timeout=120(秒,数据连接空闲2分钟后中断)
         设置客户端的中断与自动连接(添加)
          accept_timeout=60 (秒,自动断开空闲客户端连接)
        connect_timeout=60 (秒,自动激活客户端连接)
         限制客户端的连接数(添加)
         max_clients=200 (ftp服务器允许的总客户端连接数)
         max_per_ip=2 (每个客户端的最大连接数为2)
         设置上传下载的速度
         local_max_rate=50000 (本地用户的最大传输速率为5KB/s)
         anon_max_rate=10 (匿名用户的最大传输速率为10b/s)
七、对于本地用户的访问控制
1、本地用户的访问控制文件/etc/vsftpd/user_list
2、限制特定的用户不能访问FTP,其它用户均可访问
         修改vsftpd.conf
         119行userlist_enable=YES(userlist控制文件有效)
         添加userlist_deny=YES (userlist控制文件中的用户无法访问本ftp)
            userlist_file=/etc/vsftpd/user_list
 
         修改/etc/vsftpd/user_list文件,添加不能访问本FTP的本地用户名。
3、限制特定的用户可以访问FTP,其它用户均不能访问
         修改vsftpd.conf
         119行userlist_enable=YES(userlist控制文件有效)
         添加userlist_deny=NO (userlist控制文件中的用户可以访问本ftp)
              userlist_file=/etc/vsftpd/user_list
         修改/etc/vsftpd/user_list文件,添加可以访问本FTP的本地用户名。
4、/etc/vsftpd/ftpuser文件中记录了不可访问本FTP的用户名。当ftpuser与user_list冲突时,ftpuser优先。
 
         userlist命令激活时,vsftp会读取userlist_file所定义的文件user_list文件。得到用户列表。vsftp会读取userlist_deny命令,如果userlist_deny为yes则用户列表中的用户不能访问FTP,如果为NO,则可以访问FTP。