FTP是一种文件传输协议。有时我们把他形象的叫做“文件交流集中地”。FTP文件服务器的主要用途就是提供文件存储的空间,让用户可以上传或者下载所需要的文件。在企业中,往往会给客户提供一个特定的FTP空间,以方便跟可以进行一些大型文件的交流,如大到几百兆的设计图纸等等。同时,FTP还可以作为企业文件的备份服务器,如把数据库等关键应用在FTP服务器上实现异地备份等等。
成都创新互联公司主要从事成都网站制作、网站设计、网页设计、企业做网站、公司建网站等业务。立足成都服务双桥,十多年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18982081108
可见,FTP服务器在企业中的应用是非常广泛的。真是因为其功能如此的强大,所以,很多黑客、病毒也开始“关注”他了。他们企图通过FTP服务器为跳板,作为他们传播木马、病毒的源头。同时,由于FTP服务器上存储着企业不少有价值的内容。在经济利益的诱惑下,FTP服务器也就成为了别人攻击的对象。
所以,FTP服务器的安全性工作也逐渐显得重要。笔者采用的FTP服务器是基于Linxu操作系统平台上的Vsftpd软件。笔者今天就以这个软件为例,谈谈如何若照FTP服务器的安全设计。
一、谁可以访问FTP服务器?
在考虑FTP服务器安全性工作的时候,第一步要考虑的就是谁可以访问FTP服务器。在Vsftpd服务器软件中,默认提供了三类用户。不同的用户对应着不同的权限与操作方式。
一类是Real帐户。这类用户是指在FTP服务上拥有帐号。当这类用户登录FTP服务器的时候,其默认的主目录就是其帐号命名的目录。但是,其还可以变更到其他目录中去。如系统的主目录等等。
第二类帐户实Guest用户。在FTP服务器中,我们往往会给不同的部门或者某个特定的用户设置一个帐户。但是,这个账户有个特点,就是其只能够访问自己的主目录。服务器通过这种方式来保障FTP服务上其他文件的安全性。这类帐户,在Vsftpd软件中就叫做Guest用户。拥有这类用户的帐户,只能够访问其主目录下的目录,而不得访问主目录以外的文件。
第三类帐户是Anonymous(匿名)用户,这也是我们通常所说的匿名访问。这类用户是指在FTP服务器中没有指定帐户,但是其仍然可以进行匿名访问某些公开的资源。
在组建FTP服务器的时候,我们就需要根据用户的类型,对用户进行归类。默认情况下,Vsftpd服务器会把建立的所有帐户都归属为Real用户。但是,这往往不符合企业安全的需要。因为这类用户不仅可以访问自己的主目录,而且,还可以访问其他用户的目录。这就给其他用户所在的空间 带来一定的安全隐患。所以,企业要根据实际情况,修改用户虽在的类别。
修改方法:
第一步:修改/etc/Vsftpd/vsftpd.conf文件。
默认情况下,只启用了Real与Anonymous两类用户。若我们需要启用Guest类用户的时候,就需要把这个选项启用。修改/etc/Vsftpd/vsftpd.conf文件,把其中的“chroot_list_enable=YES”这项前面的注释符号去掉。去掉之后,系统就会自动启用Real类型的帐户。
第二步:修改/etc/vsftpd.conf文件。
若要把某个FTP服务器的帐户归属为Guest帐户,则就需要在这个文件中添加用户。通常情况下,FTP服务器上没有这个文件,需要用户手工的创建。利用VI命令创建这个文件之后,就可以把已经建立的FTP帐晌饥户加入到这个文件中。宴山返如此的话,某个帐户就属于Real类型的用户了。他们登录到FTP服务器后,只能够访问自己的主目录,而不能够更改主目录。
第三步:重新启动FTP服务器。
按照上述步骤配置完成唯迹后,需要重新启动FTP服务器,其配置才能够生效。我们可以重新启动服务器,也可以直接利用Restart命令来重新启动FTP服务。
在对用户尽心分类的时候,笔者有几个善意的提醒。
一是尽量采用Guest类型的用户,而减少Real类行的用户。一般我们在建立FTP帐户的时候,用户只需要访问自己的主目录下的文件即可。当给某个用户的权限过大时,会对其他用户文件的安全产生威胁。
二是尽量不要采用匿名类型的帐户。因为他们在没有授权的情况下,就可以访问FTP服务器。虽然其访问的资源受到一定的限制,但是,仍然具有危险性。故在没有特殊需要的情况下,把匿名类型帐户禁用掉。
二、哪些帐号不可以访问FTP服务器?
在以下几种情况下,我们要禁止这些账户访问FTP服务器,以提高服务器的安全。
一是某些系统帐户。如ROOT帐户。这个账户默认情况下是Linxu系统的管理员帐户,其对系统具有的操作与管理权限。若允许用户以这个账户为账户名进行登陆的话,则用户不但可以访问Linux系统的所有资源,而且,还好可以进行系统配置。这对于FTP服务器来说,显然危害很大。所以,往往不允许用户以这个Root等系统帐户身份登陆到FTP服务器上来。
第二类是一些临时账户。有时候我们出于临时需要,为开一些临时账户。如需要跟某个客户进行图纸上的交流,而图纸本身又比较大时,FTP服务器就是一个很好的图纸中转工具。在这种情况下,就需要为客户设立一个临时账户。这些账户用完之后,一般就加入到了黑名单。等到下次需要再次用到的时候,再启用他。
在vstftpd服务器中,要把某些用户加入到黑名单,也非常的简单。在Vsftpd软件中,有一个/etc/vsftpd.user_lise配置文件。这个文件就是用来指定哪些账户不能够登陆到这个服务器。我们利用vi命令查看这个文件,通常情况下,一些系统账户已经加入到了这个黑名单中。FTP服务器管理员要及时的把一些临时的或者不再使用的帐户加入到这个黑名单中。从而才可以保证未经授权的账户访问FTP服务器。在配置后,往往不需要重新启动FTP服务,配置就会生效。
不过,一般情况下,不会影响当前会话。也就是说,管理员在管理FTP服务器的时候,发现有一个非法账户登陆到了FTP服务器。此时,管理员马上把这个账户拉入黑名单。但是,因为这个账户已经连接到FTP服务器上,所以,其当前的会话不会受到影响。当其退出当前会话,下次再进行连接的时候,就不允许其登陆FTP服务器了。所以,若要及时的把该账户禁用掉的话,就需要在设置好黑名单后,手工的关掉当前的会话。
对于一些以后不再需要使用的帐户时,管理员不需要把他加入黑名单,而是直接删除用户为好。同时,在删除用户的时候,要记得把用户对应的主目录也一并删除。不然主目录越来越多,会增加管理员管理的工作量。在黑名单中,只保留那些将来可能利用的账户或者不是用作FTP服务器登陆的账户。这不但可以减少服务器管理的工作量,而且,还可以提高FTP服务器的安全性。
三、匿名账户也可以上传文件
在系统默认配置下,匿名类型的用户只可以下载文件,而不能够上传文件。虽然这不是我们推荐的配置,但是,有时候出于一些特殊的需要,确实要开启这个功能。如笔者以前在企业中,利用这个功能实现了对用户终端文件进行备份的功能。为了设置的方便,就在FTP服务器上开启了匿名访问,并且允许匿名访问账户网某个特定的文件夹中上传某个文件。
若要让匿名用户上传文件,则首先要建立一个目录,并且把这个目录指定为匿名用户具有更新的权限。以后匿名用户需要上传文件的时候,只能够王这个文件夹中传。而不能够像Real用户那样,网其他用户的文件夹中上传文件。
文件目录设置好之后,再修改/etc/vsftpd/vsftpd.conf配置文件。把这个文件下的有关匿名账户的功能启用。默认情况下,跟匿名账户相关的功能,如更新、增加目录等功能都是被注释掉的。管理员需要把这个注释符号去掉,匿名账户才能够网特定的账户中上传文件。
笔者再次重申一遍,一般情况下,是不建议用户开启匿名账户的文件上传功能。因为很难保证匿名账户上传的文件中,不含有一些破坏性的程序,如病毒或者木马等等。有时候,虽然开启了这个功能,但是往往会在IP上进行限制。如只允许企业内部IP可以进行匿名访问并上传文件,其他账户则不行。如此的话,可以防止外部用户未经授权匿名访问企业的FTP服务器。若用户具有合法的账户,就可以在外网中登陆到FTP服务器上。
总之,在FTP服务器安全管理上,主要关注三个方面的问题。一是未经授权的用户不能往FTP空间上上传文件;二是用户不得访问未经授权的目录,以及对这些目录的文件进行更改,包括删除与上传;三是FTP服务器本身的稳定性。以上三个问题中的前两部分内容,都可以通过上面的三个方法有效的解决。相信管理员灵活采用如上的方法,可以在保障企业应用的前期下,提高FTP服务器的安全性。
从两个方向去做:
一、禁止系统级别用户来登录FTP服务器。
为了提高FTP服务器的安全,系统管理员最好能够为员工设置单独的FTP帐号,而不要把系统级别的用户给普通用户来使用,这会带来很大的安全隐患。在VSFTP服务器中,可以通过配置文件vsftpd.ftpusers来管理登陆帐户。不过这个帐户是一个黑名单,列入这个帐户的人员将无法利用其帐户来登录FTP服务器。部署好VSFTP服务器后,我们可以利用vi命令来查看这个配置文件,发现其已经有了许多默认的帐户。其中,系统的超级用户root也在其中。可见出于安全的考虑,VSFTP服务器默认情况下就是禁止root帐户登陆FTP服务器的。如果系统管理员想让root等系统帐户登陆到FTP服务器,则知需要在这个配置文件中将root等相关的用户名删除即可。不过允许系统帐户登录FTP服务器,会对其安全造成负面的影响,为此我不建议系统管理员这么做。对于这个文件中相关的系统帐户管理员最好一个都不要改,保留这些帐号的设置。
如果出于其他的原因,需要把另外一些帐户也禁用掉,则可以把帐户名字加入到这个文件中即可。如在服务器上可能同时部署了FTP服务器与数据库服务器。那么为了安全起见,把数据库管理员的帐户列入到这个黑名单,是一个不错的做法。
二、加强对匿名用户的控制。
匿名用户是指那些在FTP服务器中没有定义相关的帐户,而FTP系统管理员为了便于管理,仍然需要他们进行登陆。但纤判是他们毕竟没有取得服务器的授权,为了提高服务器的安全性,必须要对他们的权限进行限制。在VSFTP服务器上也有很多参数可以用来控制匿名用户的权限。系统管理员需要根据FTP服务器的安全级别,来做好相关的配置工作。需要说明的是,匿名用户的权限控制的越严格,FTP服务器的安全性越高,但是同时用户访问的便利性也会降低。故最终系统管理员还是带竖裤需要在服务器安全性与便利性上取得一个均衡。
下面是我推荐的几个针对匿名用户的配置,大家若不清楚该如何配置的话,可以参考这些配置。这些配置兼顾了服务器的安全与用户的使用便利。
一是参数anon_world_readable_only。这个参数主要用来控制匿名用户是否可以从FTP服务器上下载可阅读的文件。如果FTP服务器部署在企业内部,主要供企业内部员工使用的话,则最好把这个参数设置为YES。然后把一些企业常用表格等等可以公开的文件放置在上面,让员工在匿名的情况下也可以下载这些文件。这即不会影响到FTP服务器的安全,而且也有利于其他员工操作的便利性上。
二是参数anon_upload_enable。这个参数表示匿名用户能否在匿名访问的情况下向FTP服务器上传文件。通常情况下,应该把这个参数设置为No。即在匿名访问时不允许用户上传文件。否则的话,随便哪个人都可以上传文件的话,那对方若上传一个病毒文件,那企业不是要遭殃了。故应该禁止匿名用户上蠢简传文件。但是这也有例外。如有些企业通过FTP协议来备份文件。此时如果企业网络的安全性有所保障的话,可以把这个参数设置为YES,即允许操作系统调用FTP命令往FTP服务器上备份文件。
谢谢,这是我的回答。
一、操作系统的选择
FTP服务器首先是基于操作系统而运作的,因而操作系统本身的安全性就决定了FTP服务器安全性的级别。虽然Windows 98/Me一样可以架设FTP服务器,但由于其本身的安全性就不强,易受攻击,因而不要采用。Windows NT就像鸡肋,不用也罢。采用Windows 2000及以上版本,并记住及时打上补丁。至于Unix、Linux,则不在讨论之列。
二、使用防火墙
端口是计算机和外部网络相连的逻辑接口,也是计算机的第一道屏障,端口配置正确与否直接影响到主机的安全,一般来说,仅打开你需要使用的端口,将其他不需要使用的端口屏蔽掉会比较安全。限制端口的方法比较多,可以使用第三方的个人防火墙,如天网个人防火墙等,这里只介绍Windows自带的防火墙设置方法。
1。利用TCP/IP筛选功能
在消运Windows 2000和Windows XP中,系统都带有TCP/IP筛选功能,利用它可以简单地进行端口设置。以Windows XP为例,打开“本地连接”的属性,在“常规”选项中找到“Internet协议(TCP/IP)”,双击它打开该协议的属性设置窗口。点击右下方的“高级”卜桥厅按钮,进入“高级TCP/IP设置”。在“选项”中选中“TCP/IP筛选”并双击进入其属性设置。这里我们可以设置系统只允许开放的端口,假如架设的FTP服务器端口为21,先选中“启用TCP/IP筛选(所有适配器)”,再在TCP端口选项中选择“只允许”,点“添加”,输入端口号21,确定即可。这样,系统就只允许打开21端口。要开放其他端口,继续添加即可。这可以有效防止最常见的139端口入侵。缺点是功能过于简单,只能设置允许开放的端口,不能自定义要关闭的端口。如果你有大量端口要开放,就得一个个地去手工添加,比较麻烦。
2。打开Internet连接防火墙
对于Windows XP系统,自型隐带了“Internet连接防火墙”功能,与TCP/IP筛选功能相比,设置更方便,功能更强大。除了自带防火墙端口开放规则外,还可以自行增删。在控制面板中打开“网络连接”,右击拨号连接,进入“高级”选项卡,选中“通过限制或阻止来自Internet的对此计算机的访问来保护我的计算机和网络”,启用它。系统默认状态下是关闭了FTP端口的,因而还要设置防火墙,打开所使用的FTP端口。点击右下角的“设置”按钮进入“高级设置”,选中“FTP服务器”,我它。由于FTP服务默认端口是21,因而除了IP地址一栏外,其余均不可更改。在IP地址一栏中填入服务器公网IP,确定后退出即可即时生效。如果架设的FTP服务器端口为其他端口,比如22,则可以在“服务”选项卡下方点“添加”,输入服务器名称和公网IP后,将外部端口号和内部端口号均填入22即可。
三、对IIS、Serv-U等服务器软件进行设置
除了依靠系统提供的安全措施外,就需要利用FTP服务器端软件本身的设置来提高整个服务器的安全了。
1。IIS的安全性设置
1)及时安装新补丁
对于IIS的安全性漏洞,可以说是“有口皆碑”了,平均每两三个月就要出一两个漏洞。所幸的是,微软会根据新发现的漏洞提供相应的补丁,这就需要你不断更新,安装最新补丁。
2)将安装目录设置到非系统盘,关闭不需要的服务
一些恶意用户可以通过IIS的溢出漏洞获得对系统的访问权。把IIS安放在系统分区上,会使系统文件与IIS同样面临非法访问,容易使非法用户侵入系统分区。另外,由于IIS是一个综合性服务组件,每开设一个服务都将会降低整个服务的安全性,因而,对不需要的服务尽量不要安装或启动。
3)只允许匿名连接
FTP的安全漏洞在于其默认传输密码的过程是明文传送,很容易被人嗅探到。而IIS又是基于Windows用户账户进行管理的,因而很容易泄漏系统账户名及密码,如果该账户拥有一定管理权限,则更会影响到整个系统的安全。设置为“只允许匿名连接”,可以免却传输过程中泄密的危险。进入“默认FTP站点”,在属性的“安全账户”选项卡中,将此选项选中。
4)谨慎设置主目录及其权限
IIS可以将FTP站点主目录设为局域网中另一台计算机的共享目录,但在局域网中,共享目录很容易招致其他计算机感染的病毒攻击,严重时甚至会造成整个局域网瘫痪,不到万不得已,使用本地目录并将主目录设为NTFS格式的非系统分区中。这样,在对目录的权限设置时,可以对每个目录按不同组或用户来设置相应的权限。右击要设置的目录,进入“共享和安全→安全”中设置,如非必要,不要授予“写入”权限。
5)尽量不要使用默认端口号21
启用日志记录,以备出现异常情况时查询原因。
2。Serv-U的安全性设置
与IIS的FTP服务相比,Serv-U在安全性方面做得比较好。
1)对“本地服务器”进行设置
首先,选中“拦截FTP_bounce攻击和FXP”。什么是FXP呢?通常,当使用FTP协议进行文件传输时,客户端首先向FTP服务器发出一个“PORT”命令,该命令中包含此用户的IP地址和将被用来进行数据传输的端口号,服务器收到后,利用命令所提供的用户地址信息建立与用户的连接。大多数情况下,上述过程不会出现任何问题,但当客户端是一名恶意用户时,可能会通过在PORT命令中加入特定的地址信息,使FTP服务器与其它非客户端的机器建立连接。虽然这名恶意用户可能本身无权直接访问某一特定机器,但是如果FTP服务器有权访问该机器的话,那么恶意用户就可以通过FTP服务器作为中介,仍然能够最终实现与目标服务器的连接。这就是FXP,也称跨服务器攻击。选中后就可以防止发生此种情况。
其次,在“高级”选项卡中,检查“加密密码”和“启用安全”是否被选中,如果没有,选择它们。“加密密码”使用单向hash函数(MD5)加密用户口令,加密后的口令保存在ServUDaemon。ini或是注册表中。如果不选择此项,用户口令将以明文形式保存在文件中:“启用安全”将启动Serv-U服务器的安全成功。
2)对域中的服务器进行设置
前面说过,FTP默认为明文传送密码,
容易被人嗅探,对于只拥有一般权限的账户,危险并不大,但如果该账户拥有远程管理尤其是系统管理员权限,则整个服务器都会被别人远程控制。Serv-U对每个账户的密码都提供了以下三种安全类型:规则密码、OTP S/KEY MD4和OTP S/KEY MD5。不同的类型对传输的加密方式也不同,以规则密码安全性最低。进入拥有一定管理权限的账户的设置中,在“常规”选项卡的下方找到“密码类型”下拉列表框,选中第二或第三种类型,保存即可。注意,当用户凭此账户登录服务器时,需要FTP客户端软件支持此密码类型,如CuteFTP Pro等,输入密码时选择相应的密码类型方可通过服务器验证。
与IIS一样,还要谨慎设置主目录及其权限,凡是没必要赋予写入等能修改服务器文件或目录权限的,尽量不要赋予。最后,进入“设置”,在“日志”选项卡中将“启用记录到文件”选中,并设置好日志文件名及保存路径、记录参数等,以方便随时查询服务器异常原因。
FTP服务器的优点是:
1、完全基于网络,具有网络文件的上传与zhidao下载特性。如支持断点续传,不受工作组与IP地址限制等。
2、拥有完善的用户权限管理系统,比起网络共享来说,可以详细设置每个用户的权回限。如只能上传,不能修改或删除等。
3、安全性高困培樱,可以进行数据的加密传输。更好保护个人隐私。
与网络共享比起来:
使用上答感觉不如网络共享方便,网络共享的文件可以像本地文中帆件一样使用。而FTP必须是下载汪丛下来才能使用。