·您现在的位置: 云翼网络 >> 文章中心 >> 网站建设 >> 网站建设问答 >> 保证Linux Apache Web服务器安全的10个建议

保证Linux Apache Web服务器安全的10个建议

作者:佚名      网站建设问答编辑:admin      更新时间:2022-07-23

如果你是一个系统管理员,你应该按照以下的10点建议来保证Apache web服务器的安全。

1、禁用不必要的模块

如果你打算源码编译安装apache,你应该禁用以下的模块。如果你运行./configure -help,你将会看到所有可用的你可以禁用/开启的模块。

userdir –用户特定用户的请求映射。例如:带用户名的URL会转化成服务器的一个目录。

autoindex – 当没有默认首页(如index.html)时显示目录列表。

status –显示服务器统计

env – 清除或修改环境变量

setenvif –根据客户端请求头字段设置环境变量

cgi –CGI脚本

actions – 根据特定的媒体类型或请求方法,激活特定的CGI脚本

negotiation –提供内容协商支持

alias – 提供从文件系统的不同部分到文档树的映射和URL重定向

include –实现服务端包含文档(SSI)处理

filter –根据上下文实际情况对输出过滤器进行动态配置

version –提供基于版本的配置段支持

asis – 发送自己包含HTTP头内容的文件

当你执行./configure按照下面禁用以上的所有模块。

./configure \

--enable-ssl \

--enable-so \

--disable-userdir \

--disable-autoindex \

--disable-status \

--disable-env \

--disable-setenvif \

--disable-cgi \

--disable-actions \

--disable-negotiation \

--disable-alias \

--disable-include \

--disable-filter \

--disable-version \

--disable-asis

如果激活ssl且禁用mod_setenv,你将会得到以下错误。

错误: Syntax error on line 223 of /usr/local/apache2/conf/extra/httpd-ssl.conf: Invalid command ‘BrowserMatch’, perhaps misspelled or defined by a module not included in the server configuration

解决方案:如果你使用ssl,不要禁用setenvif模块。或者你禁用setenvif模块,可以在httpd-ssl.conf注释BrowserMatch。

安装完成全,执行httpd -l,会列出所有已安装的模块。

# /usr/local/apache2/bin/httpd -l

Compiled in modules:

core.c

mod_authn_file.c

mod_authn_default.c

mod_authz_host.c

mod_authz_groupfile.c

mod_authz_user.c

mod_authz_default.c

mod_auth_basic.c

mod_log_config.c

mod_ssl.c

prefork.c

http_core.c

mod_mime.c

mod_dir.c

mod_so.c

在这个例子里,我们安装了如下apache模块:

core.c –Apache核心模块

mod_auth* –各种身份验证模块

mod_log_config.c –允许记录日志和定制日志文件格式

mod_ssl.c – SSL

prefork.c – 一个非线程型的、预派生的MPM

httpd_core.c – Apache核心模块

mod_mime.c – 根据文件扩展名决定应答的行为(处理器/过滤器)和内容(MIME类型/语言/字符集/编码)

mod_dir.c – 指定目录索引文件以及为目录提供”尾斜杠”重定向

mod_so.c – 允许运行时加载DSO模块