科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网安全频道网络安全Apache安全和强化的十三个技巧(一)

Apache安全和强化的十三个技巧(一)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

Apache是一个很受欢迎的web服务器软件,其安全性对于网站的安全运营可谓生死攸关。本文将介绍一些可帮助管理员在Linux上配置Apache确保其安全的方法和技巧。

来源:TechTarget中国 2013年12月13日

关键字: 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
  • 对Web服务器的日志文件的访问: /var/log/httpd/access_log
  • Web服务器错误日志文件: /var/log/httpd/error_log

1、避免在错误中显示Apache版本和操作系统的ID

一般情况下,在用源代码安装或用yum等包安装程序安装Apache时,Apache服务器的版本号和服务器操作系统的名称都可以在错误消息中显示,而且还会显示安装在服务器上的Apache模块信息。

在上图中,可以看出错误页面显示了Apache的版本以及服务器所安装的操作系统版本。这有可能成为Web服务器和Linux系统的一个重要威胁。为防止Apache把这些信息泄露出来,我们需要在Apache的主要配置文件中进行更改:

用vim编辑器打开配置文件,查找“ServerSignature”,默认情况下它是打开状态。我们需要关闭服务器签名。ServerTokens Prod告诉Apache只在每一个请求网页的服务器响应的头部,仅返回Apache产品名称。

# vim /etc/httpd/conf/httpd.conf (RHEL/CentOS/Fedora)
# vim /etc/apache/apache2.conf (Debian/Ubuntu)
ServerSignature Off
ServerTokens Prod
# service httpd restart (RHEL/CentOS/Fedora)
# service apache2 restart (Debian/Ubuntu)

2、禁用目录列表

默认情况下,在缺少index文件时,Apache会列示root目录的所有内容。如下图所示:

对于某个特定目录,我们可以在配置文件中用“Options directive”关闭目录列示。可以在httpd.conf或apache2.conf文件中加入如下项目:

<Directory /var/www/html>
  Options -Indexes
</Directory>

其效果类似于下图:

3、经常更新Apache

Apache的开发社区一直在不断地改善安全问题,并经常发布带有新的安全特性的最新版本。所以我们建议你使用最新的Apache作为自己的web服务器。为检查Apache的版本,我们可以用httpd –v命令来检查最新的版本。

# httpd -v
Server version: Apache/2.2.15 (Unix)
Server built:   Aug 13 2013 17:29:28

可以用下面的命令更新Apache版本。

# yum update httpd
# apt-get install apache2

如果你并不是在特定操作系统或内核上运行某个特别的软件,建议你保持内核和Linux操作系统为最新版本。

4、禁用不必要的模块

为了尽量减少网站遭受Web攻击的机会,管理员最好禁用目前不用的所有模块。你可以使用下面的命令,列示Web服务器所有的已编译模块。

# grep LoadModule /etc/httpd/conf/httpd.conf
# have to place corresponding `LoadModule' lines at this location so the
# LoadModule foo_module modules/mod_foo.so
LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule auth_digest_module modules/mod_auth_digest.so
LoadModule authn_file_module modules/mod_authn_file.so
LoadModule authn_alias_module modules/mod_authn_alias.so
LoadModule authn_anon_module modules/mod_authn_anon.so
LoadModule authn_dbm_module modules/mod_authn_dbm.so
LoadModule authn_default_module modules/mod_authn_default.so
LoadModule authz_host_module modules/mod_authz_host.so
LoadModule authz_user_module modules/mod_authz_user.so
LoadModule authz_owner_module modules/mod_authz_owner.so
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
LoadModule authz_dbm_module modules/mod_authz_dbm.so
LoadModule authz_default_module modules/mod_authz_default.so
LoadModule ldap_module modules/mod_ldap.so
LoadModule authnz_ldap_module modules/mod_authnz_ldap.so
LoadModule include_module modules/mod_include.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule logio_module modules/mod_logio.so
LoadModule env_module modules/mod_env.so
LoadModule ext_filter_module modules/mod_ext_filter.so
……

上述模块在默认情况下都是启用的,但往往并不需要,特别是mod_imap,mod_include, mod_info, mod_userdir, mod_autoindex。要禁用特定的模块,可以在该模块所在行的开头插入“#”注释,并重新启动服务。

5、用独立的用户和组运行Apache

在默认的安装方式中,运行Apache进程时的用户是“nobody”或daemon。为安全起见,我们建议用非特权账户运行Apache,例如,我们要使用http-web,就需要创建该Apache 用户和组:

# groupadd http-web
# useradd -d /var/www/ -g http-web -s /bin/nologin http-web

现在你需要告诉Apache用这个新用户运行,为此,我们需要在/etc/httpd/conf/httpd.conf中加入一个新条目,并重新启动服务。
用vim编辑器打开/etc/httpd/conf/httpd.conf ,查找关键字“User” 和 “Group”,然后将后面的用户名和组名改为http-web:

User http-web
Group http-web

6、对用户的允许和禁止,限制对目录的访问

我们可以用httpd.conf文件中的“Allow” 和“Deny”限制对目录的访问。在本例中,我们要保证root目录的安全,在httpd.conf文件中进行如下的设置:

<Directory />
   Options None
   Order deny,allow
   Deny from all
</Directory>

其中,Options “None”表示不允许用户启用任何可选特性。

Order deny, allow---在这里处理“Deny” 和 “Allow”指令,首先禁用,然后才是允许。

Deny from all,禁用所有人对root目录的请求,任何人都不能访问根(root)目录。
 

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章