作为一款精典的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了。
解决方法是任何上传的功能, 都要禁止 '.asp;.' , 或者干脆禁止 ';' 符号.
第一步,打开控制面板,双击【添加或删除程序】图标,在弹出的【添加或删除程序】窗口中选择【 添加/删除Windows组件(A)】,然后会弹出Windows组件向导
我们选择【应用程序服务器】 然后单击【详细信息(d)...】会出现【应用程序服务器】
默认的会选择Internet 信息服务(IIS)
如果我们不放心还可以单击详细信息来选择自己想要的功能
但是我们最重要的还是万维网服务这一项,其实的可以不做选择
直接安默认的就可以
第二步,直接下一步会出现到复制一会儿会发现文件不存在,这个时候我们就可以选择自己下载的IIS包的位置了如下图
我们只要选择主目录下的CONVLOG.EX_文件就可以了,然后点确定程序自己运行一会儿就会安装成功
这里我试试过有很多包都 会缺少iisadmin.mfl等文件,所以我找了一个全一点的提供大家下载,下载地址:
第三步,这样应该是顺利的进行了,但是中间出了点小问题
提示信息是无法复制iisapp.vbs或staxmem.dll等文件,这个问题可以这样解决,之所以会出现这个问题是这样的因为版本问题,自己的服务器安装的是2003 SP1,后来打了补丁到SP2的,也就认为是版本问题,这个问题只要大家在开始远行里输入esentutl /p %windir%/security/database/secedit.sdb 回车
就行了,但记住是开始远行不是开始远行CMD啊,
会出现以下信息
C:\Documents and Settings\Administrator>esentutl /p %windir%/security/database/s
ecedit.sdb
Microsoft(R) Windows(R) Database Utilities
Version 5.2
Copyright (C) Microsoft Corporation. All Rights Reserved.
Initiating REPAIR mode...
Database: C:\WINDOWS/security/database/secedit.sdb
Temp. Database: TEMPREPAIR896.EDB
Checking database integrity.
The database is not up-to-date. This operation may find that
this database is corrupt because data from the log files has
yet to be placed in the database.
To ensure the database is up-to-date please use the 'Recovery' operation.
Scanning Status (% complete)
0 10 20 30 40 50 60 70 80 90 100
|----|----|----|----|----|----|----|----|----|----|
...................................................
Integrity check successful.
Note:
It is recommended that you immediately perform a full backup
of this database. If you restore a backup made before the
repair, the database will be rolled back to the state
it was in at the time of that backup.
Operation completed successfully in 1.719 seconds.
这时就可以顺利的安装IIS6.0了
上面的何命令是告诉计算机不要更新版本,按Old版更新,也就是不检查新版本,这样就可以安装了最后是一些提示信息,提示我们注意备份数据啊什么的,呵呵 !!!
当你看到这个窗体里恭喜你安装成功了;
第四步,打开IIS服务器
1.在开始运行里输入 intemgr 回车
2.右击 我的电脑管理里面的Internet信息服务
3.控制面版--管理工具--Internet 信息服务(IIS)管理器
以上三种方法会打开如下图
第五步,新建自己的网站
我们可以看到里面有一个网站的图标,下面有一个默认的网站,当然如果我们不想要的话可以直接删除,然后直接左键---新建--网站
在出现的框中直接下一步
在这里输入 你网站 的名称随便输入一个就行,只是一个描述不作任何用处,然后下一步
IP就是你本机的Ip,如果是外网的更好
端口大家都 知道 是什么,在这里端口是不能重复的
主机头,这个关键,这里就是你绑定到这个网站 的或名,写在这里就行了,然后你把域名解析到这个IP,他就会自己访问到你的网站 了,如果还有不明白的可以上网查查IDC,或是留言一下.接着下一步
这里相信大家都 明白就是选择你开发的网站路径了,注意是主目录啊,别选错了。选好后下一步吧
选择一下权限吧,一般是前三个,但是记得第三项执行ISAPI应该程序或CGI一定要选上啊, 否则应该不有机会可以选择了,这个就是是否支持界面当然,网站 不要界面要什么啊,一定得选上的,接着点下一步;
恭喜你完成了asp,asp.net1.0网站的配置了;
第五步,配置asp.net2.0或以上网站服务
上面我说“
恭喜你完成了asp,asp.net1.0网站的配置了”,大家应该想了,楼主是不是说错了, 不是配置asp.net2.0吗, 怎么变成asp,asp.net1.0了呢,没有错,
接着看就明白了,我们右击你刚刚创建的网站---属性---asp.net选择卡
大家看到了默认的版本是1.1的,我们怎么样可以变成2.0的呢,有以下几种方法
1.如果你是在安装了.net2.0或是以上版本之后才安装的IIS的话那恭喜你你会省很多事,因为在asp.net版本也就是第一个选择项的下面就是2.0的直接选择一下就行了,
但是如果不是怎么办呢,不用急这个也好办,
接着看
在网站的下面还有一个选项那就是Web服务扩展,我们可以看到只有一个asp.netv1.1.4322的版本,这里是作做用的呢,这里就相当于你的服务源,也就是说这里所出现的你才能在上一个界面里作选择,其实就是你自己机子上所安装的各个版本的程序集,因为没有2.0的那我们现在就安装一下.net2.0或是以上版本的,这里呢不在
演示怎么安装,因为这是大家的基本功如果这个不会的话相信我说的再多也不有介值,呵呵,我们看下面的连接,第一个“添加一个新的Web服务扩展”对就是它,点一下
在这里我们只在选择一下你刚安装好的2.0或以上版本的文件就行了,单击添加按钮
我们只要找到文件C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll选择添加就可以了
确定我们会看到他出现在刚刚的界面里,但是默认的是禁止的,我们要改成请允许,
如下图这样就可以了
最后一步就是到自己刚刚创建的网站右击--属性--asp.net
选择然后确定就可以了
其实IIS里的配置还有很多,比如错误处理,配置文件,头文件,权限设置,这些内容,等我有时间了再整理下下,今天 就先到这里吧,欢迎大家批评任并建出建议