几个朋友的网站放在服务器上,但他们都是没有安全防范,随便给了进了系统,然后还上传文件,被传了一些webshell上来,差点搞成破坏。很是郁闷啊。
入侵迹线:通过在启动里面增加了一个程序来完成添加用户权限的操作,还有开了server-u一个新域用来上传文件,远程桌面被控制,事件日志被删除等等。还好没有搞实质破坏。
解决方法:
说到原因,所有的问题就是文件被上传,虽说主要原因是那几个网站的问题,但服务器也有不严的地方。
目前决定仍只通过服务器增强安全设置,让服务器继续裸奔,不装杀毒软件和任何第三方防火墙。
1、目录权限修改:将所有盘的权限全部收掉,基本只留管理员权限。web目录权限默认只对network service和iuser可读,部分上传文件目录只对iuser可写,但同时在iis中设置为不可执行权限,这样即使在文件被上传后,也无法执行。
2.整机增加模拟验证<identity impersonate="true" />,这样正常情况下即使是asp.net,也会使用iis的匿名iuser来代替networkservice来执行,权限更小,很多查看服务信息的权限都没有了,相对安全一些。
3、将远程桌面登录权限收掉,将全部组都删除掉,只留某管理用户,就算被添加用户提权了也可以不让他登陆进来。其他一些操作权限也进行了限制。
4、重新设置端口限制。除了几个有用端口外,其他默认封死。原来是封危险端口,但新开端口没有封。
5、文件权限修改:cmd命令等只允许管理员有权限。
6、SERVER-U管理端口虽然是本地的,但也要修改掉,防止被放shell提权。
7、等等。。
这里最关键的是第一条,控制好能够上传文件的目录,并剥夺执行权限,保证任何webshell不被上传。
至于其他的几条,都是对于已经被传了webshell的情况下,尽量减少可操作的权限,但毕竟也已经是很危险了。
如果严格来说,应该是各个网站的权限分开,每个网站新建一个guest权限的用户,然后iis匿名设置采用该用户,目录权限也可以控制在这个用户下。这样可以防止各网站之间互相访问。不过这个毕竟是朋友,相信大家不会故意搞破坏,所以只防范无聊入侵。
补充一点:一直坚信裸奔的系统也能做到安全,所以从来不给本来资源就不充裕的服务器安装各种安全软件。当然这次事件后,我差点怀疑是否仍然能够安全,因为毕竟不是只有自己在用,还有其他用户。经过分析修补之后,仍然坚信,裸奔是安全的,只要利用好操作系统提供的相关控制手段,可以说系统还是基本安全的!继续裸奔!支持的举手!