问题三:如何限制用户对FTP服务器的访问?

虽然我们可以凭借用户名与密码来控制用户对FTP服务器的访问。但是,有时候,出于安全的考虑,我们还会进行一些更加严格的限制。如只允许某个子网的IP地址或者某些特定的IP地址可以访问FTP服务器等等。为什么要做这些限制呢?这主要是因为,可能这些FTP服务器有特殊的作用,而不是一般的文件服务器等等。

如对于一些文件服务器,我们需要对文件服务器上的数据进行异地备份。以防止当文件服务器出现当机的时候,可以顺利的利用异地备份的数据进行恢复。为此,我们可以在文件服务器上,通过FTP服务向FTP服务器传送数据,以实现异地备份的需求。此时,我们就只允许文件服务器可以访问这台FTP服务器。为了备份数据的安全,我们就要进行相关的设置,拒绝其他用户访问这台FTP服务器。

如有时候FTP服务器还可以作为日志备份服务器。像Oracle数据库服务器以及其他的一些应用系统服务器日志,都可以通过FTP命令以及操作系统的任务调度系统,自动的把日志文件上传到FTP服务器中。为此,也要限制只有特定的主机才能够以FTP的形式访问这台服务器。若不做类似的限制,则安全性会比较差。

要实现这个目的,我们需要修改/etc/ftphosts配置文件。这个文件主要就是用来设置一些主机不允许访问这台FTP服务器。网络管理员可以利用allow 与deny连个参数来限制只有哪些主机可以访问或者哪些主机不能连接FTP服务器。

另外,一般情况下,为了安全起见,我们往往需要设置不允许匿名访问FTP服务器。至少匿名用户的话,不能够往FTP服务器上上传文件。否则的话,FTP服务器的空间可能就很难满足需求。不少用户会把FTP服务器当作电影、歌曲等的集散地等等。为此,我们就需要更改另外一个参数配置文件,即/etc/ftpusers文件来限制某些用户不允许使用FTP服务器传输文件。

问题四:如何建立只允许FTP登陆的帐户?

一般情况下,我们在Linux操作系统中建立用户帐户的话,其不仅可以通过FTP服务登陆到FTP服务器,而且其也可以直接利用这个用户名登录到FTP服务器所在的操作系统。这跟微软服务器上部署的FTP服务器还是有一定的差异。很明显,Linux操作系统如此设计的话,会影响到FTP服务器所在的操作系统的安全性。

所以,我们需要经过相关的设置,让这个FTP帐户之能够通过FTP服务的形式登录到FTP服务器,而不能利用SSH协议远程登录,或者不能直接作为操作系统的登录用户名。要实现这个目的,我们往往需要进行如下的设置。

1、按常规程序新建立用户名。我们先需要在Linux操作系统中,建立相关的用户名。在建立用户名的过程中,我们往往需要为FTP服务器建立一个独立的组。然后把用户名加入到这个组中。如此的话,我们就在后面就可以以组为单位限制其的访问模式了。

2、我们需要编辑“/etc/shells”文件,在这个配置文件中加入一个空的shell。这个空的shell可以限制用户对FTP服务器的访问。如我们可以在这个配置文件中,加入如下一个空的shell,/dev/null。

技巧:一般来说,为了阅读的方便,我们往往把自己添加的内容放在配置文件的最后,并且,最好能够添加相关的注释。这主要是为了我们后续管理的方便。不然等时间长了之后,我们自己都不知道为什么要加入这个项目。

3、再次编辑/etc/passwd配置文件。这里主要实现目录的重定向。也就是说,当前面设置的那个FTP组的用户,访问FTP服务器的时候,其目录会进行重定向,会自动转到那个目录中。只要是通过“.”这个符号把FTP目录跟/目录连接起来。通过如此的限制,FTP组的用户就只能够访问自己用户下面的文件内容,而不能够访问所有的文件系统。

通过以上描述,我们可以发现单从配置上来说,Linux环境上的FTP服务器配置要比微软的复杂的多。很多功能的话,都需要通过手工修改配置文件来实现。而微软自带的FTP服务器的话,则可以通过傻瓜式的向导来实现大部分的管理操作。但是,包括笔者在内的很多网络管理员还是喜欢采用Linux作为FTP服务器的载体。这主要是因为Linux操作系统要比微软的操作系统要稳定。所以,部署在这上面的服务器,相对来收,也是前者稳定的多。而且,FTP服务器的话,跟其他应用服务器一样,往往稳定性是压倒一切的。也许,在不久的将来,当微软的操作系统比Linux更加稳定的时候,可以改变这一现状。

  1. 基于Linux的FTP服务器权限管理
  2. 三招提高FTP服务器安全性


相关内容