热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

Linux系统改善FTP服务器的安全性

FTP是互联网应用中的一个元老级人物了,其方便企业用户文件的共享。但是,安全问题也一直伴随在FTP左右。
如何防止攻击者通过非法手段窃取FTP服务器中的重要信息;如何防止攻击者利用FTP服务器来传播木马与病毒等等。这些都是系统管理员所需要关注的问题。这次我就已Linux操作系统平台上使用的最广泛的VSFTP为例,谈谈如何来提高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服务器上允许匿名用户上传文件。

  三是参数anon_other_write_enable与参数anon_mkdir_write_enable。这两个参数主要涉及到匿名用户的一些比较高级的权限。如第一个参数表示匿名用户具有上传和建立子目录之外的权限,如可以更改FTP服务器上文件的名字等等。而第二个参数则表示匿名用户可以在特定的情况下建立子目录。这些功能都会影响到FTP服务器的安全与文件的安全。为此除非有特别需要的原因,否则的话都应该把这些权限禁用掉。即把这些参数的值设置为NO。我认为,除非FTP服务器是系统管理员拿来玩玩的,可以开启这些参数。否则的话,还是把这些参数设置为NO为好,以提高FTP服务器的安全。

  总的来说,对于匿名用户的控制要遵循权限最小原则。因为匿名用户是FTP服务器没有授权的用户,故无法进行深级别的权限访问控制。为此只有通过这些基本参数来实现对其的控制。

  三、做好目录的控制。

  通常情况下,系统管理员需要为每个不同的用户设置不同的根目录。而为安全起见,不让不同用户之间进行相互的干扰,则系统管理员需要设置不让用户可以访问其他用户的根目录。如有些企业为每个部门设置了一个FTP帐户,以利于他们交流文件。那么销售部门Sales有一个根目录sales;仓库部门有一个根目录Ware。作为销售员工来说,他们可以访问自己根目录下的任何子目录,但是无法访问仓库用户的根目录Ware。如此的话,销售部门员工也就无法访问仓库用户的文件了。可见,通过限制用户访问根目录以外的目录,可以防止不同用户之间相互干扰,以提高FTP服务器上文件的安全。为了实现这个目的,可以把参数chroot_local_user设置为NO。如此设置后,所有在本地登陆的用户都不可以进入根目录之外的其他目录。不过在进行这个控制的时候,最好能够设置一个大家都可以访问的目录,以存放一些公共的文件。我们既要保障服务器的安全,也不能够因此影响到文件的正常共享交流。

  四、进行传输速率的限制。

  有时候为了保障FTP服务器的稳定运行,需要对其文件上传下载的速率进行限制。如在同一台服务器上,分别部署了FTP服务器、邮件服务器等等。为了这些应用服务能够和平共处,就需要对其的最大传输速率进行控制。因为同一台服务器的带宽是有最大限制的。若某个应用服务占用比较大的带宽时,就会对其他应用服务产生不利的影响,甚至为导致其他应用服务无法正常相应用户的需求。再如有时候FTP用途的不同,也需要设置最大速率的限制。如FTP同时作为文件备份与文件上传下载等用途,那么为了提高文件备份的效率,缩短备份时间就需要对文件上传下载的速率进行最大值的限制。

  为了实现传输速率的限制,系统管理员可以设置local_max_rate参数。默认情况下,这个参数是不启用的,即没有最大速率的限制。不过基于以上这些原因,我还是建议各位系统管理员在把FTP服务器投入生产运营之前能够先对这个参数进行设置。防止因为上传下载耗用了过多的带宽而对其他应用服务产生负面的影响。系统管理员需要在各个应用服务之间取得一个均衡,合理的分配带宽。至少要保证各个应用服务能够正常响应客户的请求。另外在有可能的情况下,需要执行错峰运行。如在一台主机上同时部署有邮件服务器与FTP服务器。而FTP服务器主要用来进行文件备份。那么为了防止文件备份对邮件收发产生不利影响(因为文件备份需要比较大的带宽会在很大程度上降低邮件收发的速度),最好能够把文件备份与邮件收发的高峰时期分开来。如一般情况下早上上班时是邮件收发的高峰时期,那就不要利用FTP服务来进行文件备份。而中午休息的时候一般收发邮件就比较少了。此时就可以利用FTP来进行文件备份。所以把FTP服务器与其他应用服务错峰运行,那么就可以把这个速率设置的大一点,以提高FTP服务的运行效率。当然,这对系统管理员提出了比较高的要求。因为系统管理员需要分析各种应用,然后再结合服务器的部署,来进行综合的规划。除非有更高的措施与更好的条件,否则的话对FTP服务器进行最大速率传输是必须的。否则的话,会对企业中部署的其他信息化服务带来非常大的不利影响,会造成企业网络的阻塞。
推荐阅读
  • 优化联通光猫DNS服务器设置
    本文详细介绍了如何为联通光猫配置DNS服务器地址,以提高网络解析效率和访问体验。通过智能线路解析功能,域名解析可以根据访问者的IP来源和类型进行差异化处理,从而实现更优的网络性能。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 如何配置Unturned服务器及其消息设置
    本文详细介绍了Unturned服务器的配置方法和消息设置技巧,帮助用户了解并优化服务器管理。同时,提供了关于云服务资源操作记录、远程登录设置以及文件传输的相关补充信息。 ... [详细]
  • 本文详细分析了JSP(JavaServer Pages)技术的主要优点和缺点,帮助开发者更好地理解其适用场景及潜在挑战。JSP作为一种服务器端技术,广泛应用于Web开发中。 ... [详细]
  • CentOS 7 磁盘与文件系统管理指南
    本文详细介绍了磁盘的基本结构、接口类型、分区管理以及文件系统格式化等内容,并提供了实际操作步骤,帮助读者更好地理解和掌握 CentOS 7 中的磁盘与文件系统管理。 ... [详细]
  • 在计算机技术的学习道路上,51CTO学院以其专业性和专注度给我留下了深刻印象。从2012年接触计算机到2014年开始系统学习网络技术和安全领域,51CTO学院始终是我信赖的学习平台。 ... [详细]
  • 本周信息安全小组主要进行了CTF竞赛相关技能的学习,包括HTML和CSS的基础知识、逆向工程的初步探索以及整数溢出漏洞的学习。此外,还掌握了Linux命令行操作及互联网工作原理的基本概念。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • 网络攻防实战:从HTTP到HTTPS的演变
    本文通过一系列日记记录了从发现漏洞到逐步加强安全措施的过程,探讨了如何应对网络攻击并最终实现全面的安全防护。 ... [详细]
  • 360SRC安全应急响应:从漏洞提交到修复的全过程
    本文详细介绍了360SRC平台处理一起关键安全事件的过程,涵盖从漏洞提交、验证、排查到最终修复的各个环节。通过这一案例,展示了360在安全应急响应方面的专业能力和严谨态度。 ... [详细]
  • 本文深入探讨了Linux系统中网卡绑定(bonding)的七种工作模式。网卡绑定技术通过将多个物理网卡组合成一个逻辑网卡,实现网络冗余、带宽聚合和负载均衡,在生产环境中广泛应用。文章详细介绍了每种模式的特点、适用场景及配置方法。 ... [详细]
  • CMake跨平台开发实践
    本文介绍如何使用CMake支持不同平台的代码编译。通过一个简单的示例,我们将展示如何编写CMakeLists.txt以适应Linux和Windows平台,并实现跨平台的函数调用。 ... [详细]
  • 在Linux系统中配置并启动ActiveMQ
    本文详细介绍了如何在Linux环境中安装和配置ActiveMQ,包括端口开放及防火墙设置。通过本文,您可以掌握完整的ActiveMQ部署流程,确保其在网络环境中正常运行。 ... [详细]
author-avatar
书友70030711
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有