怎么判断服务器是否被DDoS恶意攻击?
怀疑遇到攻击情况,首先要看看服务器上面的情况,首先top一下,看看服务器负载,如果负载不高,那么基本可以判断不是cc类型的攻击,再输入命令
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
查看下网络连接的情况,会得到下面这些结果:
TCP/IP协议使用三次握手来建立连接,过程如下:
1、第一次握手,客户端发送数据包syn到服务器,并进入SYN_SEND状态,等待回复
2、第二次握手,服务器发送数据报syn/ack,给客户机,并进入SYN_RECV状态,等待回复
3、第三次握手,客户端发送数据包ACK给客户机,发送完成后,客户端和服务器进入ESTABLISHED状态,链接建立完成
如果ESTABLISHED非常地高,那么可能是有人在恶意攻击,进一步判断,可以把下面命令保存为脚本执行一下:
for i in `netstat -an | grep -i ':80 '|grep 'EST' | awk '{print $5}' | cut -d : -f 1 | sort | uniq -c | awk '{if($1 50) {print $2}}'`
do
echo $i
echo $i /tmp/evilip
done
如果输出了多个结果,那么可能表示有人在企图进行DDOS攻击,想用TCP连接来拖死你的服务器,输出的ip就是发出请求的服务器地址,并且保存在了/tmp/evilip里面。如果没有结果,可以调整一下阈值,把50改成40试一试,对策我们后面再说,这里只讲判断。如果SYN_RECV非常高,那么表示受到了SYN洪水攻击。
SYN洪水是利用TCP/IP协议的设计缺陷来进行攻击的,采用一些策略以及配置可以适当的降低攻击的影响,但并不能完全消除。
sysctl -w net.ipv4.tcp_syncookies=1
sysctl -w net.ipv4.tcp_syn_retries = 0
sysctl -w net.ipv4.tcp_max_syn_backlog=2048
tcp_syncookies设置为1表示启用syncookie,可以大大降低SYN攻击的影响,但是会带来新的安全缺陷。
tcp_syn_retries 表示syn重试次数,重传次数设置为0,只要收不到客户端的响应,立即丢弃该连接,默认设置为5次。
tcp_max_syn_backlog表示syn等待队列,改小这个值,使得SYN等待队列变短,减少对系统以及网络资源的占用。
TCP连接攻击算是比较古老的了,防御起来也相对比较简单,主要是利用大量的TCP连接来消耗系统的网络资源,通常同一个IP会建立数量比较大的TCP连接,并且一直保持。应对方法也比较简单,可以将以下命令保存为脚本,定时ban掉那些傀儡机ip
for i in `netstat -an | grep -i ':80 '|grep 'EST' | awk '{print $5}' | cut -d : -f 1 | sort | uniq -c | awk '{if($1 50) {print $2}}'`
do
echo $i
echo $i /tmp/banip
/sbin/iptables -A INPUT -p tcp -j DROP -s $i
done
banip文件里面记录了所有被ban的ip地址信息,方面进行反渗透以及证据保存等等。为了更好地加固系统,我们可以使用iptables来限制一下,单个ip的最大连接数。
当攻击者的资源非常的多,上面这些方法限制可能就没有什么防护效果了,面对大流量DDoS攻击还是要考虑采用多机负载或者选择墨者安全高防来应对了,一般来说多机负载的成本可能更高,所以大部分人还是选择墨者高防硬防产品来防御。
DDoS攻击
• 分布式拒绝服务(DDoS:Distributed Denial of Service Attack)攻击是通过大规模互联网流量淹没目标服务器或其周边基础设施,以破坏目标服务器、服务或网络正常流量的恶意行为
• DDoS 攻击利用多台受损计算机系统作为攻击流量来源以达到攻击效果。利用的机器可以包括计算机,也可以包括其他联网资源(如 IoT 设备)
• 攻击者利用受控主机发送大量的网络数据包,占满攻击目标的带宽,使得正常请求无法达到及时有效的响应
• DNS 响应的数据包比查询的数据包大,攻击者发送的DNS查询数据包大小一般为 60 字节左右,而查询返回的数据包的大小通常在3000字节以上,因此放大倍数能达到50倍以上,放大效果惊人
• 主要通过对系统维护的连接资源进行消耗,使其无法正常连接,以达到拒绝服务的目的,此类攻击主要是因为TCP 安全性设计缺陷引起的
• 目标计算机响应每个连接请求,然后等待握手中的最后一步,但这一步确永远不会发生,因此在此过程中耗尽目标的资源
• 消耗应用资源攻击通过向应用提交大量消耗资源的请求,以达到拒绝服务的目的
• 这种类型的攻击较简单的实现可以使用相同范围的攻击 IP 地址、referrer 和用户代理访问一个 URL;复杂版本可能使用大量攻击性 IP 地址,并使用随机 referrer 和用户代理来针对随机网址
• LOTC是一个最受欢迎的DOS攻击工具。 这个工具曾经被流行的黑客集团匿名者用于对许多大公司的网络攻击
• 它可以通过使用单个用户执行 DOS 攻击小型服务器,工具非常易于使用,即便你是一个初学者。 这个工具执行DOS攻击通过发送UDP,TCP或HTTP请求到受害者服务器。你只需要知道服务器的IP地址或URL,其他的就交给这个工具吧
• XOIC是另一个不错的DOS攻击工具。它根据用户选择的端口与协议执行DOS攻击任何服务器。XOIC开发者还声称XOIC比LOIC在很多方面更强大
• 一般来说,该工具有三种攻击模式,第一个被称为测试模式,是非常基本的; 第二个是正常的DOS攻击模式; 最后一个是带有HTTP / TCP / UDP / ICMP消息的DOS攻击模式
• 对付小型网站来说,这是一个很有效的DDOS工具, 但是从来没有尝试的要小心点,你可能最终会撞自己的网站的服务器
• HULK是另一个不错的DOS攻击工具,这个工具使用某些其他技术来避免通过攻击来检测,它有一个已知的用户代理列表,且使用的是随机请求
• 输入 URL ,点击 Lock on,设置 Method 模式(比如 HTTP),设置速度等其他参数
• 点击 IMMA CHARING MAH LAZER ,开始攻击
• 打开被攻击的站点,发现此时已经打不开
1、查看流量设备,发现攻击者使用僵尸网络在某时间段内发起了DDoS攻击
2、进一步对网络数据包进行抓包分析,发现攻击者使用 HTTP 请求功能向服务器发起多次请求,服务器返回多个响应文件,造成网络负载过高
3、对服务器访问日志进行排查
1、配置防火墙策略,屏蔽异常访问的IP地址
2、调整防护设备策略,在不影响业务的情况下限制 HTTP Range 形式访问
3、如果流量远远超出出口带宽,建议联系运营商进行流量清洗
1、攻击前的防御阶段
2、攻击时的缓解阶段
3、攻击后的追溯总结阶段
• 尽量避免将非业务必需的端口暴露在公网上,避免与业务无关的请求和访问
• 对服务器进行安全加固,包括操作系统即服务软件,减少可能被攻击的点
• 优化网络架构,保证系统的弹性和冗余,防止单点故障发生
• 对服务器性能进行测试,评估正常业务下能承受的带宽,保证带宽有余量
• 对现有架构进行压力测试,评估当前业务吞吐处理能力
• 使用全流量监控设备(如天眼)对全网中存在的威胁进行监控分析,实时关注告警
• 根据当前技术架构、人员、历史攻击情况等,完善应急响应技术预案
怎样对网站进行DDOS攻击
如果只是用来做测试,可以下载个DDOS压力测试工具,非法攻击别人的网站是不道德的,请谨慎操作。
DDOS攻击的具体步骤
针对目前各大传奇私服站长受到盛大或者某些卑鄙小人的无耻行为,我特地整理了防止DDOS的攻击资料!
绝对可以防止针对传奇端口,或者WEB的大流量的DDOS承受大约40万个包的攻击量
设置保护80.7000.7100.7200等你的传奇端口的。
然后按下面整理的注册表修改或者添加下面的数值。
请注意,以下的安全设置均通过注册表进行修改,该设置的性能取决于服务器的配置,尤其是CPU的处理能力。如按照如下进行安全设置,采用双路至强2.4G的服务器配置,经过测试,可承受大约1万个包的攻击量。
接下来你就可以高枕无忧了。
一部份DDOS我们可以通过DOS命令netstat -an|more或者网络综合分析软件:sniff等查到相关攻击手法、如攻击某个主要端口、或者对方主要来自哪个端口、对方IP等。这样我们可以利用w2k自带的远程访问与路由或者IP策略等本身自带的工具解决掉这些攻击。做为无法利用这些查到相关数据的我们也可以尝试一下通过对服务器进行安全设置来防范DDOS攻击。
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
'关闭无效网关的检查。当服务器设置了多个网关,这样在网络不通畅的时候系统会尝试连接
'第二个网关,通过关闭它可以优化网络。
"EnableDeadGWDetect"=dword:00000000
'禁止响应ICMP重定向报文。此类报文有可能用以攻击,所以系统应该拒绝接受ICMP重定向报文。
"EnableICMPRedirects"=dword:00000000
'不允许释放NETBIOS名。当攻击者发出查询服务器NETBIOS名的请求时,可以使服务器禁止响应。
'注意系统必须安装SP2以上
"NonameReleaseOnDemand"=dword:00000001
'发送验证保持活动数据包。该选项决定TCP间隔多少时间来确定当前连接还处于连接状态,
'不设该值,则系统每隔2小时对TCP是否有闲置连接进行检查,这里设置时间为5分钟。
"KeepAliveTime"=dword:000493e0
'禁止进行最大包长度路径检测。该项值为1时,将自动检测出可以传输的数据包的大小,
'可以用来提高传输效率,如出现故障或安全起见,设项值为0,表示使用固定MTU值576bytes。
"EnablePMTUDiscovery"=dword:00000000
'启动syn攻击保护。缺省项值为0,表示不开启攻击保护,项值为1和2表示启动syn攻击保护,设成2之后
'安全级别更高,对何种状况下认为是攻击,则需要根据下面的TcpMaxHalfOpen和TcpMaxHalfOpenRetried值
'设定的条件来触发启动了。这里需要注意的是,NT4.0必须设为1,设为2后在某种特殊数据包下会导致系统重启。
"SynAttackProtect"=dword:00000002
'同时允许打开的半连接数量。所谓半连接,表示未完整建立的TCP会话,用netstat命令可以看到呈SYN_RCVD状态
'的就是。这里使用微软建议值,服务器设为100,高级服务器设为500。建议可以设稍微小一点。
"TcpMaxHalfOpen"=dword:00000064
'判断是否存在攻击的触发点。这里使用微软建议值,服务器为80,高级服务器为400。
"TcpMaxHalfOpenRetried"=dword:00000050
'设置等待SYN-ACK时间。缺省项值为3,缺省这一过程消耗时间45秒。项值为2,消耗时间为21秒。
'项值为1,消耗时间为9秒。最低可以设为0,表示不等待,消耗时间为3秒。这个值可以根据遭受攻击规模修改。
'微软站点安全推荐为2。
"TcpMaxConnectResponseRetransmissions"=dword:00000001
'设置TCP重传单个数据段的次数。缺省项值为5,缺省这一过程消耗时间240秒。微软站点安全推荐为3。
"TcpMaxDataRetransmissions"=dword:00000003
'设置syn攻击保护的临界点。当可用的backlog变为0时,此参数用于控制syn攻击保护的开启,微软站点安全推荐为5。
"TCPMaxPortsExhausted"=dword:00000005
'禁止IP源路由。缺省项值为1,表示不转发源路由包,项值设为0,表示全部转发,设置为2,表示丢弃所有接受的
'源路由包,微软站点安全推荐为2。
"DisableIPSourceRouting"=dword:0000002
'限制处于TIME_WAIT状态的最长时间。缺省为240秒,最低为30秒,最高为300秒。建议设为30秒。
"TcpTimedWaitDelay"=dword:0000001e
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetBT\Parameters]
'增大NetBT的连接块增加幅度。缺省为3,范围1-20,数值越大在连接越多时提升性能。每个连接块消耗87个字节。
"BacklogIncrement"=dword:00000003
'最大NetBT的连接快的数目。范围1-40000,这里设置为1000,数值越大在连接越多时允许更多连接。
"MaxConnBackLog"=dword:000003e8
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Afd\Parameters]
'配置激活动态Backlog。对于网络繁忙或者易遭受SYN攻击的系统,建议设置为1,表示允许动态Backlog。
"EnableDynamicBacklog"=dword:00000001
'配置最小动态Backlog。默认项值为0,表示动态Backlog分配的自由连接的最小数目。当自由连接数目
'低于此数目时,将自动的分配自由连接。默认值为0,对于网络繁忙或者易遭受SYN攻击的系统,建议设置为20。
"MinimumDynamicBacklog"=dword:00000014
'最大动态Backlog。表示定义最大"准"连接的数目,主要看内存大小,理论每32M内存最大可以
'增加5000个,这里设为20000。
"MaximumDynamicBacklog"=dword:00002e20
'每次增加的自由连接数据。默认项值为5,表示定义每次增加的自由连接数目。对于网络繁忙或者易遭受SYN攻击
'的系统,建议设置为10。
"DynamicBacklogGrowthDelta"=dword:0000000a
以下部分需要根据实际情况手动修改
'[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
'启用网卡上的安全过滤
'"EnableSecurityFilters"=dword:00000001
'
'同时打开的TCP连接数,这里可以根据情况进行控制。
'"TcpNumConnections"=
'
'该参数控制 TCP 报头表的大小限制。在有大量 RAM 的机器上,增加该设置可以提高 SYN 攻击期间的响应性能。
'"TcpMaxSendFree"=
'
'[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{自己的网卡接口}]
'禁止路由发现功能。ICMP路由通告报文可以被用来增加路由表纪录,可以导致攻击,所以禁止路由发现。
"PerformRouterDiscovery "=dword:00000000
ddos如何测试自己打出了多少G的流量?我有一台服务器,听说用什么测墙可以测出,求详细点,我有一台
关于ddos攻击 现在还没有人可以完全的防御
想防御ddos 唯一的办法就是 你的带宽足
就好比百度知道 他每天很多人访问 攻击百度的话
流量斗得按照TB算 netbot团队回答
0条大神的评论