技术改变世界 阅读塑造人生! - shaogx.com

This string was altered by TechBlog\Plugins\Example.; This is an example to show the potential of an offcanvas layout pattern in Bootstrap. Try some responsive-range viewport sizes to see it in action.

开源Apache服务器安全防护技术精要及实战(1)

Apache 服务简介Web服务器也称为WWW服务器或HTTP服务器(HTTPServer),它是Internet上最常见也是使用最频繁的服务器之一,Web服务器能够为用户提供网页浏览、论坛访问等等服务。... 全文

Apache服务器安全 Apache服务器

企业级Apache服务器安全防护要点剖析(1)

Apache一直是世界上使用率排名前三的Web服务器软件。企业使用其构建Web应用,从很大程度上都需要对其安全性进行综合考虑,以保证能够应对拒绝服务攻击、流量窃听、数据泄漏等网络威胁,从而保证企业门户网站的安全。... 全文

Apache服务器安全 服务器安全设置 目录权限

如何加强Apache Web服务器的安全防范?(1)

【51CTO.com 独家译稿】在Linux上安装安全的Web服务器并加以维护并非易事。这需要深入了解Linux、Apache和PHP服务器端的选项。主要问题之一是,如何在安全性、生产力和易用性三者之间求得平衡。最好的解决办法取决于项目的具体需求,但是安装的所有服务器都有某些共同的特点。下面是为LAMP服务器保驾护航的一些最佳实践,涵盖服务器配置到PHP设置微调的诸多方面。为Web服务器保驾护航的任务应从加固Linux操作系统入手。加固Linux这个话题本身就可以写整整一篇文章,但是某些概念在提供Web内容方面显得特别重要:... 全文

Apache Web服务器 Web服务器 服务器安全

如何在Ubuntu上搭建一台安全的Apache Web服务器?

本教程假设你已有一台在运行的Ubuntu服务器,网络方面已设置好,而且可以通过SSH进行访问。Apache2是许多安装的Linux发行版使用的默认Web服务器。它不是对所有环境来说唯一可用的Web服务器,也不是最佳的Web服务器,但是它适合许多使用场景。在安装过程中,系统可能会询问你哪个Web服务器要自动重新配置。选择“apache2”即可。安装Apache2使用下面这个命令,安装Apache2及其他库。... 全文

Apache 服务器 服务器安全

Apache安全维护十一式:组建安全的web服务器(1)

论坛里有人提问,关于组建安全的web服务器,这里给出一些了解和建议。... 全文

Apache安全 安全的web服务器

如何制定Apache安全最佳做法?

Apache HTTP Server软件于18年前首次推出,逾十年以来,该软件一直都是最流行的Web服务器软件--Apache占Web服务器市场的份额超过50%,这也使其成为最热门的攻击目标。... 全文

Apache安全 Apache服务器

Apache Web服务器访问控制机制全解析

   一、使用访问控制常用配置指令进行访问控制 1.配置指令 Apache实现访问控制的配置指令包括如下三种: (1)order指令:用于指定执行允许访问控制规则或者拒绝访问控制规则的顺序。order只能设置为Order allow,deny或Order deny,allow,分别用来表明用户先设置允许的访问地址还是先设置禁止访问的地址。Order选项用于定义缺省的访问权限与Allow和Deny语句的处理顺序。Allow和Deny语句可以针对客户机的域名或IP地址进行设置,以决定哪些客户机能够访问服务器。Order语句设置的两种值的具体含义如下: ◆allow, deny:缺省禁止所有客户机的访问,且Allow语句在Deny语句之前被匹配。如果某条件既匹配Deny语句又匹配Allow语句,则Deny语句会起作用(因为Deny语句覆盖了Allow语句)。 ◆deny, allow:缺省允许所有客户机的访问,且Deny语句在Allow语句之前被匹配。如果某条件既匹配Deny语句又匹配Allow语句,则Allow语句会起作用(因为Allow语句覆盖了Deny语句)。 (2)allow指令:指明允许访问的地址或地址序列。如allow from all指令表明允许所有IP来的访问请求。 (3)deny指令:指明禁止访问的地址或地址序列。如deny from all指令表明禁止所有IP来的访问请求。 2.应用实例 下面举几个简单的例子对上述order、allow和deny命令的使用进行示范。 (1)在下面的例子中,admin.org域中所有主机都允许访问网站,而其他非该域中的任何主机访问都被拒绝,因为Deny在前,Allow在后,Allow语句覆盖了Deny语句: 1.Order Deny,Allow 2.Deny from all 3.Allow from admin.org (2)下面例子中,admin.org域中所有主机,除了db.admin.org子域包含的主机被拒绝访问以外,都允许访问。而所有不在admin.org域中的主机都不允许访问,因为缺省状态是拒绝对服务器的访问(Allow在前,Deny在后,Deny语句覆盖了Allow语句): 1.Order Allow,Deny 2.Allow from admin.org 3.Deny from db.admin.org 二、使用.htaccess文件进行访问控制 任何出现在配置文件httpd.conf中的指令都可能出现在.htaccess文件中。该文件在httpd.conf文件的AccessFileName指令中指定,用于进行针对单一目录的配置(注意:该文件也只能设置对目录的访问控制)。作为系统管理员,可以指定该文件的名字和可以通过该文件内容覆盖的服务器配置。当站点有多组内容提供者并希望控制这些用户对他们的空间的操作时该指令非常有用。 值得特别注意的是:除了可以使用.htaccess文件针对单一目录进行访问控制配置外,该文件还可以在不重新启动Apache服务器的前提下使配置生效,因而使用起来非常方便。 使用该文件进行访问控制,需要经过如下两个必要的步骤: (1)在主配置文件httpd.conf中启用并控制对.htaccess文件的使用。 (2)在需要覆盖主配置文件的目录下(也就是需要单独设定访问控制权限的目录)生成.htaccess文件,并对其进行编辑,设置访问控制权限。 1. 启用并控制对.htaccess文件的使用 启用并控制对.htaccess文件的使用,首先需要使用AccessFileName参数在主配置文件中配置如下配置语句方可: 1.AccessFileName .htaccess 2.<Files ~ “^\.htaccess”> 3.    Order allow,deny 4.    Deny from all 5.</Files> 2. 在.htaccess文件中使用指令进行控制 要限制.htaccess文件能够覆盖的内容,须要使用AllowOverride指令。该指令可以进行全局设置或者单个目录设置。要配置默认可以使用的选项,须要使用Options指令。例如,在httpd.conf文件中,可以采用上述指令建立的对/var/www/icons目录的访问控制权限的清单,如下所示: 1.<Directory "/var/www/icons"> 2.    Options Indexes MultiViews 3.    AllowOverride None 4.    Order allow,deny 5.    Allow from all 6.</Directory> 以下为各种指令的使用介绍: (1)AllowOverrides指令 AllowOverrides指令指定.htaccess文件可以覆盖的选项。可以对每个目录进行设置。例如,可以对主要文档root和UserDir目录的覆盖有不同的标准。该功能对于用户目录特别有用,在这些目录中用户没有访问主服务器配置文件的权限。 AllowOverrides可以设置为All、None或者Option、FileInfo、AuthConfig、Indexes以及Limit.选项的组合。这些选项含义如下: ◆Options:文件可以为该目录添加没有在Options指令中列出的选项。 ◆FileInfo:.htaccess文件包含修改文档类型信息的指令。 ◆AuthConfig:.htaccess文件可能包含验证指令。 ◆Limit:.htaccess文件可能包含allow、deny、order指令。 ◆Indexes:控制目录列表方式。 ◆None:禁止处理.htaccess文件。 ◆All:表示读取以上所有指令内容。 Options指令 Options可以为None、All或者任何Indexes、Includes、FollowSymLinks、ExecCGI或者MultiViews的组合。MultiViews不包含在All中,必须显式指定。这些选项解释如下: ◆ None:该目录没有启用任何可用的选项。 ◆All:该目录启用了所有选项,除了MultiViews。 ◆Indexes:当Index.html文件或者另一个DirectoryIndex文件不存在时,目录中的文件列表将作为HTML页产生,显示给用户。 ◆Includes:该目录允许服务器侧包含(SSI)。如果允许包含但是不允许在包含中有exec选项,则可以写为IncludesNoExec。基于安全的原因,对于没有完全控制权限的目录,如UserDir目录,该选项是一个很好的主意。 ◆FollowSymLinks:允许访问符号链接到文档目录的目录。这种方法不好,不要将整个服务器全部设置为该选项。对某个目录可以这样设置,但是在仅当有足够的理由时才这样设置。该选项是一个潜在的安全隐患,因为允许Web用户跳出文档目录以外,并且可能潜在地允许用户访问文件系统的分区,而这些地方是不希望其他人访问的。 ◆ExecCGI:即使该目录不是ScriptAlias化的目录,也在其中允许CGI程序。 ◆MultiViews:该选项是mod_negotiation模块的一部分。当客户请求的文档没有找到时,服务器试图计算最适合客户请求的文档。 3. 使用.htaccess文件实例 下面以一个简单的例子来示范如何使用.htaccess文件: (1)在Apache服务器的文档根目录下生成一个测试目录,并创建测试文件,使用如下命令即可: 1.#cd /var/www/html 2.#mkdir rhel5 3.#cd rhel5 4.#touch rhel5.a 5.#touch rhel5.b (2)修改Apache服务器的主配置文件如下,添加如下语句: 1.<Directory “/var/www/html/rhel5”> 2.    AllowOverride Options 3.</Directory> (3)在生成的测试目录/var/www/html/rhel5下生成.htaccess文件,并添加如下语句: 1.Options –Indexes (4)重新启动Apache服务器即可,可以看到在未配置.htaccess文件前用户可以使用客户端浏览器浏览文件,而配置文件后用户无法浏览,如图1和2所示。另外,值得注意的是:这里的重启Apache服务器是因为步骤(2)中对主配置文件进行了修改,而不是因为修改了.htaccess文件,因为前面提到过,.htaccess文件的配置修改并不需要重新启动Apache服务器。... 全文

安全 Apache Web服务器 访问控制机制 休闲

三大WEB服务器对比分析(apache ,lighttpd,nginx)

转载自http://www.blogjava.net/daniel-tu/archive/2008/12/29/248883.html一.软件介绍(apache  lighttpd  nginx)1. lighttpd... 全文

服务器 server 稳定性 安全性 动态 apache

Apache Web服务器访问控制机制全解析

Apache Web服务器访问控制机制全解析原文请见: http://netsecurity.51cto.com/art/201102/245666.htm Linux下的Aapche服务器提供了强大的访问控制功能,用户可以选择采用配置命令或者.htaccess文件的方式对其进行设置,本文将为大家介绍这两种方法。一、使用访问控制常用配置指令进行访问控制1.配置指令Apache实现访问控制的配置指令包括如下三种:... 全文

Linux Apache 访问控制 休闲 信息安全

使用SSL协议保证web服务通信安全(1)

【51CTO.com 独家特稿】Apache服务器与客户端的通信是明文方式,很多通过HTTP协议传送数据的应用将受到黑客的威胁,信息的安全性难以得到保障。因此,本文就将对SSL协议进行深入剖析,并介绍如何使用SSL技术保护Apache服务器通信。1  SSL简介... 全文

SSL协议 web服务 web安全 通信安全 Apache服务器

CentOS 6.2 Web系统集成之Apache安全加固

Linux 安装Web服务器并不难,但是其维护和安全加固并非易事,这需要深入了解Linux系统以及Apache的各种配置选项这里需了解的问题是如何在安全性, 可操作性和易用性上找到平衡点,但这也取决于项目的具体需求,下面的最佳实践将总结出LAMP项目中所有服务器都有的共同点。使用配置指令进行访问控制利用Apache实现访问控制的配置指令包括如下3种。     1.Order指令。Order指令用于指定执行允许访问控制规则或者拒绝访问控制规则的顺序。Order只能设置为“Order Allow,Deny”或“Order Deny,Allow”,分别用来表明用户先设置允许的访问地址还是先设置禁止访问的地址。Order选项用于定义默认的访问权限与Allow和Deny语句的处理顺序。而Allow和Deny语句可以针对客户机的域名或IP进行设置,以决定哪些客户机能够访问服务器。Order语句设置的两种值的具体含义如下。       (1)Allow,Deny默认禁止所有客户机的访问,且Allow语句在Deny语句之前被匹配,如果某条件即匹配Deny语句,又匹配Allow语句,则Deny语句会起作用(因为Deny语句覆盖了Allow语句)。         (2)Deny,Allow默认允许所有客户机的访问,且Deny剧在Allow语句之前被匹配。如果条件即匹配Deny语句又匹配Allow语句,则Allow语句会起作用(因为Allow语句覆盖了Deny语句)。    2.Allow语句Allow指令指明允许访问的地址或地址序列,例如Allow From All 指令表明允许所有IP来的访问请求。       3.Deny指令Deny指令指明禁止访问的地址或地址序列。例如Deny from all 指令表明禁止所有IP来的访问请求。下面举几个简单的例子,对上述的Order、Allow和Deny命令的使用进行示范。在本例中,itchenyi.com域中的所有主句都允许访问网站,而其他非该域中的任何主句都被拒绝,因为Deny访问都被拒绝,因为Deny在前,Allow在后,Allow语句覆盖了Deny语句。具体命令如下: Order Deny,Allow Deny from all Allow from itchenyi.com在本例中,itchenyi.com域中所有主机,除了 ls.itchenyi.com子域包含的主机被拒绝访问以外,其他都允许访问,所有不在itchenyi.com域中的主句都不允许访问,因为默认状态 是拒绝对服务器的访问(Allow在前,Deny在后,Deny语句覆盖了Allow语句)。具体命令如下: Order Allow,Deny Allow from itchenyi.com Deny from ls.itchenyi.com使用.htaccess进行访问控制任 何出现在配置文件httpd.conf中的指令都可能出现在.htaccess文件中。.htaccess文件在httpd.conf文件的Access FileName指令中指定,用于进行针对单一目录的配置,注意:htaccess文件也只能设置对目录的访问控制。作为管理员,可以指定.htaccess文件的名字和可以通过该文件内容覆盖服务器配置,当站点有多组内容提供者并希望控制这些用户对他们空间的操作时,该指令非常有用。需要注意的是,除了可以使用.htaccess文件针对单一目录进行访问控制配置外,该文件还可以在不重启Apache服务器的前提下使配置生效,使用起来非常方便。 1、在主配置文件httpd.conf中启用并对.htaccess文件的使用。2、在需要覆盖主配置文件的目录下(也就是需要单独设定访问控制权限的目录生成.htaccess文件),对其进行编辑,并设置访问控制权限。 启用并控制对.htaccess文件的使用想要启用并控制对.htaccess文件的使用,需要使用AccessFileName参数在主配置文件中配置如下语句。 Access FileName .htaccess <File ~ "^\.htaccess"> Order allow,deny Deny from all </Files> 在.htaccess文件中使用指令进行控制要限制.htaccess文件能够覆盖的内容,需要使用AllowOverride指令,该指令可以进行全局设置或者单个目录设置。若配置默认可以使用的选项,需要使用Options指令。例如,在httpd.conf文件中,可以采用指令建立对/var/www/icons目录的访问控制权限清单。具体指令如下: <Directory "/var/www/icons"> Options Indexs MultiViews AllowOverride None Order allow deny Allow from all </Directory>         使用.htaccess文件例子下面以一个简单的例子来示范一下具体该如何使用.htaccess文件。         1、在Apache服务器文档根目录下建立一个测试目录,并创建测试文件。需要使用如下命令: [root@chenyi ~]# cd /var/www/html/ [root@chenyi html]# mkdir chenyi [root@chenyi html]# cd chenyi/ [root@chenyi chenyi]# touch chenyi.a [root@chenyi-2 chenyi]# touch chenyi.b         2、修改Apache服务器配置文件。添加下面所示的语句: Directory "/var/www/html/chenyi" AllowOverride Options Directory        3、在生成的测试目录/var/www/html/chenyi下生成.htaccess文件,并添加如下所示的语句: Options -Indexes         4、重启Apache服务器,就可以看到在配置.htaccess文件前用户可以使用客户端浏览文件,而配置后无法浏览,注:这里重启Apache服务器是因为前面修改了主配置文件,而不是因为修改了.htaccess文件。使用认证和授权保护Apache认证和授权指令目前,有两种常见的认证类型,即基本认证和摘要认证。1、基本认证(basic):使用最基本得用户名和密码方式进行认证2、摘要认证(Digest):该认证方式比基本认证要安全得多,在认证过程中额外使用了一个针对客户端的挑战(Challenge):信息,可以有效的避免基本认证方式可能遇到的“钟放攻击”,不过,目前并不是所有浏览器都支持摘要认证的方式。 所有的认证配置指令即可以出现在主配置文件httpd.conf中的Director容器中,也可以出现在单独的.htaccess文件中,这个可以根据需要灵活选择。在认证配置过程中,需要用到如下指令。1、Authname:用于定义受保护区域的名称。2、AuthType:用于指定使用的认证方式,包括上面所述的Basci和Digest两种方式。3、AuthGroupFile:用于指定认证组文件的位置。4、AuthUserFile:用于指定认证口令文件的位置。使用上述的认证配置认证之后,需要为Apache服务器访问对象,也就是指定的用户和组进行相应的授权,以便它们对Apache服务器提供的目录文件和文件进行访问。为用户和组进行授权需要使用Require指令,可以使用如下三种方式进行授权。1、授权给指定的一个或者多个用户:使用Require user 用户名1、用户名2.....2、授权给指定的一个组或者多个组:使用Require group 组名1、组名2......3、授权给指定口令文件中的所有用户:使用Requirevalid-user。 管理认真口令文件和认证组文件要 实现用户认证功能,首先要建立保存用户名和口令的文件,Apache自带的htpasswd命令提供了建立和更新存储用户名、密码文本文件的功能,需要特 别注意的是,这个文件必须放在不能被网络访问的位置,以避免下载或信息邪路,建立口令文件放在/etc/httpd目录或者其他子目录下。下面的例子在httpd目录下创建一个文件名为passwd_auth的口令文件,并将用户chenyi加入认证口令文件,使用以下命令....(过程中会提示输入该用户的口令)[root@chenyi apache2]# touch passwd_auth [root@chenyi apache2]# /software/apache2/bin/htpasswd -c /software/apache2/passwd_auth chenyi New password: Re-type new password: Adding password for user chenyi命令执行的过程中,系统会要求chenyi用户输入密码。上述命令中的-c选项表述无论口令文件是否已经存在,都会重新写入文件并删去原有内容,所以在添加第二个用户到口令文件时,就不需要-c选项了,使用以下命令即可。[root@chenyi apache2]# /software/apache2/bin/htpasswd /software/apache2/passwd_auth itchenyi认证和授权使用实例(1)使用主配置文件配置用户认证及授权在本例中,用户可以在Apache的主配置文件httpd.conf中加入以下语句,建立对目录/software/apache/htdocs/chenyi访问的用户认证和授权机制: <Directory "/software/apache2/htdocs/chenyi"> AllowOverride None AuthType Basic AuthName "chenyi" AuthUserFile /software/apache2/passwd_auth Require user chenyi itchenyi </Directory>在上述例子中,使用了以下的指令。AllowOveride:该选项定义了不实用htaccess文件AuthType Basic:AuthType选项定义了对用户实施认证的类型,最常用的是由mod_auth提供的Basic。AuthName:定义了Web浏览器显示输入用户/密码对话框时的领域内容。AuthUserFile:定义了口令文件的路径,即使用htpasswd建立的口令文件。Require user:定义了允许哪些用户访问,各用户之间用空格分开。 需要注意的是,在AuthUserFile选项定义中,还要使用语句事先建立认证用户chenyi和itchenyi,该选项中的定义才能生效。具体语句如下:[root@chenyi apache2]# /software/apache2/bin/htpasswd -c /software/apache2/passwd_auth chenyi [root@chenyi apache2]# /software/apache2/bin/htpasswd /software/apache2/passwd_auth itchenyi此时重启了apache后  在访问该目录,就会要求验证.... apache安全加固          (2)使用.htaccess文件配置用户认证和授权在本例中,为了完成如上述例子同样的功能,需要先在主配置文件中加入如下语句:<Directory "/software/apache2/htdocs/chenyi"> AllowOverride AuthConfig </Directory>上述语句中的AllowOverride选项允许在.htaccess文件中使用认证和授权指令。然后,在.htaccess文件中添加以下语句即可: AuthType Basic AuthName "Please Login:" AuthUserFile /software/apache2/passwd_auth Require user chenyi itchenyi在AuthUserFile选项定义中,也要使用如下语句先建立认证文件chenyi和itchenyi该选项的定义才会生效,注:如果你是接着方法1后做的测试就不用在建立认证文件,但要#注释掉Apache定义的参数后重新设置。[root@chenyi apache2]# /software/apache2/bin/htpasswd -c /software/apache2/passwd_auth chenyi [root@chenyi apache2]# /software/apache2/bin/htpasswd /software/apache2/passwd_auth itchenyi到这里,重启Apache后通过浏览器访问后就能看到.htaccess实现的效果了..... 使用Apache中的安全模块1、找出Apache服务器中安全的相关模块Apache的一个优势便是灵活的模块结构,其设计思想也是围绕模块(Module)概念而展开的。安全模块是ApacheServer中极重要的组成部分,这些安全模块负责提供ApacheServer的访问控制、认证、授权等一系列至关重要的安全服务。Apache具有如下几类与安全相关的模块。mod_access模块:能够根据访问者的IP地址或域名、主机名的等,来控制对Apache服务器的访问,称之为基于主机的访问控制。mod_auth模块:用来控制客户和组的认证授权(Authentication)。用户名和口令存于纯文本文件中。mod_auth_db和mod_auth_dbm模块:分别将用户信息(如名称、组属和口令等)纯于Berkeley-DB及DBM型的小型数据库中,便于管理及提高应用效率。mod_auth_digest模块:采用MD5数字签名的方式进行用户认证,但它需要客户端的支持。mod_auth_anon模块:功能和mod_auth的功能类似,只是它允许匿名登录,将用户输入的Email地址作为口令。mod_ssl 模块:用于支持安全套接字层协议,提供Internet上的安全交易服务,如电子商务中的一项安全措施,通过对通信直接流的加密来防止敏感信息的泄露,但 是,Apache的这种支持是建立在对Apache的API扩展来实现的,相当于一个外部模块,通过第三方程序(如OpenSSL)的结合提供安全的网上 交易支持。        2、开启安全模块为了能使用模块功能,模块通 常以DSO(Dyname Shared Objed)的方式构建,用户应该在httpd.conf文件中使用LoadModule指令,以便在使用前获得模块的功能,以下主配置文件中各个模块的 情况,开启安全模块非常简单,即去掉在各安全模块所在行前面的“#”注释即可。具体如下: LoadModule auth_basic_module modules/mod_auth_basic.so LoadModule digest_module modules/mod_auth_diaest.so本文出自 “IT辰逸” 博客,请务必保留此出处http://itchenyi.blog.51cto.com/4745638/1189003... 全文

CentOS6.2 服务器 可操作性 安全加固 IT辰逸

Apache安全设置

Apache服务器走到那里,unix/linux就跟到那里,这足以说明在WEB服务器领域Apache的优良性能与市场占有率 这今天互联网的大环境下,web服务已经成为公司企业必不可少的业务,大多数的安全问题也跟随而来,攻击重点也转移为web攻击,许多web与颇有价值的客户服务与电子商业活动结合在一起,这也是吸引恶意攻击重要原因。 先来了解下web所面临的安全风险 HTTP拒绝服务攻击 攻击者通过某些手段使服务器拒绝对http应答,这使Apache对系统资源(cup时间与内存)需求巨增,最终造成系统变慢甚至完全瘫痪,Apache服务器最大的缺点是,它的普遍性使它成为众矢之的,Apache服务器无时无刻不受到DoS攻击威胁,主要有下边几种 1.数据包洪水攻击 一种中断服务器或本地网络的方法是数据包洪水攻击,它通常使用internet控制报文协议(ICMP,属于网络层协议) 包或是udp包,在最简单的形式下,这些攻击都是使服务器或网络负载过重,这意味这攻击者的网络速度必须比目标主机网络速度要快,使用udp包的优势是不会有任何包返回到黑客的计算机(udp效率要比tcp高17倍),而使用ICMP包的优势是攻击者能让攻击更加富与变化,发送有缺陷的包会搞乱并锁住受害者的网络,目前流行的趋势是攻击者欺骗服务器,让其相信正在受来自自身的洪水攻击 2.磁盘攻击 这是一种很不道德的攻击,它不仅影响计算机的通信,还破坏其硬件,伪造的用户请求利用写命令攻击目标计算机硬盘,让其超过极限,并强制关闭,结局很悲惨 3.路由不可达 通常DoS攻击,集中在路由器上,攻击者首先获得控制权并操纵目标机器,当攻击者能更改路由表条目时候,会导致整个网络无法通信,这种攻击很阴险,隐蔽,因为网络管理员需要排除的网络不通原因很多,其中一些原因需要详细分辨 4.分布式拒绝服务攻击 这也是最具有威胁的DDoS攻击,名称很容易理解,简单说就是群欧,很多客户机同时单条服务器,你会发现你将伤痕累累,Apache服务器特别容易受到攻击,无论是DDos还是隐藏来源的攻击,因为Apache无处不在,特别是为Apache特意打造的病毒(特选SSL蠕虫),潜伏在许多主机上,攻击者通过病毒可以操纵大量被感染的机器,对特定目标发动一次浩大的DDoS攻击,通过将蠕虫散播到大量主机,大规模的点对点攻击得以进行,除非你不提供服务,要不然几乎无法阻止这样的攻击,这种攻击通常会定位到大型的网站上。 缓冲区溢出,这种攻击很普遍,攻击者利用CGI程序编写一些缺陷程序偏离正常的流程,程序使用静态的内存分配,攻击者就可以发送一个超长的请求使缓冲区溢出,比如,一些perl编写的处理用户请求的网关脚本,一但缓冲区溢出,攻击者就可以执行恶意指令 非法获取root权限 如果Apache以root权限运行,系统上一些程序的逻辑缺陷或缓冲区溢出漏洞,会让攻击者很容易在本地系统获取linux服务器上的管理者权限,在一些远程情况下,攻击者会利用一些以root身份执行的有缺陷的系统守护进程来取得root权限,或利用有缺陷的服务进程漏洞来取得普通用户权限,以远程登陆,进而控制整个系统。 这边这些都是服务将会遇到的攻击手段,下边来说,如何打造安全的Apache服务器 如果你能遵守下边这些建议,那么你将得到一台相对安全的apache服务器 一:勤打补丁 你必须要相信这个是最有用的手段,缓冲区溢出等漏洞都必须使用这种手段来防御,勤快点相信对你没有坏处 在http:www.apache.org上最新的changelog中都写有:bug fix ,security bug fix的字样,做为负责任的管理员要经常关注相关漏洞,及时升级系统添加补丁。使用最新安全版本对加强apache至关重要 二:隐藏和伪装Apache的版本 打乱攻击者的步骤,给攻击者带来麻烦,相信是管理员愿意看到的。软件的漏洞信息和版本是相关的,在攻击者收集你服务软件信息时候给与迷惑是个不错的选择,何况版本号,对攻击者来说相当与GPS定位一样重要 默认情况,系统会把apache版本模块都显示出来(http返回头),如果列举目录的话,会显示域名信息(文件列表正文),去除Apache版本号的方法是修改配置文件,找到关键字,修改为下边 ServerSignature off ServerTokens prod 通过分析web服务器类型,大致可以推测操作系统类型,win使用iis,linux普遍apache,默认的Apache配置里没有任何信息保护机制,并且允许目录浏览,通过目录浏览,通常可以得到类似“apache/1.37 Server at apache.linuxforum.net Port 80”或“apache/2.0.49(unix)PHP/4.3.8”的信息 通过修改配置文件中的ServerTokens参数,可以将Apache的相关信息隐藏起来,如果不行的话,可能是提示信息被编译在程序里了,要隐藏需要修改apache的源代码,然后重新编译程序,以替换内容 编辑ap_release.h文件, 修改"#define AP_SERVER_BASEPRODUCT""Apache"""为 "#define AP_SERVER_BASEPRODUCT""Microsoft-IIS/5.0"" 编辑os/unix/os.h文件 修改"#define PLATFORM""Unix"""为 "#define PLATFORM"'Win32" 修改完成后,重新编译,安装apache,在修改配置文件为上边做过的,再次启动apache后,用工具扫描,发现提示信息中已经显示为windows操作系统了 顺便说下,现在这个论坛,就有点不太讲究,这是论坛错误的返回信息,看了有点汗地感觉 Apache/2.2.8 (Ubuntu) DAV/2 SVN/1.4.6 mod_ssl/2.2.8 OpenSSL/0.9.8g Server at forum.ubuntu.org.cn Port 80 这个等于告诉恶意用户很多有用信息,虽然说不算开了门,但等于被告诉了门在那里,还是相当危险的 三:建立安全的目录结构apache服务器包括四个目录结构 ServerRoot #保存配置文件,二进制文件与其他服务器配置文件 DocumentRoot #保存web站点内容,包括HTML文件和图片等 ScripAlias #保存CGI脚本 Customlog 和 Errorlog #保存日志和错误日志 建议的目录结构为,以上四种目录相互独立并且不存在父子逻辑关系 注: ServerRoot目录只能为root用户访问 DocumentRoot目录应该能够被管理web站点内容的用户访问和使用apache服务器的apache用户与组访问 ScripAlias目录应该只能被CGI开发人员和apache用户访问 Customlog 和 Errorlog只能被root访问 下边是一个安全目录结构的事例 +-------/etc/ | | +----/http (ServerRoot) | +----/logs (Customlog 和 Errorlog) | +-------var/www | | +---/cgi-bin (ScripAlias) | +---/html (DocumentRoot) 这样的目录结构是比较安全的,因为目录之间独立,某个目录权限错误不会影响到其他目录 四:为apache使用专门的用户与组 按照最小特权的原则,需要给apache分配一个合适的权限,让其能够完成web服务 注: 最小特权原则是系统安全中最基本的原则之一,限制使用者对系统及数据进行存取所需要的最小权限,保证用户可以完成任务,同时也确保被窃取或异常操作所造成的损失 必须保证apache使用一个专门的用户与组,不要使用系统预定的帐户,比如nobody用户与nogroup组 因为只有root用户可以运行apache,DocumentRoot应该能够被管理web站点内容的用户访问和使用apache服务器的 apache用户与组访问,例如,希望“test”用户在web站点发布内容,并且可以以httpd身份运行apache服务器,可以这样设定 groupadd webteam usermod -G webteam test chown -R httpd.webteam /www/html chmod -R 2570 /www/htdocs 只有root能访问日志,推荐这样的权限 chown -R root.root /etc/logs chown -R 700 /etc/logs 五:web目录的访问策略 对于可以访问的web目录,要使用相对保守的途径进行访问,不要让用户查看任何目录索引列表 禁止使用目录索引: apache在接到用户对一个目录的访问时,会查找DirectoryIndex指令指定的目录索引文件,默认为index.html,如果该文件不存在,那么apache会创建动态列表为用户显示该目录的内容,这样就会暴露web站点结构,因此需要修改配置文件禁止显示动态目录索引,修改httpd.conf Options -Indexes FollowSymLinks Options指令通知apache禁止使用目录索引,FollowSymLinks表示不允许使用符号连接。 禁止默认访问: 要的安全策略必须要禁止默认访问的存在,只对指定的目录开放权限,如果允许访问/var/www/html目录,使用如下设定 Order deny,allow Allow from all 禁止用户重载: 为了禁止用户对目录配置文件(htaccess)进行重载(修改),可以这样设定 AllowOverride None 六:apache服务器访问控制 apache的access.conf文件负责设置文件的访问权限,可以实现互联网域名和ip地址的访问控制 如允许192.168.1.1到192.168.1.254的主机访问,可以这样设定 order deny,allow deny from all allow from pair 192.168.1.0/255.255.255.0 七:apache服务器的密码保护 .htaccess文件是apache上的一个设置文件,它是一个文本文件,.htaccess文件提供了针对目录改变配置的方法 既通过在一个特定的文档目录中放置一个包含一个或多个指令的文件(.htaccess文件),以作用于此目录和子目录。 .htaccess的功能包括设置网页密码,设置发生错误时出现的文件,改变首业的文件名(如,index.html),禁止读取文件名,重新导向文件,加上MIME类别,禁止目录下的文件等。 注:.htaccess是一个完整的文件名,不是***.htaccess或其他格式,在/abc目录下放置一个.htaccess文件,那么/abc与它的子目录都会被这个文件影响,但/index.html不会被影响 .htaccess的建立和使用比较复杂点,如果感兴趣的朋友可以回帖发问,这里就不具体写出来了,这种保护要比某些程序实现的保护安全,那种方法可以通过被猜测方法获取密码,用.htaccess很难被破解,但文本方式的验证会比较慢,对少量用户没影响,但对大量用户就必须使用带数据模块的验证了,这需要编译源代码时候开启模块,默认是不开启的 八:让apache运行在“监牢”中 “监牢”的意思是指通过chroot机制来更改某个软件运行时所能看到的根目录,简单说,就是被限制在指定目录中,保证软件只能对该目录与子目录文件有所动作,从而保证整个服务器的安全,即使被破坏或侵入,损伤也不大 以前,unix/linux上的daemon都是以root权限启动的,当时,这是一件理所当然的事情,像apache这样的服务器软件,需要绑定到80端口上来监听请求,而root是唯一有这种权限的用户,随着攻击手段和强度的增加,这样会使服务器受到相当大的威胁,一但被利用缓冲区溢出漏洞,就可以控制整个系统。现在的服务器设计通常以root启动,然后进程放弃root权限,改为某个低级的帐号运行。这种方式显然会降低对系统的危害,但攻击者还是会寻找漏洞提升权限,即使无法获得root权限,也可以删除文件,涂改主页等 为了进一步提高系统安全性,linux内核引入chroot机制,chroot是内核中的一个系统调用,软件可以通过调用函数库的chroot 函数,来更改某个进程所能见到的跟目录,比如,apache软件安装在/usr/local/httpd目录,以root启动apache,这个root 权限的父进程会派生数个以nobody权限运行的子进程,父进程监听80端口,然后交给某个子进程处理,这时候子进程所处的目录续承父进程,即/usr /local/httpd目录,但是一但目录权限设定错误,被攻击的apache子进程可以访问/usr/local , /usr ,/tmp甚至整个文件系统,因为apache进程所处的跟目录仍然是整个文件系统的跟目录,如果可以用chroot将apache限制在/usr /local/httpd/下,那么apache所存取的文件都被限制在/usr/local/httpd下,创建chroot监牢的作用就是将进程权限限制在文件目录树下,保证安全。 如果自己手动apache的监牢,将是很烦琐和复杂的工作,需要牵扯到库文件,这里可以使用jail包来简化监牢的实现 jail的官方网站为: 有兴趣可以逛逛 这里也不写出具体的创建过程稍微麻烦,如果对安全有需要的话,请回帖,会及时补上 九:apache服务器防范Dos apache服务经常会碰到Dos攻击,防范的主要手段是通过软件,apahce Dos Evasive Maneuvers Module 来实现的,它是一款mod_access的代替软件,可以对抗DoS攻击,该软件可以快速拒绝来自相同地址对同一URL的重复请求,通过查询内部一张各子进程的哈希表来实现 可以到网址:http://online/.securityfocus.com/tools/ 上下载软件 十:减少CGI和SSI风险 CGI脚本的漏洞已经成为WEB服务器的首要安全隐患,通常是程序编写CGI脚本产生了许多漏洞,控制CGI的漏洞除了在编写时候注意对输入数据的合法检查,对系统调用的谨慎使用等因素外,首先使用CGI程序所有者的ID来运行这些程序,即使被漏洞危害也仅限于该ID能访问的文件,不会对整个系统带来致命的危害,因此需要谨慎使用CGI程序。 1.3版的apache集成了suEXEC程序,可以为apache提供CGI程序的控制支持,可以把suEXEC看做一个包装器,在Apache接到CGI程序的调用请求后,把这个请求交给suEXEC来负责完成具体调用,并从suEXEC返回结果,suEXEC可以解决一些安全问题,但会影响速度 如果是对安全性要求很高时候,建议使用suEXEC,此外还有一个软件CGIWrap,它的安全性要高与suEXEC 减少SSI脚本风险,如果用exec等SSI命令运行外部程序,也会存在类似CGI脚本风险,除了内部调试程序时,应使用 option命令禁止其使用: Option IncludesNOEXEC 十一:使用ssl加固Apache 使用具有SSL功能的服务器,可以提高网站敏感页的安全性能,SSL工作与TCP/IP协议和HTTP协议之间 SSL可以加密互联网上传递的数据流,提供身份验证,在线购物而不必担心别人窃取信用卡信息,在基于电子商务和基于web邮件的地方非常重要。 SSL的应用相对还是比较麻烦的,有需要的话,可以发贴或查看资料,这几就不多写,篇幅不够... 全文

客户服务 服务器 互联网 linux color

1