第14章 FTP服务器.docx

上传人:b****6 文档编号:7012981 上传时间:2023-01-16 格式:DOCX 页数:14 大小:69.18KB
下载 相关 举报
第14章 FTP服务器.docx_第1页
第1页 / 共14页
第14章 FTP服务器.docx_第2页
第2页 / 共14页
第14章 FTP服务器.docx_第3页
第3页 / 共14页
第14章 FTP服务器.docx_第4页
第4页 / 共14页
第14章 FTP服务器.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

第14章 FTP服务器.docx

《第14章 FTP服务器.docx》由会员分享,可在线阅读,更多相关《第14章 FTP服务器.docx(14页珍藏版)》请在冰豆网上搜索。

第14章 FTP服务器.docx

第14章FTP服务器

第14章FTP服务器

14.1文件服务器概述

FTP是FileTransportProtocol文件传输协议的缩写,FTP服务器能够在网络上提供文件传输服务。

目前在Linux上流行的FTP服务端软件有ProFTPd,vsFTPd,wu-FTPd等。

文件传输协议FTP(FileTransferProtocol,在RFC959中定义)是互联网上使用最为广泛协议之一,FTP消除不同操作系统下文件处理的不兼容性,FTP使用客/户服务器方式,一个FTP服务器进程可以同时为多个客户进程提供服务,FTP提供交互式的访问方式,允许指明文件的类型和格式,并允许文件具有存储权限。

FTP位于OSI和TCP模型的应用层,使用两个TCP连接来传输一个文件,使用20端口传送数据,21端口传送控制信息。

FTP的服务器进程由一个主进程和若干从属进程组成,主进程负责新的请求,从属进程负责单个的请求。

进行文件传输时,FTP客户端和服务器之间要建立“控制连接”和“数据连接”两个连接,FTP客户和服务器通讯的模型如图14.1所示。

图14.1TP客户和服务器通讯的模型

控制连接以客户/服务器方式建立。

服务器以被动的方式打开21号端口,等待客户的连接,控制连接在整个会话过程中一直打开,FTP客户所发送的所有请求通过控制连接发送到FTP服务器端的控制进程,但是控制连接不传送实际的数据,客户以主动的方式打开TCP的21号端口用于与服务器建立连接。

14.2安装vsFTPd软件

在RedHatLinux发行版本中使用vsFTPd作为FTP服务器软件。

该软件能够提供比较好的安全性防止系统受到大多数常见的攻击。

(1)首先查询一下系统是否安装vsftpd服务。

[root@localhostroot]#rpm-qavsftpd

vsftpd-1.1.3-8

(2)如果服务器已经安装vsFTPd服务,您可以先卸载,然后再重新安装。

[root@localhostroot]#rpm-evsftpd

(3)在Redhat9的第三张发行光盘中包含vsFTPd的RPM发行包:

vsftpd-1.1.3-8.i386.rpm

[root@localhostRPMS]#rpm-ivhvsftpd-1.1.3-8.i386.rpm

warning:

vsftpd-1.1.3-8.i386.rpm:

V3DSAsignature:

NOKEY,keyIDdb42a60e

Preparing...###########################################[100%]

1:

vsftpd###########################################[100%]

14.3配置vsFTPd软件

编辑/etc/vsftpd/vsftpd.conf文件可以配置vsFTPd的大多数配置。

表14.1VSFTPD的重要文件和目录

文件/目录

说明

/etc/rc.d/init.d/vsftpd

启动脚本

/etc/vsftpd.ftpusers

配置文件,设置不允许登陆的用户的列表

/etc/vsftpd.user_list

配置文件

/etc/vsftpd/vsftpd.conf

主配置文件

/usr/sbin/vsftpd

守候进程

/usr/share/doc/vsftpd-1.1.3/

文档目录

/var/ftp/

匿名FTP目录

表14.2/etc/vsftpd/vsftpd.conf参数说明

选项

说明

anonymous_enable=yes

允许匿名登陆

dirmessage_enable=yes

切换目录时,显示目录下.message的内容

local_umask=022

FTP上本地的文件权限,默认是077

connect_form_port_20=yes

启用FTP数据端口的数据连接

xferlog_enable=yes

xferlog_file=/var/log/vsftpd.log

激活上传和下传的日志

xferlog_std_format=yes

使用标准的日志格式

ftpd_banner=XXXXX

欢迎信息

pam_service_name=vsftpd

验证方式

listen=yes

独立的VSFTPD服务器

anon_upload_enable=yes

开放上传权限

anon_mkdir_write_enable=yes

可创建目录的同时可以在此目录中上传文件

write_enable=yes

开放本地用户写的权限

anon_other_write_enable=yes

匿名帐号可以有删除的权限

anon_world_readable_only=no

放开匿名用户浏览权限

ascii_upload_enable=yes

启用上传的ASCII传输方式

ascii_download_enable=yes

启用下载的ASCII传输方式

banner_file=/var/vsftpd_banner_file

用户连接后欢迎信息文件

idle_session_timeout=600

用户会话空闲后10分钟,单位秒

data_connection_timeout=120

将数据连接空闲2分钟断

accept_timeout=60

将客户端空闲1分钟后断

connect_timeout=60

中断1分钟后又重新连接

local_max_rate=50000

本地用户传输率50K

anon_max_rate=30000

匿名用户传输率30K

pasv_min_port=50000

将客户端的数据连接端口

改在50000-60000之间

pasv_max_port=60000

max_clients=200

FTP的最大连接数

max_per_ip=4

每IP的最大连接数

listen_port=5555

从5555端口进行数据连接

local_enble=yes

本地帐户能够登陆

write_enable=no

本地帐户登陆后无权删除和修改文件

chroot_local_user=yes

将所有的常规用户限制在他们的主目录下

chroot_list_enable=yes

文件中的名单可以调用

chroot_list_file=/path/vsftpd.chroot_list

前提是chroot_local_user=no

userlist_enable=yes

启用该功能,则vsFTPd会在读取/etc/vsftpd.user_list当中的用户名称,如果用户出现在该列表中,在询问用户的密码之前直接拒绝用户登陆,显示登陆失败的消息,这样有助于避免明文口令在网上传输,默认不启用该选项。

userlist_deny=yes

这个选项只有在启用userlist_enable=yes前提下才生效,如果启用该选项,在指定的文件/etc/vsftpd.user_list中的用户不可以访问,但是如果userlist_enable=NO,则会变成只有/etc/vsftpd.user_list文件中的用户才能登陆系统。

userlist_file=/etc/vsftpd.user_list

允许/禁止登陆的用户列表

banner_fail=/路径/文件名

连接失败时显示文件中的内容

listen_address=10.2.2.2

将虚拟服务绑定到某端口

ls_recurse_enable=YES

启用通配符*,该功能默认是关闭的

设置FTP的访问

vsFTPd服务器软件提供简单而且安全的方法设定访问权限,可以不使用FTP服务设置来防止对特定目录的下载和上传,而是使用标准的Linux系统文件和目录的访问权限来限制文件和目录的访问,但是可以通过配置/etc/vsftpd/vsftpd.conf文件,使得用户能够从你的vsFTPd服务器获得文件以及将文件放到vsFTPd服务器上。

在默认的情况下,任何登陆用户(匿名的或者真实的用户)可以从vsFTPd服务器下载文件。

如果根用户(root)将具有600权限(只对root用户有读写权限)的文件放到/var/ftp/目录,那么匿名用户是不能下载该文件的,即使/var/ftp/目录是匿名用户登录的主目录。

匿名用户(anonymous)的根目录(chroot)是/var/ftp/,常规用户的根目录是整个计算机的根目录“/”,登陆时进入用户的主目录/home/username/(username表示用户的名称,如果没有更改系统的缺省设置创建的用户的主目录一般放在/home/username/),这样匿名用户就只能访问/var/ftp/目录,而常规用户可以访问整个文件系统(当然必须具有相应的访问权限)。

可以使用chroot_local_user选项来更改常规用户的根目录,使其限制为他们的主目录,将所有的常规用户限制在他们的主目录下需要在/etc/vsftpd/vsftpd.conf中增加以下一行内容。

chroot_local_user=YES

在默认的情况下,能够访问vsFTPd服务的用户名为匿名(annonymous)和Linux系统的所有用户。

可以通过以下两行来设置。

annonymous_anable=YES

local_enable=YES

annonymous_anable=YES允许匿名用户登录服务器,local_enable=YES表示允许Linux本地帐号登陆服务器,您可以使用“local_enable=NO”禁止所有的本地帐号登陆,但是在默认情况下,/etc/vsftpd.user_list文件中的用户帐号被拒绝访问服务器。

如果想使该功能生效,需要设置以下几行的内容。

userlist_file=/etc/vsftpd.user_list

userlist_anable=YES

userlist_deny=YES

如果我们想只允许/etc/vsftpd.user_list列表中的用户访问FTP服务,包括annonymous用户都不能访问FTP服务器,需要设置以下几行。

userlist_file=/etc/vsftpd.user_list

userlist_anable=YES

userlist_deny=NO

/etc/vsftpd.ftpusers文件用户存放不允许登陆的用户的列表,此列表中缺省值都是一些系统用户,建议保留这些用户在这个列表中,出于安全考虑root用户也加到这个列表中,不允许root用户通过ftp登陆,详细列表如下。

[root@localhostroot]#cat-n/etc/vsftpd.ftpusers

1#Usersthatarenotallowedtologinviaftp

2root

3bin

4daemon

5adm

6lp

7sync

8shutdown

9halt

10mail

11news

12uucp

13operator

14games

15nobody

[root@localhostroot]#

14.4vsFTPd配置实例

要求:

配置一个高安全级别的匿名服务器,配置要求:

●仅仅允许匿名用户访问

●不允许本地用户访问

●关闭所有写权限

●不允许匿名用户上传

●设置匿名用户最大传输速率

●配置每个主机的最大连接数

●设置最大并发连接数

●配置安全日志

配置:

编辑/etc/vsftpd/vsftpd.conf设置如下,至于每一条目的含义请参考前面关于/etc/vsftpd/vsftpd.conf文件的说明。

修改对应的选项,设置如下,完整的清单附后。

[root@localhostroot]#vi/etc/vsftpd/vsftpd.conf

●anonymous_enable=YES

●local_enable=NO

●write_enable=NO

●local_umask=022

●anon_upload_enable=NO

●anon_mkdir_write_enable=NO

●anon_other_write_enable=NO

●anon_world_readable_only=YES

●anon_max_rate=50000

●dirmessage_enable=YES

●xferlog_enable=YES

●connect_from_port_20=YES

●xferlog_file=/var/log/vsftpd.log

●xferlog_std_format=YES

●ftpd_banner=WelcometomyanonymousFTPservice.

●pam_service_name=vsftpd

●userlist_enable=YES

●listen=YES

●tcp_wrappers=YES

完整的vsftpd.conf文件清单

1#Exampleconfigfile/etc/vsftpd.conf

2#

3#Thedefaultcompiledinsettingsareveryparanoid.Thissamplefile

4#loosensthingsupabit,tomaketheftpdaemonmoreusable.

5#

6#AllowanonymousFTP?

7anonymous_enable=YES

8#

9#Uncommentthistoallowlocaluserstologin.

10local_enable=NO

11#

12#UncommentthistoenableanyformofFTPwritecommand.

13write_enable=NO

14#

15#Defaultumaskforlocalusersis077.Youmaywishtochangethisto022,

16#ifyourusersexpectthat(022isusedbymostotherftpd's)

17local_umask=022

18#

19#UncommentthistoallowtheanonymousFTPusertouploadfiles.Thisonly

20#hasaneffectiftheaboveglobalwriteenableisactivated.Also,youwill

21#obviouslyneedtocreateadirectorywritablebytheFTPuser.

22#anon_upload_enable=YES

23#

24#UncommentthisifyouwanttheanonymousFTPusertobeabletocreate

25#newdirectories.

26#anon_mkdir_write_enable=YES

27#

28#Activatedirectorymessages-messagesgiventoremoteuserswhenthey

29#gointoacertaindirectory.

30dirmessage_enable=YES

31#

32#Activateloggingofuploads/downloads.

33xferlog_enable=YES

34#

35#MakesurePORTtransferconnectionsoriginatefromport20(ftp-data).

36connect_from_port_20=YES

37#

38#Ifyouwant,youcanarrangeforuploadedanonymousfilestobeownedby

39#adifferentuser.Note!

Using"root"foruploadedfilesisnot

40#recommended!

41#chown_uploads=YES

42#chown_username=whoever

43#

44#Youmayoverridewherethelogfilegoesifyoulike.Thedefaultisshown

45#below.

46#xferlog_file=/var/log/vsftpd.log

47#

48#Ifyouwant,youcanhaveyourlogfileinstandardftpdxferlogformat

49xferlog_std_format=YES

50#

51#Youmaychangethedefaultvaluefortimingoutanidlesession.

52#idle_session_timeout=600

53#

54#Youmaychangethedefaultvaluefortimingoutadataconnection.

55#data_connection_timeout=120

56#

57#Itisrecommendedthatyoudefineonyoursystemauniqueuserwhichthe

58#ftpservercanuseasatotallyisolatedandunprivilegeduser.

59#nopriv_user=ftpsecure

60#

61#EnablethisandtheserverwillrecogniseasynchronousABORrequests.Not

62#recommendedforsecurity(thecodeisnon-trivial).Notenablingit,

63#however,mayconfuseolderFTPclients.

64#async_abor_enable=YES

65#

66#BydefaulttheserverwillpretendtoallowASCIImodebutinfactignore

67#therequest.TurnonthebelowoptionstohavetheserveractuallydoASCII

68#manglingonfileswheninASCIImode.

69#Bewarethatturningonascii_download_enableenablesmaliciousremoteparties

70#toconsumeyourI/Oresources,byissuingthecommand"SIZE/big/file"in

71#ASCIImode.

72#TheseASCIIoptionsaresplitintouploadanddownloadbecauseyoumaywish

73#toenableASCIIuploads(topreventuploadedscriptsetc.frombreaking),

74#withouttheDoSriskofSIZEandASCIIdownloads.ASCIImanglingshouldbe

75#ontheclientanyway..

76#ascii_upload_enable=YES

77#ascii_download_enable=YES

78#

79#Youmayfullycustomisetheloginbannerstring:

80#ftpd_banner=WelcometoblahFTPservice.

81#

82#Youmayspecifyafileofdisallowedanonymouse-mailaddresses.Apparently

83#usefulforcombattingcertainDoSattacks.

84#deny_email_enable=YES

85#(defaultfollows)

86#banned_email_file=/etc/vsftpd.banned_emails

87#

88#Youmayspecifyanexplicitlistoflocaluserstochroot()totheirhome

89#directory.Ifchroot_local_userisYES,thenthislistbecomesalistof

90#userstoNOTchroot().

91#chroot_list_enable=YES

92#(defaultfollows)

93#chroot_list_file=/etc/vsftpd.chroot_list

94#

95#Youmayactivatethe"-R"optiontothebuiltinls.Thisisdisabledby

96#defaulttoavoidremoteusersbeingabletocauseexcessiveI/Oonlarge

97#sites.However,somebrokenFTPclientssuchas"ncftp"and"mirror"assume

98#thepresenceofthe"-R"option,sothereisastrongcaseforenablingit.

99#ls_recurse_enable=YES

100

101pam_service_name=vsftpd

102userlist_enable=YES

103#enableforstandalonemode

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 成人教育 > 自考

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1