IT技术互动交流平台

基于虚拟用户构建FTP文件传输服务器

作者:steven丶部落格  发布日期:2013-10-14 09:13:40

FTP服务概述

FTP连接及传输模式

  • 控制连接:TCP 21,用于发送FTP命令信息

  • 数据连接:TCP 20,用于上传、下载数据

数据连接的建立类型:

  • 主动模式:服务端从20端口主动向客户端发起连接

  • 被动模式:服务端在指定范围内某个端口被动等待客户端连接

FTP传输模式

  • 文本模式:ASCII模式,以文本序列传输数据

  • 二进制模式:Binary模式,以二进制序列传输数据

 

FTP用户的类型

  • 匿名用户:anonymous或ftp

  • 本地用户:帐号名称、密码等信息保存在passwd、shadow文件中

  • 虚拟用户:使用独立的帐号/密码数据文件

 

常见的FTP服务器程序

IIS、Serv-U、wu-ftpd、Proftpd、vsftpd(Very Secure FTP Daemon)

常见的FTP客户端程序

ftp命令、CuteFTP、FlashFXP、LeapFTP、Filezilla、gftp、kuftp

 

vsftpd服务基础

主程序:/usr/sbin/vsftpd

服务名:vsftpd

用户控制列表文件

  • /etc/vsftpd/ftpusers

  • /etc/vsftpd/user_list

主配置文件

  • /etc/vsftpd/vsftpd.conf

 

常用的全局配置项

  • listen=YES:是否以独立运行的方式监听服务

  • listen_address=192.168.4.1:设置监听的IP地址

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

  • write_enable=YES:是否启用写入权限

  • download_enable=YES:是否允许下载文件

  • userlist_enable=YES:是否启用user_list列表文件

  • userlist_deny=YES:是否禁用user_list中的用户

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

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

 

常用的匿名FTP配置项

  • anonymous_enable=YES:启用匿名访问

  • anon_umask=022:匿名用户所上传文件的权限掩码

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

  • anon_upload_enable=YES:允许上传文件

  • anon_mkdir_write_enable=YES:允许创建目录

  • anon_other_write_enable=YES:开放其他写入权

  • anon_max_rate=0:限制最大传输速率(字节/秒)

 

常用的本地用户FTP配置项

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

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

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

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

  • local_max_rate=0:限制最大传输速率(字节/秒)

 

其他常用配置

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


[root@steven ~]# vim /etc/vsftpd/vsftpd.conf 
…… 
listen=YES 
listen_address=192.168.4.11 
listen_port=2121

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

[root@steven ~]# vi /etc/vsftpd/vsftpd.conf 
…… 
pasv_enable=YES 
pasv_min_port=24500 
pasv_max_port=24600

实验案例

先挂载RHEL系统光盘.安装vsftp软件包和db4-utils软件包.

db4-utils软件包用于建立虚拟账号数据库文件

173910325.png

 

建立虚拟用户的账户名、密码列表

  • 奇数行为帐号名

  • 偶数行为上一行中帐号的密码

173910275.png

173910572.png

 

转化为Berkeley DB格式的数据文件

  • db_load 转换工具

  • 需安装db4-utils软件包

  • -T选项允许非Berkeley DB的应用程序使用文本格式转换的DB数据文件

  • -t hash选项指定读取数据文件的基本方法

  • -f选项用于指定数据源文件

173911876.png

 

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

173911150.png

 

添加虚拟用户的映射账号

173911659.png

173911970.png

 

创建FTP目录,更改属主和权限

173911475.png

 

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

173911242.png

173912487.png

 

修改vsftpd配置文件.添加虚拟用户的支持,修改了匿名用户的根目录,限制了连接数和速率

173912905.png

174006905.png

 

为每个用户建立独立的配置文件

173922476.png

173922567.png

173922869.png

173922596.png

173922813.png

 

为每个用户建立独立配置文件以后.要添加这条

173922943.png

 

在FTP目录中新建一点文件

173922811.png

 

下面开始测试

匿名用户可以登录,并可以浏览、下载,但无法上传

173923142.png

173923958.png

 

sales用户可以登录,并可以浏览、下载,但无法上传

173923733.png

173923420.png

173924389.png

 

salesadm用户可以登录,并可以浏览、下载,也可以上传

173924697.png

173924490.png

173925114.png

 

devadm用户可以登录,并可以浏览、下载,也可以上传

173925802.png

173925352.png

173926454.png

 

总结

构建基于虚拟用户的FTP服务的步骤

  • 创建账号数据

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

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

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

  • 添加虚拟用户支持

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

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

  • 启动服务并测试

6.重新加载vsftpd配置

7.使用虚拟FTP账户访问测试


Tag标签: 虚拟用户   FTP   文件传输服务器  
  • 专题推荐

About IT165 - 广告服务 - 隐私声明 - 版权申明 - 免责条款 - 网站地图 - 网友投稿 - 联系方式
本站内容来自于互联网,仅供用于网络技术学习,学习中请遵循相关法律法规