FTP服务器的安全分析
我们可以通过编辑FTP服务器的配置文件来调整访问权限,在传输文件过程中进行文件加密等措施来达到FTP服务器的安全工作。下面是FTP服务器对用户、目录和文件管理安全问题的分析。
1)FTP服务器对用户的管理
为了不允许其它用户用匿名ftp访问系统,必须创建一个名为ftp的帐号,给帐号ftp设置一些限制,使得任何远程的ftp用户不能访问系统的其他部分。必须改变此帐号在文件/etc/passwd中的项,使一般的用户不能访问它,这一项是ftp:*:14:50:FTPUser:/home/ftp:。
口令区域中的星号用来保护帐号,它将阻止其他用户以此帐号注册以及控制它的文件或访问系统的其他部分。用户ID为14,是一个独立的ID,注释域是“FTP User”,注册目录是/home/ftp,当ftp用户注册到系统时,它将处于此目录中。
如果没有设置主目录,需创建一个,并用命令chown为ftp用户改变它的权限。组ID是ftp组的ID,专门为匿名ftp用户设置的。通过为ftp组设置限制来限制匿名的ftp用户。下面是一个在/etc/group文件中找到的关于ftp组的项。对于Linux系统,如果没有此项,应该加上ftp::50。
目录/home/ftp的权限中应该否定写权限。如果不希望ftp用户创建和删除目录,可以用chmod命令设置权限555来禁止写访问,这个命令是chmod555/home/ftp。
2)FTP服务器对目录的管理
为了防止系统遭到ftp用户的一些意外的访问,应在ftp目录中(如/home/ftp中),创建一组有限制的目录。在表1中提供一列目录。保护一个重要部分的方法是阻止远程用户使用不在限制目录中的命令或程序。例如,因为ls命令位于/bin目录中,可能不希望用户使用ls列出文件名,同时,又希望用户使用ls命令。
![]() |
为了做到这一点,需要在目录/home/ftp中创建一个新的目录bin,接着复制一份命令ls放到/home/ftp/bin中。此目录将限制ftp用户的使用,他们使用的命令ls是目录/home/ftp/bin中的命令,而不是管理员用的/bin中的ls命令。通过同样的方法,可以让ftp用户使用其他命令。
目录/home/ftp/etc中存放passwd和group文件的副本,这个目录的存在也阻止ftp用户访问/etc目录下的原文件。编辑/home/ftp/etc/passwd文件,删除系统的一般用户的项,剩余的项的口令应被设置为3,以保护访问。对于group文件,除去所有的用户组并设置所有的口令为3。
具体命令如下:
#cat/home/ftp/etc/kpasswd
root:3:0:0:::
bin:3:1:1:::
operator:3:11:0:::
ftp:3:14:50:::
nobody:3:99:99:::
#cat/home/ftp/etc/group
root::0:
bin::1:
daemon::2:
sys::3:
adm::4:
ftp::50:
目录/home/ftp/pub中放有想让远程ftp用户下载的文件。当ftp用户注册到系统时,它将处于目录/home/ftp中,并能切换到目录/home/ftp/pub中开始访问其中的文件。在/home/ftp/pub中能加入任何希望的目录和文件,甚至可以指定一些目录为上传目录,允许ftp用户上传文件到系统中。
一些Linux系统要求,ls命令工作时要访问libc.so.l和rld文件。它们通常存放在/lib目录中。因为不希望ftp用户间接访问系统,所以要创建一个/home/ftp/lib目录,并复制这些文件到此目录中。
另外,因为rld使用/dev/zero文件,还要创建一个/home/ftp/dev目录并用mknod复制设备文件/dev/zero,然后把它放到此目录中。

