AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 811176
Accepted
hellb0y77
hellb0y77
Asked: 2016-10-26 06:07:19 +0800 CST2016-10-26 06:07:19 +0800 CST 2016-10-26 06:07:19 +0800 CST

基本身份验证 apache 2.2 绕过 IP

  • 772

如何设置 apache 2.2 的基本身份验证以绕过 IP?我已经关注了这个 wiki http://wiki.apache.org/httpd/BypassAuthenticationOrAuthorizationRequirements,但总是询问密码,也列出了 IP:

<Directory /var/www/html/mydir>
    AuthName "Private"
    AuthType Basic
    AuthUserFile "/etc/httpd/htpasswd"
    Require valid-user
    Order allow,deny
    Allow from 111.111.111.111 222.222.222.222
    Satisfy any
</Directory>

我在haproxy下,但我设置了IP转发,我已经这样设置LogFormat了:

LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

access_log 是:

111.111.111.111 - - [25/Oct/2016:12:35:41 +0200] "GET /index.html HTTP/1.1" 401 487 "-" "Mozilla/5.0 (X11; Linux armv7l; rv:38.0) Gecko/20100101 Firefox/38.0 Iceweasel/38.7.0"
apache-2.2 authentication http-basic-authentication mod-authz-host
  • 1 1 个回答
  • 1904 Views

1 个回答

  • Voted
  1. Best Answer
    Unbeliever
    2016-10-26T22:21:44+08:002016-10-26T22:21:44+08:00

    你的配置很好,很标准。如果您正在使用,那么所有请求haproxy的源 IP 地址就是它本身,并且检查指令的是这个 IP 地址,而不是标头的内容。haproxyallow fromX-Forwarded-For

    有几种方法可以解决这个问题。使用 Apache v2.2,您可以使用第 3 方模块,例如 mod_custom_headers(http://support.en.ctx.org.cn/ctx109555.citrix抱歉,原来的 citrix 页面似乎已移动或被删除)或可能mod_rpaf(我'以前没有使用过它,所以不能确定它是否allow from能正常工作)。

    这些模块修改 Apache 保存的有关请求的数据,以便源 IP 成为您的代理设置的命名标头中的值(例如X-Forwarded-For)。

    或者,您可以升级到 Apache v2.4 并使用 mod_remoteip,它做同样的事情。

    请注意,还有一个 Apache 配置解决方案,您可以通过该解决方案在 上设置自己的标头haproxy(或者X-Forwarded-For如果您信任它,您可以使用它)。就像是:

    SetEnvIf X-Forwarded-For ^111.111.111.111 access_granted_by_ip
    SetEnvIf X-Forwarded-For ^222.222.222.222 access_granted_by_ip
    Order allow,deny
    Allow from env=access_granted_by_ip
    

    但我承认这对于多个 IP 地址来说有点笨拙。

    • 2

相关问题

  • Apache Django Mod_Wsgi - 自动重新加载应用程序

  • Apache:对多个虚拟主机使用相同的目录指令

  • Apache 上的子域不工作 - 找不到服务器

  • PHP 作为 CGI 还是 Apache 模块?

  • 避免将某些丢失的文件记录到 Apache2 错误日志中

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve