LameUser 尝试 - apache2 网络服务器身份验证 - 无需通过即可访问的 IP 范围提示其他人使用它

LameUser 尝试 - apache2 网络服务器身份验证 - 无需通过即可访问的 IP 范围提示其他人使用它

我有一个关于 apache2 网络服务器和安全的问题(可能有点愚蠢)——我试图实现这一点:从 192.168.1.24 连接的用户不需要输入密码,并允许其他人输入用户名和密码,如果正确则连接。我试图对整个目录 /var/www 执行此操作

无论我将代码放入 .htaccess 文件还是 httpd.conf,它都不起作用。

命令拒绝、允许
全部拒绝
AuthName“PassRequest”
AuthType 基本版
验证用户文件 /var/.htpasswd
需要有效用户
允许来自 192.168.1.24
满足任何

如果我尝试从允许的 IP 或任何其他 IP 连接到允许的页面,如果我删除满足任何行,则系统会提示我输入密码,如果我也删除密码并尝试从不同的 IP 连接,则不会被拒绝...是否有一些需要激活的模块或者为什么跳过了 IP 指令?

它需要放在每个文件夹中,或者 /var/www/.htaccess 就足够了?我可以把它放在 httpd.conf 中吗?

我花了 4 个小时尝试用 Google 搜索为什么会出现这种情况,任何帮助都将不胜感激 :-))

编辑 1.11.2012:添加允许覆盖,应用于目录并移动到 httpd.conf,没有成功,检查加载的模块,问题仍然存在

我添加了 AllowOverride 指令(尽管 /var/www 中目前没有 .htaccess)并将所有内容放入 httpd.conf 中,并将根目录放入...

这是我目前在 httpd.conf 中的内容

    <Directory />
AllowOverride None
   Order deny,allow
   Deny from All
   Allow from 195.137.181.24
   Options Indexes
   AuthType Basic
   AuthName "You are accessing outside of our network, Enter password!"
   AuthUserFile /var/.htpasswd
   Require valid-user

Satisfy Any
</Directory>

来自 apache2ctl -M 的已加载模块列表:

Loaded Modules:
 core_module (static)
 log_config_module (static)
 logio_module (static)
 mpm_prefork_module (static)
 http_module (static)
 so_module (static)
 alias_module (shared)
 auth_basic_module (shared)
 authn_file_module (shared)
 authz_default_module (shared)
 authz_groupfile_module (shared)
 authz_host_module (shared)
 authz_user_module (shared)
 autoindex_module (shared)
 cgi_module (shared)
 deflate_module (shared)
 dir_module (shared)
 env_module (shared)
 mime_module (shared)
 negotiation_module (shared)
 perl_module (shared)
 php5_module (shared)
 python_module (shared)
 reqtimeout_module (shared)
 setenvif_module (shared)
 status_module (shared)
Syntax OK

Authz_host 模块在那里,所以我看不出我可能在哪里犯了错误。问题仍然是一样的:当我从 IP 195.137.181.24 访问时,我被允许并且不要求输入密码,当我尝试使用完全不同的 IP 通过 3G 从我的手机访问时,我仍然被允许并且不要求输入密码 :-(((

我做错了什么?我不知道该尝试什么。如能得到更多帮助或建议,我将不胜感激。Mike


我添加了 AllowOverride 指令(尽管 /var/www 中目前没有 .htaccess)并将所有内容放入 httpd.conf 中,并将根目录放入...

这是我目前在 httpd.conf 中的内容

    <Directory />
AllowOverride None
   Order deny,allow
   Deny from All
   Allow from 195.137.181.24
   Options Indexes
   AuthType Basic
   AuthName "You are accessing outside of our network, Enter password!"
   AuthUserFile /var/.htpasswd
   Require valid-user

Satisfy Any
</Directory>

来自 apache2ctl -M 的已加载模块列表:

Loaded Modules:
 core_module (static)
 log_config_module (static)
 logio_module (static)
 mpm_prefork_module (static)
 http_module (static)
 so_module (static)
 alias_module (shared)
 auth_basic_module (shared)
 authn_file_module (shared)
 authz_default_module (shared)
 authz_groupfile_module (shared)
 authz_host_module (shared)
 authz_user_module (shared)
 autoindex_module (shared)
 cgi_module (shared)
 deflate_module (shared)
 dir_module (shared)
 env_module (shared)
 mime_module (shared)
 negotiation_module (shared)
 perl_module (shared)
 php5_module (shared)
 python_module (shared)
 reqtimeout_module (shared)
 setenvif_module (shared)
 status_module (shared)
Syntax OK

Authz_host 模块在那里,所以我看不出我可能在哪里犯了错误。问题仍然是一样的:当我从 IP 195.137.181.24 访问时,我被允许并且不要求输入密码,当我尝试使用完全不同的 IP 通过 3G 从我的手机访问时,我仍然被允许并且不要求输入密码 :-(((


更新 5.11.2012

我找到了:-D

在 apache2/sites-enabled 中有一个隐藏文件覆盖了我在 /var/www 文件夹上的指令...我真傻,竟然没有早点想到这一点 :-)

答案1

首先/您的配置是正确的,并且在我的系统上按预期运行。

检查允许覆盖指令在您的 httpd.conf 中,如果您确实将 mod_authz_host 模块加载到 apache 中...

对于您的其他问题:您可以将您的配置放在目录指令的方式与在 .htaccess 中一样 - 而且它甚至是首选。

每个目录的设置都会继承到所有子目录,因此保护根目录就足够了。

相关内容