博客统计信息

51cto推荐博客
用户名:viong
文章数:75
评论数:199
访问量:321764
无忧币:1105
博客积分:1682
博客等级:6
注册日期:2009-07-01

Vsftpd完全攻略(一)ftp原理与vsftp安装
2010-01-08 21:30:58
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://viong.blog.51cto.com/844766/261291
 
VSFTPD是一款小巧易用FTP服务器程序vsftpd 在安全性、高性能及稳定性三个方面有上佳的表现。它提供的主要功能包括虚拟IP设置、虚拟用户、Standaloneinetd操作模式、强大的单用户设置能力及带宽限流等。在安全方面,它从原理上修补了大多数Wu-FTPProFTP,乃至BSD-FTP的安装缺陷,使用安全编码技术解决了缓冲溢出问题,并能有效避免“globbing”类型的拒绝服务攻击。目前正在使用vsftpd的官方网站有Red HatSuSEDebianGNUGNOMEKDEGimpOpenBSD等。它支持很多其他的 FTP 服务器不支持的特征。 
比如:
非常高的安全性需求
带宽限制

良好的可伸缩性

创建虚拟用户的可能性

IPv6
支持

中等偏上的性能

分配虚拟 IP 的可能性

高速
 
                                                      目录                                                 
 
 
                          二.设置匿名用户也支持下载和上传,创建目录
 
 
 
 
             六.建立多个虚拟用户支持ftp不同访问权限
 
                     七.利用quota对Vsftpd做磁盘配额 
 ftp原理与vsftp安装
 1.ftp原理

FTP Transfer Protocol 件传输协议的缩写,RFC 959中具体说明。
FTP
会话时包含了两个通道,一个叫控制通道,一个叫数据通道。
 

 
控制通道:控制通道是和FTP服务器进行沟通的通道,连接FTP,发送FTP指令都是通过控制通道来完成的, PI称为控制连接

数据通道:数据通道是和FTP服务器进行文件传输或者列表的通道。
FTP
协议中,控制连接均有客户端发起,而数据连接有两种工作方式:PORT方式和PASV方式,DTP称为数据连接

PORT
模式(主动方式)

FTP 客户端首先和FTP ServerTCP 21端口建立连接,通过这个通道发送命令,客户端需要接收数据的时候在这个通道上发送PORT命令。 PORT命令包含了客户端用什么端口(一个大于1024的端口)接收数据。在传送数据的时候,服务器端通过自己的TCP 20端口发送数据。 FTP server必须和客户端建立一个新的连接用来传送数据。
 
 

 
PASV模式(被动方式)

在建立控制通道的时候和PORT模式类似,当客户端通过这个通道发送 PASV 命令的时候,FTP server打开一个位于10245000之间的随机端口并且通知客户端在这个端口上传送数据的请求,然后FTP server 将通过这个端口进行数据的传送,这个时候FTP server不再需要建立一个新的和客户端之间的连接传送数据。


 
 
如果从C/S模型这个角度来说,PORT对于服务器来说是OUTBOUND,而PASV模式对于服务器是INBOUND,这一点请特别注意,尤其是在使用防火墙的企业里,这一点非常关键,如果设置错了,那么客户将无法连接。

2.安装vsftpd

[root@localhost /]# rpm -qa |grep vsftpd 查询是否安装了vsftpd(提示无)
[root@localhost /]# mkdir /mnt/cdrom 创建挂载光驱目录文件
[root@localhost /]# mount /dev/cdrom /mnt/cdrom/ 挂载光驱到刚创建目录
mount: block device /dev/cdrom is write-protected, mounting read-only
[root@localhost /]# cd /mnt/cdrom/Server/
[root@localhost Server]# rpm -ivh vsftpd-2.0.5-12.el5.i386.rpm 安装vsftp RPM
warning: vsftpd-2.0.5-12.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing...                ########################################### [100%]
   1:vsftpd                 ########################################### [100%]
 
[root@localhost Server]# rpm -qa |grep vsftpd再查询是否安装了vsftpd
vsftpd-2.0.5-12.el5
[root@localhost ~]# rpm -qi vsftpd 查询vsftpd详细信息
Name        : vsftpd                       Relocations: (not relocatable)
Version     : 2.0.5                             Vendor: Red Hat, Inc.
Release     : 12.el5                        Build Date: 20071213 星期四 193537
Install Date: 20091226 星期六 003503      Build Host: ls20-bc1-14.build.redhat.com
Group       : System Environment/Daemons    Source RPM: vsftpd-2.0.5-12.el5.src.rpm
Size        : 289673                           License: GPL
Signature   : DSA/SHA1, 20071217 星期一 234334, Key ID 5326810137017186
Packager    : Red Hat, Inc. <http://bugzilla.redhat.com/bugzilla>
URL         : http://vsftpd.beasts.org/
Summary     : vsftpd - 非常安全 Ftp 守护进程
Description :
vsftpd 是一个非常安全 FTP 守护进程。它是完全从零开始编写的。
 
[root@localhost ~]# rpm -ql vsftpd      列出vsftpd中包含文件
/etc/logrotate.d/vsftpd.log             vsftpd的日志文件
/etc/pam.d/vsftpd                    PAM认证文件
/etc/rc.d/init.d/vsftpd                 启动脚本
/etc/vsftpd                          vsftpd的配置文件存放的目录
/etc/vsftpd/ftpusers                  禁止使用vsftpd的用户列表文件
/etc/vsftpd/user_list                  禁止或允许使用vsftpd的用户列表文件
/etc/vsftpd/vsftpd.conf                主配置文件
/etc/vsftpd/vsftpd_conf_migrate.sh      vsftpd操作的一些变量和设置
/usr/sbin/vsftpd                      vsftpd的主程序
其他一些说明文档和手册文件略!
/var/ftp                            匿名用户主目录
/var/ftp/pub                        匿名用户的下载目录
 
[root@localhost /]# service vsftpd start 启动vsftpd
vsftpd 启动 vsftpd                                    [确定]
 
[root@localhost ~]# chkconfig --level 3 vsftpd on打开3级别随系统自动启动vsftpd
 

本文出自 “技术在于折腾” 博客,请务必保留此出处http://viong.blog.51cto.com/844766/261291

分享至
更多
一键收藏,随时查看,分享好友!

文章评论

 
2010-01-09 09:29:54
8错8错   建议博主以后装时养成用源码安装的习惯 RPM安装依赖性实在是太大
博主回复:
2010-01-10 15:25:06
谢谢支持,平时装软件都是源代码,vsftpd源代码安装比较繁琐,因为涉及到要让vsftpd支持ssl,出现ssl.o错误,解决方法是升级openssl,升级后的openssl导致ssh连不上,还要把旧的openssl装上。为了不让大家走弯路,就选择RPM方式.呵呵

2010-01-09 09:30:53
IDC共享?

博主在IDC机房工作?还是IDC代理?
博主回复:
2010-01-09 19:26:37
一年前我在上海很多IDC机房呆过,从事运维工作,后来到网游公司也同样做运维工作,但做的事情比较系统化,没那么杂。在IDC这块混好几年,感觉没啥玩头,自己现在也慢慢转型到系统工程师这个方向走,等转型成功了,下一个目标就是往运维主管的目标发展.

2010-01-09 19:52:25
嗯 加油!

2010-01-10 18:57:16
请教博主个问题,一般我们都知道服务器上是肯定要开启防火墙的,FTP在用被动模式下,最低需要开启多少个被动端口呢?
博主回复:
2010-01-10 21:07:17
在pasv模式下从1025-65535随机号码就行,PORT模式的20端口是对于防火墙是OUTBOUND,而PASV是INBOUND,关于开几个端口,开的这些端口只是用于客户端调用,你可以开个10个 20个都行,如果你选一个应该也可以的,你可以尝试一下,因为PORT就支持20号端口给客户端调用。建议端口范围在5-10个。如果FTP服务器连接人数多,也可以开多点。

2010-01-14 21:01:10
请教,关于linux 下vsftpd服务器:
1.如何解windows 客户端决文件名乱码问题?
2.如何从windows客户端直接打开word文件?
多谢多谢!
博主回复:
2010-01-20 23:37:26
很抱歉没第一时间回答您!
1.关于乱码,平时维护ftp没发生过。你可以参考一下我的配置
[root@red-hat-5 ftp]# cat /etc/sysconfig/i18n
LANG="zh_CN.GB18030"
SUPPORTED="zh_CN.GB18030:zh_CN:zh:en_US.UTF-8:en_US:en"
SYSFONT="latarcyrheb-sun16"
我都是用secureCRT连接服务器端,secureCRT本身的编码是默认,用core-ftp和IE页面资源管理器上传下载文件,显示都正常的!
2.你想直接运行word文件,本身有执行权限.
比如:一个匿名FTP,修改chown ftp var/ftp/pub ,chmod -R 500 var/ftp/pub/ ,然后在vsftpd.conf加上anon_world_readable_only=no   允许匿名用户浏览器整个服务器的文件系统

2010-01-15 09:43:12
很详细 顶一下!
博主回复:
2010-01-15 17:39:41
谢谢支持

2010-02-25 12:33:21
学习了!

2011-05-10 13:13:51
写的太详细了 比课本上好多了

 

发表评论            

【技术门诊】专家解析:软考重点难点及应试技巧
昵  称:
登录  快速注册
验证码:

请点击后输入验证码博客过2级,无需填写验证码

内  容: