VPSでLXD+SoftEtherVPN(Server側)
こんな記事があったのでやろうとしてみた。
タイトルと違うって? そりゃ失敗したからね!
具体的にはlxcだけの操作になってるところを今のlxd/lxc環境でやるのはひっかかりが多くて、っていうのと tun
君が作れなかったり、つくれたと思ってもダメだったりしたので*1諦めました。
なら他のVPNサービスは?って調べたら
ever-day-jp: LXCとSoftEtherを利用してサーバー上にセキュアな作業システムを作る その2
がヒットしたのでやったらイケた。
今回はさくらのVPS(Ubuntu14.04)で建てました。速度とかはまあ家の回線がksなので全く違いがわからない程度です。
LXDの用意
LXD*2はUbuntu15.04ならaptで入りますが14.04ではビルドの必要がーー今回はありません。そう、Ubuntuならね。
% sudo apt-add-repository ppa:ubuntu-lxc/lxd-stable % sudo apt update % sudo apt install lxd
あ、「 apt-add-repository
がないのだけれど」という方は
% sudo apt install software-properties-common
としてください。
LXDの起動
さて、LXDを入れたらまずコンテナイメージを入手しましょう、ということで
# lxd-images import lxc ubuntu trusty amd64 --alias trusty
で14.04のイメージを入手、
2015年9月1日のリリースで上のやり方は廃止されました*3。Ubuntu、busybox以外のときの方法がニュースのところに載っています。
Ubuntuなら
# lxd-images import ubuntu trusty amd64 --alias trusty
のようにすれば良いようです。Ubuntuは接続先がlinuxcontainers.orgからcloud-images.ubuntu.comに変わったみたいです。繋がらないと思ったら lxd-images sync
などを試してみるとまた接続先が変わっていたりするかもしれません。
# lxc launch trusty container-vpn
でコンテナを作成、起動します。
コンテナの中に入るには
# lxc exec コンテナ名 /bin/bash
などとすれば入れますがrootで入ってしまうので、初めにsshを入れてしまうと後はsshで入って通常ユーザに。 コンテナのローカルなIPは
# lxc list
で見られます。なお、このようにして作られたコンテナの中には最初からubuntuというユーザがいるのでpasswd
でパスワードを変えておきましょう。
そしていよいよSoftEtherVPNのビルドに移るのですが、なんかもう色々と面倒だな、と参考のブログ記事同様
sudo apt-add-repository ppa:dajhorn/softether
とするとあら簡単。ppaの登録は各々の責任で行ってください。
VPN Serverの設定
sudo vpncmd /server localhost /CMD HubCreate HUB名 /password: パスワード sudo vpncmd /server localhost /CMD BridgeCreate HUB名 /DEVICE:eth0 sudo vpncmd /server localhost /CMD HubDelete DEFAULT sudo vpncmd /server localhost /CMD VpnAzureSetEnable yes sudo vpncmd /server localhost /CMD Flush sudo vpncmd /server localhost /CMD VpnAzureGetStatus
というわけで対話セッションを省略した場合の簡易セットアップ。ほぼ参考記事のままですね。HUBを作り、デフォルトを削除し、VPNAzureの設定を有効にし、そのアドレスを確認しておくという流れです。VPNAzureがあればコンテナからホストに出る手間がないので楽ができる、というか僕はそれ以外のやり方ががが。
下書きしたのが随分前になってしまったので抜けや更新情報が多いかも。