GCPでプロキシサーバ設置squidの導入
Posted on 2017/07/30 in tech
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
とかも導入したい