カテゴリー別アーカイブ: VPN

Amazon WorkSpacesキタ━(゚∀゚)━!と思ったら、FWに阻まれたけどなんとかした話

待ちに待ったAmazon WorkSpaces Limited Previewの案内がキタ━(゚∀゚)━!

…でも、4172ポート開いてないから使えないorz

ここで諦めてたまるか!となんとかした話です。

 

インフルエンザから復帰して出社したその日のことでした。

re:inventでWorkSpacesが発表されてすぐ公式ブログからアナウンスがあったその日に申し込んで、

なかなか来ないなーと思っていたLimited Previewの案内がやっと届きました。

 

さっそく使おうと思い、マニュアルに従ってインスタンス(って呼ぶのかな?)作って、

クライアントアプリをインストールして使おうと思ったら…

 

繋がらない…

 

上司曰く、

「ウチの会社、4172ポート開いてないから使えないよ」

 

マジかよ…と思い調べてみた。

 

公式サイト抜粋

ユーザーにセキュアで高品質な作業環境を提供するため、Amazon WorkSpaces は Teradici 社の PCoIP 技術を採用しました。ユーザーのデバイスと WorkSpace 間の通信には PCoIP リモートプロトコルを使用しています。PCoIP プロトコルはユーザーのデスクトップコンピューティングエクスペリエンスを圧縮し、暗号化し、エンコードし、「画素だけを」標準的な IP ネットワークを使ってユーザーのステートレスなゼロ/シンクライアント、PC、ラップトップ、モバイル端末に送信します。

公式ドキュメント抜粋

The Amazon WorkSpaces client applications require a broadband Internet connection. In addition, the network that the client is connected to, and any firewall on the client itself, must have the following ports open:

  • Port 4172 for UDP and TCP traffic
  • Port 443 for TCP

たしかに4172ポートのTCPとUDPで通信するって書いてある…

 

上司には、

「社内LANと繋がってない別回線の端末からとりあえず試してみれば?」

と言われたのですが、自分的には、

「いや、わざわざ自席から離れて使うとかまともに検証にならないし、

どこでも使えるのが良い所なのに、台無しだし、

なにより、なんかここで妥協したら負けだと思う!w

と思い、少し格闘してみることにしましたw

 

とりあえず、EC2でWindowsServer立てて、

そこにWorkSpacesアプリインストールっていうのは

「酷い二度手間」って感じなので一瞬頭をよぎった程度で速攻却下しましたw

 

まず始めに試したのがプロキシです。

WorkSpacesアプリ(PC向け)にはプロキシの設定画面があります。

EC2でsquidサーバ立てて、8080ポートを4172にプロキシしてみる。

「繋がった!」「ログインできた!」

…と思いきや、画面を表示しようとした所でエラーorz

UDPの通信は当然プロキシできないのでそこで躓いたようでした。

「もしかしたらUDPは開いてるかも」とか淡い期待はもろとも打ち砕かれましたw

 

基本的にUDPの通信をプロキシできるミドルウェアなんて無い(ですよね?)…

 

じゃあどうする?

FWを超えて…

 

FWを超えるだけならつい最近検証したアレが使える…

 

そこからWorkSpacesへ辿り着く方法は…

と悩むこと小一時間…

 

「あ、NATインスタンス!」

 

と思いつき、

 

アレコレをやって、めでたく自席からWorkSpacesを使えるようになりました(´∀`*)

 

そして、なんか使えるようになったらそこで若干の満足感を得てしまって、

他にも色々やること(またはやりたいこと)があったので、

まだ結局WorkSpaces自体はあまり触っていないですwww

 

 

 


SoftEther VPN ClientのEC2(AmazonLinux)向け起動スクリプト

先日検証したSoftEther VPNですが、

早速ちょっと使う機会が出てきたので、自動起動用の起動スクリプトを作りました。

ちなみにServerの方は公式サイトに乗ってるそのまま。(結構下の方)

 

設定までは前に書いたのと同じです。

 

やりたかったこと

  1. まずは当然VPN Clientの自動起動
  2. VPN Serverへの自動接続
  3. Private IPの設定

 

基本は上述のServer起動スクリプトのパスやらをClientに変えただけ。

それにServerへの接続コマンド実行+IPアドレス設定って感じです。

 

こんな感じです(変数の内容は環境によって異なります)↓

 #!/bin/sh
 # chkconfig: 2345 99 01
 # description: SoftEther VPN Client
 DAEMON=/usr/local/vpnclient/vpnclient
 CMDPATH=/usr/local/vpnclient/vpncmd
 CMDHOST=localhost
 CMDCONN=local
 IP4ADDRESS=192.168.100.1
 VIRTUALIF=vpn_adapter01
 LOCK=/var/lock/subsys/vpnclient
 test -x $DAEMON || exit 0
 case "$1" in
 start)
 $DAEMON start
 touch $LOCK
 $CMDPATH /client $CMDHOST /cmd AccountConnect $CMDCONN
 ifconfig $VIRTUALIF $IP4ADDRESS
 ;;
 stop)
 $DAEMON stop
 rm $LOCK
 ;;
 restart)
 $DAEMON stop
 sleep 3
 $DAEMON start
 $CMDPATH $CMDTYPE $CMDHOST $CMDSUFFIX $CMDEXEC $CMDCONN
 ifconfig $VIRTUALIF $IP4ADDRESS
 ;;
 *)
 echo "Usage: $0 {start|stop|restart}"
 exit 1
 esac
 exit 0

変数名とかイケてないけど、とりあえず気にしないwことにして、

/etc/init.d/vpnclient

に配置して、

# /sbin/chkconfig --add vpnclient

で自動起動設定完了です。

 

これ、インストールから設定と併せてChefのレシピにしたらIPアドレスの管理が捗りますね。

もし複数台で使うことがあればやろうっと。

 

そして、これでアレで遊ぶために必要な設定①が完了しました!

 

 


SoftEther VPNでEC2(Amazon Linux)に繋いでみた③(まとめ)

導入編設定編通してのまとめ(感想)です。

 

やってみて感想

  1. 導入はシェル叩くだけ。非常に簡単だった。
  2. 今気づいた。公式サイトにLinuxへのServerのインストール方法書いてあるorz
  3. 公式サイトのチュートリアルが充実しているので、導入も設定も非常に助かった。
    Windowsだとほとんど困ることなんて無いんじゃないだろうか?
  4. Serverの設定は遠隔からGUIでできたりして非常に簡単だった。
  5. Clientもコマンドが分かりやすくできている感じがして、
    リファレンス見ながらやれば困ることは無かった。
  6. ルーティングの部分で少し悩んだのは、
    SoftEther VPNがどうとかいう話じゃなく、自分の意識が甘かっただけのこと。
    NWが簡単かつ自在に弄れるAWS VPCばっかりつかっていると、
    OSのルーティング設定とかiptableとか弄ることないからなぁw

 

良い所

  1. 高機能だけど分かりやすい
  2. 遠隔から操作できる
  3. 公式サイトの充実したコンテンツ

集約するとこの3点だけど、細かく挙げればきりがない。

かなり魅力的なソフトウェアだと思う。

特に②はクラウド利用では超大事。

 

悪い所

今のところ特に無い。

あえて言うなら下記だけど、これは相性的な問題だから仕方がない。

 

 

AWSで使える?

基本的にはめっちゃ使えそう。

但し、一個だけ問題があることが分かった。

AWSはプロミスキャスモードを一切許していないので、ブリッジ接続が使えない。

各サーバにクライアントをインストールして、

起動スクリプトでコネクション張るとこまで自動でやるようにして、

仮想DHCPオンにして…って感じになりそう。

接続先を固定したかったらどうすれば良いだろうか・・・

サーバ側でMACアドレステーブルとか持ってるけど、

同じ接続元には同じIP振ってくれたりはするのかな?

それなら特に問題は無いんだけど・・・

そうでないとして、とりあえず今思いつく解決法は、

クライアントに自発的に仮想DHCPで充てられたIPをAPIでRoute53に登録させるとか?

 

まとめると

最初に感じた

なんかこれめっちゃ使えるんじゃね?

はその通りだった。

でも、ガチで使うにはもうちょっと検証と評価したい所。

 

 

 

とりあえず、こんな感じで一旦?終了です。