#いきさつ
平文の無線LAN対策にVPNが欲しいだけで…
世の中たくさん記事があるけど、うまく行かず。サービス借りるの高いし、無料はまた不安だし。
IDCFクラウドさんなら月額500円未満でもサーバ作れるから使ってみました。(500円からってなってるけど、ストレージ削ると500円切るよね)
今回はL2TP+IPsecが必須。iPhoneから繋ぎたいから。
OpenVPNは専用クライアントだし、PPTPは脆弱なので選択から外しました。
#試したもの
-
Debian 6 (GlobalIP) + Openswan + xl2tpd
-
Debian 6 (GlobalIP) + strongswan + xl2tpd
-
Debian 7 (PrivateIP) + Openswan + xl2tpd
-
Debian 7 (PrivateIP) + strongswan + xl2tpd
-
Debian 7 (PrivateIP) + Softether VPN (成功)
#構成
環境はこんな感じでNAPT間で悩む人はこれが最短かも。
Server 10.3.x.x
|
Global IP(NAPT)
|
Internet
|
Global IP(NAPT)
|
Client 10.x.x.x
|
iPhone
サーバもNAPT配下、クライアントもNAPT配下です。
サーバ側はちゃんとポートフォワーディング設定が必須。
#結果
1〜4は撃沈しました。
IPsecのハンドシェイクができたりできなかったり。特にOpenswanのバージョンにハマったんだけど、sourceからは入れたくないから諦めた。
しかしSoftether VPNを試すと10分で完了!今までの時間なに?!
sourceから入れないってのを撤回です。
#やったこと
Softetherのサイトからsourceをダウンロードしてmakeだけ
# wget http://jp.softether-download.com/files/softether/v4.18-9570-rtm-2015.07.26-tree/Linux/SoftEther_VPN_Server/64bit_-_Intel_x64_or_AMD64/softether-vpnserver-v4.18-9570-rtm-2015.07.26-linux-x64-64bit.tar.gz
# tar zxvf softether-vpnserver-v4.18-9570-rtm-2015.07.26-linux-x64-64bit.tar.gz -C /usr/local/
# cd /usr/local/
# make
そして起動ファイル
#!/bin/sh
### BEGIN INIT INFO
# Provides: vpnserver
# Required-Start: $local_fs $network
# Required-Stop: $local_fs $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: SoftEther VPN Server
# Description: SoftEther VPN Server
### END INIT INFO
DAEMON=/usr/local/vpnserver/vpnserver
LOCK=/var/lock/vpnserver
test -x $DAEMON || exit 0
case "$1" in
start)
$DAEMON start
touch $LOCK
;;
stop)
$DAEMON stop
rm $LOCK
;;
restart)
$DAEMON stop
sleep 3
$DAEMON start
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
esac
exit 0
EOT
あとはiptablesの開放とWindows版のマネージメントツールからアカウント追加とL2TP、NATの有効化くらい。(コマンドラインベースのマネージャーは使いづらいのでGUIに頼りました)
VPN用のIPは勝手に設定されて192.168.xx.xが付与されました。
証明書ベースでなくて簡単にVPNってだけならこれでいいです。
今回はサーバ側が直接グローバルIP持っていなくて
NAPT配下ってところが少し悩みどころ?
追加でアドレス契約するのもなんなので(IDCFさんごめんなさい)こんな構成になりました。
元々IDCFさんが用意しているVPNがiOS未対応のまま放置されてるの…
これが使えたら一番簡単だった?
ポートフォワーディングも500/udp, 4500/udpだけしとけば
あと全部クローズで問題なし。