自己顕示欲の開放治療所

erg, programming and something.

別名:Laughing and Grief 雑記

Latin and Greekは習ったこともない

真面目な記事の他、特定の方には不快と思われる事柄に関して言及を行うことがあります。ちょっと頑張りますが、Blog内で解決できなかった場合要望があれば別ページに技術記事は書き直します

VPSでLXD+SoftEtherVPN(Server側)

こんな記事があったのでやろうとしてみた。

gihyo.jp

タイトルと違うって? そりゃ失敗したからね!

具体的には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日のリリースで上のやり方は廃止されました*3Ubuntubusybox以外のときの方法がニュースのところに載っています。

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があればコンテナからホストに出る手間がないので楽ができる、というか僕はそれ以外のやり方ががが。

下書きしたのが随分前になってしまったので抜けや更新情報が多いかも。