apache2转发代理将特定的外部ips限制为特定的客户端ip?

时间:2016-05-09 07:27:31

标签: proxy apache2 client forward restrict

假设我希望以下客户端只访问特定的互联网 apache2转发代理后面的服务器:

Client-1-IP: www.google.com
Client-2-IP: www.gmail.com
Client-3-IP: www.cnn.com
Client-4-IP: www.chess.com

这可能吗?我在Debian 8上运行Apache 2.4.10。目前, 我允许特定客户通过此访问整个互联网 配置值,但希望能够指定一个特定的 客户端只能访问特定的Internet服务器:

<VirtualHost *:8080>
        ProxyRequests On
        Proxyvia On
        <Proxy "*">
                Order deny,allow
                Deny from all
                Allow from <ip-1>
                Allow from <ip-2>
                Allow from <ip-3>
        </Proxy>
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

感谢。

1 个答案:

答案 0 :(得分:0)

仅供参考,在其他线程中,here对此进行了详细说明。以我为例,我想将Apache 2.4服务器配置为充当另一台机器上的Maven的正向代理,而无需访问Internet。请注意,Apache 2.4中的限制语法已更改,因此应按here中的说明将Require / Deny / Order关键字替换为Require子句。例如,假设我们希望我们的代理侦听myhost.com:7775并仅允许访问192.168.1.1,并仅转发给* .maven.org或* .apache.org。然后,我们需要在vhosts配置中执行以下操作(我想可能会有一种更简便的方法来组合多个允许的远程主机):

<VirtualHost myhost.com:7775>
    ProxyRequests On
    ProxyVia On

    # block all domains except our target
    <ProxyMatch ^((?!maven\.org).)*$>
        Require all denied
    </ProxyMatch> 

    <ProxyMatch ^((?!apache\.org).)*$>
        Require all denied
    </ProxyMatch> 

    # only allow our IP for a specific target
    <ProxyMatch maven\.org >
        Require ip 192.168.1.1
    </ProxyMatch>  

    <ProxyMatch apache\.org >
        Require ip 192.168.1.1
    </ProxyMatch>  

</VirtualHost>