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服务器进行最大速率传输是必须的。否则的话,会对企业中部署的其他信息化服务带来非常大的不利影响,会造成企业网络的阻塞。Linux系统中 提高VSFTP服务器的安全性

[转] Linux 中提高 VsFTP 服务器的安全性的更多相关文章

  1. Linux 中提高的 SSH 的安全性

    SSH 是远程登录 Linux 服务器的最常见的方式.且 SSH 登录的时候要验证的,相对来讲会比较安全.那只是相对,下面会介绍一些方式提高 SSH 的安全性 SSH 的验证 而SSH 登录时有两种验 ...

  2. linux中创建图片服务器减轻传统服务器的压力

    1.1.   传统项目中的图片管理 传统项目中,可以在web项目中添加一个文件夹,来存放上传的图片.例如在工程的根目录WebRoot下创建一个images文件夹.把图片存放在此文件夹中就可以直接使用在 ...

  3. 在linux中搭建git服务器

    个人觉得, 以下搭建git服务器的过程就像是在linux增加了一个用户, 而这个用户的登录shell是 git-shell, 太刨根问底的东西我也说不清楚, 还是看下面的过程吧. 过程参考了网上的文章 ...

  4. Linux中配置ftp服务器

    1. 先用rpm -qa| grep vsftpd命令检查是否已经安装,如果ftp没有安装,使用yum  -y  install vsftpd 安装,(ubuntu 下使用apt-get instal ...

  5. Linux中搭建FTP服务器

    FTP工作原理 (1)FTP使用端口 [root@localhost ~]# cat /etc/services | grep ftp ftp-data 20/tcp #数据链路:端口20 ftp 2 ...

  6. Linux中postfix邮件服务器的搭建

    postfix是Wietse Venema在IBM的GPL协议之下开发的MTA(邮件传输代理)软件.postfix是Wietse Venema想要为使用最广泛的sendmail提供替代品的一个尝试.在 ...

  7. Linux中搭建HTTP服务器

    1.配置IP [root@localhost~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 BOOTPROTO=static ...

  8. Linux中搭建SVN服务器

    一 下载工具 1. subversion-1.6.17.tar.gz 2. subversion-deps-1.6.17.tar.gz 二 解压两个包: 1.在此之前,我已经创建了一个用户svnroo ...

  9. 在linux中安装memcache服务器

    挂载光盘   mkdir -p /media/cdrom   mount /dev/cdrom /media/cdrom   设置yum cd /etc/yum.repos.d/ mv CentOS- ...

随机推荐

  1. 使用Windows绘图合成多张图

    [使用Windows绘图合成多张图] 1.点击图片右键选择打开方式→选择画图工具打开图片. 2.这时图片可以改变外框大小,将外框尽量弄大些. 3.点击编辑选中下拉菜单中的粘贴来源,选择需要增加进来的图 ...

  2. 纸牌游戏CardBattle的设计与开发

  3. fidder 自动保存请求内容

    背景: 因为公司有有app和sdk,这些项目没有对应的接口统计.重构的时候很容易忽略掉.所以对fiddler写了一点代码,能将请求的数据写入到文件或者数据库中.方便统计接口,下次重构的时候,方便统计影 ...

  4. 远程连接MySQL数据库报错:is not allowed to connect to this MYSQL server的解决办法

    1. 改表法. 可能是你的帐号不允许从远程登陆,只能在localhost.这个时候只要在localhost的那台电脑,登入MySQL后,更改 "mysql" 数据库里的 " ...

  5. java web框架发展的新趋势--跨界轻型App

    “跨界(cross over)在汽车界已然成风,将轿车.SUV.跑车和MPV等多种不同元素融为一体的混搭跨界车型,正在成为汽车设计领域的新趋势.从个人而言,当包容.多元的审美要求和物质要求越来越强烈时 ...

  6. windows下的phpunit安装

    Windows Globally installing the PHAR involves the same procedure as manually installing Composer on ...

  7. 常用数据库连接池 (DBCP、c3p0、Druid) 配置说明.RP

    1. 引言 1.1 定义 数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出.对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标.数据库 ...

  8. POJ 2546 Circular Area(两个圆相交的面积)

    题目链接 题意 : 给你两个圆的半径和圆心,让你求两个圆相交的面积大小. 思路 : 分三种情况讨论 假设半径小的圆为c1,半径大的圆为c2. c1的半径r1,圆心坐标(x1,y1).c2的半径r2,圆 ...

  9. 浅谈Oracle12c 数据库、用户、CDB与PDB之间的关系

    名词介绍: 数据库:数据库(Database)是按照数据结构来组织.存储和管理数据的仓库,它产生 于距今六十多年前,随着信息技术和市场的发展,特别是二十世纪九十年代以 后,数据管理不再仅仅是存储和管理 ...

  10. Mac Android8.0源码编译笔记

    原因:内存不够 办法:添加限制,输入如下命令:export JACK_SERVER_VM_ARGUMENTS="-Dfile.encoding=UTF-8 -XX:+TieredCompil ...