首页 > 网站防护 > 服务器安全设置防范黑客攻击

服务器安全设置防范黑客攻击

2010年4月13日 admin  1,638 views 发表评论 阅读评论

服务器安全设置防范黑客攻击
来源:http://hi.baidu.com/0×255

你不能指望看完这个专题之后,能把服务器设置得一丝不漏。但至少,我们可以防止那些小毛贼把你的服务器变成肉鸡。

一、不设置必死!基础安全设置
别以为安全设置可有可无,如果你不做下面这些事,那就让服务器等死吧!
1.分区必须是NTFS
系统分区、网页目录所在分区都必须是NTFS格式。如果是Windows XP,还必须在“文件夹选项”中取消“简单文件共享”的勾选。

小提示——将FAT32分区无损转换到NTFS
运行CMD,然后键入命令“convert C: /FS:NTFS”(“C:”是要转换的分区盘符),然后按提示输入卷标,就能完成转换。注意系统分区在命令执行后必须重启才能转换,转换过程中不要手动重启,否则可能导致磁盘损坏。

2.增强账号安全
(1)禁用LSA枚举账号。LSA枚举会造成远程用户能够得到你系统中的所有用户名并进行密码猜解,关闭的方法是运行“gpedit.msc”打开“组策略编辑器”,在“计算机配置→Windows设置→安全设置→本地策略→安全选项”中找到“网络访问:不允许SAM账户和共享的匿名枚举”,确认状态为“已启用”。

(2)将管理员和来宾账户改名。在“组策略编辑器”中,在与禁用LSA枚举同样的分支下,有“账户:重命名来宾账户”和“账户:重命名系统管理员账户”,分别为它们重命名,然后在Windows的账户管理中添加一个没有权限的Administrator账户并设置一个超长密码(让黑客花几个月时间来猜解这个假管理员账户的密码吧!)。

3.别让病毒和木马进来
(1)不用服务器干别的事。之所以在一开始推荐你用闲置的老电脑做服务器,就是为了让你平时不去用它做别的操作,在完成了所有的安装和设置工作后,平时开机后就别动它了,特别是别插闪盘。
(2)安装防火墙。如果是老电脑,建议使用McAfee这类消耗资源较少的杀毒软件,而网络防火墙不能用天网这类运行在应用程序级别的,必须是Outpost、 ZoneAlarm等系统服务级的。注意如果安装了第三方防火墙,必须开放Web服务(TCP的80端口)和其他必须的端口(比如刚才安装花生壳时需要开放的商品)。

小提示
你也可以不安装第三方防火墙,前提是你在宽带接入时使用了路由功能。需要注意的是,使用路由后,必须在路由器开启相应端口(Web、花生壳)的端口映射才行,否则用户无法正常访问。

二、权限,给Apache和MySQL降级
真正的安全权限设置需要给每个目录、每个用户都设置一番,即使用这本杂志所有的篇幅都不可能讲完,我们只挑最实用的那部分。
1.建立低权限用户
运行CMD打开“命令提示符”,然后执行如下指令建立账户(这2条命令用来生成一个不属于任何用户组的名为“apache”的用户),其中“apache”是用户名、“Password”是密码,密码要采用8位以上、中英文混合的形式。
net user apache password /add
net localgroup users apache /del
依照这个方法再建立一个名为“mysql”的用户,同样使此账户不在任何用户组内。
2.修改Apache、MySQL服务的权限
运行services.msc打开“系统服务”,然后分别右击“Apache2”和“MySQL”2项服务选择“属性”,在弹出窗口的“登录”选项卡中选择 “此账户”,然后将刚才为这2项服务建立的账户密码分别填入并确认(见图11 09zcxzt_07aq_02.jpg),这样重启后服务就以低权限运行了。

3.给MySQL分配文件读写权限
打开“资源管理器”,右击“D:\MySQL”文件夹,在属性窗口中选择“安全”选项卡,然后点击“添加”,输入刚才添加的“mysql”用户并确认,再回到“安全”选项卡中选择该用户,并将下方的权限设置为“完全控制”。接着点击“高级”,勾选“用在此显示的可以应用到子对象的项目替代所有子对象的权限项目”点击“确定”。用同样的方法可以给Apache赋予网页目录的“完全控制”权限。

小提示
如果没有“安全”选项卡,那就是没有在“资源管理器”的菜单“工具→文件夹选项”中取消“使用简单文件共享”的勾选,或者所在分区不是NTFS格式。

三、高级安全设置,PHP木马进不来
通过PHP Shell、SQL Injection等方法,黑客可以在很多地方植入木马程序,现在要做的正是尽可能避免这种情况发生。
1.修改PHP配置文件中的默认参数
用“记事本”打开“D:\PHP\php.ini”,即PHP的配置文件,按照下文所示调整各项参数的值。
①safe_mode = On
默认值是off(关闭),开启“Safe Mode”(PHP的安全模式),能够限制PHP中一些涉及安全的函数,如“system()”,同时对很多文件相关的函数进行了权限控制,不允许PHP程序访问某些关键位置的文件。
②safe_mode_gid = Off
一旦安全模式开启,如果这个值也设为“On”(开启),PHP脚本可能就无法正常操作网站目录下的文件了,因此必须将它设为“Off”。
③safe_mode_exec_dir = “D:/Apache Group/Apache2/htdocs”
PHP在调用执行程序命令时查找的目录,你可以将它限定在网页目录中。
④open_basedir = “D:/Apache Group/Apache2/htdocs”
你一定担心一个具备目录浏览功能的PHP木马被上传到你的空间怎么办?把这个选项限定在你的网页目录中,PHP就不能访问超出范围的文件内容了。
⑤disable_functions = system,passthru,exec,shell_exec,popen,phpinfo
这些内置的PHP函数要么就是暴露系统中重要的信息,要么就是可以被利用来直接入侵,当然得封杀掉。
⑥expose_php = Off
HTTP信息头部中会包含PHP的版本信息,黑客有可能会据此发现针对你服务器的溢出攻击方法,因此让PHP“闭嘴”吧!
⑦register_globals = Off
禁用全局变量,这样可以确保PHP程序在传递变量时不被截获。
⑧magic_quotes_gpc = On
同样的信息,如果是“`”,如果直接使用,就能构成SQL查询语句并对数据库造成威胁;但如果是加了转义符的“\`”,就对数据库不构成威胁了。开启这个变量会对用户提交的SQL查询进行转义,这样可以非常显著地减少SQL注入。
⑨display_errors = Off
黑客攻击前一般都会向PHP程序提交一些错误的数据,通过网页返回的错误信息来获得目录位置、服务器版本及其他一些重要信息,因此推荐将“显示错误”关闭。

小提示
如果你开启了Apache的文件操作相关的功能(如错误日志),那就必须给刚才添加的“Apache”用户(忘了吗?刚才建立的用于Apache服务的低权限用户)添加相关目录的访问权限吧!如果你不知道该给什么权限好,那就选择“完全控制”。

目标达成:服务器安全性极大提高!通过这些设置,我们已经成功地把一大批黑客菜鸟拦在了服务器外。

如果玩专业,你还得学什么
需要补充的知识:怎样保证MySQL安全查询、被用来做服务器的Windows应该怎么设置权限、PHP程序的过滤机制怎么防止注入。
需要搜索哪些关键字:MySQL注入 PHP提交过滤 Windows权限

ps:linux下apache降权直接在http.conf设置nobody,不知道windows下可行啊?哈哈,上面多说了!

  1. 2011年12月19日20:42 | #1

    这篇文章是用五笔打的,鉴定完毕!

  1. 本文目前尚无任何 trackbacks 和 pingbacks.