服务器防止攻击_服务器抵御攻击

hacker|
143

当海外服务器被恶意攻击了如何应对?

之一,对网站受到攻击状况进行评估。

评估网站被攻击后的状况,比如DDOS攻击的次数及大小,然后做出相应的决策,确定是进行数据牵引还是关闭操作,又或者是需要找到相关的漏洞打补丁。Windows系统打上最新的补丁,然后就是mysql或者sql数据库补丁,还有php以及IIS,serv-u就更不用说了,经常出漏洞的东西,还有就是有些IDC们使用的虚拟主机管理软件。

第二,隐藏网站服务器的IP地址。

使用CDN要求将网站域名解析为CDN自动生成的cname记录值,而网站域名不解析为网站服务器的IP地址。这样,网站服务器的IP地址就不会自然地暴露在公共 *** 上,从而避免了对网站服务器的有针对性的攻击,提高了网站服务器的安全性。

第三,建立镜像网站。

一些大型网站在服务器受到攻击时会建立一个镜像网站,这样可以通过设置301跳 *** 用户可以正常的跳转访问,但是这个对搜索引擎并不友好,只是以防万一出现被攻击的状况。

第四,建立预防DDOS策略。

被攻击的类型比较多,建站DDOS防御策略是从根本上解决网站被攻击的问题。

第五,选择高防服务器。

高防服务器的安全性较普通服务器要高很多,选择高防服务器可以有效的避免网站被攻击的情况。

如何防止服务器被大流量攻击?

1.修改密码账号

当我们在服务器租用以后,对于登录密码要进行修改,密码的组成尽量复杂一些,这样就可以防止服务器的密码被有心的人盗用,导致一些不必要的损失。

2.限制登录后台的IP

限制登录后台的IP好处在于不是自己设定的IP,那就不能进行后台登录,这样的话,在最根本上就严禁了其他IP来登录后台,为我们的安全上了一道密码锁。

3.及时修复漏洞

很多 *** 攻击者会根基系统存在的漏洞发动攻击,这样的话,就很容易造成安全事故的发生,因此对于服务器出现的漏洞一定要在之一时间及时的进行修复,杜绝 *** 攻击者利用这些漏洞进行 *** 攻击。

4.严禁服务器下载其他软件

大家都知道,很多的软件都带有一些广告, *** 攻击者正是利用了这一点,在软件中插入病毒,当下载这些软件程序的时候,一起就把病毒植入了服务器,之后对服务器进行攻击,盗取数据等操作,服务器的数据信息就完全的暴露在了攻击者面前,对企业的伤害是不可言喻的。

5.定期维护

定期维护的重要性不言而喻,这都会对服务器的安全起到很好的保护作用。因此定期的扫描是运维人员日常工作重要的一个方面

如何抵御 *** ddos攻击?

1、SYN/ACK Flood攻击:这种攻击 *** 是经典最有效的DDOS *** ,可通杀各种系统的 *** 服务,主要是通过向受害主机发送大量伪造源IP和源端口的SYN或ACK包,导致主机的缓存资源被耗尽或忙于发送回应包而造成拒绝服务,由于源都是伪造的故追踪起来比较困难,缺点是实施起来有一定难度,需要高带宽的僵尸主机支持。少量的这种攻击会导致主机服务器无法访问,但却可以Ping的通,在服务器上用Netstat -na命令会观察到存在大量的SYN_RECEIVED状态,大量的这种攻击会导致Ping失败、TCP/IP栈失效,并会出现系统凝固现象,即不响应键盘和鼠标。普通防火墙大多无法抵御此种攻击。

2、TCP全连接攻击:这种攻击是为了绕过常规防火墙的检查而设计的,一般情况下,常规防火墙大多具备过滤TearDrop、Land等DOS攻击的能力,但对于正常的TCP连接是放过的,殊不知很多 *** 服务程序能接受的TCP连接数是有限的,一旦有大量的TCP连接,即便是正常的,也会导致网站访问非常缓慢甚至无法访问,TCP全连接攻击就是通过许多僵尸主机不断地与受害服务器建立大量的TCP连接,直到服务器的内存等资源被耗尽而被拖跨,从而造成拒绝服务,这种攻击的特点是可绕过一般防火墙的防护而达到攻击目的,缺点是需要找很多僵尸主机,并且由于僵尸主机的IP是暴露的,因此容易被追踪。

3、刷Script脚本攻击:这种攻击主要是针对存在ASP、 *** P、PHP、CGI等脚本程序,并调用MSSQLServer、MySQLServer、Oracle等数据库的网站系统而设计的,特征是和服务器建立正常的TCP连接,并不断的向脚本程序提交查询、列表等大量耗费数据库资源的调用,典型的以小博大的攻击 *** 。一般来说,提交一个GET或POST指令对客户端的耗费和带宽的占用是几乎可以忽略的,而服务器为处理此请求却可能要从上万条记录中去查出某个记录,这种处理过程对资源的耗费是很大的,常见的数据库服务器很少能支持数百个查询指令同时执行,而这对于客户端来说却是轻而易举的,因此攻击者只需通过Proxy *** 向主机服务器大量递交查询指令,只需数分钟就会把服务器资源消耗掉而导致拒绝服务,常见的现象就是网站慢如蜗牛、ASP程序失效、PHP连接数据库失败、数据库主程序占用CPU偏高。这种攻击的特点是可以完全绕过普通的防火墙防护,轻松找一些Proxy *** 就可实施攻击,缺点是对付只有静态页面的网站效果会大打折扣,并且有些Proxy会暴露攻击者的IP地址。

解决 *** :    1、采用高性能的 *** 设备首先要保证 *** 设备不能成为瓶颈,因此选择路由器、交换机、硬件防火墙等设备的时候要尽量选用知名度高、口碑好的产品。再就是假如和 *** 提供商有特殊关系或协议的话就更好了,当大量攻击发生的时候请他们在 *** 接点处做一下流量限制来对抗某些种类的DDOS攻击是非常有效的。     2、充足的 *** 带宽保证     *** 带宽直接决定了能抗受攻击的能力,假若仅仅有10M带宽的话,无论采取什么措施都很难对抗现在的SYNFlood攻击,当前至少要选择100M的共享带宽,更好的当然是挂在1000M的主干上了。     3、高防CDN专业抗DDOS高防产品

目前国内抗DoS/DDoS比较知名的,同时信誉度和使用效果也比较好的应该是高防cdn产品,使用多种算法识别攻击和正常流量,可以抵御多种拒绝服务攻击及其变种 可防各类DoS/DDoS击,如 SYN Flood、TCP Flood,UDP Flood,ICMP Flood及其各种变种如Land,Teardrop,Smurf,Ping of Death等。

服务器被DoS攻击后一般会发生什么现象

通常所说的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)(iskb-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、换高防IP或切换或者高防服务器,流量攻击进入高防ip将异常流量清洗后,保留正常流量转到我们正常服务器ip。

2、网站业务添加cdn,预算充足的情况下可以考虑添加cdn,但是大流量的攻击可能产生高额cdn费用,需要酌情考虑。

3、定期排查服务器安全漏洞,及时修补服务器漏洞,防止被黑客利用漏洞进行服务器攻击。

4、设置防火墙

防火墙是可以在部分攻击上打到抵御的效果的,禁用一些不用的端口防止非法分子利用其端口进行攻击。同时可以通过防火墙设置把攻击重定向。

5、提升服务器配置

一般的攻击如果不是非常猛烈,可以适当提升服务器带宽,cpu和内存,保证资源不被攻击消耗殆尽。

6、通过反向路由进行ip真实性检测,禁用非真实ip也可以防御攻击。

7、限制SYN/ICMP流量

在路由器上配置SYN/ICMP的更大流量限制SYN/ICMP封包所能占有的更高频宽,大量的异常流量那基本上就是攻击了。

8、过滤所有RFC1918

IP地址RFC1918 IP地址是内部网的IP地址,过滤攻击时伪造的大量虚假内部IP,也是能减轻攻击DDOS攻击。

0条大神的评论

发表评论