当前位置:w88优德官网网文章中心服务器安全维护 → VSFTPD服务器安装配置

VSFTPD服务器安装配置

减小字体 增大字体 作者:admin  来源:www.hack50.com  发布时间:2011-11-29 7:59:22
百度权重查询 站长交易 友情链接交换 企业建站Cuoxin建站大师,招分销商 核心提示:文章标题:VSFTPD服务器安装配置。Linux是中国站长站的一个技术频道。包含桌面应用,Linux系统管理,内核研究,嵌入式系统和开源等一些基本分类

1.声明

版本信息:
本文档的最新版本将张贴于:LinuxSir.Org论坛Debian发行版讨论区;

也可以从http://www.debsir.org/获取.

反馈:
所有评论,错误报告,其他信息以及批评,请邮寄到etony@tom.com;

或在LinuxSir.Org论坛Debian发行版讨论区张贴.

版权信息:
本文档的版权(c)2006-2007归etonyC.F.AN所有.

转载请注明源自http://www.debsir.org/.

2.FTP原理
FTPTransferProtocol件传输协议的缩写,在RFC959中具体说明。

FTP会话时包含了两个通道,一个叫控制通道,一个叫数据通道。

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

数据通道:数据通道是和FTP服务器进行文件传输或者列表的通道。

FTP协议中,控制连接均有客户端发起,而数据连接有两种工作方式:PORT方式和PASV方式


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

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


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

3.VSFTPD
vsftpd是一个UNIX类操作系统上运行的服务器的名字,它可以运行在诸如Linux,BSD,Solaris,HP-UX以及IRIX上面。它支持很多其他的FTP服务器不支持的特征。比如:

非常高的安全性需求
带宽限制
良好的可伸缩性
创建虚拟用户的可能性
IPv6支持
中等偏上的性能
分配虚拟IP的可能性
高速
vsftpd的名字代表"verysecureFTPdaemon",安全是它的开发者ChrisEvans考虑的首要问题之一。在这个FTP服务器设计开发的最开始的时候,高安全性就是一个目标。

一个例子就是vsftpd是在chroot模式下工作的,chroot模式就是为程序(这里就是vsftpd了)单独指定一个新的目录,它也就不能访问那个目录之外的程序和文件了---所以这也称为“被锁上的”。一个可能被潜在的攻击者破坏的FTP服务器将被从系统的其他部分独立开来,从而避免了更大的损失。

由于有了如此多的特性,其中FTP服务的安全性应该是最重要的,vsftpd比其他FTP服务器更加优越。WU-FTPDhttp://www.wu-ftpd.org/在这里可以被视作一个反面的例子,因为它在过去的几年中出现了太多的安全缺陷。

4.VSFTPD的基本配置
4.1安装

源代码安装
详细参阅:http://www.vsftpdrocks.org/source/

下载源代码

wgetftp://vsftpd.beasts.org/users/cevans/vsftpd-1.2.1.tar.gz


解压

tarzxvfvsftpd-1.2.1.tar.gz


进入源代码目录

cdvsftpd-1.2.1


编译

make


创建用户
如果不存在nobody用户,请创建


useraddnobody


创建目录
vsftpd需要/usr/share/empty目录,如果不存在,请创建:


mkdir/usr/share/empty


安装

makeinstall


复制配置文件到/etc目录

cpvsftpd.conf/etc


以独立方式启动vsftpd服务

/usr/local/sbin/vsftpd&

4.2使用Debian的方式安装

#aptitudeupdate
#aptitudeinstallvsftpd(2.0.5)

#p#分页标题#e#

5.配置文件说明

/etc/vsftpd.conf
vsftpd的主配置文件/etc/ftpusers记录不允许访问FTP服务器的用户名单管理员可以把一些对系统安全有威胁的敏感账户记录在这个文件中,以免对系统造成威胁


#/etc/ftpusers:listofusersdisallowedFTPaccess.Seeftpusers(5).

root
daemon
bin
sys
sync
games
man
lp
mail
news
uucp
nobody


/etc/vsftpd.user_list
此文件与userlist_file选项有关,也可通过userlist_file选项指定其他文件,默认为/etc/vsftpd.user_list,设置userlist_enable=YES时方可生效,默认(userlist_deny=YES)指定不能访问服务器的用户列表,如设定userlist_deny=NO,则FTP服务器仅允许此列表中的用户访问。

/etc/init.d/vsftpd
vsftpd的启动脚本

/var/log/vsftpd.log
vsftpd的日志文件


5.1配置相关内容参阅:

manvsftpd.conf

或参阅:我翻译的VSFTPD.CONF联机手册http://etony.9966.org/doc/other/vsftpd-man-zh.html

5.2系统的启动与停止

启动服务

/etc/init.d/vsftpdstart


重启服务

/etc/init.d/vsftpdrestart


停止服务

/etc/init.d/vsftpdstop

也可以使用rcconf工具设置vsftpd服务是否在系统引导时启动

6.配置示例
一个示例文件


#以独立模式启动
listen=YES


#同时允许200客户端连入,每个IP最多允许4个进程
max_clients=200
max_per_ip=4

允许匿名访问,只有下载权限。禁止本地(系统)用户登录
#Accessrights
anonymous_enable=YES
local_enable=NO
write_enable=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO


#禁止匿名用户下载具有全局读取权限的文件,目录中的用户和组信息列取时都显示为"ftp".
#被动模式下,服务器端口范围限制在50000~60000

anon_world_readable_only=YES
connect_from_port_20=YES
hide_ids=YES
pasv_min_port=50000
pasv_max_port=60000

#生成详细的上载和下载日志,禁止使用"ls-R"命令,

xferlog_enable=YES
ls_recurse_enable=NO
ascii_download_enable=NO
async_abor_enable=YES


#以节省资源模式运行(针对Linux2.4内核),
#远程客户端最大FTP命令间隔超过120秒,或空闲的数据连接超过300秒,都将被断开
#匿名客户端允许的最大数据传输速率50000b/s
one_process_model=YES
idle_session_timeout=120
data_connection_timeout=300
anon_max_rate=50000

7.为VSFTPD配置虚拟用户(文本方式)
7.1创建虚拟与用户数据库
1.创建loguser.txt,格式如下:

userid
pass


比如我创建两个用户:tony密码为tonypass,etony密码为etonypass则loguser.txt的内容如下:


tony
tonypass
etony
etonypass


2.安装数据库生成工具:


#aptitudeinstalllibdb3-util


3.生成数据库:


#db_load-T-thash-floguser.txt/etc/vsftpd_login.db


4.设置数据库文件的访问权限:


#chmod600/etc/vsftpd_login.db

#p#分页标题#e#


7.2配置PAM文件
修改/etc/pam.d/vsftpd内容如下:


authrequired/lib/security/pam_userdb.sodb=/etc/vsftpd_login
accountrequired/lib/security/pam_userdb.sodb=/etc/vsftpd_login


7.3为虚拟用户创建本地系统用户

useradd-d/home/ftpsitevirtual
mkdir/home/ftpsite
chownvirtual.virtual/home/ftpsite
ls-ld/home/ftpsite
drwxr-sr-x2virtualvirtual482006-08-1805:48/home/ftpsite


在目录下创建一些内容


echo"etony'svsftpdserver">/home/ftpsite/msg

chownvirtual.virtual/home/ftpsite/msg


7.4创建/etc/vsftpd.conf
根据需要创建/etc/vsftpd.conf,但要确保含有一下设置:


anonymous_enable=NO
local_enable=YES
write_enable=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
chroot_local_user=YES
guest_enable=YES
guest_username=virtual
listen=YES
listen_port=21
pasv_min_port=30000
pasv_max_port=30999

7.5启动vsftpd

/etc/init.d/vsftpdstart|restart


7.6测试


$lftplocalhost-utony,tonypass
lftptony@localhost:~>ls
-rw-r--r--11001100122Aug1721:49msg
lftptony@localhost:/>exit
$lftplocalhost-utony,tonyp
lftptony@localhost:~>ls
ls:Loginfailed:530Loginincorrect.

8.为VSFTPD配置虚拟用户(数据库方式)
8.1安装MySQL数据库

#aptitudeinstallmysql-serverlibpam-mysql


当前MySQL数据库版本为5.0.24-1libpam-mysql0.6.2-1


tonybox:/var/log#mysql-uroot
WelcometotheMySQLmonitor.Commandsendwith;or\g.
YourMySQLconnectionidis7toserverversion:5.0.22-Debian_4-log

Type'help;'or'\h'forhelp.Type'\c'toclearthebuffer.

mysql>
mysql>
mysql>createdatabasevsftpd;
QueryOK,1rowaffected(0.04sec)

mysql>usevsftpd
Databasechanged
mysql>createtableusers(namechar(20),passwdchar(20));
QueryOK,0rowsaffected(0.02sec)

mysql>insertintousersvalues('tony',password('passtony'));
QueryOK,1rowaffected(0.02sec)

mysql>insertintousersvalues('etony',password('passetony'));
QueryOK,1rowaffected(0.01sec)

mysql>grantselect,insertonvsftpd.userstovsftpduser@localhostidentifiedby'vsftpdpass';
QueryOK,0rowsaffected(0.02sec)


8.2创建用户

tonybox:/var/log#mysql-uvsftpduser-p
Enterpassword:
WelcometotheMySQLmonitor.Commandsendwith;or\g.
YourMySQLconnectionidis10toserverversion:5.0.22-Debian_4-log

Type'help;'or'\h'forhelp.Type'\c'toclearthebuffer.

mysql>usevsftpd
Readingtableinformationforcompletionoftableandcolumnnames
Youcanturnoffthisfeaturetogetaquickerstartupwith-A

Databasechanged

mysql>select*fromusers;
+----+-------+------------------+
|id|name|passwd|
+----+-------+------------------+
|1|tony|2351315b1bd1bd58|
|2|etony|59c0cde4781fb0be|
+----+-------+------------------+
2rowsinset(0.00sec)


mysql>


8.3配置PAM文件
修改/etc/pam.d/vsftpd内容如下:

authrequired/lib/security/pam_mysql.souser=vsftpduserpasswd=vsftpdpasshost=localhostdb=vsftpdtable=usersusercolumn=namepasswdcolumn=passwdcrypt=2

accountrequired/lib/security/pam_mysql.souser=vsftpduserpasswd=vsftpdpasshost=localhostdb=vsftpd

table=usersusercolumn=namepasswdcolumn=passwdcrypt=2


crypt的值

0:在数据库中明文存储
1:使用crypt()函数加密存储
2:使用MySQLPASSWORD()函数加密存储


8.4其他配置
同为VSFTPD配置虚拟用户(文本方式)

8.5测试

tonybox:~#lftplocalhost-uetony,passetony
lftpetony@localhost:~>ls
-rw-r--r--11001100122Aug1721:49msg
lftpetony@localhost:/>


注:

与mysql-server-5.0对应的libpam-mysql由于使用的PASSWORD()函数与服务器端使用的PASSWORD()不匹配,故无法实现密码加密,仅可实现在数据库中明文存储ftp用户密码。mysql-server-4.1与libpam-mysql(0.5.0-6)可以实现在数据库中使用加密存储ftp用户密码

9.关于日志
libpam-mysql0.6.2-1模块仍然不是很完善等待添加......

原文链接:http://debian.linuxsir.org/doc/inthedebianway/vsftpd/

上一页[1][2][3]

本文引用网址:
在下列搜索引擎中搜索“VSFTPD服务器安装配置”的相关信息:
谷歌搜索 百度搜索 雅虎搜索 搜狗搜索 搜搜搜索 必应搜索 有道搜索
你可能还喜欢以下文章
  • 1雨后小故事完整版 雨后的小故事...
  • 2四川美院女生遭前男友发艳照报...
  • 3林晨钰爆奶门照片ed2k 林晨钰爆...
  • 4王婷不雅视频 王婷全裸艳照 王...
  • 5雨后小故事、雨后小故事01动态...
  • 1Dedecms会员注册验证邮箱的实现...
  • 2Z-Blog去掉文章评论的 邮箱 验...
  • 3说说"电视棒"为什么卖得这么火...
  • 4纵观国内美女网站十年发展历程...
  • 510 个提供免费优德w88官网搜索建议服务...
  • 1日本AV六级试卷 (附标准答案)
  • 2中国女大学生的淫靡生活
  • 3武汉十七中教室门种子 教室门q...
  • 4林晨钰爆奶门视频qvod 林晨钰爆...
  • 5空姐制服写真@天津外国语学院美...
  • 1加密无痕Win7系统让U盘成为个人...
  • 224日预警:将感染电脑变成FTP服...
  • 3熊猫烧香、威金的解决办法
  • 4vsftp配置大全---超完整版
  • 5服务器技巧 关于虚拟机管理重要...
  • 赞助商广告

    图片文章导读