说到cpu跑满100%情况,首先想到配置太低、网站流量太大、网站中毒,作为国内第一大开源程序织梦,很多黑客在研究漏洞,织梦站点用户在50w左右,那么黑客攻击下来后挂上自己的广告打来收益。这也是为什么那么多黑客研究织梦的原因。
前几个月,发现不少用户的出现cpu100%的情况,经检查后,大部分是php(dedecms居多)程序导致的,而且自己维护的几个网站也出现同样情况,并且收到过机房告知服务器外发攻击的通告,于是马上检查网站,并进行问题排查。 发现占用cpu的网站用的都是dede程序,检查文件后,发现plus文件夹下有几个异常文件,从文件修改时间上看与其他文件截然不同(出了缓存文件以及配置文件,大部分文件的修改时间都是一致的)。
偶,马依噶,中毒了
打开查看里面的源码,都存在’ip”post’等奇怪代码,再通过文件对比,这些异常文件都是多出的,果断删除。重新开启网站,cpu正常,没有出现100%的情况。为了防止再出现类似情况,可以通过禁用php的fsockopen 函数以及屏蔽服务器的udp端口来防止被利用php-ddos外发udp攻击。屏蔽了服务器被利用外发udp攻击这个比较好办,最重要的是要堵住网站漏洞,因为就算攻击发不出,只要恶意代码被执行了,一样会占用大量cpu%,照样影响网站的运行。
下面介绍禁用php的fsockopen 函数以及屏蔽服务器的udp端口的方法:
1.禁用函数
打开php.ini查找到 disable_functions ,添加需禁用的函数名,如下例:
passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,fsocket,fsockopen
这样就可以禁用php的fsockopen 函数。
2.屏蔽udp端口
将以下蓝色文本复制到记事本,另存为 banudp.bat 或任意名,双击运行即可。
rem 添加安全策略,名称
netsh ipsec static add policy name=我的安全策略
rem 添加 ip筛选器列表
netsh ipsec static add filterlist name=允许列表
netsh ipsec static add filterlist name=拒绝列表
rem 添加筛选器到ip筛选器列表(允许上网)
netsh ipsec static add filter filterlist=允许列表 srcaddr=me dstaddr=209.11.240.36 description=dns访问 protocol=udp mirrored=yes dstport=53
rem 添加筛选器到ip筛选器列表(不让别人访问)
netsh ipsec static add filter filterlist=拒绝列表 srcaddr=me dstaddr=any description=别人到我任何访问 protocol=udp mirrored=yes
rem 添加筛选器操作
netsh ipsec static add filteraction name=可以 action=permit
netsh ipsec static add filteraction name=不可以 action=block
rem 创建一个链接指定 ipsec 策略、筛选器列表和筛选器操作的规则(加入规则到我的安全策略)
netsh ipsec static add rule name=允许规则 policy=我的安全策略 filterlist=允许列表 filteraction=可以
netsh ipsec static add rule name=拒绝规则 policy=我的安全策略 filterlist=拒绝列表 filteraction=不可以
rem 激活我的安全策略
netsh ipsec static set policy name=我的安全策略 assign=y
以上方法都是针对windows主机的。希望对建站的朋友们有些帮助。
最主要的织梦程序的安全防护:
1、目录权限
我们不建议用户把栏目目录设置在根目录, 原因是这样进行安全设置会十分的麻烦, 在默认的情况下,安装完成后,目录设置如下:(1) data、templets、uploads、a或5.3的html目录, 设置可读写,不可执行的权限;
(2) 不需要专题的,建议删除 special 目录, 需要可以在生成html后,删除 special/index.php 然后把这目录设置为可读写,不可执行的权限;
(3) include、member、plus、后台管理目录 设置为可执行脚本,可读,但不可写入(安装了附加模块的,book、ask、company、group 目录同样如此设置)。
2、删除易被挂马的系统文件
安装完成后会有一些文件,可以说是冗余文件,完全没有作用,反而带来被黑的危险,删除即可,以下目录文件均可删除:
目录 | 删除原因 |
---|---|
/install | 安装后的余留文件,没用,整个文件夹删除 |
/member | 会员功能文件,大数企业站没用,文件夹删除,若需要会员功能的就不能删 |
/special | 专题功能,如果你不需要这个功能,文件夹删除,需要就别删,大部分是不需要的 |
/tags.php | tag标签,没有此功能可删除 |
网站后台目录dede要删除的文件 | 删除原因 |
---|---|
/dede/tpl.php | 文件上传管理系统文件,易被挂马,强烈建议删除或者不用时请改名(tpl备用.php) |
/dede/templets_*.php | 模板管理功能,老手建议删除,使用ftp管理 |
/dede/media_*.php | 附件数据管理功能文件,易被挂马,删除(用你的ftp管理文件就可以了,别用这个) |
/dede/file_*.php | 文件式管理器功能控制器文件,易被挂马,删除(用你的ftp管理文件就可以了,别用这个) |
/dede/mytag_*.php、mytag_tag_*.php | 自定义标记管理,易被上传一句话木马 |
/dede/story_*.php | 小说功能,可删除 |
/dede/erraddsave.php | 纠错功能,可删除 |
/dede/feedback_*.php | 评论管理,可删除 |
/dede/group_*.php | 圈子功能,很少用到,可删除 |
/dede/co_*.php | 采集控制文件,可删除 |
/dede/cards_*.php | 点卡功能功能,可删除 |
/dede/ad_*.php | 广告管理添加/删除文件,企业站一般不用可删除 |
/dede/spec_*.php | 专题管理,没有专题页面,可删除 |
/dede/vote_*.php | 投票功能,可删除 |
/dede/sys_sql_query.php | sql命令运行器,不需要的话可以改名为(sys_sql_query安全禁用.php)也可以删除 |
目录/plus要删除的文件 | 删除原因(正常的企业站可以只保留list.php、view.php、count.php、search.php、diy.php(企业站经常用到的表单)五个文件以及img文件夹,其他全部删除) |
---|---|
/plus/guestbook | 留言簿模块,整体删除,容易sql注入及垃圾留言, |
/plus/task和task.php | 计划任务控制文件,文件夹和文件都删除 |
/plus/bookfeedback.php、bookfeedback_js.php | 图书评论和评论调用文件,存在注入漏洞,不安全 |
/plus/bshare.php | 分享插件 |
/plus/ad_js.php | 广告插件,新闻资讯站用到的,请勿删除 |
/plus/car.php、posttocar.php、carbuyaction.php | 购物车 |
/plus/comments_frame.php | 调用评论,存在安全漏洞 |
/plus/digg_ajax.php、digg_frame.php | 顶踩 |
/plus/download.php、disdls.php | 下载和次数统计 |
/plus/erraddsave.php | 纠错 |
/plus/feedback.php、feedback_ajax.php、feedback_js.php | 评论 |
/plus/stow.php | 内容收藏 |
/plus/vote.php | 投票 |