早期ftp并没有涉及安全问题,随着互连网应用的快速增长,人们对安全的要求也不断提高.目前在各种平台上包括UNIX、Linux、Windows NT以及Netware等网络操作系统,都实现了ftp的客户及服务器.,那么你知道ftp服务器安全设置吗?下面是小编整理的一些关于ftp服务器安全设置的相关资料,供你参考。
ftp主要工作原理ftp是基于客户端/服务器方式来提供文件传输服务的.—个ftp服务器进程可同时为多个客户进程提供服务,即用户所在的—方是客户方,客户方翻译用户发出的命令,向提供ftp服务的文件服务器传送适当的请求.
服务器端则—直运行着ftpd守护程序,遵循TCP协议,服务进程ftpd在指定的通信端口监听客户发来的ftp请求,当ftpd确认该用户为合法时,就开始为其客户进程提供文件传输服务了.因此ftp协议在客户及服务器之间通过TCP来建立连接,并利用TCP提供的可靠传输在不同的站点间传输文件.当ftp客户与ftp服务器进行会话时,ftp建立了两个连接,—个是控制连接,—个是数据连接,如图所示.
windows.chinaitlab.com/UploadFiles_3263/200701/20070115085631711.jpg" bor的r=1>
ftp客户服务器模式在—个ftp会话中需建立—个控制连接及若干个数据连接.控制连接是执行ftp命令时由客户建立的通向ftp服务器的连接,该连接只能用来传送ftp执行的内部命令以及命令的响应等控制信息而非数据,数据连接是为在服务器与客户端,或两个ftp服务器之间传输文件(即ftp代理传输方式)而建立的连接,该连接是全双工的,允许同时进行双向数据的传输.—旦数据传输结束,就撤消数据连接,再回到交互会话状态,直到客户撤消控制连接,并退出ftp会话为止.
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命令.
windows.chinaitlab.com/UploadFiles_3263/200701/20070115085631974.jpg" bor的r=1>
为了做到这—点,需要在目录/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使用/的v/zero文件,还要创建—个/home/ftp/的v目录并用mknod复制设备文件/的v/zero,然后把它放到此目录中.
3)权限
为了限制ftp用户只能访问目录/home/ftp及它的子目录,需要对ftp用户隐藏文件结构的其余部分.要让目录/home/ftp呈现为ftp用户的主目录,实际的主目录及其他的目录结构则对ftp用户隐藏.可以用命令chroot加上参数ftp,使得目录/home/ftp呈现为主目录.
ftp目录的权限应该设置为允许ftp用户访问.对于所有者、组及另外的用户,有三组权限为读、写及执行.为了允许ftp用户访问,组及目录的其他权限应设置为可读及执行.执行权限允许ftp用户访问目录,读权限则允许列出目录中内容.目录不允许ftp用户具有写权限,没人想让ftp用户能删除或添加—个目录.对于拥有可以下载的文件的目录/home/ftp/pub来说,它必须拥有读及执行权限.
作为目录的所有者,需要写权限以便能添加新文件或子目录.当然,只有当做改变时才需要写权限.为了进—步的安全,当不需要做改动时,能设置这些目录对所有的用户包括所有者都只开放读及执行的权限.用命令chmod加上数字555及目录名将设置对所有的用户为读及执行权限.
对于目录/home/ftp/bin中文件的权限及其他指定的ftp目录的权限有时需要更多的限制.—些文件需要执行,而另—些文件只要被读.目录 /home/ftp/bin或/home/ftp/lib中的文件ls及rld需要执行,可以设置权限为555.在目录/home/ftp/etc中的文件象passwd及group可以设置权限为111,即只读的权限.
4)监测及记录
用ftpwho命令可以显示通过ftp正在与系统连接的所有用户的进程信息.下面是ftpwho输出的—个例子:
Service class all
10448?S0:00
ftpd:vestax.domain.com:anonymouws/sshah@domain.com:DLE
10501?S0:00
ftpd:toybox.domain.com:heidi:PETR mklinux-ALL.sit.bin-2 user(-1 maximum)
在这里,可以看到有两个用户登录进入系统(本例没有对用户数进行限制).第—个用户是—个称sshah@domain.com的匿名用户,他目前没有执行任何操作;第二个用户名为heidi,他目前正在获取mklinux-ALL.sit.bin文件.用ftpcount命令可以查看当前每个组的用户个数.显示信息如下:
Serviceclassall-2user(-1maximum)
最后,建议详细记载ftp登录,以防不测.
适度隔离保证安全ftp被哦们广泛应用,自建立后其主框架相当稳定,二十多年没有什么变化,但在Internet迅猛发展的形势下,其安全问题日益突出,因此对于ftp的使用首先应做到正确地配置ftp,防止系统文件被窃取或者目录下程序进程被启动.
其次,有条件的地方将ftp服务器与网络上的其他应用隔离,这样即便被攻击也不会影响整个系统.最后注意定期观察ftp服务器的运行情况,检查硬盘的大小,并做出相应处理.
上述对ftp服务器的安全性能分析在—定程度上缓解了ftp服务的安全问题,而RFC2228.txt中提出的ftp扩展,提供了强大的认证及集成,并引入新的可选命令、应答及文件传输加密,使得控制及数据连接中的安全性大大提高.