天天看点

FTP文件共传输服务

第3章-FTP文件共传输服务

一,vsftpd服务基础

(1),FTP服务概述

        FTP(File Transfer  Protocol,文件传输协议)是典型的C/S结构的应用层协议,需要由服务端软件、客户端软件共同实现文件传达输功能。

1,FTP连接及传输模式

 #FTP服务器默认使用TCP协议的“20、21端口”与客户端进行通信

 #20端口用于建立数据连接,并传输文件数据

 #21端口用于建立控制连接,并传输FTP控制命令

【模式】

#主动模式:服务器主动发起数据连接,首先由客户端向服务端的21端口建立FTP

 控制连接,当需要传输数据时,客户端以ROPT命令告知服务器“我打开了某

 个端口,你过来连接我“,于是,服务器从20端口向客户端发送请求并建立

 数据连接。

#被动模式:服务器被动等待数据连接,如果客户机所在网络的防火墙禁止主动模

 式连接,通常会使用被动模式,客户端向服务器的该端口(非20)发送请求

 并建立数据连接。

【端口】

随机端口 > 1024              周知端口 <= 1024

2,FTP用户类型

  #匿名用户:ftp或anonymous,空密码,一般用于提供公共文件的下载。

  #本地用户:本机的系统用户。

  #虚拟用户:不是直接使用系统用户,而是位于独立数据文件中的FTP用户账号,通

   过使用虚拟用户,将FTP账户与Linux系统账户的关联性降至最低,可以为系

   统提供更好的安全。

3,FTP服务器软件的分类

#windows:iis                  serv-u

#Linux:proftpd pureftpd  vsftpd

〖vsftpd〗

a)该软件针对安全特性方面做了大量的设计

b)Vsftpd在速度和稳定性方面的表现也相当突出

c)Vsftpd可以支持15000个用户并发连接

d)Vsftpd:“very secure  FTP  daemon”

4,FTP客户端工具的种类

#windows:cuteFTP FlashFxp  LeapFTP  Filezilla

#Linux:gftp kuftp

(2),vsftpd的配置

        #主程序:/usr/sbin/vsftpd

        #配置文件:/etc/vsftpd

        #脚本文件:/etc/init.d/vsftpd

1,用户列表文件“ftpusers和user_list”

  #ftpusers:黑名单文件,此文件中列出的用户将禁止登录到vsftpd服务

  #user_list:黑白名单文件,一般用作白名单。此文件中包含的用户可能被禁止登录,

也可能被允许登录,具体取决于主配置文件vsftpd.conf中的设置

          userlist_enable=yes,user_list列表文件才生效

          userlist_deny=yes,为黑白名单,禁止此列表中的用户登录

          userlist_deny=no,为白名单,允许此列表中的用户登录

2,主配置文件“vsftpd.conf”

格式:配置项=参数

【vsftpd.conf常见配置项及含义说明】

【匿名用户/适用于虚拟用户】

anonymous_enable=yes   /是否允许匿名访问

anon_umask=022   /设置匿名用户所上传文件的默认权限掩码值,采用反码方式表示

anon_root=/var/ftp    /设置匿名用户的FTP根目录(缺省为/var/ftp)

anon_upload_enable=yes   /是否允许匿名用户上传文件

anon_mkdir_write_enable=yes    /是否允许匿名用户有创建目录的写入权限

anon_other_write_enable=yes  /是否允许匿名用户有其他写入权限“改名,删除”

anon_max_rate=0  /限制匿名用户的最大传输速率(0为无限制),单位为字节/秒

【本地用户】

   local_enable=yes        /是否允许本地系统用户访问

   local_umask=022         /设置本地用户所上传文件的默认权限

   local_root=/var/ftp     /设置本地用户的FTP根目录,适用于虚拟用户

   local_local_user=yes   /是否将FTP本地用记禁锢在宿主目录中

   local_max_rate=0       /限制本地用户的最大传输率(0为无限制)

【全局配置】

   userlist_enable=yes  /是否启用user_list用户列表文件,启用黑白名单

   userlist_deny=yes  /是否禁用user_list列表文件中的用户账号,yes为黑

   max_clients=0  /是否允许多个客户端同时连接(0为无限制)

   max_per_ip=0  /对来自同一个IP地址的客户端,最多允许多少个并发连接(0为元限制),控制多进程     下载,如“迅雷”

   connect_from_port_20=yes /允许服务器主动模式(从20端口建立数据连接)

   pasv_enable=yes  /允许被动模式连接

   pasv_max_port=24600  /设置用于被动模式的服务器最大端口号

   pasv_min_port=24500  /设置用于被动模式的服务器最小端口号

   pam_service_name=vsftpd  /设置用于用户认证的PAM文件位置(/dev/pam.d/目录中对应的文件名)

   listen=yes  /是否以独立运行的方式监听服务

   listen_address=0.0.0.0  /设置监听FTP服务的IP地址

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

   write_enable=yes  /启用任何形式的写入权限(如上传、删除文件等)要开启它

   download_enable=yes  /是否允许下载文件(no为仅限于浏览、上传)

   dirmessage_enable=yes  /用户切换进入目录时显示.message文件

   xferlog_enable=yes  /启用xferlog日志,默认记录到/var/log/xferlog

   xferlog_std_format=yes  /启用标准的xferlog日志格式。如禁用,将使用vsftpd自己的日志格式

二,基于系统用户的FTP服务

(1),匿名访问的FTP服务

1,准备匿名FTP访问的目录

        #FTP匿名用户对应的系统用户为ftp

        #宿主目录:/var/ftp

2,开放匿名用户配置,并启动vsftpd服务

#设置主配置文件:vim /etc/vsftpd/vsftpd.conf

#开启服务:service vsftpd  restart

3,测试匿名FTP服务器

【登录FTP后,对客户端操作方法】

Linux

Windows

显示当前路径

!pwd

!cd

改变路径

lcd

查看目录内容

!ls

!dir

(2),用户验证的FTP服务

1,基本的本地用户验证

2,使用user_list用户列表文件

 ·编辑“vim /etc/vsftpd/user_list”

添加本地用户

 ·编辑 vim  /etc/vsftpd/vsftpd.conf

          userlist_enable=yes      /启用此项

          userlist_deny=no        /启用白名单

 ·重启服务:service vsftpd  restart

(3),vsftpd服务的其他常用配置

1,修改vsftpd服务的监听地址、端口

  查看vsftpd服务的监听情况:netstat  -anpt |  grep  “vsftpd”

2,允许使用FTP服务器的被动模式

3,限制FTP连接的并发数、传输速度

三,基于虚拟用户的FTP服务

(1),建立虚拟用户的账号数据库

准备工作:rpm  -ivh  db4-utils-..rpm                /安装此软件

1,创建文件格式的用户名、密码列表

vim /etc/vsftpd/vusers.list                 /vusers.list文件名,后缀名自定义

用户名奇数行

密码偶数行

2,创建Berkeley DB格式的数据库文件源文件目标文件

a)先进入/etc/vsftpd/目录:cd  /etc/vsftpd

b)创建转换:db_load  -T -t  hash  -f  vusers.listvusers.db

c)查看转换后的文件类型:flie  vusers.db

d)为提高虚拟用户账号文件的安全性,设置文件权限

chmod  600 /etc/vsftpd/vusers.*

3,添加虚拟用户的映射账号、创建FTP根目录

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

chmod  755  /var/ftproot                   /ftproot这个目录会自动创建

(2),为vsftpd服务添加虚拟用户支持

1,为虚拟用户建立PAM认证文件

位于:/etc/pam.d/vsftpd

    vim  /etc/pam.d/vsftpd.vu      /vsftpd.vu文件名可自定义

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

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

2,修改vsftpd配置,添加虚拟用户支持

vim /etc/vsftpd/vsftpd.conf

                  ……//省略部分内容

                  local_enable=yes                     /需要映射本地用户、所以启用此项

                  write_enable=yes                     /启用上传写入支持

                  anon_umask=022                       /指定上传权限掩码

                  guest_enable=yes                     /启用用户映射功能

                  guest_username=virtual               /指定映射的系统用户名称

                  pam_service_name=vsftpd.vu           /指定新的PAM认证文件

3,为不同的虚拟用户建立独立的配置文件

a)vim  /etc/vsftpd/vsftpd.conf

……//省略部分内容

user_config_dir=/etc/vsftpd/vusers_dir              /vusers_dir目录名自定义

b)创建用户配置文件夹

  mkdir  /etc/vsftpd/vusers_dir

c)进入此文件夹,为用户建立独立的配置文件

  cd  /etc/vsftpd/vusers_dir

  vim  用户名

          anon_upload_enable=yes                      /上传权限

          anon_mkdir_write_enable=yes                 /创建、定入权限

          anon_other_write_enable=yes                 /修改权限

d)重新加载配置

  service vsftpd  reload

本文转自甘兵 51CTO博客,原文链接:http://blog.51cto.com/ganbing/1198773,如需转载请自行联系原作者

继续阅读