始创于2000年 股票代码:831685
咨询热线:0371-60135900 注册有礼 登录
  • 挂牌上市企业
  • 60秒人工响应
  • 99.99%连通率
  • 7*24h人工
  • 故障100倍补偿
您的位置: 网站首页 > 帮助中心>文章内容

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

发布时间:  2012/5/28 7:45:14

策略三:启用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的功能类似,只是它允许匿名登录,将用户输入的E-mail地址作为口令。

mod_ssl被Apache用于支持安全套接字层协议,提供Internet上安全交易服务,如电子商务中的一项安全措施。通过对通信字节流加密来防止敏感信息的泄漏。但是,Apache这种支持是建立在对Apache的API扩展来实现的,相当于一个外部模块,通过与第三方程序(如 openssl)的结合提供安全的网上交易支持。

为了能够使用模块功能,模块通常以DSO(DynamicSharedObject)的方式构建,用户应该在httpd.conf文件中使用 LoadModule指令,使得能够在使用前获得模块的功能。下面是主配置文件中各个模块的情况,开启安全模块非常简单,即去掉在各安全模块所在行前的 “#”符号即可,如下所示:

LoadModuleauth_basic_modulemodules/mod_auth_basic.so

LoadModuleauth_digest_modulemodules/mod_auth_digest.so

LoadModuleauthn_file_modulemodules/mod_authn_file.so

LoadModuleauthn_alias_modulemodules/mod_authn_alias.so

。。。。。。

只有将上述安全模块进行开启后,Apache才能实现相应的访问控制和通信加密功能。

策略四:访问控制策略设置

在开启了相应的安全模块后,还需要对Apache的访问控制策略进行设定。

1.认证和授权指令

目前,有两种常见的认证类型,基本认证和摘要认证:

(1)基本认证(Basic):使用最基本的用户名和密码方式进行用户认证。

(2)摘要认证(Digest):该认证方式比基本认证要安全得多,在认证过程中额外使用了一个针对客户端的挑战(challenge)信息,可以有效地避免基本认证方式可能遇到的“重放攻击”。值得注意的是:目前并非所有的浏览器都支持摘要认证方式。

所有的认证配置指令既可以出现在主配置文件httpd.conf中的Directory容器中,也可以出现在单独的.htaccess文件中,这个可以由用户灵活地选择使用。在认证配置过程中,需要用到如下指令选项:

AuthName:用于定义受保护区域的名称。

AuthType:用于指定使用的认证方式,包括上面所述的Basic和Digest两种方式。

AuthGroupFile:用于指定认证组文件的位置。

AuthUserFile:用户指定认证口令文件的位置。

使用上述的认证指令配置认证后,需要为Apache服务器的访问对象,也就是指定的用户和组进行相应的授权,以便于他们对Apache服务器提供的目录和文件进行访问。为用户和组进行授权需要使用Require指令,主要可以使用以下三种方式进行授权:

授权给指定的一个或者多个用户:使用Requireuser用户名1用户名2…。

授权给指定的一个或者多个组:使用Requiregroup用户名1用户名2…。

授权给指定口令文件中的所有用户:使用Requirevalid-user。

2.管理认证口令文件和认证组文件

要实现用户认证功能,首先要建立保存用户名和口令的文件。Apache自带的htpasswd命令提供了建立和更新存储用户名、密码的文本文件的功能。需要注意的是,这个文件必须放在不能被网络访问的位置,以避免被下载和信息泄漏。建议将口令文件放在/etc/httpd/目录或者其子目录下。

下面的例子在/etc/httpd目录下创建一个文件名为passwd_auth的口令文件,并将用户rhel5添加入认证口令文件。使用以下命令建立口令文件(过程中还会提示输入该用户的口令):

#touchpasswd_auth

#htpasswd-c/etc/httpd/passwd_authrhel5

Newpassword:

Re-typenewpassword:

Addingpasswordforuserrhel5

命令执行的过程中系统会要求用户为rhel5用户输入密码。上述命令中的-c选项表示无论口令文件是否已经存在,都会重新写入文件并删去原有内容。所以在添加第2个用户到口令文件时,就不需要使用-c选项了,如下命令所示

#htpasswd/etc/httpd/passwd_authtestuser

3.认证和授权使用实例

(1)使用主配置文件配置用户认证及授权

在本例子中,用户可以在Apache的主配置文件httpd.conf中加入以下语句建立对目录/var/www/html/rhel5访问的用户认证和授权机制:

<Directory"/var/www/html/rhel5">

AllowOverrideNone

AuthTypeBasic

AuthName"rhel5"

AuthUserFile/etc/httpd/passwd_auth

Requireuserrhel5testuser

</Directory>

在上述例子中,使用了如下指令:

AllowOverride:该选项定义了不使用.htaccess文件。

AuthTypeBasic:AuthType选项定义了对用户实施认证的类型,最常用的是由mod_auth提供的Basic。

AuthName:定义了Web浏览器显示输入用户/密码对话框时的领域内容。

AuthUserFile:定义了口令文件的路径,即使用htpasswd建立的口令文件。

Requireuser:定义了允许哪些用户访问,各用户之间用空格分开。

需要注意的是:在AuthUserFile选项定义中,还需要使用如下语句事先建立认证用户patterson和testuser,该选项中的定义才能生效:

#htpasswd-c/etc/httpd/passwd_authrhel5

#htpasswd/etc/httpd/passwd_authtestuser

(2)使用.htaccess文件配置用户认证和授权

在本例子中,为了完成如上述例子同样的功能,需要先在主配置文件中加入如下语句:

<Directory“/var/www/html/rhel5”>

AllowOverrideAuthConfig

</Directory>

上述语句中的AllowOverride选项允许在.htaccess文件中使用认证和授权指令。

然后,在.htaccess文件中添加如下语句即可:

AuthTypeBasic

AuthName"PleaseLogin:"

AuthUserFile/etc/httpd/passwd_auth

Requireuserrhel5testuser

同理,在AuthUserFile选项定义中,还需要使用如下语句事先建立认证用户patterson和testuser,该选项中的定义才能生效:

#htpasswd-c/etc/httpd/passwd_authrhel5

#htpasswd/etc/httpd/passwd_authtestuser


本文出自:亿恩科技【www.enkj.com】

服务器租用/服务器托管中国五强!虚拟主机域名注册顶级提供商!15年品质保障!--亿恩科技[ENKJ.COM]

  • 您可能在找
  • 亿恩北京公司:
  • 经营性ICP/ISP证:京B2-20150015
  • 亿恩郑州公司:
  • 经营性ICP/ISP/IDC证:豫B1.B2-20060070
  • 亿恩南昌公司:
  • 经营性ICP/ISP证:赣B2-20080012
  • 服务器/云主机 24小时售后服务电话:0371-60135900
  • 虚拟主机/智能建站 24小时售后服务电话:0371-60135900
  • 专注服务器托管17年
    扫扫关注-微信公众号
    0371-60135900
    Copyright© 1999-2019 ENKJ All Rights Reserved 亿恩科技 版权所有  地址:郑州市高新区翠竹街1号总部企业基地亿恩大厦  法律顾问:河南亚太人律师事务所郝建锋、杜慧月律师   京公网安备41019702002023号
      0
     
     
     
     

    0371-60135900
    7*24小时客服服务热线