网络安全

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即可

网络安全

方法1.  在安装过程中,安装到选择需要安装的组件时,点高级就可以了。之后就会看到更改安装路径的地方,如图:方法2.更改注册表的默认安装路径:  安装完成需要站500M左右空间  可以更改路径安装,下面是更改方法:  打开注册表找到:“HEKY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion”在右侧窗口中找到“ProgramFilesDir”的字符串,双击把数值由“C:\ProgramFiles”修改为“D:\ProgramFiles”确定后退出注册表就OK了  方法3.  首先:不修改路径,使用默认方式安装,最后在确认安装时会显示ConfigurationFile.ini文件的路径,到这个路径下面将安装配置文件复制到其他路径,例如D:\,然后退出安装  其次:使用记事本打开这个文件,根据实际需求将“C:\ProgramFiles\MicrosoftSQLServer”查找替换为“D:\ProgramFiles\MicrosoftSQLServer”后保存  最后:在命令行转到安装目录,开始安装,如果是Vista,记得使用管理员权限运行命令行,输入以下指令:  setup.exe/action=Install/configurationfile=D:\ConfigurationFile.ini  当然我们也可以使用高级安装模式选择使用配置文件进行安装,这个是图形化的--  方法4.  插入光盘后不要用autorun的安装,使用命令行安装!cd进安装光盘的根目录,输入命令:  setup.exe/INSTALLSHAREDDIR="D:\\ProgramFiles\\MicrosoftSQLServer\\"/INSTALLSHAREDWOWDIR="D:\\ProgramFiles(x86)\\MicrosoftSQLServer\\"  安装即可,其中INSTALLSHAREDDIR为x64部件安装的路径,INSTALLSHAREDWOWDIR为x32部件安装的路径。转自:http://blog.csdn.net/xcntime/article/details/7374960还可以这样改:通过xp_instance_regwrite来修改注册表数据库默认路径保存在注册表里,我们可以通过xp_instance_regwrite来修改注册表,具体可以试试下面的方法:--1.更改資料文件默認存放路經:EXECxp_instance_regwrite@rootkey='HKEY_LOCAL_MACHINE',@key='Software\Microsoft\MSSQLServer\MSSQLServer',@value_name='DefaultData',@type=REG_SZ,@value='D:\MSSQL\Data'--2.更改日志文件默認存放路經:EXECmaster..xp_instance_regwrite@rootkey='HKEY_LOCAL_MACHINE',@key='Software\Microsoft\MSSQLServer\MSSQLServer',@value_name='DefaultLog',@type=REG_SZ,@value='D:\MSSQL\Data'转自:http://lygzhsun.blog.163.com/blog/static/54129392201192522845842/

2013-10-24 3883 0