我想在 Apache 2 中禁用反向 DNS。我已完成以下步骤:
在apache2/apache2.conf
文件中HostnameLookups
设置为OFF
Tcpdump 会话确认,尽管 HostnameLookups 指令已明确关闭,Apache 仍在进行双重反向查找。
站点内无可用主机名。问题仍然存在。
UPD:Apache 版本是
dpkg -l | grep apache2
ii apache2-mpm-prefork 2.2.16-6+squeeze4 Apache HTTP Server - traditional non-threaded model
ii apache2-utils 2.2.16-6+squeeze4 utility programs for webservers
ii apache2.2-bin 2.2.16-6+squeeze4 Apache HTTP Server common binary files
ii apache2.2-common 2.2.16-6+squeeze4 Apache HTTP Server common files
apache2 -l
Compiled in modules:
core.c
mod_log_config.c
mod_logio.c
prefork.c
http_core.c
mod_so.c
我认为 mod_security 不存在。
答案1
Apache 不执行双倍的名称服务器查找(即客户端 IP -> PTR -> A 记录必须与客户端 IP 匹配)。此类功能仅供邮件服务器使用。
无论如何,如果HostNameLookups
是Off
,并且在任何 vhost 定义或访问规则中没有使用主机名,则某些第三方模块正在执行此操作。
mod_security
正如马丁之前所说,是一个可能的候选人。
答案2
我在这里没有足够的声誉来发表评论(这不是一个完整的答案),但是适配器的直觉是正确的。有可能然而,根据文档,罪魁祸首是mod_access
或mod_authz_host
,无论设置如何,其中一个或两个都会出于安全考虑进行双重查找HostnameLookups
。
2.0 文档说mod_access
,而 2.2 文档说mod_authz_host
,我不太清楚两者的区别。在主 Apache 配置的模块部分中选择性地禁用其中一个、另一个或两者,然后查看会得到什么结果。
来自核心文档
无论设置如何,当
mod_authz_host
(mod_access
如果你正在阅读 2.0 文档,请点击此处) 用于通过主机名控制访问,将执行双重反向查找。这对于安全性来说是必要的。
是的,我知道这是一个两年半前提出的问题,而且不是一个好问题。但我通过网络搜索找到了它,所以它仍然有谷歌汁。