游戏服务器被攻击了怎么办?

游戏服务器被攻击了怎么办?,第1张

随着互联网的发展,网民数量激增,电子游戏的普及,庞大的玩家数量必然推动游戏市场发展。游戏受到攻击是游戏开发者永远的痛点,谈“D“色变说的就是DDOS攻击,DDOS攻击是流量攻击的一个总称,还包括SYN Flood、ACK Flood、UDP Flood、TCP Flood、ICMP Flood以及CC攻击。受到攻击会使服务器奔溃玩家掉线,轻则引起玩家不满,重则玩家跑光,游戏倒闭。游戏受到攻击的问题不容忽视!

为什么游戏会被攻击?

1同行竞争:大部分攻击原因来自于行业恶性竞争,同行攻击使游戏短期内无法登陆,玩家跑去玩其他游戏,从中坐收渔翁之利。

2高盈利:攻击者受利益驱使,主动或被雇佣去攻击一些高盈利的游戏。特别是游戏行业对服务器的稳定性要求极高,受到攻击容易被勒索。

3玩家不满:游戏玩家与其他玩家发生冲突,或者对管理员不满,可能会攻击游戏宣泄不满。

如何解决?

(1)升级防御

原来的服务器相应防御不是很高的,有可能受到一点攻击就进入黑洞。可以升到更高防御。

(2)接入防护产品

针对比较大的攻击,市场上推出了一款专门的防护产品-游戏盾。游戏盾是通过封装登录器的方式隐藏真实IP,将对外IP修改成盾IP,在盾后台添加源IP和业务端口。利用高防节点池转发防护,接入游戏盾后攻击是到高防节点上,打死一个节点自动切换下个节点,将数据进行有效清洗过滤后转发回源机上。并且无视攻击,带有网络加速,防掉线功能。

使用游戏盾后源机的防御和线路(走盾节点)就不是那么重要了,也算是省了很多成本。而且也无视攻击,不再会因为受到攻击而烦恼。

一般服务器被攻击可能会出现以下几种情况:

服务器被拿下最高权限即系统权限

服务器被拿下webshell

服务器各种数据被社

服务器被C段或嗅探

服务器被各种0DAY打了

来自网络~~~

如何进行处理:

了解是什么类型的攻击。

1、先暂时关闭系统,重新修改账户密码

2、检查是否有多余的账号,清除影子账户。

3、检查服务端口,关闭不必要、不需要得端口,需要时再打开。

4、全面检测服务器,及时清除威胁信息,比如打上安全补丁等。

5、安装防火墙,比如服务器安全狗,可以阻挡很大部分的攻击。

6、在遭受攻击后,还有个就是查看下系统日志,看下黑客都去了哪里

通常所说的DOS有两种不同的概念,即拒绝服务或一种磁盘操作系统,通常DoS(O小写)指的是拒绝服务,DOS(O大写)指的是一种磁盘操作系统

随着计算机技术的发展,网络也在迅猛地普及和发展。人们在享受着网络带来的各种便利的同时,也受到了很多黑客的攻击。在众多的攻击种类中,有一种叫做 DoS(Denial of Service 拒绝服务)的攻击,是一种常见而有效的网络攻击技术,它通过利用协议或系统的缺陷,采取欺骗或伪装的策略来进行网络攻击,最终使得受害者的系统因为资源耗尽或无法作出正确响应而瘫痪,从而无法向合法用户提供正常服务。它看上去平淡无奇,但是攻击范围广,隐蔽性强、简单有效而成为了网络中一种强大的攻击技术,极大地影响了网络和业务主机系统的有效服务。其中,DDoS(Distubuted Denial of Service 分布式拒绝服务)更以其大规模性、隐蔽性和难防范性而著称。

在对Linux 2 4 内核防火墙netfilter 的原理深入研究后,分析了在netfilter 架构下防火墙的设计、实现和开发过程。以kylix3 0为开发环境,作者基于netfilter 架构开发了一款包过滤和应用代理的混合型防火墙,并对其做了测试。该防火墙系统是由包过滤管理模块、路由记录模块、应用代理模块(syn proxy)、扫描防御模块和日志记录模块构成。其中包过滤是基于netfilter 中的iptables 来实现的,网络地址转换也在包过滤管理模块中实现;路由记录模块通过修改Linux 内核中TCP/IP程序和重新编译内核使内核支持路由记录功能来实现的;在应用代理模块中实现了HTTP代理和一个通用代理服务,HTTP代理程序基于SQUID 实现,而通用代理由一个代理进程来实现;扫描防御模块中主要是通过一个网络扫描防御Demo 进程来监控是否有扫描发生;日志记录模块主要是选择记录日志的位置,有本机和邮件通知两种选择方式。针对常见的IP 地址欺骗、IP 源路由欺骗、ICMP 重定向欺骗、IP 劫持等常见网络攻击给予了分析并在过滤管理模块中加以解决实现,其中IP 劫持实现是用一个钩子函数注入协议栈中来实现的。文中还分析了加固操作系统而关闭一些危险和不使用的服务,使防火墙架设在一个相对安全的基础上,同时也将系统编译升级为最新的稳定内核。

DoS攻击是网络攻击最常见的一种。它故意攻击网络协议的缺陷或直接通过某种手段耗尽被攻击对象的资源,目的是让目标计算机或网络无法捉供正常的服务或资源访问,使目标系统服务停止响应甚至崩溃,而在此攻击中并不入侵目标服务器或目标网络设备。这些服务资源包括网络宽带、系统堆栈、开放的进程。或者允许的连接。这种攻击会导致资源耗尽,无论计算机的处理速度多快、内存容量多大、网络带宽的速度多快都无法避免这种攻击带来的后果。任何资源都有一个极限,所以总能找到一个方法使请求的值大于该极限值,导致所提供的服务资源耗尽。

DoS攻击有许多种类,主要有Land攻击、死亡之ping、泪滴、Smurf攻击及SYN洪水等。

据统计,在所有黑客攻击事件中,syn洪水攻击是最常见又最容易被利用的一种DoS攻击手法。

1攻击原理

要理解SYN洪水攻击,首先要理解TCP连接的三次握手过程(Three-wayhandshake)。在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。第一次握手:建立连接时,客户端发送SYN包((SYN=i)到服务器,并进入SYN SEND状态,等待服务器确认;

第二次握手:服务器收到SYN包,必须确认客户的SYN (ACK=i+1 ),同}Jj’自己也发送一个SYN包((SYN j)}即SYN+ACK包,此时服务器进入SYN_RECV状态;

第三次握手:客户端收到服务器的SYN十ACK包,向服务器发送确认包ACK(ACK=j+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手,客户端与服务器开始传送数据。

在上述过程中,还有一些重要的概念:

半连接:收到SYN包而还未收到ACK包时的连接状态称为半连接,即尚未完全完成三次握手的TCP连接。

半连接队列:在三次握手协议中,服务器维护一个半连接队列,该队列为每个客户端的SYN包(SYN=i )开设一个条目,该条目表明服务器已收到SYN包,并向客户发出确认,正在等待客户的确认包。这些条目所标识的连接在服务器处于SYN_ RECV状态,当服务器收到客户的确认包时,删除该条目,服务器进入ESTABLISHED状态。

Backlog参数:表示半连接队列的最大容纳数目。

SYN-ACK重传次数:服务器发送完SYN-ACK包,如果未收到客户确认包,服务器进行首次重传,等待一段时间仍未收到客户确认包,进行第二次重传,如果重传次数超过系统规定的最大重传次数,系统将该连接信息、从半连接队列中删除。注意,每次重传等待的时间不一定相同。

半连接存活时间:是指半连接队列的条目存活的最长时间,也即服务从收到SYN包到确认这个报文无效的最长时间,该时间值是所有重传请求包的最长等待时间总和。有时也称半连接存活时间为Timeout时间、SYN_RECV存活时间。

上面三个参数对系统的TCP连接状况有很大影响。

SYN洪水攻击属于DoS攻击的一种,它利用TCP协议缺陷,通过发送大量的半连接请求,耗费CPU和内存资源。SYN攻击除了能影响主机外,还可以危害路由器、防火墙等网络系统,事实上SYN攻击并不管目标是什么系统,只要这些系统打开TCP服务就可以实施。从图4-3可看到,服务器接收到连接请求(SYN=i )将此信息加入未连接队列,并发送请求包给客户( SYN=j,ACK=i+1 ),此时进入SYN_RECV状态。当服务器未收到客户端的确认包时,重发请求包,一直到超时,才将此条目从未连接队列删除。配合IP欺骗,SYN攻击能达到很好的效果,通常,客户端在短时间内伪造大量不存在的IP地址,向服务器不断地发送SYN包,服务器回复确认包,并等待客户的确认,由于源地址是不存在的,服务器需要不断的重发直至超时,这些伪造的SYN包将长时间占用未连接队列,正常的SYN 请求

被丢弃,目标系统运行缓慢,严重者引起网络堵塞甚至系统瘫痪。过程如下:

攻击主机C(地址伪装后为C')-----大量SYN包---->彼攻击主机

C'<-------SYN/ACK包----被攻击主机

由于C’地址不可达,被攻击主机等待SYN包超时。攻击主机通过发人量SYN包填满未连接队列,导致正常SYN包被拒绝服务。另外,SYN洪水攻击还可以通过发大量ACK包进行DoS攻击。

2.传统算法

抵御SYN洪水攻击较常用的方法为网关防火墙法、中继防火墙法和SYNcookies。为便于叙述,将系统拓扑图简化为图4-4。图中,按网络在防火墙内侧还是外侧将其分为内网、外网(内网是受防火墙保护的)。其次,设置防火墙的SYN重传计时器。超时值必须足够小,避免backlog队列被填满;同时又要足够大保证用户的正常通讯。

(1) 网关防火墙法

网关防火墙抵御攻击的基本思想是:对于内网服务器所发的SYN/ACK包,防火墙立即发送ACK包响应。当内网服务器接到ACK包后,从backlog队列中移出此半连接,连接转为开连接,TCP连接建成。由于服务器处理开连接的能力比处理半连接大得多,这种方法能有效减轻对内网服务器的SYN攻击,能有效地让backlog队列处于未满状态,同时在重传一个未完成的连接之前可以等待更长时间。

以下为算法完整描述:

第一步,防火墙截获外网客户端发向内网服务器SYN数据包,允许其通过,抵达内网服务器。同时在连接跟踪表中记录此事件

第二步,防火墙截获服务器发向客户端的SYN/ACK响应包,用连接跟踪表中记录的相应SYN包匹配它

第三步,防火墙让截获的SYN/ACK继续进行(发向客户端)。同时,向内网服务器发送ACK包。这样,对服务器来说,TCP连接三次握手已经完成。系统在backlog队列中删掉此半连接

第四步,看此TCP连接是否有效,相应产生两种解决方法。如果客户端的连接尝试是有效的,那么防火墙将接到来自客户端的ACK包,然后防火墙将它转发到服务器。服务器会忽略这个冗余的ACK包,这在TCP协议中是允许的

如果客户端的IP地址并不存在,那么防火墙将收不到来自客户端的ACK包,重转计时器将超时。这时,防火墙重传此连接

(2) 中继防火墙法

中继防火墙抵御攻击的思想是:防火墙在向内网服务器发SYN包之前,首先完成与外网的三次握手连接,从而消除SYN洪水攻击的成立条件。

以下为算法完整描述:

第一步,防火墙截获外网客户端发向内网服务器SYN数据包

第二步,防火墙并不直接向内网发SYN数据包,而是代替内网服务器向外网发SYNIACK数据包

第三步,只有接到外网的ACK包,防火墙向内网发SYN包

第四步,服务器应答SYN/ACK包

第五步,防火墙应答ACK包

(3) 分析

首先分析算法的性能,可以看出:为了提高效率,上述算法使用了状态检测等机制(可通过本系统的基本模块层得以实现)

对于非SYN包(CSYN/ACK及ACK包),如果在连线跟踪信息表未查找到相应项,则还要匹配规则库,而匹配规则库需比较诸多项(如IP地址、端口号等),花费较大,这会降低防火墙的流量。另外,在中继防火墙算法中,由于使用了SYN包代理,增加了防火墙的负荷,也会降低防火墙的流量。

其次,当攻击主机发ACK包,而不是SYN包,算法将出现安全漏洞。一般地,TCP连接从SYN包开始,一旦 SYN包匹配规则库,此连接将被加到连接跟踪表中,并且系统给其60s延时。之后,当接到ACK包时,此连接延时突然加大到3600s。如果,TCP连接从ACK包开始,同时此连接未在连接跟踪表中注册,ACK包会匹配规则库。如匹配成功,此连接将被加到连接跟踪表中,同时其延时被设置为3600s。即使系统无响应,此连接也不会终止。如果攻击者发大量的ACK包,就会使半连接队列填满,导致无法建立其它TCP连接。此类攻击来自于内网。因为,来自于外网的ACK包攻击,服务器会很快发RST包终止此连接(SOs>。而对于内网的外发包,其限制规则的严格性要小的多。一旦攻击者在某时间段内从内网发大量ACK包,并且速度高于防火墙处理速度,很容易造成系统瘫痪。

(4) SYN cookies

Linux支持SYN cookies,它通过修改TCP协议的序列号生成方法来加强抵御SYN洪水攻击能力。在TCP协议中,当收到客户端的SYN请求时,服务器需要回复SYN-SACK包给客户端,客户端也要发送确认包给服务器。通常,服务器的初始序列号由服务器按照一定的规律计算得到或采用随机数,但在SYN cookies中,服务器的初始序列号是通过对客户端IP地址、客户端端口、服务器IP地址和服务器端口以及其他一些安全数值等要素进行hash运算,加密得到的,称之为cookie。当服务器遭受SYN攻击使得backlog队列满时,服务器并不拒绝新的SYN请求,而是回复cookie(回复包的SYN序列号)给客户端,如果收到客户端的ACK包,服务器将客户端的ACK序列号减去1得到。cookie比较值,并将上述要素进行一次hash运算,看看是否等于此cookie。如果相等,直接完成三次握手(注意:此时并不用查看此连接是否属于backlog队列)。

此算法的优点是:半连接队列满时,SYN cookies仍可以处理新SYN请求。缺点是:某些TCP选项必须禁用,如大窗口等。计算cookies有花销。

/一个IP包,其分片都被放入到一个链表中,作为每一个分片的链表节点用ipfrag结构表示。IP分片的中心组装在此链表进行。/

内核抵御攻击的代码结构如下:

// From

/IP分片结构体/

struct ipfrag

{

int offset; //ip包中此分片的偏移值

int end; //此分片最后一个株距在ip包中的位置

int len; //此分片长度

struct sk_buff skb; //分片数据包

unsigned

if(end<= offset)&&(i>skb->len)

return NF_DRDP;

}

}

return NF_ACCEPT;

组成规则的三个结构体具体解释如下:

(1)ipt

unsigned int nfcache ; //用此位域表示数据报的哪些部分由这个规则检查

; //包含数据包及匹配此规则数据包的计算数值

以下仅列出ipt_entry_match结构体:

struce ipt_entry_match

{

union

{

struct{

u_int16_t target_size;

{

struct list_head list;//链表

struct

u int32 ipaddr; //地址

u_ int16 port; //端口

}src; //源端信息

struct

{

u_ int32 ipaddr;

u_ int 16 port;

} dst; //目的端信息

u_intl6 protonum; //协议号

`常用语法

dir+* 浏览

cls 清屏

cd 打开子目录

cd+* 退出子目录

rd+* 删除子目录

del+* 删除文件

1、切断网路:所有攻击都来自网路,因此在得知系统正遭受攻击后,首先切断网路,保护服务器网路内的其他主机。2、找出攻击源:通过日志分析,查出可疑信息,同时也要查看系统打开了哪些端口,运行了哪些进程。3、分析入侵原因和途径:既然是遭到入侵,那么原因是多方面的,可能是系统漏洞,也可能是程序漏洞,一定要查清楚原因,并且查清楚攻击的途径,找到攻击源,只有找到了攻击原因和途径才能进行漏洞的删除和修复。4、备份用户数据:在呗攻击后,需要里面备份服务器上的数据,同时也要查看数据中是否隐藏攻击源。如果攻击源在用户数据中,一定要彻底删除。然后将数据备份到一个安全的地方。5、重装系统:不要以为清除了攻击源就是安全的,因为没人能比黑客更了解攻击程序,在服务器遭受攻击后,最简单的方法就是重装系统。因为大部分攻击都是依附在系统文件或者内核中。6、修复程序或系统漏洞:在发现程序漏洞或系统漏洞后,首先要做的是修复漏洞,只有将程序漏洞修复完毕才能在服务器上运行。7、恢复数据和连接网络:将备份的数据重新复制到新装的服务器上,然后开启服务,最后将服务器的网络连接开启,对外提供服务。二、检查并锁定可疑用户当发现服务器遭受攻击后,首先要切断网络连接,但是在有些情况下,比如无法马上切断网络连接时,就必须登录系统查看是否有可疑用户,如果有可疑用户登录了系统,那么需要马上将这个用户锁定,然后中断此用户的远程连接。 当发现服务器遭受攻击后,首先要切断网络连接,但是在有些情况下,比如无法马上切断网络连接时,就必须登录系统查看是否有可疑用户,如果有可疑用户登录了系统,那么需要马上将这个用户锁定,然后中断此用户的远程连接。1登录系统查看可疑用户通过root用户登录,然后执行“w”命令即可列出所有登录过系统的用户,通过这个输出可以检查是否有可疑或者不熟悉的用户登录,同时还可以根据用户名以及用户登录的源地址和它们正在运行的进程来判断他们是否为非法用户。2锁定可疑用户一旦发现可疑用户,就要马上将其锁定,例如上面执行“w”命令后发现nobody用户应该是个可疑用户(因为nobody默认情况下是没有登录权限的),于是首先锁定此用户,执行如下操作:[root@server ~]# passwd -l nobody锁定之后,有可能此用户还处于登录状态,于是还要将此用户踢下线,根据上面“w”命令的输出,即可获得此用户登录进行的pid值这样就将可疑用户nobody从线上踢下去了。如果此用户再次试图登录它已经无法登录了。3通过last命令查看用户登录事件last命令记录着所有用户登录系统的日志,可以用来查找非授权用户的登录事件,而last命令的输出结果来源于/var/log/wtmp文件,稍有经验的入侵者都会删掉/var/log/wtmp以清除自己行踪,但是还是会露出蛛丝马迹在此文件中的。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 游戏服务器被攻击了怎么办?

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情