FTP 服务器的部署和维护心得
而笔者每次解决用户的一个需求之后,总会有一种成就感。这不前不久笔者刚文成一个FTP服务器的搭建。不过这个案例有点特殊,因为其FTP服务器采用的操作系统是Linux。为此感悟就更多了。
心得一:为用户分配组
FTP服务器常用来放置一些工作文件。为此网络管理员在部署FTP服务器的时候,必须要注意其权限的管理。也就是说,要做到用户只能够下载自己有权利查看的工作文件;只能够往指定的目录中上传文件等等。而企业中员工很多。如果为每个员工分开来设置权限,那么工作两会很大。为此在FTP服务器管理中,最好也跟操作系统用户一样,以组为单位设置权限,然后再将用户加入到组中自动继承相关的权限。如此的话,如果10个用户其权限类似,那么笔者只需要为他们建立一个组,然后对这个组进行一次权限设置即可。所以,通过组来管理用户的话,可以简化工作量,并实现统一管理的需要。
笔者这次采用的是vsftpd服务器。这个服务器安装完成后已经为网络管理员建立好了三个组。一般来说,只要用户权限管理不特别严格的话,那么只需要采用这个默认的组即可。即使企业用户对权限管理比较苛刻,那么也可以借鉴这几个组权限的设置,以此作为模板,进行适当调整后即可使用。在 vsftpd服务器中,其默认的组分别为real组、guest组以及anonymous组。其中real组中这三个组中权限最高的组。在这个组中的用户,不仅可以访问帐户自己的主目录,而且还可以访问其他用户的目录。如现在有一个用户amy。只要在FTP服务器上建立这个帐户后,操作系统会自动在 /home目录下为这个用户建立一个主目录,即/home/amy。当用户以这个帐户登陆后,服务器会将这个用户的目录当作其主目录。但是这个用户仍然可以访问其他相关的目录,即可以切换到其他主目录中。其次guest组权限也不小。这个组跟操作系统中的guest帐户不同,其权限要比这个帐户多的多。如有些情况下,网络管理员可能要求某些用户只能够访问自己的主目录,而不能够访问别人的目录。确实,这是FTP服务器最基本的权限控制法则。如果要实现这个控制的话,则只需要将用户加入到这个guest组中即可。因为默认情况下,这个组中的用户只能够访问自己的主目录,而不得访问主目录以外的文件。第三个组是anonymous组,即匿名组。默认情况下,这个组的权限最小。其只能够在受限的目录中下载文件,但是不能够往FTP服务器上上传文件。不过一般情况下,出于安全考虑,都是禁用这个组的。即当用户没有账号时,无法从FTP服务器上下载任何文件。
心得二:为特定的应用设置组
在部署FTP服务器的过程中,笔者发现有时候FTP服务器不一定是用户使用,系统管理员也可能需要使用这个FTP服务器。如数据库管理员需要使用FTP服务器进行异地备份。即数据库管理员先将数据库执行本地备份。然后在备份成功后,再将备份文件利用FTP协议传送到异地的服务器上。当然这些操作都是通过脚本文件完成的,同时结合操作系统的任务调度功能来实现。
那么这对于网络管理员部署FTP服务器有什么启示呢?笔者接到这个需求后,第一个反应就是要为其设置独立的组。主要是因为这些备份文件往往是某个应用的精华所在。如果有用户将这些备份文件窃取了,然后再还原到自己的数据库中的话,那么企业的所有信息,包括客户、价格信息等等就都泄露了。另外这些备份文件也是日后应用服务器出现故障时挽回数据的最后保障。如果这些备份文件被恶意破坏了,则以后就很难利用这些备份文件来最大程度的恢复数据。为此笔者来了解了这家企业的需求之后,就决定为这些用户设置独立的组。由于这些用户平时主要用来文件的备份,而不做他用。为此笔者将这个组设置为只允许访问自己的主目录,而不能够访问其他目录(参考guest组的设置)。这有什么好处呢?如果企业现在有数据库服务器、邮件服务器、OA服务器等等,都需要通过FTP 服务器实现异地备份。那么笔者就可以设置三个用户,分别属于这个组。然后利用这三个帐户分别将本地的备份文件上传到FTP服务器中,以实现异地备份。由于这三个用户各自只能够访问自己的目录,为此彼此之间就相当于是独立的。任何一个帐户都不能够看到其他一个帐户上传的文件,也不能够往其他用户的主目录中上传文件。这就给他们提供了一个相对独立的工作环境,能够减少他们异地备份的干扰。
为此,笔者认为不仅要根据组来管理FTP服务器用户的权限,而且有时候还需要根据FTP服务器的用途,来设置独立的组。如在可能会在脚本程序中利用FTP协议,此时为他们设置独立的组,防止其他普通用户组对他们进行干扰,这是很有必要的。
心得三:为不同的用户设置磁盘限额
在部署FTP服务器的时候,还必须解决一个难题,即每个用户最多可以往FTP服务器上上传多少容量的文件。通常情况下,笔者建议要给用户设置一个最大空间的限额。因为一台FTP服务器不只一个用户使用。如果每个用户都可以无限制的往FTP服务器上上传文件,而又不及时清理的话,这台FTP服务器的硬盘空间很快就会被占满。所以说,FTP服务器对于普通用户来说,其只是一个文件的中转站,而不是文件到备份服务器。所以说,需要根据用户的需要,为其设置最大容量的限制。
在vsftpd服务器中,可以在组的级别上为用户设置最大容量的限制。如可以为每个部门设置一个组,然后指定这个组中的用户最多可使用的空间。如此的话,加入到这个组中的用户就会自动受到这个大小的限制。到空间受到限制后,就会强迫用户及时清理FTP服务器中的内容。一些不用的文件要及时的清理掉,这不但可以节省空间,而且也是出于安全的考虑。另外,也可以为部门设置最大可用的空间。即为每个部门设置一个组,然后给组设置最大空间限制。然后加入到这个组中的用户共享这块空间(不是平均分配,而是共享)。这就给部门负责人更大的灵活性,其可以根据需要来管理这个空间。
心得四:限制某些帐户使用FTP服务器
其实对于大部分网络管理员来说,要管理员FTP服务器还是一门不小的学问。如在某些情况下,就需要限制一些特殊的帐户使用FTP服务器。因为他们会危害FTP服务器的安全。如在Linux操作系统上部署FTP服务器,就需要限制root帐户使用FTP服务器。因为这个root帐户其具有操作系统最高的管理权限。如果允许这个用户访问FTP服务器,那么后果就是,这个帐户不会受到组权限的限制。也就是说,即使将这个root帐户分配给guest 组,这个帐户仍然可以访问主目录以外的文件。所以会破坏原有的安全体系。为此,无论在哪个操作系统上部署FTP服务器,网络管理员都需要去了解操作系统帐户中是否有类似的特权用户。如果有的话,就需要禁止其访问FTP服务器。
可见,FTP服务器虽然其部署比较简单,发展到现在也已经比较成熟了。但是企业用户的需求是在不断改变的。为此网络管理员也需要应需而变,及时调整FTP部署策略,以满足用户的需求。