Macに Squidを導入してゲストOSから経由させようとしたときにHTTP 403エラーが発生した件

先日、MacにSquidをインストールしました。

その時は、Parallels Desktop上に構築したゲストOSからもその Squidを経由してインターネットにアクセスできていたはずなのですが、再度、Squidを起動してゲストOSからアクセスしたところ、以下のエラーが発生してインターネットに接続できませんでした。

$ curl https://www.google.co.jp/ http://(SquidのIPアドレス):3128
curl: (56) Received HTTP code 403 from proxy after CONNECT

そこでいろいろ調べてみたところ、squid.conf の localnet まわりの設定を変更しないといけないことがわかりましたので、その方法を記載しておきます。

squid.conf を修正

上で記載したとおり、localnet まわりの設定を修正します。

まずは、squid.conf の先頭付近にある「acl localnet src」を修正します。
ここでは、Squidにアクセスする端末(今回はゲストOS)があるネットワークのセグメントをlocalnetとして設定しておきます。

# Example rule allowing access from your local networks.
# Adapt to list your (internal) IP networks from where browsing
# should be allowed

acl localnet src 10.0.0.0/8             # RFC 1918 local private network (LAN)

その後、同じsquid.confの65行目付近にある「http_access allow localnet」のコメントアウト(#)を外しておきます。

# For example, to allow access from your local networks, you may uncomment the
# following rule (and/or add rules that match your definition of "local"):
http_access allow localnet

これで、10.0.0.0/8 のネットワークにある端末からSquidにアクセスできるようになっているはずです。

再度、Squid経由でアクセス

以下の通り、今度は目的のサイトからデータを取ることができました。

$ curl https://www.google.co.jp/  http://(SquidのIPアドレス):3128
<!doctype html>
・・・
<title>Google</title>
・・・

Squidをインストールした日は特に squid.conf を修正しなくてもインターネットにアクセスできた気がしていて解せないなのですが、うまくアクセスできるようになったので良しとしておきます。