技术改变世界 阅读塑造人生! - 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安全和强化的十三个技巧

Apache是一个很受欢迎的web服务器软件,其安全性对于网站的安全运营可谓生死攸关。下面介绍一些可帮助管理员在Linux上配置Apache确保其安全的方法和技巧。本文假设你知道这些基本知识:文档的根目录: /var/www/html or /var/www主配置文件: /etc/httpd/conf/httpd.conf (RHEL/CentOS/Fedora等系统) 或/etc/apache/apache2.conf (Debian/Ubuntu).默认HTTP 端口: 80 TCP默认 HTTPS 端口: 443 TCP测试配置文件设置及语法: httpd -t... 全文

Apache Apache安全 Linux安全

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

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

Apache安全 Apache服务器

Apache 安全配置方法 详细出处参考

Apache 安全配置方法发布类型:转载在本文中,笔者将为你提供10个技巧,借此你可以保护自己的Apache Web服务器免于受到许多攻击。不过,必须谨记,你需要仔细地评估每一个技巧,以确保其适合于你的组织。令Apache占领Web服务器半壁江山的一个重要原因就是它可以提供一个安全的Web操作环境。Apache团体为保证其安全性做了大量的工作。想当年,在此产品被发现存在一个安全缺陷时,Apache的开发人员就尽快地搞出了一个补丁。然而,即管Apache已经堪称安全的产品,如果你在构建你的服务器时没有采取一些安全预防措施,这种Web服务器仍易于受到很多攻击。... 全文

apache apache安全设置方法

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

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

Apache服务器安全 Apache服务器

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

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

Apache安全 安全的web服务器

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

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

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

第十章apache的安全设置

 版本V1.0时间2012-10-04版权GPL作者itnihao 邮箱 itnihao@qq.com博客 http://itnihao.blog.51cto.com如需重新发行,请注明以上信息,谢谢合作前言... 全文

安全 apache

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

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

Apache 服务器 服务器安全

用Apache Proxy的指令改进LAMP安全性(1)

在本文中,Nick Maynard 描述了一种使用 Apache 的 mod_proxy 模块改进 LAMP 设置的安全性的方法。本文专门针对 Linux;但是,也可以将一些原理应用于其他操作系统。Apache Software Foundation 的 HTTP 服务器项目(通常称为 Apache)是当今互联网上占据优势的 Web 服务器,它占据了 60% 以上的市场份额。Apache 服务器是日渐流行的 LAMP 软件配置的一部分。LAMP 是一套免费软件程序,是在 Linux?、Apache、MySQL 和 PHP 等开放源码技术之上构建的 Web 平台。在本文中,您将学习一种使用 mod_proxy 模块和多个后端服务器来改进 LAMP 安全性的方法。我将讨论这种方法的优点和缺点,并提供一个配置示例。PHP 和 Apache:安全性难题LAMP 管理员面对的一个挑战是,提供完整 PHP 系统的所有特性,同时确保为系统的所有用户提供一个安全的环境。使用 PHP 的安全模式是实现这一目标的一种技术,但是它也过度地限制了用户,而且启用了这个设施之后,一些 PHP 应用程序就不能发挥作用。PHP 安全问题的根源在于大多数 Apache 服务器的配置方式。因为大多数 Apache 配置运行在特殊的 www-data 用户 ID 下,对 Web 站点进行主机托管的所有用户在默认情况下必须确保这个用户可以读取他们的文件。因此,系统上的所有其他用户都可能访问一个用户的所有 Web 可访问文件;所以系统上原本与您无关的安全漏洞会成为攻击您的 Web 站点的突破口。如果文件或目录必须设置为 www-data 用户可写的,那么这种情况会更加严重。通过使用 CGI 程序,比如用 Perl 和 Python 等流行语言编写的程序,可以在使用 suEXEC 机制时消除这个问题的部分影响。简单地说,suEXEC 使用一个特殊的中间程序以程序所有者的用户 ID 执行 CGI 程序。(更多细节请参见 参考资料 中文章的链接。)这是一种非常有效的机制,已经使用了许多年了。但是,在使用 mod_php 模块主机托管时,PHP 页面作为 Apache 主进程的一部分执行。因此,它们继承 Apache 进程的所有凭证,而且它们在文件系统上执行的任何工作必须作为 www-data 用户执行。在多个用户 ID 下运行 Apache对于上面描述的问题,明显的解决方案是要求对一个用户域的所有请求都来自一个只拥有此用户的凭证的 Apache 实例。可以将 Apache 配置为在启动时获取任何用户的凭证。对于给每个用户分配一个单独的互联网可见 IP 地址/端口组合的简单设置,这种方法可以解决问题。对于更复杂的设置(在其中 IP 地址很宝贵),这种方法是无效的。当单一 Apache 实例可以控制一个特定的 IP 地址/端口组合时,只能使用虚拟主机,这是 Apache 系统中广泛使用的一种技术。这就排除了让属于多个用户的多个域使用同一个 IP 地址/端口组合的可能性。Apache 2.0 引入了多处理模块(multiprocessing module,MPM) 的概念。在基本 Apache 2.0 包提供的 MPM 中有一个实验性的模块 perchild,它可以将一个分布器线程分配给 IP 地址/端口组合,并将请求传递给在单独用户的凭证下运行的子线程,从而实现多个用户 ID 下的虚拟主机。遗憾的是,perchild 仍然是实验性的,它不一定能够发挥作用,而且在 Apache 2.2 发布时从正式 Apache 发行包中删除了。在此之前,由于认识到仍然需要一个稳定的能够发挥作用的与 perchild 相似的 MPM,Apache 社区开始研发许多 MPM 来弥补这一欠缺。MetuxMPM 以及面向过程的 peruser 正在朝着这个方向努力。(关于 MetuxMPM 和 peruser MPM 的更多信息,参见 参考资料)。一个解决方案:mod_proxy尽管还没有正式的 Apache MPM 能够直接提供多个用户 ID 下的虚拟主机,但是仍然可以通过某些配置和管理在 Apache 系统中实现这种行为。这种方法的核心概念是使用 mod_proxy 模块,这个模块(加上其他功能)使 Apache 能够将页面请求转发给其他服务器,并将响应传递回原来发出请求的客户机。清单 1. 基本请求转发的反向代理配置示例:... 全文

Apache Proxy LAMP 安全 指令

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

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

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

保护Linux下的Apache网站

 Linux的广泛应用和快速发展得益于互联网的飞速发展。对于Internet上应用广泛的Web服务来说,Linux表现出色。很难说清目前Internet上究竟有多少个网站在使用Linux系统,但众多网站中采用Apache服务器的无疑占据了极大的市场份额。     如何为网站提供保护,防止非法用户登入呢?通常可以采用身份认证方式。身份认证是防止非法用户使用资源的有效手段,也是管理注册用户的有效方法。现在很多网站都使用身份认证来管理用户资源,对用户的访问权限进行严格地限制。传统的身份认证方法是通过检验用户的注册名、口令,来决定是否允许用户使用资源,但这种认证方法在某些情况下作用并不十分有效。特别是在Linux平台下的Apache服务器,完全可以用Linux的方法来实现密码验证和保护。     Linux下最常见的密码保护方法是利用.htaccess文件,即目录配置实现密码保护,这也是.htaccess文件的功能之一。这种方法可以使没有授权的浏览者不能进入.htaccess文件所设置的限制区域。一般地,使用javascript技术进行设置的密码太简单,很容易就被破解,造成了不安全。而使用.htaccess文件保护目录比使用其它程序(Java/HTML/ASP/CGI)更为有效和安全。更重要的是,使用.htaccess的方式进行设置,不需要编写程序就可以实现,具体操作比较容易。     下面就来介绍和演示Linux+Apache下密码保护的方法,全面实现网站保护。     什么是.htaccess文件    .htaccess文件是Apache服务器上的一个设置文件。它是一个文本文件,可以使用任何文本编辑器进行编写。.htaccess文件提供了针对目录改变配置的方法,即通过在一个特定的文档目录中放置一个包含一个或多个指令的文件(.htaccess文件),以作用于此目录及其所有子目录。.htaccess的功能包括设置网页密码、设置发生错误时出现的文件、改变首页的文件名(如index.html)、禁止读取文件名、重新导向文件、加上MIME类别、禁止列目录下的文件等。     在需要针对目录改变服务器的配置,而对服务器系统没有root权限时,应该使用.htaccess文件。如果服务器管理员不愿意频繁修改配置, 则可以允许用户通过.htaccess文件自己修改配置,尤其是ISP在一台机器上提供多个用户站点,而又希望用户可以自己改变配置的情况下,一般会开放部分.htaccess的功能给使用者自行设置。     注意,.htaccess是一个完整的文件名,不是***.htaccess或其它格式(当然也有管理员把其设置成其它名字,但一般都是使用.htaccess)。另外,上传.htaccess文件时,必须使用ASCⅡ模式,并使用chmod命令改变权限为:644(RW_R__R__)。每一个放置.htaccess的目录和其子目录都会被.htaccess影响。例如,在/abc/目录下放置了一个.htaccess文件,那么/abc/和/abc/def/内所有的文件都会被它影响,但/index.html不会被它影响,这一点是很重要的。     实现密码保护    1.建立.htpasswd文件    首先在要设置存取控制的目录(如htdocs)下建立一个文件,文件名可以自行设定,一般服务器都会设置为.htpasswd,该文件是不能由HTTP读取的。.htpasswd文件中的每一行代表一个使用者,使用者的名字及经过加密的密码以冒号:分隔。     2..htaccess文件实现保护    .htaccess文件的内容如下: authtype basicauthuserfile /usr/home/***/htdocs/.abcname1authgroupfile /usr/home/***/htdocs/.abcname2authname information<limit get post>require valid-user</limit>    其中第二行和第三行中的***可以改为个人的FTP登录名。.abcname1和.abcname2可以是任意的文件名,如.htpasswd、.htpass,但不能是.htaccess。将.htaccess上传到要进行密码保护的目录(如htdocs)中。     .htaccess文件最后的“require”告诉服务器哪些用户可以进入。require valid-user是指只要是.htpasswd中的任何一个都可以进入。也可以指定名单上的某人或某几人可以通过,使用require user username或require user username1 username2 username3。还可以指定某组人可以通过,使用require group groupname。     3.增加新的许可用户    进入htdocs目录,在命令行状态输入以下命令生成.abcname1文件。 echo > .abcname1/var/www/bin/htpasswd .abcname1 abc    abc表示要增加的用户名。输入此命令后,系统会提示输入此用户密码,这样该用户名就生效了。以后如要再增加用户,运行第二行的命令时换一个用户名即可。如果这个用户名存在,则会提示修改密码。     4.建立允许访问的组    组的设置方法是建立一个名为.htgroup的文本文件,内容如下: groupname1: username1 username2 username3groupname2: username1 username3 username4    并在.htaccess中加上“AuthGroupFile /absolute/path/.htgroup”。以ASCⅡ模式上传所有文件后,该目录中的所有文件都会被保护起来。     设置错误文件    如果希望在找不到文件时不出现“找不到网页”的页面提示,而是打开另一个HTML文件,方法也很简单。首先编写一个新的页面,然后用文本编辑器打开.htaccess,在文件最后加上:ErrorDocument 404 404.html。这里,404.html是错误文件的名字,即所显示的页面;404是错误代码。一般常见的错误代码和所代表的错误原因如下: 401 Authorization failed 授权失败,即密码错误。403 Access denied 存取错误,即不可以读取该文件。404 File not found 找不到文件。500 Internal Server Error服务器内部错误,可能是Web服务器本身存在问题,也可能是编写的程序出错。    禁止读取文件    如果将某些内容如密码,存放在一个文件中,那么别人只需知道该文件的对应位置,就可以一目了然,这样太不安全。其实完全可以不改变其它设置,也不用将文件移到其它地方就可解决这个问题,只需在.htaccess文件中加入以下几行: <Files filename.ext>order allow,denydeny from all</Files>    如果系统安装的是Apache 1.3以后的版本,更可以支持regular expression的filesmatch。 <filesmatch "\.tmp">order allow,denydeny from all</filesmatch>    files和filesmatch表示只对符合要求的部分文件生效。“order deny,allow”表示先找出禁止(deny)的,然后去找许可的(allow)。如果将它们的顺序颠倒“order allow,deny”则表示先找出许可的,后才去找禁止的。“deny from all”则表示全部IP地址都不许可。相对地,“allow from all”表示全部都允许。可以这样设置: order allow,denyallow from alldeny from 111.222    deny from 111.222是指禁止所有以111.222开始的IP地址(如111.222.0.1)。除了设置IP地址外,也可以设置成hostname(如:***.com)。“Files”和“Filesmatch”的用途很多,不但可以设置deny,也可以设置个别文件的密码,如: <files 123>require user 123</files><files abc>require user abc</files>    使用.htaccess文件也会存在一些问题,比如性能。如果使用.htaccess文件,则Apache需要在每个目录中查找该文件,还必须在所有更高级的目录中查找它,另外,每次请求一个页面时,也都需要读取.htaccess文件。因此,允许使用.htaccess文件都会导致性能的下降。     例如,对/usr/hq/htdocs中页面的请求,Apache必须查找以下文件: /.htaccess/usr/.htaccess/usr/hq/.htaccess/usr/hq/htdocs/.htaccess    总的来说,通过.htaccess来保护网站更为方便和安全。因为它不像利用程序实现密码保护时,有可能通过猜测的方法获取密码。利用.htaccess文件实现密码保护,一般是很难破解的。鉴于.htaccess方式的优缺点,读者可以根据具体的情况选择适合的方法来保证网站的安全。(T111)... 全文

Linux Apache 安全 休闲 职场

Apache CXF实战之六:创建安全的Web Service

我们在使用Web Service的过程中,很多情况是需要对web service请求做认证的,对于运行在web容器里的应用程序来说,可能会比较简单一些,通常可以通过filter来做一些处理,但是其实CXF本身也提供了对web service认证的方式。下面来看一下如何实现。1. 首先是一个简单pojo... 全文

Apache CXF Java

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

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

Linux 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的安全和性能 : mod_limitipconn & mod_cband & mod_bw & mod_evasive

     发现篇好文章,看了之后对apache的模块有了更多的了解。本想完整转载,不过篇幅较长,估计分成4-5个文章才行,太耗时了,所以改成直接放链接了。http://www.wearelinuxer.com/?p=283 ... 全文

限制 dos linux apache module

隐藏Apache,Nginx,PHP的版本信息,来提升站点的安全性

使用 curl -I www.sina.com.cn  查看信息1、隐藏PHP版本信息vi php.ini将expose_php On  改为 expose_php Off如果是LNMP架构,则php-fpm restart如果是LAMP架构,则重启Apache 2、隐藏Apache版本信息vi httpd.confServerTokens ProductOnlyServerSignature Off重启apache 3、隐藏Nginx的版本信息vi nginx.conf在httpd{...}内加上server_tokens off; 如:... 全文

隐藏php版本信息 隐藏nginx版本信息 隐藏apache版本信息 隐藏nginx php

使用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辰逸

1 2