防止被黑之网络服务器安全经验谈

1、对数据库进行安全配置 , 例如你的程序连接数据库所使用的帐户/口令/权限 , 如果是浏览新闻的 , 用只读权限即可;可以对不同的模块使用不同的帐户/权限;另外 , 数据库的哪些存储过程可以调用 , 也要进行严格地配置 , 用不到的全部禁用(特别是cmd这种) , 防止注入后利用数据库的存储过程进行系统调用;
2、在获取客户端提交的参数时 , 进行严格的过滤 , 包括参数长短、参数类型等等;
3、对管理员后台进行严格的保护 , 有条件的话 , 应该设置为只允许特定的IP访问(例如只允许管理员网段访问)——这个要根据实际情况来看的;
4、对操作系统进行安全配置 , 防止注入后调用系统的功能 , 例如把
cmd.exe/tftp.exe/ftp.exe/net.exe
这些文件全部转移到其他目录 , 并对目录进行严格的权限指派;
5、设置网络访问控制;
6、有条件的话 , 配置针对HTTP的内容过滤 , 过滤病毒、恶意脚本等;
7、如果有必要 , 可以考虑选择HTTPS , 这样可以防止很多的注入工具扫描 , 我以前自己开发注入检测工具的时候 , 考虑过做支持HTTPS方式的 , 但目前还没付诸实施 。
相信你也看出来了 , 总的来说程序方面主要考虑权限、参数过滤等问题;权限主要包括IIS浏览权限、数据库调用权限 。除此以外 , 还要考虑数据库、操作系统的安全配置 。另外 , 不知道你们在开发过程中会不会用到其他人开发的组件 , 例如图片上传之类的 , 这类组件你们研究过其安全性么?或者开发的过程中 , 绝大多数人会使用网上、书上提供的现成代码 , 例如用户登录验证等等 , 这些公开代码 , 也要研究其安全性问题 。架设FTP服务器 , 一向是把安全放在首位 , 特别是利用IIS之类工具建立起来的FTP服务器更是如此 。如果设置不当遭受到恶意攻击 , 那造成整个服务器系统崩溃也绝不是危言耸听的! 因此 , 采取合理、周全的安全管理是很有必要的 。
我们就从IIS的安全说起 。
IIS , 从NT系统内核开始成为自带的重要信息发布载体 , 但其不可避免的漏洞也在不少的资料里提及 。IIS用作FTP服务器架设 , 主要是其简单易懂的设置赢得不少人青睐;因此 , 要用好IIS , 我们得从下面这些方面来考虑其安全问题:
1.安装系统补丁 。微软网站经常在其官方网发布最新的系统安全补丁 , 大家可以用系统自带的Windows update程序随时更新 。
2.FTP目录的设定 。比较常见的就是将主目录指定到逻辑盘 , 再对每个细目录按不同的用户设置不同的访问权限 , 并关闭一些不需要的服务 , 这可以对不良人士利用IIS溢出漏洞访问到系统盘作个第一级防护 。
3.尽量不要使用21这个默认端口号 , 并启用日志 , 以便FTP服务出现异常时检查 。
另一款FTP架设软件Serv_U 。
软件界面如下图所示 。感觉此款软件在安全性方面做得比较好 , 其设置也不易出错 , 笔者用过一段时间感觉其速度也比IIS要快得多 。即使这样 , 同样也应注意其正确的配置:
1.有关域中服务器密码设定 。
Serv_U提供了三种安全密码类型:规则密码、OTPS/KEY MD4和OTPS/KEY MD5 , 不言而喻 , 规则密码的安全性是最低的 。一般我们设置好了有管理权限的账户后 , 再在“常规选项卡下打开“密码类型下拉框 , 从中选择后两种类型相对要安全得多 。
2.选中“拦截FTP_bounce攻击和FXP 。FXP也称跨服务器攻击 , 简单的说:
当恶意用户通过在PORT命令中加入特定的地址信息 , 会使FTP服务器与其它非客户端的机器建立连接 , 而如果FTP服务器有权访问那些非客户端的电脑时 , 那就可以通过FTP服务器这个“中介机构 , 实现与目标服务器的连接!

推荐阅读