热门标签 | 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服务器进行最大速率传输是必须的。否则的话,会对企业中部署的其他信息化服务带来非常大的不利影响,会造成企业网络的阻塞。
推荐阅读
  • NFS(Network File System)即网络文件系统,是一种分布式文件系统协议,主要用于Unix和类Unix系统之间的文件共享。本文详细介绍NFS的配置文件/etc/exports和相关服务配置,帮助读者理解如何在Linux环境中配置NFS客户端。 ... [详细]
  • TortoiseSVN与VisualSVN Server的安装及基本操作指南
    本文详细介绍了如何安装VisualSVN Server以及TortoiseSVN客户端,并提供了基本的操作步骤,包括配置仓库、用户管理及权限设置等关键环节。 ... [详细]
  • 本文将详细介绍如何安装和使用 CactiEZ 的中文版本,帮助那些对英文界面不太熟悉的用户轻松掌握这一强大的网络监控工具。 ... [详细]
  • 为何我选择了华为云GaussDB数据库
    本文分享了作者选择华为云GaussDB数据库的理由,详细介绍了GaussDB(for MySQL)的技术特性和优势,以及它在金融和互联网行业的应用场景。 ... [详细]
  • HTTPS与TLS/SSL协议详解:握手及记录协议
    HTTPS,即HTTP over TLS/SSL,通过在HTTP通信层引入安全协议,确保数据传输的安全性。本文将深入探讨TLS/SSL协议的基本概念、HTTPS的必要性,以及TLS握手和记录协议的工作原理。 ... [详细]
  • 应对.avast后缀勒索病毒:全面指南
    本文详细介绍了.avast后缀勒索病毒的特性、感染途径、恢复方法及预防措施,旨在帮助用户有效应对这一威胁。 ... [详细]
  • 在Windows Server 2008 R2上配置IIS FTP服务
    本文详细介绍了如何在Windows Server 2008 R2操作系统上通过IIS配置FTP服务的过程,包括服务器角色的选择与安装、FTP站点的创建以及必要的服务和防火墙设置检查。 ... [详细]
  • 安装双硬盘对电脑有何益处?
    面对日益增长的数据存储需求,仅通过更换更大容量的硬盘来解决空间问题并非唯一途径。本文探讨了在同一台计算机上安装两个硬盘的可能性及其带来的多种优势。 ... [详细]
  • 微信小程序中实现位置获取的全面指南
    本文详细介绍了如何在微信小程序中实现地理位置的获取,包括通过微信官方API和腾讯地图API两种方式。文中不仅涵盖了必要的准备工作,如申请开发者密钥、下载并配置SDK等,还提供了处理用户授权及位置信息获取的具体代码示例。 ... [详细]
  • WinSCP: 跨Windows与Linux系统的高效文件传输解决方案
    本文详细介绍了一款名为WinSCP的开源图形化SFTP客户端,该工具支持SSH协议,适用于Windows操作系统,能够实现与Linux系统之间的文件传输。对于从事嵌入式开发的技术人员来说,掌握WinSCP的使用方法将极大提高工作效率。 ... [详细]
  • Google排名优化-面向Google(Search Engine Friendly)的URL设计 ... [详细]
  • 本文详细探讨了Java中Volatile关键字的工作原理、优化技巧及其在实际开发中的应用场景,特别是在提高多线程环境下数据可见性和减少锁竞争方面的优势。 ... [详细]
  • 众包(Crowdsourcing)是指将任务分发给广泛的社区成员完成,而非由组织内部人员独力承担。这一模式在软件测试领域尤为突出,通过结合网络与云计算技术,形成了强大的众包测试机制,对传统测试流程产生了深远影响。 ... [详细]
  • C语言实现推箱子游戏的完整代码
    本文详细介绍了如何使用C语言在Linux环境下实现一个简单的推箱子游戏,包括游戏的基本规则、地图设计及代码实现。适合C语言初学者学习。 ... [详细]
  • OBS (Open Broadcaster Software) 架构解析
    本文介绍 OBS(Open Broadcaster Software),一款专为直播设计的开源软件。文章将详细探讨其技术架构、核心组件及其开发环境要求。 ... [详细]
author-avatar
W你是我的小太阳
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有