大流量服务器 国产服务器系统
如何防止服务器被DOSS流量攻击如何避免路由器攻击九大方法
如何防止服务器被DOSS流量攻击(如何避免路由器攻击九大方法)
内容导航:
如何防止服务器被DOSS流量攻击
如何避免路由器攻击九大方法
用路由器防止DoS拒绝服务疯狂攻击的方法
一、如何防止服务器被DOSS流量攻击
以攻击时间段构建防御体系
这个分类方式核心是根据DDoS攻击发起的过程而产生的,可以大致分为事前安全、事中抵抗、事后分析,然后分析总结出结论后,再进行下一轮的事情安全循环。
以硬软件构建DDoS防御体系
(1)硬件方面首先要保证网络设备不能成为瓶颈,需要力所能及地采用高性能的网络设备构建网络体系。因此选择路由器、交换机、硬件防火墙等设备的时候要尽量选用知名度高、口碑好的产品。
(2)保证有充足的网络带宽支持。
(3)对服务器硬件进行升级或扩容,特别是服务器的cpu和内存。
(4)选择部署DDOS硬件防火墙的机房,比如说:景安网络郑州BGP机房
以管理员职责构建DDoS防御体系
(1)从企业管理员来看,关闭不惜要的服务、限制无用的端口连接、及时更新系统补丁等常规服务器安全配置。
(2)从IDC来看,目前国内基本都是主机托管的方式进行网络运营的,所以面对DDoS的时候,IDC应该尽一份力,如机房部署硬件防火墙,增加机房带宽的总出口等。
以攻击类型构建防御体系
二、如何避免路由器攻击九大方法也就是说任何人都可以在其局域网上使用且仅能用于内部的IP地址。这些特定的IP地址是不允许用在公网上的。但在将路由器用于互联网上的通信时,它还使用另外一个不同的IP地址,即公网IP地址。路由器的管理员无法控制公网IP地址,它是由把路由器连接到互联网的ISP提供的。
这样一来,除非做到公网IP仅能被互联网上的计算机找到,而私有IP地址仅能被局域网上的计算机看到,这样才能够筑起一道屏障,否则黑客们便可能登录进路由器,进而危及到整个局域网的设备。
就像网络操作系统一样,路由器操作系统也需要更新,以便纠正编程错误、软件瑕疵和缓存溢出的问题。要经常向你的路由器厂商查询当前的更新和操作系统的版本。
2.修改默认口令:据卡内基梅隆大学的计算机应急反应小组称,80%的安全事件都是由于较弱或者默认的口令引起的。避免使用普通的口令,并且使用大小写字母混合的方式作为更强大的口令规则。3.禁用HTTP设置和SNMP(简单网络管理协议):
你的路由器的HTTP设置部分对于一个繁忙的网络管理员来说是很容易设置的。但是,这对路由器来说也是一个安全问题。如果你的路由器有一个命令行设置,禁用HTTP方式并且使用这种设置方式。如果你没有使用你的路由器上的SNMP,那么你就不需要启用这个功能。思科路由器存在一个容易遭受GRE隧道攻击的SNMP安全漏洞。
4.封锁ICMP(互联网控制消息协议)ping请求:
ping和其它ICMP功能对于网络管理员和黑客都是非常有用的工具。黑客能够利用你的路由器上启用的ICMP功能找出可用来攻击你的网络的信息。
5.禁用来自互联网的telnet命令:
在大多数情况下,你不需要来自互联网接口的主动的telnet会话。如果从内部访问你的路由器设置会更安全一些。
6.禁用IP定向广播:
IP定向广播能够允许对你的设备实施拒绝服务攻击。一台路由器的内存和cpu难以承受太多的请求。这种结果会导致缓存溢出。
7.禁用IP路由和IP重新定向:
重新定向允许数据包从一个接口进来然后从另一个接口出去。你不需要把精心设计的数据包重新定向到专用的内部网路。
8.包过滤:
包过滤仅传递你允许进入你的网络的那种数据包。许多公司仅允许使用80端口(HTTP)和110/25端口(电子邮件)。此外,你可以封锁和允许IP地址和范围。9.禁用不必要的服务:
无论是路由器、服务器和工作站上的不必要的服务都要禁用。思科的设备通过网络操作系统默认地提供一些小的服务,如echo(回波),chargen(字符发生器协议)和discard(抛弃协议)。这些服务,特别是它们的UDP服务,很少用于合法的目的。但是,这些服务能够用来实施拒绝服务攻击和其它攻击。包过滤可以防止这些攻击。
三、用路由器防止DoS拒绝服务疯狂攻击的方法
拒绝服务(DoS)攻击是目前黑客广泛使用的一种攻击手段,它通过独占网络资源、使其他主机不能进行正常访问,从而导致宕机或网络瘫痪。
DoS攻击主要分为Smurf、SYNFlood和Fraggle三种,在Smurf攻击中,攻击者使用ICMP数据包阻塞服务器和其他网络资源;SYNFlood攻击使用数量巨大的TCP半连接来占用网络资源;Fraggle攻击与Smurf攻击原理类似,使用UDPecho请求而不是ICMPecho请求发起攻击。
尽管网络安全专家都在着力开发阻止DoS攻击的设备,但收效不大,因为DoS攻击利用了TCP协议本身的弱点。正确配置路由器能够有效防止DoS攻击。以Cisco路由器为例,Cisco路由器中的IOS软件具有许多防止DoS攻击的特性,保护路由器自身和内部网络的安全。
使用扩展访问列表
扩展访问列表是防止DoS攻击的有效工具。它既可以用来探测DoS攻击的类型,也可以阻止DoS攻击。ShowIPaccess-list命令能够显示每个扩展访问列表的匹配数据包,根据数据包的类型,用户就可以确定DoS攻击的种类。如果网络中出现了大量建立TCP连接的请求,这表明网络受到了SYNFlood攻击,这时用户就可以改变访问列表的配置,阻止DoS攻击。
使用QoS
使用服务质量优化(QoS)特征,如加权公平队列(WFQ)、承诺访问速率(CAR)、一般流量整形(GTS)以及定制队列(CQ)等,都可以有效阻止DoS攻击。需要注意的是,不同的QoS策略对付不同DoS攻击的效果是有差别的。例如,WFQ对付PingFlood攻击要比防止SYNFlood攻击更有效,这是因为PingFlood通常会在WFQ中表现为一个单独的传输队列,而SYNFlood攻击中的每一个数据包都会表现为一个单独的数据流。此外,人们可以利用CAR来限制ICMP数据包流量的速度,防止Smurf攻击,也可以用来限制SYN数据包的流量速度,防止SYNFlood攻击。使用QoS防止DoS攻击,需要用户弄清楚QoS以及DoS攻击的原理,这样才能针对DoS攻击的不同类型采取相应的'防范措施。
使用单一地址逆向转发
逆向转发(RPF)是路由器的一个输入功能,该功能用来检查路由器接口所接收的每一个数据包。如果路由器接收到一个源IP地址为10.10.10.1的数据包,但是CEF(CiscoExpressForwarding)路由表中没有为该IP地址提供任何路由信息,路由器就会丢弃该数据包,因此逆向转发能够阻止Smurf攻击和其他基于IP地址伪装的攻击。
使用RPF功能需要将路由器设为快速转发模式(CEFswitching),并且不能将启用RPF功能的接口配置为CEF交换。RPF在防止IP地址欺骗方面比访问列表具有优势,首先它能动态地接受动态和静态路由表中的变化;第二RPF所需要的操作维护较少;第三RPF作为一个反欺骗的工具,对路由器本身产生的性能冲击,要比使用访问列表小得多。
使用TCP拦截
Cisco在IOS11.3版以后,引入了TCP拦截功能,这项功能可以有效防止SYNFlood攻击内部主机。
在TCP连接请求到达目标主机之前,TCP拦截通过拦截和验证来阻止这种攻击。TCP拦截可以在拦截和监视两种模式下工作。在拦截模式下,路由器拦截到达的TCP同步请求,并代表服务器建立与客户机的连接,如果连接成功,则代表客户机建立与服务器的连接,并将两个连接进行透明合并。在整个连接期间,路由器会一直拦截和发送数据包。对于非法的连接请求,路由器提供更为严格的对于half-open的超时限制,以防止自身的资源被SYN攻击耗尽。在监视模式下,路由器被动地观察流经路由器的连接请求,如果连接超过了所配置的建立时间,路由器就会关闭此连接。
在Cisco路由器上开启TCP拦截功能需要两个步骤:一是配置扩展访问列表,以确定需要保护的IP地址;二是开启TCP拦截。配置访问列表是为了定义需要进行TCP拦截的源地址和目的地址,保护内部目标主机或网络。在配置时,用户通常需要将源地址设为any,并且指定具体的目标网络或主机。如果不配置访问列表,路由器将会允许所有的请求经过。
使用基于内容的访问控制
基于内容的访问控制(CBAC)是对Cisco传统访问列表的扩展,它基于应用层会话信息,智能化地过滤TCP和UDP数据包,防止DoS攻击。
CBAC通过设置超时时限值和会话门限值来决定会话的维持时间以及何时删除半连接。对TCP而言,半连接是指一个没有完成三阶段握手过程的会话。对UDP而言,半连接是指路由器没有检测到返回流量的会话。
CBAC正是通过监视半连接的数量和产生的频率来防止洪水攻击。每当有不正常的半连接建立或者在短时间内出现大量半连接的时候,用户可以判断是遭受了洪水攻击。CBAC每分钟检测一次已经存在的半连接数量和试图建立连接的频率,当已经存在的半连接数量超过了门限值,路由器就会删除一些半连接,以保证新建立连接的需求,路由器持续删除半连接,直到存在的半连接数量低于另一个门限值;同样,当试图建立连接的频率超过门限值,路由器就会采取相同的措施,删除一部分连接请求,并持续到请求连接的数量低于另一个门限值。通过这种连续不断的监视和删除,CBAC可以有效防止SYNFlood和Fraggle攻击。
路由器是企业内部网络的第一道防护屏障,也是黑客攻击的一个重要目标,如果路由器很容易被攻破,那么企业内部网络的安全也就无从谈起,因此在路由器上采取适当措施,防止各种DoS攻击是非常必要的。用户需要注意的是,以上介绍的几种方法,对付不同类型的DoS攻击的能力是不同的,对路由器cpu和内存资源的占用也有很大差别,在实际环境中,用户需要根据自身情况和路由器的性能来选择使用适当的方式。
linux服务器流出流量过大 是否木马
不是木马,是设置问题,下面是流量的控制方法
一、Linux流量控制过程分二种:
1、队列控制即 QOS,瓶颈处的发送队列的规则控制,常见的有 SFQ PRIO
2、流量控制即带宽控制,队列的排队整形,一般为 TBF HTB
二、Linux流量控制算法分二种:
1、无类算法用于树叶级无分支的队列,例如:SFQ
2、分类算法用于多分支的队列,例如:PRIO TBF HTB
三、具体实现:
1.在网卡上建立以SFQ算法的限流
#tc qdisc add dev eth0 root handle 1: sfq
SFQ参数有 perturb(重新调整算法间隔) quantum基本上不需要手工调整:
handle 1:规定算法编号..可以不用设置由系统指定..
#tc qdisc sh dev eth0显示算法
#tc qd del dev eth0 root删除注:默认 eht0支持 TOS
2.在网卡建立以 TBF算法的限流
#tc qd add dev eth1 root handle 1: tbf rate 256kbit burst 10000 latency 50ms
速率 256kbit突发传输 10k最大延迟 50ms
#tc-s qd sh dev eth1统计
#tc qd del dev eth1 root删除
3.在网卡建立 PRIO
#tc qdisc add dev eth0 root handle 1: prio
#此命令立即创建了类: 1:1, 1:2, 1:3(缺省三个子类)
#tc qdisc add dev eth0 parent 1:1 handle 10: sfq
#tc qdisc add dev eth0 parent 1:2 handle 20: tbf rate 20kbit buffer 1600 limit 3000
注:此为 TBF限速的另一写法,前文有讲解.
#tc qdisc add dev eth0 parent 1:3 handle 30: sfq
4. WEB服务器的流量控制为 5Mbps,SMTP流量控制在 3Mbps上.而且二者一共不得超过 6Mbps,互相之间允许借用带宽
#tc qdisc add dev eth0 root handle 1:0 cbq bandwidth 100Mbit avpkt 1000 cell 8
#tc class add dev eth0 parent 1:0 classid 1:1 cbq bandwidth 100Mbit rate 6Mbit weight
0.6Mbit prio 8 allot 1514 cell 8 maxburst 20 avpkt 1000 bounded
这部分按惯例设置了根为 1:0,并且绑定了类 1:1.也就是说整个带宽不能超过 6Mbps.
#tc class add dev eth0 parent 1:1 classid 1:3 cbq bandwidth 100Mbit rate 5Mbit weight
0.5Mbit prio 5 allot 1514 cell 8 maxburst 20 avpkt 1000
#tc class add dev eth0 parent 1:1 classid 1:4 cbq bandwidth 100Mbit rate 3Mbit weight
0.3Mbit prio 5 allot 1514 cell 8 maxburst 20 avpkt 1000
建立了 2个类.注意我们如何根据带宽来调整 weight参数的.两个类都没有配置成"bounded",但它们都连
接到了类 1:1上,而 1:1设置了"bounded".所以两个类的总带宽不会超过 6Mbps.别忘了,同一个 CBQ下面的子
类的主号码都必须与 CBQ自己的号码相一致!
#tc qdisc add dev eth0 parent 1:3 handle 30: sfq
#tc qdisc add dev eth0 parent 1:4 handle 40: sfq
缺省情况下,两个类都有一个 FIFO队列规定.但是我们把它换成 SFQ队列,以保证每个数据流都公平对待.
#tc filter add dev eth0 parent 1:0 protocol ip prio 1 u32 match ip sport 80 0xffff flowid
1:3
#tc filter add dev eth0 parent 1:0 protocol ip prio 1 u32 match ip sport 25 0xffff flowid
1:4
6.过滤器过滤示例
#tc filter add dev eth0 protocol ip parent 10: prio 1 u32 match ip dport 22 0xffff flowid 10:1
在 10:节点添加一个过滤规则,优先权 1:凡是去往 22口(精确匹配)的 IP数据包,发送到频道 10:1..
#tc filter add dev eth0 protocol ip parent 10: prio 1 u32 match ip sport 80 0xffff flowid 10:1
在 10:节点添加一个过滤规则,优先权 1:凡是来自 80口(精确匹配)的 IP数据包,发送到频道 10:1..
#tc filter add dev eth0 protocol ip parent 10: prio 2 flowid 10:2
在 eth0上的 10:节点添加一个过滤规则,它的优先权是 2:凡是上二句未匹配的 IP数据包,发送到频道 10:2..
#tc filter add dev eth0 parent 10:0 protocol ip prio 1 u32 match ip dst 4.3.2.1/32 flowid 10:1
去往 4.3.2.1的包发送到频道 10:1其它参数同上例
#tc filter add dev eth0 parent 10:0 protocol ip prio 1 u32 match ip src 1.2.3.4/32 flowid 10:1
来自 1.2.3.4的包发到频道 10:1
#tc filter add dev eth0 protocol ip parent 10: prio 2 flowid 10:2
凡上二句未匹配的包送往 10:2
#tc filter add dev eth0 parent 10:0 protocol ip prio 1 u32 match ip src 4.3.2.1/32 match
ip sport 80 0xffff flowid 10:1
可连续使用 match,匹配来自 1.2.3.4的 80口的数据包
100万流量需要多大服务器
之前了解了一下国内某团购网站的架构,其中提到了服务器硬件和pv以及qps的一些关系。
百万级别的访问量,应该指的是PV吧。
并发数计算PV的粗算计算公式是
qps(或并发数)x86400(秒)÷2(分昼夜)
所以PV100万粗算来并发数只有23。
按照经验,剥离图片和js,css等静态页面,纯动态内容。一台4核4G内存的机器可以抗住100左右的并发数。
百万pv小网站的并发只有23.1000000÷86400x2=23
4核4G,能抗住100左右的并发,日五百万级别的pv了。
服务器资源的消耗主要是后端程序这一块,例如tomcat或php等其他需要链接数据库的程序,还有些需要编译的内容。所以这个公式只能是粗算,因为提供的服务大家各不相同。
概念:
QPS=req/sec=请求数/秒
qps是new的请求,叫每秒新建链接数,很多连接进来的链接,已经tcp三次握手的完成内容交互之后的,没有超过tcp的断开时间,虽然是活动状态,但是已经基本不消耗服务器资源了,这种是最大活动链接数,每台机器65535个链接数,这个链接数基本不考虑。
PV=PageView
pv是指页面被浏览的次数,比如你打开一网页,那么这个网站的pv就算加了一次。
100万访问量的网站对带宽的需求。我们知道每天的访问量高峰期从早上8点逐渐上升,上午和下午均可能达到最高点。我们以早8点至晚12点位高峰期时段,总共16个小时,那我们用1000000除以16小时,得到数值每小时访问量为62500,每小时是3600秒,那得到每秒的访问量是17左右。(注意,这只是粗略计算,大家可以根据自己的实际情况具体算,这里只是提供一个大概的思路。)如果我们网站每个页面大小为200KB,那就每秒需要的带宽是17*200KB*8,大概为26.5M的带宽。
如果您无法根据上面的思路计算,您可以线购买个20M左右的带宽,在服务器上安装一个流量统计软件,根据实时统计,观察下带宽使用情况,如果带宽不够,可以随时增加。