Bug 的个人资料封印的九尾照片日志列表更多 ![]() | 帮助 |
|
2008/3/17 FileZilla FTP Server安装设置教程随着宽带网的普及,自己架设FTP服务器进行文件交流的用户越来越多。一提到FTP服务器软件,一般用户首先想到的是大名鼎鼎的Serv-U。使用主流FTP Server存在一个问题:一旦那个软件有什么安全漏洞被公布,由于它的知名度,那么这个安全漏洞也将人尽皆知,这样服务器的安全风险将很大。其实除了这些主流软件之外,还有很多相对不太出名的FTP Server,使用这些比较冷门的FTP Server软件,上述风险相对比较小一些。这里介绍的FileZilla Server是一款免费的开放源代码的软件,具有一般FTP服务器的绝大多数功能。软件支持用户分组;支持流量限制,可以定制按时段的流量限制;支持MODE Z FTP协议;支持远程配置管理…… 安装和设置也比较简单。 首先到官方网站 http://sourceforge.net/project/showfiles.php?group_id=21558 下载最新版本,然后双击安装。出现许可协议,选择“I Agree”同意协议继续…… 在这一屏,中间的端口号是管理员登录配置服务器的连接端口号,默认为14147。这个设置还关系到远程登录配置。可以根据自己的情况修改,当然也可以在安装完成之后再修改。 ![]() 点击Close结束安装,之后弹出连接服务器的窗口。FileZilla Server支持远程配置,如果是从远程进行配置的话,这里的地址、端口号和口令要跟远程服务器上面的对应起来。 本例是从本地登录,密码正确无误之后就进入服务器设置页面。 首先要进行服务器全局参数设置:点“Edit”菜单,选“Settings” General settings(常规设置): Listen on Port:监听端口,其实就是FTP服务器的连接端口。 Max.Number of users:允许最大并发连接客户端的数量。 Number of Threads:处理线程。也就是CPU优先级别。数值调得越大优先级越高,一般默认即可。 下面的是超时设置,自上至下分别为:连接超时、传输空闲超时、登入超时。单位为秒。 Welcome message页面设置客户端登录成功以后显示的Welcome信息。建议不要用软件默认的,因为任何软件都不能保证没有什么漏洞,如果在这里暴露软件名称的话,一旦这个FTP Server软件有什么安全漏洞,别有用心的人知道了服务器软件的名称就可能针对性地发起攻击。所以建议这里设置的信息不要包含任何服务器资料。 IP Filter(IP过滤器)页面,设置IP过滤规则,在上面栏目中的IP是被禁止的,下面的是允许的。 Passive mode settings(被动传输模式设置):这个页面要重点关注。如果服务器本身直接拥有公网IP,可以选软件默认的“Default”。 倘若服务器是在局域网里面,在一个网关后面,那么就要选择第二项“Use the follwoing IP”,并且在下面的输入栏填写公网的IP地址;否则,客户端用PASV被动模式可能无法连接FTP服务器。因为服务器是在内网中,在客户端使用PASV模式连接服务器的时候,服务器收到连接请求之后需要把自身的IP地址告诉客户端,由于服务器在内网中,它侦测到的IP地址是内网的(如192.168.0.5),它把这个IP地址交给客户端,客户端自然无法连接。在这里设置了指定的IP地址后,服务器就会把这个公网合法的IP地址提交给客户端,这样才能正常建立连接。 如果服务器是动态IP的,那么可以选择下面的“Retrieve external IP address from”,利用FileZilla官方网站免费提供的IP查询页面获取当时的公网合法IP,然后服务器把这个公网合法IP地址提交给客户端。当然静态IP也可以用这个,只不过没有必要。 这个设置页面对服务器位于内网的情况非常重要。有些FTP服务器端没有这个设置项目,客户端就只能用Port主动模式连接。当然有些客户端软件针对这个问题有专门的设置,如FlashFXP的站点设置中只要选中“被动模式使用站点IP”就可以了。 对于在局域网中的服务器,如果服务器没有置于DMZ区,那么强烈建议选中下面的“Use custom port range”定义PASV端口范围。由于PASV模式中,是服务器随机打开端口,然后把打开的端口号告诉客户端,让客户端连接打开的端口。但是因为服务器处于网关后面,如果网关那里没有做对应的端口映射,客户端从外网就无法连接服务器打开的端口,导致PASV模式连接失败。在这里限定服务器打开的端口范围,然后到连接外网的网关那里,对服务器的这些端口做端口映射(虚拟服务)。这需要服务器和Internet网关设备配合设置,这样外网的客户端才能用PASV模式连接进来。 Security settings(安全设置):这里的两个选项关系到能否FXP。软件默认状态“Block incoming server-to-server transfers”和“Block outgoing server-to-server transfers”两项都是选中的,前面那项是禁止连入的服务器对传,后面是禁止传出的服务器对传。也就是说默认状态不允许FXP,如果需要使用FXP,那么就把这两个项目取消选择。注意FXP传输除了跟这个页面的设置有关,还跟IP过滤器有关。 Admin Interface setting(管理员界面设定):这个就是登录配置服务器界面的一些参数。端口号的设置在安装的时候也出现过。下面两栏可以定义允许远程登录配置的网络界面和IP地址。在最下面更改管理员口令。 ![]() Logging(日志):设定是否启用日志记录功能以及日志文件大小和文件名。 ![]() Speed Limits(速度限制):这个是全局参数,默认状态不限速。可以选中“Constant Speed Limit of”并填写限速数值来实现速度限制,下载(传出)和上传(传入)可以分别设置。还可以根据时段自定义限速规则——“Use Speed Limit Rules”,比如这台服务器或者网络连接除了做FTP服务器之外还有别的用途,需要根据时间调度,不能让FTP传输挤占所有网络带宽影响其它的网络服务;就可以通过这里设置。 ![]() Filetransfer compression(文件传输压缩设置):MODE Z FTP协议是一种实时压缩的传输协议。在这种模式下,发送方的数据在发出之前先进行压缩,再送到网络链路中传输,接收方将收到数据实时解包,在本地还原重组成原文件。这种模式可以大幅度减少网络中的数据流量,提升传输效率(速度)。当然对于已经压缩过的文件,就几乎没有效果了。要使用这种传输模式,需要服务器端和客户端都支持MODE Z协议。 勾选“Enable MODE Z support”就可以启用本服务器的MODE Z支持功能,这样,只要客户端也支持MODE Z就可以获得它带来的性能提升。“Minimum allowed compression level”和“Maximum allowed compression level”分别设置最小压缩率和最大压缩率。最下面可以输入不启用MODE Z功能的目标IP。 完成这些设置以后,点击“OK”按钮保存设置并退出服务器全局设置页面返回主界面。 ![]() 下面要进行的是用户组(Group Settings)设置。在主界面点击第五个按钮或者由“Edit”——“Groups”菜单进入。 组设置是为了便于用户归类管理,相同权限的用户归属到同一个组里面,这样就不用重复多次设置每个用户的权限等参数,简化配置和管理工作。点击右边的“Add”按钮创建新组。 组创建完成以后,点“Shared folders”进入目录权限设置页面。点击中间区域的“Add”按钮添加目录。默认状态添加的第一个目录即为该组用户登录之后看到的主目录(Home Directory),主目录前面有个粗体的“H”标识。目录列表右侧分别是对该目录的操作权限设置,上面是文件权限设置,下面是目录权限设置。如果要改变主目录,只要在列表中选中需要设置为主目录的那个,然后点击“Set as home dir”按钮即可。 设置好主目录之后,再点击“Add”按钮把其余的目录依次设置进来就可以了。不过这里得注意,如果仅仅把别的目录添加进去,那么你用客户端连接之后,会发现除了主目录和它的子目录之外,别的目录都看不见。这是怎么回事?这里要说明一个概念——虚拟路径。所谓虚拟路径,就是在客户端看到的目录结构。由于一个用户只能有一个主目录,别的目录如果不映射成虚拟目录的话,客户端将看不到它。所以只有把除了主目录之外的其它目录,虚拟成主目录的子目录,这样在客户端才能看到。 比如本例,主目录是D:\Downloads,如果不做虚拟路径设置,那么客户端登录进来只能看到主目录里面的内容,还有一个E:\FTPRoot目录下面的东西看不到。如何设置虚拟路径?鼠标右键点击列表中的“E:\FTPRoot”目录,在弹出的菜单里面选“Edit aliases”编辑别名;现在要把E:\FTPRoot目录作为客户端主目录下的FTPRoot目录,那么就在弹出的窗口里面输入“D:\Downloads\FTPRoot”并点击“OK”按钮确定。注意拼写规则,路径的前面部分必须是主目录的绝对路径。这样设置之后,在客户端就可以看到一个“FTPRoot”目录,这个目录其实就是E:\FTPRoot目录。 组设置中的“Speed Limits”和“IP Filter”跟全局设置里面的速度限制和IP过滤器设置方法是一样的,请参照前面的内容。只不过这个是仅仅针对这个组的用户生效。而全局设置是对所有的用户都生效。 设置完毕之后点击“OK”按钮回到主界面。 最后一项就是设置用户(Users)。点击主界面第四个按钮或者由“Edit”——“Users”菜单进入。 点击右边的“Add”按钮创建用户,在“Password”域输入用户口令。然后从“Group membership”栏选择该用户所属的组(Group),这样该用户将继承该组的所有属性/权限,不用再单独一一设置这些参数了。这也是设置组体现的方便性,在用户比较多的时候使用组来分类会使得管理工作更加方便、高效。完毕之后点“OK”按钮保存设置并返回主界面。 当然,也可以设置一个不属于任何组的用户,这样的话,就得单独定制该用户的权限。对于少量特殊用户,可以用这种方式设置。 至此,FileZilla Server的基本设置就完成并可以运行了。 ![]() 对于初次使用FTP Server软件的用户,本文也可以作为入门参考。其实所有的FTP Server软件安装设置的基本原理都是类似的,掌握了一个之后,别的可以举一反三融会贯通。 数字签名和哈希函数数字签名和哈希函数问题的提出 懂得一点公钥密码基础知识的人都知道,发信息的人用自己的私钥对所发信息进行加密( Encryption ),接收信息者用发信者的公钥来解密( Decryption ),就可以保证信息的真实性、完整性和不可否认性。(注:这里提到的加密、解密是指密码运算,其目的并非信息保密。)那么,我们也可以笼统地说,以上方法就已经达到了数字签名的目的。因为首先,私钥是发信者唯一持有的,别的任何人不可能制造出这份密文来,所以可以相信这份密文以及对应的明文不是伪造的(当然,发信者身份的确定还要通过数字证书来保证);出于同样原因,发信者也不能抵赖、否认自己曾经发过这份信息;另外,信息在传输当中不可能被篡改,因为如果有人试图篡改,密文就解不出来。这样,用私钥加密,公钥解密的技术方法就可以代替传统签名、盖章,保证了信息的真实性、完整性和不可否认性。 但是,这样做在实际使用中却存在一个问题:要发的信息可能很长,非对称密码又比较复杂,运算量大,而为了保证安全,私钥通常保存在USB Key或IC卡中,加密运算也是在Key或卡中进行。一般来说,小小的USB Key或IC卡中的微处理器都做得比较简单而处理能力较弱,这样,加密所用的时间就会很长而导致无法实用。 另外,即使对于网站服务器而言,虽然它的处理能力很强,但服务器要同时处理许许多多签名加密的事情,也同样存在着加密耗时长系统效率低的问题。 有没有解决这个问题的办法呢?有的,常用的方法是使用哈希函数。 什么是哈希函数 哈希(Hash)函数在中文中有很多译名,有些人根据Hash的英文原意译为“散列函数”或“杂凑函数”,有些人干脆把它音译为“哈希函数”,还有些人根据Hash函数的功能译为“压缩函数”、“消息摘要函数”、“指纹函数”、“单向散列函数”等等。 1、Hash算法是把任意长度的输入数据经过算法压缩,输出一个尺寸小了很多的固定长度的数据,即哈希值。哈希值也称为输入数据的数字指纹(Digital Fingerprint)或消息摘要(Message Digest)等。Hash函数具备以下的性质: 2、给定输入数据,很容易计算出它的哈希值; 3、反过来,给定哈希值,倒推出输入数据则很难,计算上不可行。这就是哈希函数的单向性,在技术上称为抗原像攻击性; 4、给定哈希值,想要找出能够产生同样的哈希值的两个不同的输入数据,(这种情况称为碰撞,Collision),这很难,计算上不可行,在技术上称为抗碰撞攻击性; 5、哈希值不表达任何关于输入数据的信息。 哈希函数在实际中有多种应用,在信息安全领域中更受到重视。从哈希函数的特性,我们不难想象,我们可以在某些场合下,让哈希值来“代表”信息本身。例如,检验哈希值是否发生改变,借以判断信息本身是否发生了改变。` 怎样构建数字签名 好了,有了Hash函数,我们可以来构建真正实用的数字签名了。 发信者在发信前使用哈希算法求出待发信息的数字摘要,然后用私钥对这个数字摘要,而不是待发信息本身,进行加密而形成一段信息,这段信息称为数字签名。发信时将这个数字签名信息附在待发信息后面,一起发送过去。收信者收到信息后,一方面用发信者的公钥对数字签名解密,得到一个摘要H;另一方面把收到的信息本身用哈希算法求出另一个摘要H’,再把H和H’相比较,看看两者是否相同。根据哈希函数的特性,我们可以让简短的摘要来“代表”信息本身,如果两个摘要H和H’完全符合,证明信息是完整的;如果不符合,就说明信息被人篡改了。 数字签名也可以用在非通信,即离线的场合,同样具有以上功能和特性。 由于摘要一般只有128位或160位比特,比信息本身要短许多倍,USB Key或IC卡中的微处理器对摘要进行加密就变得很容易,数字签名的过程一般在一秒钟内即可完成。 ![]() 哈希函数的安全性 哈希函数的安全性直接关系到数字签名的安全性,如果哈希函数被攻破,数字签名的有效性就会受到质疑。 目前,已经发明的Hash函数有多种,如Snefru、N-Hash、LOKI、AR、GOST、MD、SHA等。它们在数学上实现的方法各有不同,安全性也各有不同。目前比较常用的Hash函数是MD5和SHA-1。 MD5哈希函数以512位来处理输入数据,每一分组又划分为16个32位的子分组。算法的输出由4个32位分组组成,将它们级联起来,形成一个128位的固定长度的哈希值,即输入数据的摘要。SHA-1哈希函数在MD4的基础上增加了数学运算的复杂程度,即SHA=MD4+扩展转换+附加轮+更好的雪崩效应(哈希值中,为0的比特和为1的比特,其总数应该大致相等;输入数据中一个比特的变化,将导致哈希值中一半以上的比特变化,这就叫做雪崩效应)。SHA能够产生160位的哈希值。对SHA还没有已知的密码攻击,并且由于它产生的哈希值位数长于MD5,所以它能更有效地抵抗穷举攻击(包括生日攻击)。 但是,任何一种算法都有其漏洞和局限性。任何一个哈希函数都会存在碰撞——即在一些特定情况下,两个不同的文件或信息会指向同一个数字摘要。在一般情况下,类似碰撞只能尽可能地减少,而不能完全避免。从理论上讲,没有攻不破的密码。随着密码科学的发展,也许会找到攻破某一种密码算法的途径。 评价Hash算法的一个最好方法是看敌手找到一对碰撞消息所花的代价有多高。一般地,假设攻击者知道Hash算法,攻击者的主要攻击目标是找到一对或更多对碰撞消息。目前已有一些攻击Hash算法和计算碰撞消息的方法。在这些方法中,有些是一般的方法,可用于攻击任何类型的Hash算法,比如“生日攻击”;而另一些是特殊的方法,只能用于攻击某些特殊的Hash算法,比如适合于攻击具有分组链结构Hash算法的“中间相遇攻击”,适用于攻击基于模运算的Hash函数的“修正分组攻击”。坚固的哈希函数可通过设计有效的碰撞处理机制,或增加数字摘要的位数来增加复杂度,以减少碰撞出现的概率, 2004年8月17日,在美国召开的国际密码学会议(Crypto’ 2004)上,一些国家的密码学者作了破译Hash函数的新进展的报告,其中我国山东大学的王小云教授做了破译MD5、HAVAL-128、MD4、和RIPE MD算法的报告。 到2005年2月,据王小云教授的研究报告,他们已经研究出了搜索SHA-1碰撞的一系列新技术。他们的分析表明,SHA-1的碰撞能在小于2^69次Hash操作中找到。对完整的80轮SHA-1的攻击,这是第一次在小于2^80次Hash操作这个理论界限的情况下找到碰撞。根据他们的估计,对于缩减到70轮的SHA-1能够用现在的超级计算机找出“实碰撞”。他们的研究方法,能自然地运用到SHA-0和缩减轮数的SHA-1的破译分析上。 2005年3月6日,Arjen Lenstra,王小云,Benne de Weger 宣布,他们构造出一对基于MD5 Hash函数的X.509证书,产生了相同的签名。他们提出了一种构造X.509证书的方法,在他们所构造出的证书对中,由于使用了MD5算法,签名部分产生了碰撞。因此,当证书发布者使用MD5作为Hash函数时,发布者就会在证书中产生相同的签名,导致PKI的基础原理遭到可信性破坏。这意味着,从单独某个证书无法确定是否存在另一个不同证书有着相同的签名。由于第二个相同签名证书存在的可能性,证书发布机构无法验证私钥的“拥有证明”,即无法验证证书中的签名。因此,使用“基于MD5函数”公钥证书的任何一方都无法确保所谓的证书拥有者是否真实拥有相应的私钥。 他们也想构造一对基于SHA-1的X.509证书,产生相同的签名。然而,他们还做不到这一点。因为产生SHA-1碰撞还需要相当长一段时间的研究。 专家指出:A.Lenstra和王小云等人声称已经成功地构造了两张符合X.509证书数据结构,拥有同样签名而内容却不同的证书,但该构造方法对证书的部分域要有特殊安排,签名算法RSA的密钥也是按照特殊规律生成的,要用来攻击某个实际应用的电子签名系统仍需时日。而对于SHA-1算法,说其从理论上被破解都还为时过早,只能说其破解工作取得了重大突破,破解所需要运算次数已从原来设计时估算的2^80次降低为2^69次,这比穷举法快了2048倍,但2^69次运算需要6000年左右的时间,在实际计算上仍然是不可行的。 除了运算方面的瓶颈外,哈希函数的不可逆性决定了攻击者无法轻易得手,没有人可以保证通过这个发现的每个碰撞都是“可用”的碰撞。在漫长的运算后,你得到的也许包含一些有价值的信息,也许就是理论上存在的单纯碰撞,运算瓶颈和信息匮乏都会使黑客们的种种努力成为徒劳……据业内人士估计,在当前的技术条件下,2^50或2^ 60次运算量的范围内的攻击方法才会为我们带来麻烦,即引发实际意义上的攻击行为。在新研究成果发布前的一段时间内,SHA-1 算法只能被称作不完美,但还是安全的。基于PKI技术进行电子签名的最终用户,目前还不用担心自己的签名被伪造或遭遇签名人抵赖。 另外,安全专家强调:一种算法被破译,和整个企业的安全系统被攻破,是两个不同的概念。因为随着攻击技术和能力的提高,算法也会“水涨船高”,向前发展进步。王教授所取得的成就提醒密码学家研究新的算法,提醒有关标准化机构要提前修改算法标准,也提醒有关CA和电子签名产品开发商支持新的算法。当然,有些完全基于摘要算法的密押系统和电子货币系统,还需要尽早考虑替换方案。 美国国家技术与标准局(NIST)曾经发表如下评论:“研究结果说明SHA-1的安全性暂时没有问题,但随着技术的发展,技术与标准局计划在2010年之前逐步淘汰SHA-1,换用其他更长更安全的算法(如:SHA-224, SHA-256, SHA-384和SHA-512)来代替。” |
|
|