プロキシサーバーをAWS Lightsail上で動かす。



事の発端は、ユーゴーさんがLINE PAYを導入したという記事を見てです。

LINE PAY うんぬんなんてあったなーって

LINE PAYはコンビニなどでチャージしたお金で支払いができる仕組みです。店舗でQRコードを読み取って決済します。

LINE PAYはクレカが持てない未成年でもプリペードカードなので安心して持てます。zozoなど未成年でもECショップでの買い物ができるという点ではいいですが、クリーニングの利用客とマッチするとはとても思えないのでボツにしてました。

でも、似たような仕組みで キャッシュレス化が進んでいる中国で人気のコード決済 WeChat Pay:微信⽀付 ウィチャットペイ などニュースによく出ているので、QRコード決済に対応はしたいと常々思っていました。

LINE PAYと違って、コード決済でクレジットカードの利用が可能というのはとてもスゴく便利。クレジットカードを渡さずに、クレカ決済できるから!

LINE PAY の導入効果は懐疑的ですが、将来のQRコード決済の練習ということで導入してみようと思います。

LINE PAY 導入までの申請から、API、QRコードを読み取る処理についてはまた後日まとめたいと思います。

で、それがプロキシサーバーとなんの関係があるのかーということですが、LINE PAYのAPIは固定IP指定という条件があるからなんです。。。

弊社の場合、店頭にPOSレジが置いてあり、クレカ決済などは直接クレカ代理店のAPIを叩きにいく仕組みになっています。

各店舗のIPを固定にして、(プロバイダ―契約で別途有料)店が増えるごとにIP指定するというのは非現実的であるので、プロキシーサーバーを経由してLINE PAY APIを叩くということが必要になりました。

プロキシーサーバー プロキシー=代理ということで、そこを必ず経由するのでどのPOSレジも同じIP(IP=インターネットの住所みたいなもの)からAPIを叩くことができるのです。なので、もとのPOSレジのIPは隠れることになります。

よくハッカーがいろいろなサーバーを経由して姿を隠してアクセスしているなんていうのはこのプロキシサーバーの仕組みを使ってるのです。

ニュースなどで脅迫まがいなことをTwitterに書き込んで捕まる人がいますよね。

IPというので場所が分かるからなんです。ただ、一般の人ではざっくり日本とか運が良ければ何県までぐらいしか分かりません。プロバイダーというインターネットのIPを割り振っている会社がどの時間帯にどのIPをどの利用者が使っていたというのが明確に知っているものですから、警察はそこに聞いて、犯人逮捕ってことになります。


スポンサーリンク

無料プロキシサーバーと有料プロキシサーバーと自前プロキシサーバー

今回プロキシサーバーを使う上で3つの方法を考えました。

①無料プロキシサーバーを使う。

プロキシサーバーを経由してネットアクセスするのでセキュアな通信であれば大丈夫らしいのですが、通信が丸見え、パスワードとかそういったものなどが見られている可能性があります。少なくとも履歴としてはそのサーバーにたまっていきます。なので、無料で誰でも使っていいよっていうのは怪しいですし、怖いです。また、すぐになくなったりもするので今回は対象外としました。

絶対安易に↓設定して使わないように!

②有料プロキシサーバーを使う。

プロキシサーバーとして有料というものはないです。

プロキシサーバーとしても使えるVPNサービスとして展開しています。(バーチャル、プライベート、ネットワークの略)

VPNは、サーバーを借りるようなもので、そこでHPを動かしてもいいですし、アプリを動かしてもいいですし、つまりいろいろ出来るPCを借りるイメージです。

安いところだと1年契約で毎月300円前後から使えるサーバーがあります!

結論は、有料のプロキシサーバーがそのまますぐに使えるようなサービスはないです。

③自前でプロキシサーバーを構築する。

先の項目から分かるように、VPN上に自前でプロキシサーバーを構築するしかないっていう。。。

VPN環境はどこがいいの?

xserverなどはvpnっぽいサービスなのですが、セキュリティの観点からプロキシサーバーの実行を許可していません。なので事前に各社聞いておくことをオススメします。

ExpressVPNが一番有名かもしれません。

ただ今回は中国がfacebook見るためにアメリカのサーバーを経由したい!とかの理由じゃないので、わざわざ海外である必要はなくて、むしろ日本リージョンがいいなって思っていました。

国内リージョンをもっているセカイVPN

月額1200円ほどで国内のVPNが利用可能です!

AWS アマゾンのサービスを利用しようと今回は思っています。lightsailという超簡単セットアップできて、月額5ドルの利用料のVPNがあるのでこちらにしました。もちろん無料で固定IPも使えるのでオススメかなー。

lightsailでプロキシサーバーを作る!

アカウントを作ってください。3秒で作ってください。

サービスからlightsailを選んでください。

WS000000

 

インスタンスを作って!

WS000001

 

今回のAPI先は日本なんでリージョンは日本にしました。

VPNの用途によっては他のリージョンを選ぶといいですよ。

LinuxのUbuntuだけにしました。

 

WS000002

 

固定IPにする設定です。

WS000003

 

作成するとこんな感じになります。

これをアタッチ、さきほど作ったインスタンスに紐づけします。

インスタンス作ったばかりだとアタッチできないので2分ぐらい待ってくださいね。

WS000004

 

 

で、プロキシサーバーの設定で使うポートをあけておく必要があるので設定します。iptableをいじったりする必要はありません。

ここでファイヤーウォールに穴を空けます。

今回はポート12345を利用しますー!

WS000005

 

テラタームでの作業に移ります。

SSHする際に使うSSHキーをダウンロードしておきましょう。

WS000006

 

 

こんな感じで、

WS000007

 

 

ユーザー名はubuntu  秘密鍵に先ほどダウンロードしたファイルを指定すれば入ることができます!

WS000008

プロキシサーバーとしてapache2を使う。

squidが最近有名なプロキシサーバーっぽいのですが、2日間格闘して断念してapache2を使うことにしました涙。

ここからはコマンドラインになります。

$sudo apt-get update

$sudo apt-get install apache2

で、インストール完了。超簡単・・・。

で設定ファイルをいじっていきます。

まず、とりあえずプロキシサーバーの動きを確認したいだけなので、セキュリティダダ漏れの簡単な設定ファイルを作成します。

vimでapache2.confに以下を追加してください。

$sudo vim /etc/apache2/apache2.conf

LoadModule proxy_module /usr/lib/apache2/modules/mod_proxy.so
LoadModule proxy_http_module /usr/lib/apache2/modules/mod_proxy_http.so
LoadModule proxy_connect_module /usr/lib/apache2/modules/mod_proxy_connect.so
Listen 12345
<IfModule mod_proxy.c>
ProxyRequests On
ProxyVia On
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
</IfModule>

 

apache2を再起動させます。

$sudo service apache2 restart

 

これでブラウザでプロキシの設定を行ってアクセスできればOK!

プロキシの設定というのはwindowsのOSでの設定もできますが、戻すのがめんどいので、ブラウザで設定してテストしたほうがいいですよ。

firefoxの場合はこちらから、

WS000009

 

で、こんな感じで完了。chromeも同じでーす。

WS000010


スポンサーリンク

プロキシサーバーに繋がらない!ネットが表示されないなどのトラブル

ここまでの設定でネットがふつうに繋がらなかったらどこか処理を失敗しています。

まず簡単なのはSSHしてはいったテラターム内で

$telnet 52.197.69.135 12345

と打って、Connectedと表示されない場合は12345のポートがあいていない場合があります。先ほどのポートあける手続きを見直してください。

ここがOKでもネットが見れない場合は

apache2.confの設定記述に誤りがあります。最初のほうでモジュールをLOADしていますが、そのsoファイルが存在するかなども確認しましょう。

中には/modules内にない場合があるそうです。

$sudo lsof -i -nP

でポート12345でapache2が表示されているのも確認を。出ていない時はapache2が起動していない。

Basic認証を導入する。

どこの誰でもアクセスできてしまうので、最低限のパスワード設定を行いたいと思います。IP制限などももちろん出来ますので必要に応じてどうぞ。

まずはuserとパスワードを作成する。

$sudo htpasswd -c /etc/apache2/.htpasswd test_user

test_user というユーザーに対してパスワードを聞かれるので入力すればよい。

次にapach2.confを修正する。

$sudo vim /etc/apache2/apache2.conf

<Proxy *>
Order deny,allow
Deny from all
Allow from all
AuthType Basic
AuthUserFile /etc/apache2/.htpasswd
AuthName "Enter ID and Password!"
Require valid-user
</Proxy>

 

このように修正後にapache2を再起動させます。

$sudo service apache2 restart

 

ブラウザで確認しよう。ユーザーとパスワードを求められるように変更されているはずです!

確認くんで確認を。

こちらのサイトであなたのIPアドレスが表示されます。

それがプロキシサーバーのものになっていれば無事に設定完了です。

 

これで完了~~涙 お疲れ様でした。

lightsailは稼働、停止中も課金対象になります。

使わない予定であればインスタンスの削除が必要になります。

プロキシサーバーのみの利用であれば、使う予定がある場合のみ設定を行ってインスタンスを立ち上げるで十分かなと思いますね。

慣れれば5分以内に終わる作業なので。

 

No. 2710

スポンサーリンク



最高級 宅配クリーニングのネットで洗濯.com
クリーニング403が安心・高品質な本物のクリーニングをお届けします。

キャンプ場からそのまま送れるテントクリーニング.com
テント・タープなどのクリーニングと合わせて撥水加工、UV加工がオススメ!