一般的には,AWSをプロキシサーバとして使うためのものかと思いますが,今回はプロキシ環境を抜けるためにAWS経由で外部に接続する環境を作ったのでその備忘録です.
基本的には, AWSのEC2とポート転送を利用して企業の網を抜けた話 - railsがんばる子 を参考にしましたが,もっとシンプルに作りました.
見よう見まねなので正しいのかはわかりません.
AWSインスタンスの起動
ここは出来ることが前提なので適当なサイトを参照してください.プロキシ環境を作るだけなので,EC2の無料枠でt2.microのubuntu18.04を起動する.
squidのインストール,設定
インストール
sudo apt install squid
設定ファイルですが,一応オリジナルはコピーしておきます.
sudo cp /etc/squid/squid.conf /etc/squid/squid.conf.original
squid.confはいろいろな設定がありますが,今回は余計なことはせずにセキュリティ的には問題がありますが全てのアクセスを許可します. AWSへのアクセスの段階で十分セキュリティ対策をしているので大丈夫かと思います.
# And finally deny all other access to this proxy
http_access allow all ←追加
http_access deny all
ポートの設定も必須ですがオリジナルの3128のままにしておきます.
# Squid normally listens to port 3128 http_port 3128
設定を反映し起動します.
sudo systemctl reload squid
起動されていない場合は起動します.
sudo systemctl start squid
自動起動にする場合は以下のとおり.
sudo systemctl enable squid
参考サイト
AWSのSecurity groupのポート設定
AWS EC2でWEBサーバーを立ち上げよう(Apache編) - Traffic Jamのとおりです.
AWSのインターフェイスが現時点で少し変わっていますが,「セキュリティグループ」の「インバウンド」の「編集」より,「カスタム TCP ルール」で上記のポート「3128」を追加します.
多分CLIでも出来るので分かれば追記します.
sshポートフォワーディング
ここまででssh接続は可能です.
今回はwindows10のWSL環境でsshのポートフォワーディングを行います.
localhostの3333に転送します.
オプションとして,
- -N:リモートコマンドを実行しない
- -f:バックグラウンドで実行
をつけます.
sudo ssh -i [key].pem ubuntu@[パブリック DNS (IPv4)] -L 3333:localhost:3128 -f -N
バックグラウンドで実行しているので切断するときは,「ps aux」でPIDを調べてkillコマンドを使うしかない?(自信がないです.)
あとは,インターネットオプションで「 接続 」-「 LANの設定 」- 「プロキシサーバー」で, アドレス: localhost,ポート: 3333(なんでもいい)とすれば完了です.
- 参考サイト
おまけ:windows10限定 sshポートフォワードディング機をモバイルホットスポット化
windows10限定ですが標準でモバイルホットスポット機能が付いており,wifiが使えるノートPC等ではそれ自身をwifiの親機とすることができるので設定しておきました.
sshに-gオプションを追加
sshで接続時に-gオプションを追加
-g : リモートホストが転送されたローカルなポートに接続することを許可
sudo ssh -i [key].pem ubuntu@[パブリック DNS (IPv4)] -L 3333:localhost:3128 -f -N -g
モバイルホットスポットの起動
「設定」-「ネットワークとインターネット」-「モバイルホットスポット」からモバイルホットスポットをオンにして「インターネット接続を共有する」のwifiを選択する.
コントロールパネルのネットワーク接続に新たな接続が追加されているはずです.
モバイル端末のwifi接続,プロキシの設定
接続するモバイル機でwifiを検索して接続した後,上記で新たに追加された接続のIPアドレスとポート番号(今回は3333)を設定することで接続可能
参考サイト
結構苦戦しました・・・