DDoSdeflate是一款运行于Linux下,专门用于防止/减轻类DDOS攻击的程序。大多数DDOS攻击都是采取若干傀儡机同时对某一服务器发出大量连接请求,以耗光服务器资源的方法。DDOS攻击的现场,目标服务器会出现难以理解的高负载、高请求数量、单IP同时发出大量请求等症状,导致的直接后果就是ServiceUnavailable(服务不可用)。对于大面积的DDOS攻击,采用硬件防火墙才能有效地解决问题;但对于小面积的DDOS攻击,一般软件防火墙即可。由于DDOS攻击即模拟正常的访问请求,因此攻击IP与正常访问IP并没有本质的区别(无非连接数多而已),使得小型的VPS难以防范DDOS攻击手段。防御原理DDoSdeflate的原理是通过netstat命令找出发出过量连接的单个IP,并使用iptables防火墙将这些IP进行拒绝。由于iptables防火墙拒绝IP的连接远比从Apache层面上来得高效,因此iptables便成了运行在Apache前端的“过滤器”。同样的,DDoSdeflate也可以设置采用APF(高级防火墙)进行IP阻止。如何确定DDOS攻击?执行:netstat-ntu|awk'{print$5}'|cut-d:-f1|sort|uniq-c|sort-n执行后,将会显示服务器上所有的每个IP多少个连接数。以下是我自己用VPS测试的结果:li88-99:~#netstat-ntu|awk'{print$5}'|cut-d:-f1|sort|uniq-c|sort-n114.226.9.132174.129.237.15758.60.118.142Addressservers)118.26.131.78123.125.1.202220.248.43.119117.36.231.253119.162.46.124219.140.232.128220.181.61.3167.215.242.196(这个看起来像攻击)每个IP几个、十几个或几十个连接数都还算比较正常,如果像上面成百上千肯定就不正常了。1、安装DDoSdeflatewgethttp://www.inetbase.com/scripts/ddos/install.sh//下载DDoSdeflatechmod0700install.sh//添加权限./install.sh//执行2、配置DDoSdeflate下面是DDoSdeflate的默认配置位于/usr/local/ddos/ddos.conf,内容如下:#####PathsofthescriptandotherfilesPROGDIR="/usr/local/ddos"PROG="/usr/local/ddos/ddos.sh"IGNORE_IP_LIST="/usr/local/ddos/ignore.ip.list"//IP地址白名单CRON="/etc/cron.d/ddos.cron"//定时执行程序APF="/etc/apf/apf"IPT="/sbin/iptables"#####frequencyinminutesforrunningthescript#####Caution:Everytimethissettingischanged,runthescriptwith--cron#####optionsothatthenewfrequencytakeseffectFREQ=1//检查时间间隔,默认1分钟#####HowmanyconnectionsdefineabadIP?Indicatethatbelow.NO_OF_CONNECTIONS=150//最大连接数,超过这个数IP就会被屏蔽,一般默认即可#####APF_BAN=1(MakesureyourAPFversionisatleast0.96)#####APF_BAN=0(UsesiptablesforbanningipsinsteadofAPF)APF_BAN=1//使用APF还是iptables。推荐使用iptables,将APF_BAN的值改为0即可。#####KILL=0(BadIPsare'ntbanned,goodforinteractiveexecutionofscript)#####KILL=1(Recommendedsetting)KILL=1//是否屏蔽IP,默认即可#####AnemailissenttothefollowingaddresswhenanIPisbanned.#####BlankwouldsuppresssendingofmailsEMAIL_TO="root"//当IP被屏蔽时给指定邮箱发送邮件,推荐使用,换成自己的邮箱即可#####Numberofsecondsthebannedipshouldremaininblacklist.BAN_PERIOD=600//禁用IP时间,默认600秒,可根据情况调整用户可根据给默认配置文件加上的注释提示内容,修改配置文件。卸载wgethttp://www.inetbase.com/scripts/ddos/uninstall.ddoschmod0700uninstall.ddos./uninstall.ddos/usr/local/ddos/ddos.sh-k30强行屏蔽连接数大于30的IP更多使用说明,请直接more/usr/local/ddos/ddos.sh查看来源:http://www.crazycen.com/linux/1372.html
0x00背景这两天一个客户反映自己的网站经常出现mysql1040错误,他的在线用户才不到一千,mysql配置也没问题,vps用的时linode160+刀一个月的。没理由出现这种情况,于是,我进行了一系列的排查。top了一下,mysqld跑到了900%多。0x01解决方案&思路我怀疑是CC攻击,鉴于系统是centos,我运行了下面的这两行命令。netstat-anlp|grep80|greptcp|awk'{print$5}'|awk-F:'{print$1}'|sort|uniq-c|sort-nr|head-n20|netstat-ant|awk'/:80/{split($5,ip,":");++A[ip[1]]}END{for(iinA)printA[i],i}'|sort-rn|head-n20把请求过多的IP记录下来。174.127.94.*199.27.128.*199.27.133.*开始封禁IP,具体可以看我下面运行的命令。本文主要是采用iptables进行封禁,iptables使用方法请见:Iptables入门教程iptables-IINPUT-s174.127.94.0/16-jDROPiptables-IINPUT-s199.27.128.0/16-jDROPiptables-IINPUT-s199.27.133.0/16-jDROPiptables-IINPUT-s193.1.0.0/8-jDROP【慎用封禁整个段】运行上面这些命令之后我们已经完成封禁操作了,不过还得保存一下,如果不保存的话重启系统之后上面设定的规则会消失。serviceiptablessave运行下面这行命令,来查看谁的访问量最高(需要服务器安装tcpdump)tcpdump-ieth0-tnndstport80-c1000|awk-F"."'{print$1"."$2"."$3"."$4}'|sort|uniq-c|sort-nr|head-20tcpdump:verboseoutputsuppressed,use-vor-vvforfullprotocoldecodelisteningoneth0,link-typeEN10MB(Ethernet),capturesize65535bytes1000packetscaptured1000packetsreceivedbyfilter0packetsdroppedbykernel1420IP174.7.7.*然后将packets过多的IP记录下来,用上面的方法封禁。运行serviceiptablessave保存然后重启iptablesserviceiptablesrestart这一步建议多进行几次,发现异常IP用上面的办法封禁。如果出现误封可以参考下面这行解封命令进行解封iptables-DINPUT-s222.142.2.0/16-jDROP0x02常用命令封单个IP的命令是:iptables-IINPUT-s211.1.0.0-jDROP封IP段的命令是:iptables-IINPUT-s211.1.0.0/16-jDROPiptables-IINPUT-s211.2.0.0/16-jDROPiptables-IINPUT-s211.3.0.0/16-jDROP封整个B段的命令是:iptables-IINPUT-s211.0.0.0/8-jDROP封几个段的命令是:iptables-IINPUT-s61.37.80.0/24-jDROPiptables-IINPUT-s61.37.81.0/24-jDROP0x03后续进行了上面的操作之后,客户的网站正常了,几乎秒开,当然这和他的vps给力也有一定的关系。top了一下,服务器资源也正常了。来源:http://drops.wooyun.org/tips/2457
PS:在运维工作中,压力测试是一项很重要的工作。比如在一个网站上线之前,能承受多大访问量、在大访问量情况下性能怎样,这些数据指标好坏将会直接影响用户体验。但是,在压力测试中存在一个共性,那就是压力测试的结果与实际负载结果不会完全相同,就算压力测试工作做的再好,也不能保证100%和线上性能指标相同。面对这些问题,我们只能尽量去想方设法去模拟。所以,压力测试非常有必要,有了这些数据,我们就能对自己做维护的平台做到心中有数。Webbench是知名的网站压力测试工具,它是由Lionbridge公司(http://www.lionbridge.com)开发。Webbench能测试处在相同硬件上,不同服务的性能以及不同硬件上同一个服务的运行状况。webbench的标准测试可以向我们展示服务器的两项内容:每秒钟相应请求数和每秒钟传输数据量。webbench不但能具有便准静态页面的测试能力,还能对动态页面(ASP,PHP,JAVA,CGI)进行测试的能力。还有就是他支持对含有SSL的安全网站例如电子商务网站进行静态或动态的性能测试。Webbench最多可以模拟3万个并发连接去测试网站的负载能力。官方主页:http://home.tiscali.cz/~cz210552/webbench.html官方介绍:WebBenchisverysimpletoolforbenchmarkingWWWorproxyservers.Usesfork()forsimulatingmultipleclientsandcanuseHTTP/0.9-HTTP/1.1requests.Thisbenchmarkisnotveryrealistic,butitcantestifyourHTTPDcanrealyhandlethatmanyclientsatonce(trytorunsomeCGIs)withouttakingyourmachinedown.Displayspages/minandbytes/sec.Canbeusedinmoreaggressivemodewith-fswitch.1、WebBench安装:wgethttp://www.ha97.com/code/webbench-1.5.tar.gztarzxvfwebbench-1.5.tar.gzcdwebbench-1.5makemakeinstall2、WebBench使用:webbench-c1000-t60http://192.168.80.157/phpinfo.phpwebbench-c并发数-t运行测试时间URLApache测试实例结果:当并发300时,root[~]#webbench-c300-t60http://192.168.80.157/phpinfo.phpWebbench-SimpleWebBenchmark1.5Copyright(c)RadimKolar1997-2004,GPLOpenSourceSoftware.Benchmarking:GEThttp://192.168.80.157/phpinfo.php300clients,running60sec.Speed=24525pages/min,20794612bytes/sec.Requests:24525susceed,0failed.每秒钟响应请求数:24525pages/min,每秒钟传输数据量20794612bytes/sec.当并发1000时,已经显示有87个连接failed了,说明超负荷了。root[~]#webbench-c1000-t60http://192.168.80.157/phpinfo.phpWebbench-SimpleWebBenchmark1.5Copyright(c)RadimKolar1997-2004,GPLOpenSourceSoftware.Benchmarking:GEThttp://192.168.80.157/phpinfo.php1000clients,running60sec.Speed=24920pages/min,21037312bytes/sec.Requests:24833susceed,87failed.并发1000运行60秒后产生的TCP连接数12000多个:总结:1、压力测试工作应该放到产品上线之前,而不是上线以后;2、测试时并发应当由小逐渐加大,比如并发100时观察一下网站负载是多少、打开页面是否流畅,并发200时又是多少、网站打开缓慢时并发是多少、网站打不开时并发又是多少;3、更详细的进行某个页面测试,如电商网站可以着重测试购物车、推广页面等,因为这些页面占整个网站访问量比重较大。来源:http://www.ha97.com/4623.htmlWebbench最多可以模拟3万个并发连接去测试网站的负载能力1、下载和安装cd/usr/local/wgethttp://blog.s135.com/soft/linux/webbench/webbench-1.5.tar.gz安装依赖包yuminstall-ymanctagsmkdir-p/usr/local/man/man1#解压安装tarzxvfwebbench-1.5.tar.gzcdwebbench-1.5make&&makeinstall2、使用说明webbench-c500-t30http://127.0.0.1/test.jpg参数说明:-c表示并发连接客户端,-t表示时间(秒)强并发测试:webbench-f-c500-t30http://192.168.224.31/index.html3、Troubshooting:1)make时报错在安装编译webbench的时候,出现如下错误信息ctags*.c/bin/sh:ctags:commandnotfoundmake:[tags]Error127(ignored)意思是说缺少ctags命令,运行以下命令即可yuminstallctags2)makeinstall时报错makeinstallinstall-swebbench/usr/local/bininstall-m644webbench.1/usr/local/man/man1install:cannotcreateregularfile`/usr/local/man/man1':Nosuchfileordirectorymake:***[install]Error1直接执行mkdir-p/usr/local/man/man1即可来源:http://blog.sina.com.cn/s/blog_61c07ac50101ln3y.html==================================================简易版(或http://www.hack001.com/webbench-1.5.tar.gz):wgethttp://www.ha97.com/code/webbench-1.5.tar.gztarzxvfwebbench-1.5.tar.gzcdwebbench-1.5makemakeinstall开始测试:webbench-c1000-t60http://192.168.80.157/phpinfo.php如果makeinstall报错cannotcreateregularfile直接执行mkdir-p/usr/local/man/man1即可
dede默认的分页是2个不同的url,如下:www.hack001.com/lm/index.htmlwww.hack001.com/lm/list_1.html从seo角度考虑,不是很好(其实也无所谓啦),现在需要把这2个一样的url都搞成index.html,以免网站逼格不够,修改方法如下:1,找到\include\arc.listview.class.php这个文件,将$typedir=ereg_replace('{cmspath}',$GLOBALS['cfg_cmspath'],$this->Fields['typedir']);这段代码添加到"//获得上一页和主页的链接"前面;2,找到下面几行代码(就在"//获得上一页和主页的链接"下面)if($this->PageNo!=1){$prepage.="<li><ahref='".str_replace("{page}",$prepagenum,$tnamerule)."'>上一页</a></li>\r\n";$indexpage="<li><ahref='".str_replace("{page}",1,$tnamerule)."'>首页</a></li>\r\n";}改成:if($this->PageNo!=1){if($prepagenum==1){$prepage.="<li><ahref=\"".$typedir."/\">上一页</a></li>\r\n";}else{$prepage.="<li><ahref=\"".str_replace("{page}",$prepagenum,$tnamerule)."\">上一页</a></li>\r\n";}$indexpage="<li><ahref=\"".$typedir."/\">首页</a></li>\r\n";}3.找到$listdd.="<li><ahref='".str_replace("{page}",$j,$tnamerule)."'>".$j."</a></li>\r\n";改成:if($j==1){$listdd.="<li><ahref=\"".$typedir."/\">".$j."</a></li>\r\n";}else{$listdd.="<li><ahref=\"".str_replace("{page}",$j,$tnamerule)."\">".$j."</a></li>\r\n";}分页url问题解决。
自己做网络有好几年了,经常有朋友常问我做一个网站要多少钱?也许你百度一下找找做网站多少钱,会发现很多结果。也许有人会告诉你需要2,3千,甚至上万。也许有人会告诉你也就几百块。这里我要告诉你的是,网站的真实成本:网站=网站域名+网站空间+网站程序,所以:网站的成本那么就是=网站域名(50-100)+网站空间(100-500)+网站程序(零成本至上万)这里所说的网站域名以及空间的成本大部分都是那样,不会有太大的波动,而网站程序可能是零成本,以为网站程序和我们普通用的电脑程序差不多,也有免费,也有共享收费的。所以这样看来,网站的最低成本应该说是200-600元之间。看到这里可能你要问我了,为什么网上大部分网民都会说是上千元。这里分析一下。1。回答这个问题的人是做网站的个人或公司企业,他们跟你说的价格参考大部分最终目的是为了做网站接单。2。回答你问题的人是自己做过网站,知道价格的人,他们做网站的价格往往是1500-5000元不等。因为这个价格也是国内网站建设比较适合的价格。那么要做一个网站到底需要多少钱能够做好,做到网站后期维护,网站空间,域名都有很好的保障,这才是决定性因素,也是网站真正价值合适的体现,前段时间我徒弟喊着网站打不开,是因为服务器的原因。网站空间其实也就是服务器上的一部分空间,只不过服务器是24小时工作为网站能够正常运行而工作的,所以一个服务器在1年中不可能什么故障都没有的,一旦服务器出了问题,那么我们的网站也就打不开了,这时候难道我们做的网站就这样没了吗?其实不是,服务器出问题了有很多原因,这里不做详解,但是这就涉及到我们做网站后的切身利益。如果花了几千块钱做完了一个网站由于服务器空间原因导致我们网站打不开,甚至数据丢失,那损失就大了。所以在这里给广大想做网站的朋友提以下建议供参考。1。找谁做网站,价格如何?现在国内做网站的人分为2类,一类是个人,一类是公司。个人做网站价格相对便宜,1千左右,甚至几百都有人做。一类是公司,一般公司做价格相对要贵很多。价格一般在2000-5000以上。2。做网站需要签订哪些合同为好?找个人做网站就没什么合同而言了,而找公司做网站,最好签订合同,这里个人建议签订这几个合同。①网站建设合同(大概就是网站什么时间完成,首付款之类的协议)②虚拟主机空间租用合同(这就是前面说的网站空间,在这个合同里要注明网站需要多大空间,一般100M足够)3。做完网站后需要向制造网站的个人或公司索取什么?前面已经说到网站是由空间域名程序组成的,所以这里我们既然出钱制作了,所以这三样东西,我们都需要索取。但是这是虚拟的东西,在外行人来说怎么做呢.....①网站空间密码(我们需要索取网站空间的FTP空间账户密码,也就是管理空间的账户,有了这个账户就有了网站的管理权限,当我们需要给网站改版,优化,或者利用空间存放网络资源的时候都需要这个账户,所以网站完成之后我们应该索取网站的空间账户密码)②网站域名密码(也就是我们的网站输入的地址,这里我遇到一些朋友找人做网站受骗在域名上,这里要注意我们如果支付了网站域名费用,我们的域名往往是以这样的模式展现——www.90qb.com前面是三个w,后面是.com并且中间没有其他"."了,这个就属于顶级域名,只有顶级域名才会有50-100的价格。如果不是,可能网站制作方根本没有给你买域名,我的几个朋友也就是这样上当的,所以在域名上一定要注意。在域名上还要注意的就是一定要想做网站的人索取域名管理密码。这个密码也就是域名指向的密码。当我们网站换域名或者网站空间改变都会用到这个密码)③网站完工之后的程序(我们花钱做网站最核心的东西就是网站的程序了,所以我们一定要向他们索取网站程序,即使你看不懂程序是怎么样的,但是内行人是懂的,当你的网站空间或者网站需要改版,优化,换空间也都需要最核心的网站程序,所以这个很重要,这里给大家说下,网站程序一般为后缀.php,.asp,.html之类的网页文件)这三项东西是我们做网站最需要注意的地方,希望对您有所帮助。这里回过头说下大家关心的做网站多少钱的问题上。其实做网站如果一定要需要把他定个价格,我以几年的网站建设经验告诉大家以下数据。个人做网站价格——500-2500优点:便宜。缺点:售后很难保障公司企业做网站——1500-6000优点:有售后,有保障。缺点:价格贵。从上面看就可以很直观的看出做网站多少钱的问题了。————————————————————————————————————————————本人在一大型网络公司上班,如果需要做网站可以找我,签订以上所有合同,价格便宜在800-1500。如果需要网站特殊功能和网站个人需求可以面议。对本文有所疑惑的可以联系我。我QQ251323708.欢迎加我咨询,
步骤一:打开下面这个地址:http://api.map.baidu.com/lbsapi/creatmap/index.html步骤二:定位中心点在打开的页面左侧,输入企业的详细地址,然后点查找,即可在右侧的地图中显示企业的具体位置。步骤三:设置地图主要是设置地图的尺寸大小,其它的按照默认即可,比如我们要调用的地图大小宽度为600像素,高度为500像素步骤四:添加标注这是关键的一步,点开后,我们点选那个绿色的小点图标,然后在地图上企业所在的位置点击一下,即可标注好地点,标记好了之后,在标记图标的下面有“名称”和“备注”两个输入框,这里可以输入企业名称和企业相关的信息,一定不能浪费掉。编辑好之后,千万不要忘记点保存,否则无效的。步骤五:获取代码上面都设置好之后,我们点击下面的“获取代码”按钮即可获得地图的调用代码。全部复制下来,然后在桌面上新建一个文本文档,将代码复制进去后保存。重命名文本为:“baidumap.html”步骤六:将baidumap.html这个文件上传到自己空间的根目录下。在我们需要调用地图的地方,插入以下代码:<iframesrc="/baidumap.html"frameBorder=0height=600width=500scrolling=no></iframe>height=600指的是地图的高度;width=500指的是地图的宽度,这个根据实际地图大小来修改,不写也可以的。
其实标准的网制作完成的工作实际是:psdtohtml,一般情况下,我们会拿到美工的psd,这时候不同的人会有不同的做法:1.打开fireworks将图片切割导出为html。2.直接在dreamweaver之类的工具去拖拉布局,导入相关的图片,flash资源。3.先在ps中完成切图后,在文本编辑器中看着效果图一步步的制作。以上是大多被采用的方法,但都不好:第一种方法最为不好,这样的代码根本不具维护性和可读性。第二种方法也不好,代码难免会有冗余,做出来的东西基本需要排查一遍。第三种方法也不好,因为你需要看效果图一点点的拼,也就是说写html标签的时候,你在不断的假设这块要怎么去显示。正确的做法是:1.拿到psd后,先不要做别的,直接在文本编辑器中将网页的框架写出来,不要假设这块将来css要去怎么渲染,完全自然化的标签,不加任何的css。2.写完之后在各个浏览器运行之后确保大体定位都没有问题。3.书写总体css,这里的css只负责大块的定位及样式。4.切出需要的图片资源,在写好的框架中一点点的去构造,不断的调试,最终为成品。5.最后,为自己的代码添加注释,在css,html中都要合适的为自己的代码添加注释。要想做出能灵活切换皮肤,让css主导表现,还有很多要注意的地方,但大体的流程就是这样的,当然我们一开始不能直接就做到先写html,但起码要有这个意识,循序渐进。。。当然还有一些自动生成的工具,比如:Divbrush关联切片(guanlian8)等