您的位置:首页 > 编程语言 > PHP开发

FTP 服务

2013-11-14 18:16 225 查看
File Transfer Protocol (文件传输协议)简称FTP就是专门用来传输文件的协议;与大多数Internet服务一样,FTP也是一个客户机和服务器系统。这样就可以通过客户机程序向从远程主机上传或者下载文件。

工作模式在主动模式下:FTP服务器的控制端口是21,数据端口是20,所以在做静态映射的时候只需要开放21端口即可,他会用20端口和客户端主动的发起连接。在被动模式下:FTP服务器的控制端口是21,数据端口是随机的,且是客户端去连接对应的数据端口,所以在做静态的映射话只开放21端口是不可以的。此时需要做DMZ。

在linux实际应用中、为了提高系统效率、通常把FTP账号和系统账号分离存放在数据库中;rpm –ivh vsftpd
安装之后开始配置登录环境;一般的配置路径: /etc/vsftpd/vsftpd.cong
(配置文件以 # 作为注释、默认情况对匿名用户也是可以访问;
默认的用户名anonymous、没有密码)
对于ftp服务的进行管理在目录/etc/init.d/vsftpd start
对于开机自起可以输入指令 nstysv (自动服务配置程序进行设置) 或者源码安装的直接可以使用 chkconfig onvsftpd

对于vsFTPD配置、大部分也是在配置文件里面进行配置:
/etc/vsftpd/vsftpd.cong
1)设置监听地址:listen_address=ip address2)控制端口: listen_port=port_value
FTP模式两种模式:主要区别是在于数据库传输端口(FTP-DATA)的方式;
一、主动模式由FTP指定数据传输所使用的端口、默认值为20
配置:
port_enable=YES|NO
如果数据在连接的时候取消主动模式时、设此值为NO;默认为YES

connect_from_port_20=YES|NO
控制以主动模式进行数据传输时是否使用20端口(FTP-DATA),但在RHL自带的vsftpd.conf文件中此参数应设为YES

ftp_data_port=portnumber
设定ftp数据传输端口值、默认是20 ,此参数用于主动模式;

Port_promissuous=YES|NO
默认值是NO,为YES时取消主动安全监测,

二、被动模式由FTP客户端决定数据传输的端口;

pasv _enable=YES|NO
数据传输的模式 YES 可以被动。

pasv_min_port=portnumber
在被动模式下、建立数据传输可以使用port范围的下界和上界,0表示认识、默认值也是0,把范围设置的高一点,是有助于安全性的提高(50000~60000)。

pasv_promiscuous=YES|NO
此选项激活时、将关闭被动模式的安全检查。

pasv_address=IPaddress
此选项为一个数字IP地址,作为被动命令的相应、默认值为none,即地址是从呼入的连接套接字中获取。

ASCII模式
默认情况下VSFTP是禁止使用ASCII传输模式的;即使FTP客户端使用asc命令指明要使用ASCII、但是实际还是使用的二进制方式传输文件,
配置选项:
ascii_upload_enable=YES|NO
控制使用ascii模式上传文件、默认是NO

ascii_download_enable-YES|NO
控制是否允许使用ascii模式下载文件,默认为NO

配置文件(/etc/vsftpd/vsftpd.conf)

12 anonymous_enable=YES //允许匿名访问
15 local_enable=YES //本地账号访问
18 write_enable=YES· //可写权限
( 网络权限与本地权限,相互作用。当两者权限相同,取相同的权限。如果两者权限不同,
取最小权限,最严格权限。)
22 local_umask=022 /本地掩码
27 #anon_upload_enable=YES //是否允许匿名账号上传,。默认关闭,需要打开才行。
(匿名账号是不能进行上传的,这也与相关目录的读写权限有关系,修改/var/ftp/pub的权限 )
31#anon_mkdir_write_enable=YES //允许匿名账号在ftp下创建文件夹。
//注意:此时所建立的文件夹只能使用默认名称,且用户不能重命名,删除。
23 anon_umask=073 //手动添加此行代码,表示匿名账号可以拥有读权限,用于从ftp服务器上下载
33 anon_other_write_enable=YES //手动添加此行代码,允许匿名账户修改文件名称,删除等。
37 dirmessage_enable=YES //切换目录时,提示消息。
41 xferlog_enable=YES //日志,记录某个客户端,访问了什么文件。
61 #idle_session_timeout=600 //访问超时时间
64 #data_connection_timeout=120 //连接超时
83 #ascii_upload_enable=YES //文本方式上传,容易出错。
87 #ftpd_banner=Welcome to blah FTP service.
//ftp服务器的提示消息。在登陆的时候显示的消息。在登陆之前就会出现。
91 #deny_email_enable=YES //拒绝邮箱账户,作为登陆的匿名账户
93 #banned_email_file=/etc/vsftpd/banned_emails

98 #chroot_list_enable=YES //允许切换目录
100 #chroot_list_file=/etc/vsftpd/chroot_list //放在/etc/vsftpd/chroot_list列表中的用户

111 listen=YES 把ftp改成依赖于超级进程的

118 pam_service_name=vsftpd //借助于pam【可插拔的验证模块】进行身份验证。
119 userlist_enable=YES // /etc/vsftpd/user_list /etc/vsftpd/ftpusers 在这两个文件中放置的用户,都不能登录,放置于user_list中的用户在被拒绝后,对于其安全保护更加的好。

120 tcp_wrappers=YES //支持 tcp wrappers

应用软件:
(一)Server-UServ-U是一种被广泛运用的FTP服务器端软件,支持3x/9x/ME/NT/2K/2000/xp等全Windows系列。可以设定多个FTP服务器、限定登录用户的权限、登录主目录及空间大小等,功能非常完备。它具有非常完备的安全特性,支持SSl FTP传输,支持在多个Serv-U和FTP客户端通过SSL加密连接保护您的数据安全等。
Serv-U 是众多的FTP服务器软件之一。通过使用Serv-U,用户能够将任何一台PC 设置成一个FTP 服务器,这样,用户或其他使用者就能够使用FTP 协议,通过在同一网络上的任何一台PC与FTP 服务器连接,进行文件或目录的复制,移动,创建,和删除等。这里提到的FTP 协议是专门被用来规定计算机之间进行文件传输的标准和规则,正是因为有了象FTP 这样的专门协议,才使得人们能够通过不同类型的计算机,使用不同类型的操作系统,对不同类型的文件进行相互传递。

(二)FileZilla

是一款经典的开源FTP解决方案,包括FileZilla客户端和FileZillaServer[2]。其中,FileZillaServer的功能比起商业软件FTP Serv-U毫不逊色。无论是传输速度还是安全性方面,都是非常优秀的一款。

(三)VsFTP

VSFTP是一个基于GPL发布的类Unix系统上使用的FTP服务器软件,它的全称是Very Secure FTP 从此名称可以看出来,编制者的初衷是代码的安全。安全性是编写VSFTP的初衷,除了这与生俱来的安全特性以外,高速与高稳定性也是VSFTP的两个重要特点。在速度方面,使用ASCII代码的模式下载数据时,VSFTP的速度是Wu-FTP的两倍,如果Linux主机使用2.4.*的内核,在千兆以太网上的下载速度可达86MB/S。在稳定方面,VSFTP就更加的出色,VSFTP在单机(非集群)上支持4000个以上的并发用户同时连接,根据Red Hat的Ftp服务器的数据,VSFTP服务器可以支持15000个并发用户;

FTP登录有误可能出现的问题解决方法:

1FTP 站点权限设置

FTP服务器具有灵活的目录访问控制,它可限制用户对站点或目录的读、写权限,此外它还可根据客户端IP地址进行访问控制。若站点或目录没有赋予用户读的权限,或用户的IP地址被拒绝,则会出现无法登录的错误信息。

这种情况的解决方法如下:

打开IIS管理控制台:开始->程序->管理工具->Internet服务管理器;

右键选择FTP站点或虚拟目录属性,在主目录或虚拟目录属性页中,选择读取及写入选项。

单击目录安全性属性页,选择授权访问,并确认客户端的IP地址不在拒绝之列。

2NTFS权限设置

FTP服务器可以利用Windows操作系统中的文件或文件夹的NTFS权限属性来控制用户访问,因此一个用户若需访问某个FTP站点或目录,则其必须对该物理目录有至少读的权限。

文件或文件夹的NTFS权限属性具体的设置方法为:

打开 Windows资源管理器,找到FTP站点或虚拟目录所对应的物理目录,右键点击属性,选择安全性,赋给该FTP用户相应的NTFS权限(读取,写入)。

3、用户权利设置

因FTP采用基本验证方式,所以基本验证的用户权利要求也适用于FTP验证。基本验证方式要求访问的用户对目标主机具有从网络访问此计算机和在本地登录两种权限。这两种权限需要在安全策略中设置。在Windows2000中,存在三种安全策略:域安全策略,本地安全策略,域控制器安全策略,它们的优先级为:域控制器安全策略、域安全策略、本地安全策略。在设置安全策略时需注意有效的策略中允许用户从网络访问此计算机和在本地登录两种权限。

配置方法为:

如果FTP服务器安装在域控制器上,则由于域控制器安全策略的策略设置优先级最高,因此我们在域控制器安全策略中进行策略更改(为减少安全隐患,强烈建议用户不要在域控制器上建立FTP站点):

开始->程序->管理工具->域控制器安全策略;

如果FTP服务器不是域控制器(DC),则由于一般域安全策略中不会对用户权限进行设置,因此本地安全策略中的设置也可生效:

开始->程序->管理工具->本地安全策略;

双击展开本地策略,双击展开用户权利指派,在从网络访问此计算机和在本地登录中检查该FTP用户是否已具有该权限,否则,添加该FTP用户。

如果安全策略配置有改动,可用以下命令手动刷新策略配置,使其立即失效:

secedit/refreshpolicy machine_policy /enforce。

4、用户名的输入方法

基本验证要求用户输入完整的用户名。如果登录的用户是域用户,需在验证窗口中,输入domain_name\user_name,password。,即用户名中需要包括域名;如果登录的用户是本地SAM用户,则输入user_name,password即可。

5FTP对用户名密码的限制

FTP对用户名密码有一定的限制,若密码以空格符开头或包含特殊字符的,如@ # $ %等,则该用户无法登录FTP站点。此时可以首先修改密码,再做测试。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: