web-dev-qa-db-ja.com

自動プロキシ検出wpad.example.comが機能しない

ブラウザに「自動検出」を設定して、ローカルネットワーク上でSquidプロキシを検出するための自動方法を設定しようとしています。

プロキシは問題なく、クライアントブラウザでIP:Portを手動で指定すると機能します。また、クライアントブラウザでスクリプトのURLを指定すると、wpadスクリプトも機能します。

しかし、ローカルネットワーク内のすべてのブラウザで自動検出を設定したいのですが、機能しません。ブラウザは、アクセス拒否メッセージを含むsquidページを直接表示し、ユーザー/パスワードにアクセスを求めるプロンプトを表示しません。

私が言うように、プロキシサーバーは正常に機能しており、Squid3.1透過プロキシです。

プロキシサーバー

IP:192.168.1.252

/ etc/squid3/squid.conf関連設定

http_port 3128 transparent

Shorewallファイアウォールルール設定

REDIRECT   lan          3128     tcp   80    - !192.168.1.0/24

私のDNSサーバーはこれを設定しました

したがって、wpad.example.com/wpad.datは、localnetwoksステーションで正常に解決されます。 これはこれに関する関連ドキュメントです

apacheserver    A          192.168.1.25
wpad            CNAME      apacheserver

Apacheserverにはこれがあります:

/ etc/Apache2/sites-enable/wpad

# Auto Proxy Configuration
<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot /srv/custom/wpad
    ServerName wpad.example.com

    AddType application/x-ns-proxy-autoconfig  .dat
    AddType application/x-ns-proxy-autoconfig  .pac

</VirtualHost>
# vim:ft=Apache:

/ srv/custom/wpad /

-rw-r--r--  1 root root  346 oct  2 11:59 wpad.dat
lrwxrwxrwx  1 root root    8 oct  2 10:52 proxy.pac -> wpad.dat
lrwxrwxrwx  1 root root    8 oct  2 10:52 proxy.dat -> wpad.dat

/ srv/custom/wpad/wpad.dat

function FindProxyForURL(url,Host) {
    if(isInNet(Host,"127.0.0.1","255.0.0.0"))
        return "DIRECT";

    if(isPlainHostName(Host))
        return "DIRECT";

    if(isInNet(Host,"192.168.1.0","255.255.255.0"))
        return "PROXY 192.168.1.252:3128; DIRECT";

    else
        return "PROXY 192.168.1.252:3128; DIRECT";
}

ここで何が欠けていますか?

3
elmonkeylp

自分で解決しました。

これはApacheサーバーのアクセスログで見つかりました

192.168.1.70 - - [02/Oct/2014:16:20:02 -0300] "GET /wpad.dat HTTP/1.1" 404 493 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.124 Safari/537.36"

Firefoxはhttp://wpad/wpad.datではなくhttp://wpad.example.com/wpad.datからファイルを取得しようとしています

Apacheサーバーでwpad.datファイルを作成するDocumentRoot o ServerAlias wpadで問題を解決する

# Auto Proxy Configuration
<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot /srv/custom/wpad
    ServerName wpad.example.com
    ServerAlias wpad

    AddType application/x-ns-proxy-autoconfig  .dat
    AddType application/x-ns-proxy-autoconfig  .pac

</VirtualHost>
# vim:ft=Apache:

また、/ var/wwwの下に/srv/custom/wpad/wpad.datを指すシンボリックリンクを配置した場合に備えて

#ls -l /var/www
lrwxrwxrwx  1 www-data www-data   25 oct  2 16:45 wpad.dat -> /srv/custom/wpad/wpad.dat

新しいログ:

192.168.1.196 - - [02/Oct/2014:16:22:37 -0300] "GET /wpad.dat HTTP/1.1" 200 606 "-" "Mozilla/5.0 (compatible; IE 11.0; Win32; Trident/7.0)"
2
elmonkeylp