作为一款精典的FTP服务器软件,SERV-U一直被大部分管理员所使用,它简单的安装和配置以及强大的管理功能的人性化也一直被管理员们称颂。但是随着使用者越来越多,该软件的安全问题也逐渐显露出来。
首先是SERV-U的SITE CHMOD漏洞和Serv-U MDTM漏洞,即利用一个账号可以轻易的得到SYSTEM权限。其次是Serv-u的本地溢出漏洞,即Serv-U有一个默认的管理用户(用户名:localadministrator,密码:#|@$ak#.|k;0@p),任何人只要通过一个能访问本地端口43958的账号就可以随意增删账号和执行任意内部和外部命令。
此时,人们才开始重视起SERV-U的安全来,并采取了一些相关措施,如修改SERV-U的管理端口、账号和密码等。但是,修改后的内容还是保留在ServUDaemon.exe文件里,因此下载后用如UltraEdit之类的16进制编辑软件就可以很轻易的获取到修改后的端口、账号和密码。
从SERV-U6.0.0.2开始,该软件有了登录密码功能,这样如果加了管理密码,并且设置比较妥善的话,SERV-U将会比原来安全的多。现在我们就开始SERV-U的设置之旅,采用版本是SERV-U 6.0.0.2。
古语有云,千尺之台始于垒土,设置SERV-U的安全就从安装开始。这篇文章主要是写SERV-U的安全设置,所以不会花费太多的功夫来介绍安装,只说一下要点。
SERV-U默认是安装在C:/Program Files/Serv-U目录下的,我们最好做一下变动。例如改为:D:/u89327850mx8utu432X$UY32x211936890co7v23x1t3(图1)这样的路径,如果安装盘符WEB用户不能浏览的话,他便很难猜到安装的路径。当然,安装后会在桌面和开始菜单上生成快捷方式,建议删除,因为一般不会使用到它。可能你要问了,那应该怎样进入SERV-U的设置界面呢?其实很简单,双击下右角任务栏里的Tray Monitor小图标来启动SERV-U的管理界面。
图1:修改安装的目录
安装的时候只选前2项就可以了,后面的2个是说明和在线帮助文件。(见图2)
图2:安装时候只需要选择前2项
下图是生成的开始菜单组里的文件夹的名字,建议更改成比较不像SERV-U的名字,或者是删除该文件夹。(见图3)
图3:更改安装后生成开始菜单组里文件夹的名字
安装完成后会出现一个向导让你建立一个域和账号。在这里点Cancel取消向导。用向导生成的账号会带来一些问题,所以下面采用手工方式建立域和账号。(见图4)
图4:点Cancel取消向导
然后点选Start automatically(system service)前面的选项,接着点下边的Start Server按钮把SERV-U加入系统服务,这样就可以随系统启动了,不用每次都手工启动。(见图5)
图5:把SERV-U加入服务
接下来就会出现如图6的界面。通过点击Set/Change Password设置一个密码。
图6:点击Set/Change Password设置密码
然后会出现如图7的界面。因为是第一次使用,所以是没有密码的,也就是说原来的密码为空。不用在old password里输入字符,直接在下面的New password和Repeat new password里输入同样的密码再点OK就可以了。这里建议设置一个足够复杂的密码,以防止别人暴力破解。自己记不得也没有关系,只要把ServUDaemon.ini里的LocalSetupPassword=这一行清除并保存,再次运行ServUAdmin.exe就不会提示你输入密码登录了。
图7:设置和更改密码界面
下面就到了该对SERV-U进行安全设置的时候了。首先建立一个WINDOWS账号SSERVU,密码也需要足够的复杂。密码要记住,如果记不住就暂时保存在一个文件里,一会儿还要用到。(见图8)
图8:建立一个WINDOWS账号
建好账号以后,双击建好的用户编辑用户属性,从“隶属于”里删除USERS组。
图9:从隶属于里删除USERS组
从“终端服务配置文件”选项里取消“允许登录到终端服务器(W)”的选择,然后点击确定继续我们的设置。(见图10)
图10:取消“允许登录到终端服务器”
这里我们已经建好了账号,该设置服务里的账号了。现在就要用到刚才建立的这个账号,密码还没有忘记吧,马上就要用到了。
在开始菜单的管理工具里找到“服务”点击打开。在“Serv-U FTP Server服务”上点右键,选择属性继续。
然后点击“登录”进入登录账号选择界面。选择刚才建立的系统账号名,并在下面重复输入2次该账号的密码(就是刚才让你记住的那个),然后点“应用”,再次点确定,完成服务的设置。(见图11)
图11:更改启动和登录SRV-U的账号密码
接下来要先使用FTP管理工具建立一个域,再建立一个账号,建好后选择保存在注册表。(见图12)
图12:FTP用户密码保存到注册表里
打开注册表来测试相应的权限,否则SERV-U是没办法启动的。在开始->运行里输入regedt32点“确定”继续。
找到[HKEY_LOCAL_MACHINE/SOFTWARE/Cat Soft]分支。在上面点右键,选择权限,然后点高级,取消允许父项的继承权限传播到该对象和所有子对象,包括那些在此明确定义的项目,点击“应用”继续,接着删除所有的账号。再次点击“确定”按钮继续。这时会弹出对话框显示“您拒绝了所有用户访问Cat Soft。没有人能访问 Cat Soft,而且只有所有者才能更改权限。您要继续吗?”,点击“是”继续。接着点击添加按钮增加我们建立的SSERVU账号到该子键的权限列表里,并给予完全控制权限。到这里注册表已经设置完了。但还不能重新启动SERV-U,因为安装目录还没设置。
现在就来设置一下,只保留你的管理账号和SSERVU账号,并给予除了完全控制外的所有权限。(见图13)
图13:SERV-U安装目录权限设置
现在,在服务里重启Serv-U FTP Server服务就可以正常启动了。当然,到这里还没有完全设置完,你的FTP用户因为没有权限还是登录不了的,所以还要设置一下目录的权限。
假设你有一个WEB目录,路径是d:/web。那么在这个目录的“安全设定”里除了管理员和IIS用户都删除掉,再加入SSERVU账号,切记SYSTEM账号也删除掉。为什么要这样设置呢?因为现在已经是用SSERVU账号启动的SERV-U,而不是用SYSTEM权限启动的了,所以访问目录不再是用SYSTEM而是用SSERVU,此时SYSTEM已经没有用了,这样就算真的溢出也不可能得到SYSTEM权限。另外,WEB目录所在盘的根目录还要设置允许SSERV-U账号的浏览和读取权限,并确认在高级里设置只有该文件夹。(见图14)
图14:WEB目录所在盘的权限设置
至此,设置全部结束。现在的SERV-U设置是配合IIS设置的,因为和IIS使用不同的账号,WEB用户就不可能访问SERV-U的目录,并且WEB目录没有给予SYSTEM权限,所以SYSTEM账号也同样访问不了WEB目录,也就是说,即使使用MSSQL得到备份的权限也不能备份SHELL到你的WEB目录。你可以安全的使用SERV-U了。