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 / 问题 / 977009
Accepted
TommyPeanuts
TommyPeanuts
Asked: 2019-07-29 01:47:42 +0800 CST2019-07-29 01:47:42 +0800 CST 2019-07-29 01:47:42 +0800 CST

Apache ProxyRemote 什么都不做

  • 772

在运行 Apache 2.4 的 Ubuntu 服务器 18.04 上,我想将所有 Apache 的传出请求传递给转发代理,以便出于安全原因(使用Tinyproxy)过滤掉一些 URL。

似乎我的 Vhost 配置中的 Apache 的ProxyRemote指令应该这样做,所以我使用了以下内容:

ProxyRequests Off
ProxyRemote * http://localhost:8888

我还尝试将环境变量添加到 /etc/environment,如下所示:

http_proxy="http://localhost:8888/"
https_proxy="http://localhost:8888/"

然后我可以看到现在使用代理的其他应用程序,例如(来自 Tinyproxy 的日志):

CONNECT   Jul 28 17:26:58 [2318]: Request (file descriptor 7): CONNECT api.snapcraft.io:443 HTTP/1.1
CONNECT   Jul 28 17:26:58 [2315]: Request (file descriptor 7): CONNECT api.snapcraft.io:443 HTTP/1.1

但不是阿帕奇。它仍然将所有出站请求直接传递到端口 80 和 443。如何让 Apache 使用代理?


编辑:我刚刚在 Stack Overflow 上看到了这个重复的问题,所以我认为我正在尝试做正确的事情。但是怎么做?

security
  • 1 1 个回答
  • 1399 Views

1 个回答

  • Voted
  1. Best Answer
    TommyPeanuts
    2019-07-29T12:58:07+08:002019-07-29T12:58:07+08:00

    因此,我再次阅读了 Apache 文档,并考虑了它说ProxyRemote“定义此代理的远程代理”这一事实。这意味着 Apache 必须已经在代理请求并且您想要使用上游代理。所以这可能不是我想要的。

    因此,相反,我研究了使用环境变量,它似乎以我想要的方式工作:

    将其放入/etc/apache2/envvarsApache 托管的大多数(但不是全部?)应用程序都使用代理:

    export http_proxy='http://localhost:8888'
    export https_proxy='http://localhost:8888'
    

    把它/etc/environment放进去,意味着如果其他应用程序被配置为使用这些环境变量,它们也将通过代理:

    http_proxy="http://localhost:8888/"
    https_proxy="http://localhost:8888/"
    

    我看到现在传出端口 80 和 443 都通过代理。万岁。


    我目前使用 iptables 强制所有端口 80 通过 Tinyproxy 传出:

    iptables -t nat -A OUTPUT -p tcp --dport 80 -m owner ! --uid-owner tinyproxy -j REDIRECT --to-ports 8888
    

    但鉴于上述情况,我什至可以阻止端口 443,因为任何不使用 envvars 的东西都可能是不可靠的。

    • 0

相关问题

  • OpenSSH 漏洞 [重复]

  • 选择什么安全套件?

  • 安全地授予对 SQL 2005 复制监视器的访问权限以创建快照

  • SSH 服务器零日漏洞利用 - 保护自己的建议

  • 如何将安全组添加到正在运行的 EC2 实例?

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