タグ別アーカイブ: EC2

EC2(AmazonLinux)をローカルPCからNATで使う

職場のFireWallで空いてないポートでの通信がどうしても必要になりまして、

UDPも必要だから一般的なプロキシとかじゃどうしようもなく、

最近、ちょっとお手軽にEC2とVPN貼れちゃう方法を試していたので、

それと組み合わせてEC2をNATで使ってそこから通信するっていう方法を取りました。

 

まず前提としてVPNやリッチな方はDirectConnectでEC2とLANで繋ぐ必要があります。

「そんなんないよ!」って方はこの辺がちょっとお手軽です。

 

注意!!

SecurityGroupやVPCの設定等、

セキュリティ周りの設定でこのインスタンスへの接続元が適切に限定されるように細心の注意が必要です!

無防備にこのインスタンスを晒すと悪用される恐れが有るので注意してください!

あと、この方法で会社からP2Pとかエロサイト見るとかもやめましょうwww

 

ちなみに今回の場合、SSL-VPNなのでSSL通信ポートを職場固定IPに限定した上で、

それ以外は使いたいポートのみ空けるようにし、

一応使う時以外は必ずこのインスタンスは停止するようにしています。

 

その上で以下を実行します。

# echo 1 > /proc/sys/net/ipv4/ip_forward
# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

EC2側はこれだけです。

上述の通り頻繁に起動と停止を行って、その度に実行するのも面倒なので以下にも同じ内容を記述しました。

# vi /etc/rc.local

 

あとは、このEC2とLANで繋がるネットワークインターフェースのデフォルトゲートウェイをこのインスタンスのPrivate IPにしてあげればOKです。

ここは一般的なPC設定の話でOSによって色々違うので省略します。

 

ちなみにこれをやるとローカルPCからインターネットに対する通信は全てEC2を通るので、

転送量課金に注意です。

個人で使うなら(使わないと思うけど)これはさすがにVPSだなw

 

 

これでアレが使えます!

 


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に登録させるとか?

 

まとめると

最初に感じた

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

はその通りだった。

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

 

 

 

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