うえださんがとおりますよ

つれづれに書くよ

GCPでプロキシサーバ設置squidの導入

Webサイトを別サーバーに移転してあるタイミングでサーバーにアクセスできなくなった。社内以外のネットワークだとアクセスできる模様…

結論からいうと、GCEのサーバに何度かsshログインに失敗すると、pingさえ通らないようになるらしい。(リセットすれば治る)

ただ、そのことに気づくまでにあれこれ試して、プロキシまでたてた。今となっては不要だけどメモだけ。

プロキシサーバ

squidを使ったよ

プロキシサーバの設置

以下プロキシサーバ側

構成

  • Google Compute Engine
  • Ubuntu 16.04 LTS

Ubuntu 大好き人間です。はい。

CentOSとかが無難なのかな、とか思いますが、グローバルなシェアでみるとUbuntuの方が今多数派らしい。

squidインストール

$ sudo apt install squid

設定

$ sudo vim /etc/squid/squid.conf

以下コメント。

...
# 1190行目
# http_access deny all
...
# 1599行目
# http_port 3128
...

ポート3128と8080はよく使われるポートらしいので避ける

で、以下を末尾に追記。

# noneにしてるけれど任意でいい
visible_hostname none

# ポート,8080,3128以外を推奨
http_port 43288

# 許可するIPアドレスを記載
acl myacl src X.X.X.X/32
http_access allow myacl
http_access deny all

# プロキシサーバ接続端末のIP隠蔽
forwarded_for off

# プロキシ経由のアクセスをアクセス先に隠蔽
request_header_access X-Forwarded-For deny all
request_header_access Via deny all
request_header_access Cache-Control deny all

キャッシュクリアしてリスタート

$ sudo squid -z
$ sudo service squid restart

次にファイアウォールも設定しておく。

GCPでは管理コンソールから「ネットワーキング」→「ファイアウォール ルール」から、プロキシ用のポートのアクセスを許可するルールを作成し、VMインスタンスに紐付ける。

詳しくはここ↓

ネットワークとファイアウォールの使用  |  Compute Engine ドキュメント  |  Google Cloud Platform

クライアント側の設定

クライアント端末もUbuntu Desktopで接続した。 ubuntuなら「システム設定」→「ネットワーク」→「ネットワークプロキシ」から設定できるので、設定する。

それかexport http_proxy="http://sample.proxy.com"みたいにすればできるらしい。

いずれにしてもブラウザは再起動しないとプロキシを利用できないようだった。

確認

確認くんというサイトが便利だった。

これで表示されるIPがプロキシサーバのIPならプロキシ経由でアクセスできている。

AWSもそうだけど、GCPなら気軽に海外のサーバをプロキシにできるから、IPブロックとかもうまいこと避けられるんでないかな

ziproxyとかも導入したい