読者です 読者をやめる 読者になる 読者になる

TakayukiKoyama Geek Blog

Create, Entertain, Experience

ノマドエンジニア向け ネットワークセキュリティ対策【VPN】

ノマドに限らず、公共の無線LANを利用するのは

セキュリティ的にあまり宜しくないのでVPN対策を講じることにした。

VPN環境構築の種類

 VPNを構築する方法は2つある。

1.自宅のPCをサーバとしてVPNを構築する

2.レンタルVPSサーバを借りてVPNを構築する

3.公開されているVPNサーバを使う

 家に常時起動させたPCを用意する気には鳴らなかったので2をすることにした。

VPNを使えるようにするために、やらないといけないこと

 VPN接続するためには以下の準備が必要だ。

1.サーバにVPNプログラムを実装する

2.VPN通信したいPCやスマホ(クライアント)にVPNアプリケーションをインストールしてVPN設定を行う

VPSサーバでVPNプログラムを実装

 VPNを構築する方法はググればたくさんでてくるので、その通りに行った。

 サーバは『さくらVPS』。

さくらのVPSにOpenVPNを建ててAndroidから繋げるようにした | コムギドットネット

OpenVPNでさくらのVPSをVPNゲートウェイに

OpenVPNで外出先のMBAからさくらVPS通して自宅サーバにつなげる環境をつくるの巻 - kenjiskywalker's diary

さくらVPSで(クライアント→VPN→外部のための)VPNトンネルつくったよ | ecube lab+

 上記のサイトの通りに進めれば、ほぼ問題ない。

PCやスマホで接続する

 AndroidiPhoneについてはまだやってないので、やったときにメモする。

 PCについては今使用しているMacBook(MacOSX)で試した。

 MacOpenVPNに対応しているクライアントはTunnelblickで、みんなこれを使ってるみたいなのでこれにした。

手順としては

1.ダウンロード後、アプリをダブルクリックでインストール。

2.VPN接続用ファイルの作成

 2.1.とりあえずフォルダを作成

 2.2.openvpnで作成したクライアント用ファイルをVPN接続したいクライアントPCの作成したフォルダに移動   ca.crt,client.crt,client.key,ta.key

 2.3.client.confファイルを作成する(例:下記)。これも作成したフォルダに格納

client
dev tun
proto udp
remote [さくらVPSのIPアドレス] [解放したポート]
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client.crt
key client.key
tls-auth ta.key 1
comp-lzo
verb 3

 2.4.作成したフォルダ名をclieant.tblkに直してファイルとして固める

3.ファイルをダブルクリックするとTunnelblickが実行されて、さくらVPSにアクセスし始める。

 これでVPN接続完了。ちなみに、Tunnelblickを紹介しているサイトはVPN接続が成功したとき中が白い開通アイコンになっているが、最新版はデフォルトで黒アイコンのままなので開通したのかが分かりにくいが、設定でアイコンが変更できる。

f:id:tkoyama1988:20140425022701p:plain

不具合 参考

『NOTE: If you run ./clean-all, I will be doing a rm -rf on /etc/openvpn/easy-rsa/keys』はエラーではないので気にしなくていい。

openvpn を起動中:                                          [失敗]

 となったときはkeyファイルのコピー忘れだと思うので以下を実行

# cp /etc/openvpn/easy-rsa/keys/
# cp -ip ca.crt server.crt server.key dh1024.pem ta.key /etc/openvpn/

openvpn /etc/openvpn/server.conf

 は一回起動したら、Ctrl+cで止める。止めずにSSHクライアントを閉じるとプロセスが走りっぱなしになるので、そのときは

sudo kill -9 [プロセス番号]

 で止める。プロセス番号はps -auxで探す。

 server.confでtls-auth ta.key 0を追加している人としていない人がいたけど、やった方がいいっぽい?

 VPN用ポート(ex.1194)を解放するとき、iptablesの設定で「INPUT」を「RH-Firewall-1-INPUT」にしているときは「RH-Firewall-1-INPUT」にしないとポートが開かないので注意。

 Tunnelblick VPN 接続先インストールエラー  Tunnelblick VPN 接続先インストールエラー | ミヤビッチの穴