Edited at

5分で作るPROXYサーバー

More than 3 years have passed since last update.

海外のサイトを利用する時、日本のIPを遮断されていて困ったことはありませんか?

もしくは海外のサイトに行くと、海外のサイトのまま利用したいのに強制的に日本のページに飛ばされたり。

普通に考えると日本に住んでいる限り、接続元IPは日本国内のプロパイダ提供のIPしか使えません。

ではどうするか?

ITのテクニックを使えば接続元IPを海外のものに変更することが可能です。

具体的な方法は目的の海外の国内に、PROXYサーバーを立てるのが一般的な方法です。

海外にサーバー立てるのなんて大変そう!

と思うのは過去の話。

今ではVPSと言う安価な仮想サーバーを各国に置くことができるのです。

そこにVPSをセットアップしてPROXYサーバーを立てます。

なんと下記の手順で行えば5分で準備できるのです。


事前準備

事前準備としてVPSでCentOS5 or CentOS6をセットアップして、SSHログインできるところまで進めておいて下さい。

海外にVPSを構築する場合はリージョンが海外になる事業者と予め契約しておきます。

有名なところは以下です。

・AmazonEC2(http://aws.amazon.com/jp/ec2/)

・DegitalOcean(https://www.digitalocean.com)

・linode(https://www.linode.com/)


パッケージインストール

まずはテキストエディタとPROXYサーバーのパッケージをインストールします。

PROXYサーバーは「squid」を使用します。

sudo su -

yum -y install vim-enhanced
yum -y install squid


squid設定編集

インストールが終わったらsquid設定ファイルを修正します。

下記内容を設定ファイルの一番下の行に追記して下さい。

vim /etc/squid/squid.conf

追記する前にデフォルトのこの2行は#をつけてコメントアウトした上で、

#http_access deny all

#http_port 3128

下記を最下行に追記して下さい。

# ホストネームは任意のものを。

visible_hostname myproxygogo.info

# ポート8080は一般的すぎるので使いません。
http_port 60088

# xxx.xxx.xxx.xxxはあなたのIPを記述する。
# わからなければ
# http://www.ugtop.com/spill.shtml
# ここの「現在接続している場所(IPv4)」のIPを書きます。
acl myacl src xxx.xxx.xxx.xxx/255.255.255.255
http_access allow myacl
http_access deny all

# プロキシサーバーを使用している端末のローカルIPアドレスを隠蔽化
forwarded_for off

# プロキシ経由でアクセスしていることをアクセス先に知られないようにする
header_access X-Forwarded-For deny all
header_access Via deny all
header_access Cache-Control deny all


squidの起動

初回キャッシュクリア

squid -z

service squid start


ファイヤーウォールの設定

ファイアーウォールを設定します。これをちゃんとやらないと第三者に踏み台にされてしまいます。

vim /etc/sysconfig/iptables

*filter

:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:FWINPUT - [0:0]
-A INPUT -j FWINPUT
-A FORWARD -j FWINPUT
-A FWINPUT -i lo -j ACCEPT
-A FWINPUT -p icmp --icmp-type any -j ACCEPT
-A FWINPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# xxx.xxx.xxx.xxxは自身の接続元IPに置き換える
-A FWINPUT -p tcp -m tcp --dport 22 -s xxx.xxx.xxx.xxx -j ACCEPT
-A FWINPUT -p tcp -m tcp --dport 60088 -s xxx.xxx.xxx.xxx -j ACCEPT
-A FWINPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT

ファイアーウォールを設定を適用します。

iptables-restore < /etc/sysconfig/iptables

以上でPROXYサーバーの構築が完了しました。


動作確認

「確認くん」でIPがVPSのIPになっていれば成功です。

http://www.ugtop.com/spill.shtml


最後に

こちらに図付きの解説記事を紹介しています。

http://pcnikki.hatenadiary.jp/entry/2014/12/06/205527


追記

海外VPS業者に「linode」を追加しました。