防止对WEB应用服务器的三种攻击服务器教程

时间:2023-08-26 03:40:42 作者:卢敏斯特 综合材料 收藏本文 下载本文

【导语】“卢敏斯特”通过精心收集,向本站投稿了5篇防止对WEB应用服务器的三种攻击服务器教程,下面就是小编整理后的防止对WEB应用服务器的三种攻击服务器教程,希望大家喜欢。

篇1:防止对WEB应用服务器的三种攻击服务器教程

WWW,也有人称它为WEB,是应用目前互联网上增长最快的网络信息服务,也是最方便和最受欢迎的信息服务类型,其最大的特点为集成性,它可以集成多种应用,如FTP、E-Mail、数据库等,这种集成性也使WEB服务成为最脆弱的服务器之一。

当然,我们对安全问题越来越重视,影响安全的因素有很多。如,病毒、间谍软件、漏洞等。而恶意软件由来已久,远远超出了我们的记忆。特别是在当今,特洛伊木马等恶意代码日益横行,这种趋势好像并没有减缓的迹象。不过,恶意软件问题比起攻击者通过利用脆弱的应用程序服务器窃取大量的关键信息来说,显得还是相形见绌。

为什么WEB应用程序服务器会成为攻击者的靶子?原因很简单,因为它们是可以被公开访问的,并且与后端的数据库服务器紧密相连,后端数据库服务器存储着海量的令犯罪分子垂涎三尺的信息。那么,攻击者是怎样使用前端有WEB应用程序攻入后端数据库服务器壁垒的呢。

SQL 注入式攻击

SQL注入式攻击如今日益成为互联网上窃取机密信息的受欢迎的途径。一次SQL注入式攻击都包含这样一种方法:攻击者在一个WEB表单的搜索字段中输入一个SQL查询,如果这个查询被WEB应用程序接受,就会被传递到后端的数据库服务器来执行它,当然这要建立在从WEB应用程序到数据库服务器的读/写访问操作被准许的前提下。这可以导致两种情况发生,一是攻击者可以查看数据库的内容,二是攻击者删除数据库的内容。无论哪一种情况发生,对用户来说都意味着灾难。

很多人可能认为,SQL注入式攻击需要高深的知识。其实恰恰相反,实质上,任何人,只要对SQL有一个基本的理解并拥有一定的查询程序(这种程序在互联网上比比皆是),这种攻击就可以实施。

Blind SQL 注入式攻击

Blind SQL注入式攻击是发动攻击的另一个方法,但却是另一种略有不同的方法,

在执行一次标准的SQL注入式攻击时,攻击者将一个SQL查询插入到一个WEB应用程序中,期望使服务器返回一个错误消息。这种错误消息能够使攻击者获得用于执行更精确的攻击所需要的信息。这会致使数据库管理员相信只要消除这种错误的消息就会解决引起SQL注入式攻击的潜在的问题。管理员可能不会认识到虽然这样会隐藏错误消息,这种脆弱性仍然存在。这样会为攻击者增加点儿困难,却不能阻止攻击者使用错误消息收集信息,攻击者会不断地将伪造的SQL查询发送给服务器,以期获得对数据库的访问。

跨站点脚本攻击

跨站点的脚本攻击,也可称为XSS或CSS,是 损害那些提供动态网页的WEB应用的一种技术。当今的许多WEB站点都提供动态的页面,这些页面由为用户动态建造的多个源站点的信息组成。如果WEB站点管理员不注意这个问题,恶意内容能够插入到Web页面中,以收集机密信息或简单地用户端系统上执行。

对抗手段

有许多对抗Web应用服务器攻击的对策和措施。对问题的清醒的认识无疑是最重要的。许多企业组织正专注于一些需要执行的预防性的措施,不过却不知晓这些攻击是如何执行的。如果不理解WEB应用服务器攻击是如何工作的,将会使对抗措施不能真正起作用,简单地依靠防火墙和入侵防御系统不能从根本上解决问题。例如,如果你的WEB应用服务器没有对用户输入进行过滤,你就很容易遭受上述类型的攻击。

领先于攻击者的另一个关键问题是定期对你的WEB应用进行彻底的检查。在技术领域,“亡羊补牢,未为晚也”可能不太适用,因为如果你不及时检查修补你的“墙”,你丢失的将不仅仅是“羊”,很有可能是你的整个“羊圈”甚至更多。

篇2:Apache防止攻击WEB安全

为了防止恶意用户对Apache进行攻击,我们需要安装mod_security这个安全模块

mod_security 1.9.x模块的下载与安装

下载地址:www.modsecurity.org/download/

建议使用1.9.x,因为2.x的配置指令与1.x完全不同,解压后进入解压目录,执行:

/home/apache/bin/apxs -cia mod_security.c

编译完成后,/home/apache/modules下会生成一个mod_security.so文件

然后kate /home/apache/conf/httpd.conf

加入以下选项(如果没有的话)

#启用mod_security这个安全模块

LoadModule security_module modules/mod_security.so (这一句通常会被自动加入)

# 打开过滤引擎开关,如果是Off,那么下面这些都不起作用了。

SecFilterEngine On

# 把设置传递给字目录

SecFilterInheritance Off

# 检查url编码

SecFilterCheckURLEncoding On

# 检测内容长度以避免堆溢出攻击

#SecFilterForceByteRange 32 126

# 日志的文件和位置。一定要先建立好目录,否则apache重新启动的时候会报错。

SecAuditLog logs/audit_log

# debug的设置

#SecFilterDebugLog logs/modsec_debug_log

#SecFilterDebugLevel 1

#当匹配chmod,wget等命令的时候,重新定向到一个特殊的页面,让攻击者知难而退

SecFilter chmod redirect:www.sina.com

SecFilter wget redirect:www.sina.com

#检测POST数据,注意,请甚用这个开关,可能会导致一些post页面无法访问。详细的信息,请察看www.modsecurity.org的文档,其中有详细的post编码要求。

#SecFilterScanPOST Off

# 缺省的动作

SecFilterDefaultAction “deny,log,status:406″

# 重新定向用户

#SecFilter xxx redirect:www.sina.com

# 防止操作系统关键词攻击

SecFilter /etc/*passwd

SecFilter /bin/*sh

# 防止double dot攻击

SecFilter “\\.\\./”

# 防止跨站脚本(CSS)攻击

SecFilter “<( |\\n)*script”

# Prevent XSS atacks (HTML/Javascript. injection)

SecFilter “<(.|\\n)+>”

# 防止sql注入式攻击

SecFilter “delete[[:space:]]+from”

SecFilter “insert[[:space:]]+into”

SecFilter “select.+from”

#重定向exe和asp请求

SecFilterSelective REQUEST_URI “\\.exe” “redirect:www.google.com”

SecFilterSelective REQUEST_URI “\\.asp” “redirect:www.google.com”

#下面是限制了upload.php文件只能用来上传jpeg.bmp和gif的图片

#

#SecFilterInheritance On

#SecFilterSelective POST_PAYLOAD “!image/(jpeg|bmp|gif)”

#

#伪装服务器标识

SecServerSignature “Microsoft-IIS/6.0″

保存后重启apache即可!

为了防止Web服务器被DDoS攻击,我们需要安装mod_evasive这个防DDoS的模块

mod_evasive 1.10.x防DDoS模块的下载与安装

下载地址:www.zdziarski.com/projects/mod_evasive/

解压后进入解压目录,执行

/home/apache/bin/apxs -cia mod_evasive20.c

编译完成后,/home/apache/modules下会生成一个mod_evasive20.so文件

然后kate /home/apache/conf/httpd.conf

加入以下选项(如果没有的话)

#启用mod_evasive for Apache 2.x防DDoS模块

LoadModule evasive20_module modules/mod_evasive20.so (这一句通常会被自动加入)

#记录和存放黑名单的哈西表大小,如果服务器访问量很大,可以加大该值

DOSHashTableSize 3097

#同一个页面在同一时间内可以被统一个用户访问的次数,超过该数字就会被列为攻击,同一时间的数值可以在DosPageInterval参数中设置,

DOSPageCount 3

#同一个用户在同一个网站内可以同时打开的访问数,同一个时间的数值在DOSSiteInterval中设置。

DOSSiteCount 40

#设置DOSPageCount中时间长度标准,默认值为1。

DOSPageInterval 2

#DOSSiteInterval 2 设置DOSSiteCount中时间长度标准,默认值为1。

DOSSiteInterval 2

#被封时间间隔秒,这中间会收到 403 (Forbidden) 的返回。

DOSBlockingPeriod 10

#设置受到攻击时接收攻击信息提示的邮箱地址。

#DOSEmailNotify

#受到攻击时Apache运行用户执行的系统命令

#DOSSystemCommand “su - someuser -c ‘/sbin/… %s …’”

#攻击日志存放目录,BSD上默认是 /tmp

#DOSLogDir “/var/lock/mod_evasive”

SecFilterEngine On

SecFilterCheckURLEncoding On

SecFilterDefaultAction “deny,log,status:500”

#SecFilterForceByteRange 32 126

#SecFilterScanPOST On

SecAuditLog logs/audit_log

###

SecFilter “\\.\\./”

#####

SecFilter /etc/*passwd

SecFilter /bin/*sh

#for css attack

SecFilter “<( | )*script”

SecFilter “<(.| )+>”

#for sql attack

SecFilter “delete[ ]+from”

SecFilter “insert[ ]+into”

SecFilter “select.+from”

SecFilter “union[ ]+from”

SecFilter “drop[ ]”

篇3:阻断拒绝服务攻击服务器教程

从去年七、八月开始,拒绝服务攻击在网上风行一时,一年后的现在又有抬头之势,那么我们除了用防堵软件外,是否还有其它办法呢?

服务过载

当大量服务请求发向同一台计算机的服务守护进程时,就会产生服务过载。这些请求通过各种方式发出,而且许多都是故意的。在分时机制中,计算机需要处理这些潮水般涌来的请求,十分忙碌,以至无法处理常规任务,就会丢弃许多新请求。如果攻击的对象是一个基于TCP协议的服务,这些请求还会被重发,进一步加重网络的负担。

通常,管理员可以使用网络监视工具来发现这种攻击,通过主机列表和网络地址列表来分析问题的所在,也可以登录防火墙或路由器来发现攻击究竟是来自于网络外部还是网络内部。

消息流

消息流经常发生在用户向网络中的目标主机大量发送数据包之时,消息流会造成目标主机的处理速度缓慢,难以正常处理任务。这些请求以请求文件服务、要求登录或者要求响应的形式,不断涌向目标主机,加重了目标主机的处理器负载,使目标主机消耗大量资源来响应这些请求。在极端的情况下,消息流可以使目标主机因没有内存空间做缓冲或发生其他错误而死机。

消息流主要针对网络服务器。一个被攻击的服务器可能在一段时间内无法响应网络请求。攻击者利用这个时机,编写程序来回答本来应该由服务器回答的请求。假设攻击者已经写了一个程序,每秒发送数千个echo请求到目标主机,借此来“轰炸”NIS服务器。同时,攻击者尝试登录到一台工作站的特权账户。这时,这台工作站将向真正的NIS服务器询问NIS口令。然而,真正的NIS服务器因正遭到攻击,不能迅速响应这个请求。这时,攻击者所在的主机便可以伪装成服务器,响应这个请求,并提供了一个错误的信息,例如,说没有口令,

在正常情况下,真正的服务器会指出这个包是错误的,但是,由于服务器负载过重,以至于它没有收到这个请求或者没有及时收到,不能做出响应。于是,那个发出请求的客户机便根据这个错误的回答,处理攻击者的登录请求。

对付这种攻击有效的办法是配置一个监视器,将网络分隔成小的子网。监视器有助于发现和阻止这种攻击,但并不能完全消除这种攻击。

“粘住”攻击

许多Unix系统中的TCP/IP实现程序,存在被滥用的可能。TCP连接通过三次握手来建立一个连接。如果攻击者发出多个连接请求,初步建立了连接,但又没有完成其后的连接步骤,接收者便会保留许多这种半连接,占用很多资源。通常,这些连接请求使用伪造的源地址,系统就没有办法去跟踪这个连接,只有等待这个连接因为超时而释放。对付这种攻击,最好的办法是拒绝防火墙外面的未知主机或网络的连接请求,或者对使用的协议增加限制,但是任何固定的限制都是不适当的。用户可以修改操作系统的源码,使之有一个超时值,在拒绝新到来的连接之前,对同时存在的半连接数目有一个限制,但是修改操作系统的源码并不容易进行。

SYN-Flooding攻击

在SYN-Flooding攻击中,攻击者使用伪装地址向目标计算机尽可能多地发送请求,以达到多占用目标计算机资源的目的。当目标计算机收到这样的请求后,就会使用系统资源来为新的连接提供服务,接着回复一个肯定答复SYN-ACK。由于SYN-ACK被返回到一个伪装的地址,因此没有任何响应,于是目标计算机将继续设法发送SYN-ACK。一些系统都有缺省的回复次数和超时时间,只有回复一定的次数,或者超时时,占用的资源才会被释放。Windows NT 3.5x和4.0缺省设置可以重复发送SYN-ACK5次。每次重新发送后,等待时间翻番。用户可以使用Netstat命令来检查连接线路的目前状况,查看是否处于SYN-Flood攻击中。只要在命令行中,输入Netstat-n-ptop,就显示出机器的所有连接状况。如果有大量的连接线路处于SYN-RECEIVED状态下,系统可能正遭受此类攻击。实施这种攻击的 无法取得系统中的任何访问权。但是对于大多数的TCP/IP协议栈,处于SYN-RECEIVED状态的连接数量非常有限。当到达端口的极限时,目标计算机通常作出响应,重新设置所有的额外连接请求,直到分配的资源被释放出来。

篇4:如何对Apache做Web压缩服务器教程

目前很多企业都在网络上开展业务,处理的信息容量很大,有时不得不需要进行Web压缩,我给大家提供一个方案,不改变页面风格,但是减小Web浏览的传输数据量。

我的Web服务器是Apache,采用的压缩工具是免费软件mod_gzip,通过流量测试软件BWMeter来证实压缩比例。用mod_gzip压缩纯文本内容平均可压缩至原大小的40%以下,从而可节约60%以上的数据传输。虽然数据压缩会导致Web服务器的CPU占用率略微上升,但是可以节约大量网络I/O,提升用户浏览速度。我将一个大小为8KB的HTML文本从未经过压缩的10.4KB流量(如图1),压缩变成了5.9KB的流量(如图2)。

mod_gzip的工作原理

mod_gzip的工作原理是,当客户端请求浏览某网页后,Apache服务器将所请求的网页文件进行压缩,具体压缩是利用标准的zlib的压缩。服务器将压缩的文件下发给客户端浏览器,由客户端的浏览器负责解压缩并浏览,所以解压效果和用户的浏览器有一定关系。经过测试,它在IE 4.0到IE 6.0上,以及Netscape 4.5到Netscape 6.0上都运行得很好。

mod_gzip的安装

1.下载源程序

可以从sourceforge.net/下载mod_gzip的源程序,使用源程序编译生成Apache的模块(Module)。

2.解压源程序

tar -zxvf mod_gzip-2.0.40.tar.gz

3.编译

进入源程序所在的目录进行编译,生成相应的动态链接库。编译需要指定参数APXS的相应位置:

make APXS=/apache/httpd/bin/apxs

将mod_zip安装到Apache服务器中,其中也要指定APXS的具体位置:

make install APXS=/apache/httpd/bin/apxs

4.调用mod_gzip模块

在Apache的配置文件httpd.conf中增加LoadModule参数,调用mod_gzip模块。

LoadModule gzip_module modules/mod_gzip.so

5.测试

运行以下命令测试安装是否成功:

/apache/bin/apachectl configtest

如果出现“Syntax OK”,则说明Apache中已经成功安装上mod_gzip的压缩模块了。

Apache中关于mod_gzip的配置

修改Apache的配置文件httpd.conf:

1.增加mod_gzip模块的调用

LoadModule gzip_module modules/mod_gzip.so

2.开启压缩功能

mod_gzip_on Yes

3.设置压缩文件的最小值

mod_gzip_minimum_file_size 1000

4.设定压缩文件的最大值

mod_gzip_maximum_file_size 300000

5.设定压缩文件的临时目录

mod_gzip_temp_dir /tmp/mod_gzip

6.设定是否保持压缩的工作临时文件

mod_gzip_keep_workfiles No

7.设定各种需要压缩的文件及扩展名

mod_gzip_item_include file .htm$

mod_gzip_item_include file .html$

mod_gzip_item_include file .php$

mod_gzip_item_include file .php3$

mod_gzip_item_include mime text/.*

mod_gzip_item_include mime httpd/unix-directory

常见问题及解决方法

1.解决调用标准zlib问题

如果在编译mod_gzip的时候没有指定zlib类库的具体位置,那么它默认路径就是/usr/local/lib,当你的zlib不在这个目录下面的时候,就会报如下错误提示:

Cannot load /httpd/modules/mod_gzip.so

into server/httpd/modules/mod_gzip.so:

undefined symbol: top_module (或者是deflate)

解决方法就是,在编译mod_gzip的时候,编辑Makefile文件增加两个参数,分别指向zlib的存放目录:

INC=-I/usr/include

LIB=-lz -L/usr/lib

编辑ld.so.conf文件,在其中增加存放zlib标准类库的具体目录,然后运行ldconfig,

这样更改以后,Apache就不会上述出现问题了。

2.Apache中jk2模块有可能和mod_gzip冲突

这种现象会出现在Apache2、jk2及mod_gzip2.0.40配合的时候。最简单的解决办法是,改变应用环境的版本,使用Apache1.3、jk及mod_gzip1.3配合就会避免产生这种冲突。

3.实现对servlet的压缩

我们在httpd.conf文件中增加相应的压缩配置文件,就可以实现对servlet进行压缩了。

mod_gzip_item_include handler jakarta-servlet

mod_gzip_item_include handler jakarta-servlet$

mod_gzip_item_include handler ^jakarta-servlet

mod_gzip_item_include handler ^jakarta-servlet$

mod_gzip_item_include handler ^^jakarta-servlet$

希望通过上述讲解,读者可以轻松地构造压缩的Apache服务器,更好地利用网络资源。

篇5:如何用iptables来防止web服务器被CC攻击

CC攻击比DDOS攻击更可怕的就是,CC攻击一般是硬防很难防止住的,为什么呢?一、因为CC攻击来的IP都是真实的,分散的;二、CC攻击的数据包都是正常的数据包;三、CC攻击的请求,全都是有效的请求,无法拒绝的请求。

1、攻击原理

CC攻击的原理就是攻击者控制某些主机不停地发大量数据包给对方服务器造成服务器资源耗尽,一直到宕机崩溃。CC主要是用来攻击页面的,每个人都有这样的体验:当一个网页访问的人数特别多的时候,打开网页就慢了,CC就是模拟多个用户(多少线程就是多少用户)不停地进行访问那些需要大量数据操作(就是需要大量CPU时间)的页面,造成服务器资源的浪费,CPU长时间处于100%,永远都有处理不完的连接直至就网络拥塞,正常的访问被中止。

2、攻击症状

CC攻击有一定的隐蔽性,那如何确定服务器正在遭受或者曾经遭受CC攻击呢?我们可以通过以下三个方法来确定。

(1).命令行法

一般遭受CC攻击时,Web服务器会出现80端口对外关闭的现象, 因为这个端口已经被大量的垃圾数据堵塞了正常的连接被中止了。我们可以通过在命令行下输入命令netstat -an来查看,如果看到类似如下有大量显示雷同的连接记录基本就可以被CC攻击了:

……   TCP 192.168.1.3:80 192.168.1.6:2203 SYN_RECEIVED 4   TCP 192.168.1.3:80 192.168.1.6:2203 SYN_RECEIVED 4   TCP 192.168.1.3:80 192.168.1.6:2203 SYN_RECEIVED 4   TCP 192.168.1.3:80 192.168.1.6:2203 SYN_RECEIVED 4   TCP 192.168.1.3:80 192.168.1.6:2203 SYN_RECEIVED 4 …… 

其中“192.168.1.6”就是被用来代理攻击的主机的IP,“SYN_RECEIVED”是TCP连接状态标志,意思是“正在处于连接的初始同步状态 ”,表明无法建立握手应答处于等待状态。这就是攻击的特征,一般情况下这样的记录一般都会有很多条,表示来自不同的代理IP的攻击。

(2).批处理法

上述方法需要手工输入命令且如果Web服务器IP连接太多看起来比较费劲,我们可以建立一个批处理文件,通过该脚本代码确定是否存在CC攻击,

打开记事本键入如下代码保存为CC.bat:

@echo off   time /t >>log.log   netstat -n -p tcp |find “:80”>>Log.log   notepad log.log   exit 

上面的脚本的含义是筛选出当前所有的到80端口的连接。当我们感觉服务器异常是就可以双击运行该批处理文件,然后在打开的log.log文件中查看所有的连接。如果同一个IP有比较多的到服务器的连接,那就基本可以确定该IP正在对服务器进行CC攻击。

(3).查看系统日志

上面的两种方法有个弊端,只可以查看当前的CC攻击,对于确定Web服务器之前是否遭受CC攻击就无能为力了,此时我们可以通过Web日志来查,因为Web日志忠实地记录了所有IP访问Web资源的情况。通过查看日志我们可以Web服务器之前是否遭受CC攻击,并确定攻击者的IP然后采取进一步的措施。

Web日志一般在C:WINDOWSsystem32LogFilesHTTPERR目录下,该目录下用类似httperr1.log的日志文件,这个文件就是记录Web访问错误的记录。管理员可以依据日志时间属性选择相应的日志打开进行分析是否Web被CC攻击了。

默认情况下,Web日志记录的项并不是很多,我们可以通过IIS进行设置,让Web日志记录更多的项以便进行安全分析。其操作步骤是:

“开始→管理工具”打开“Internet信息服务器”,展开左侧的项定位到到相应的Web站点,然后右键点击选择“属性”打开站点属性窗口,在“网站”选项卡下点击“属性”按钮,在“日志记录属性”窗口的“高级”选项卡下可以勾选相应的“扩展属性”,以便让Web日志进行记录。比如其中的“发送的字节数”、“接收的字节数”、“所用时间”这三项默认是没有选中的,但在记录判断CC攻击中是非常有用的,可以勾选。

另外,如果你对安全的要求比较高,可以在“常规”选项卡下对“新日志计划”进行设置,让其“每小时”或者“每一天”进行记录。为了便于日后进行分析时好确定时间可以勾选“文件命名和创建使用当地时间”。

CC攻击的严重性希望大家能够引起注意,多多提高防范意识。

Apache防止攻击WEB安全

Discuz!开源论坛新手安装教程(基础篇)WEB服务器

Linux系统下配置功能完善的Web服务器服务器教程

SMTP简单邮件传输协议服务器教程

FTP服务器关于权限的问题服务器教程

关于Apache服务器如何实现用户验证服务器教程

硬盘坏道故障实例解决服务器教程

Windows Internet信息服务的安装Web服务器

三代防火墙体系结构演变介绍服务器教程

VMware Server的工作原理服务器教程

防止对WEB应用服务器的三种攻击服务器教程(合集5篇)

欢迎下载DOC格式的防止对WEB应用服务器的三种攻击服务器教程,但愿能给您带来参考作用!
推荐度: 推荐 推荐 推荐 推荐 推荐
点击下载文档 文档为doc格式
点击下载本文文档