はじめに
大学のネットワークがあらゆる通信を規制しまくるので思うように研究ができない…まぢまんじぢゃん…(¿)
ということでVPSにSoftEther VPNでVPNサーバを立てて規制を回避した話。
(大学によっては学内でVPNの利用を禁止しているところもあるので注意)
同じような記事はたくさんありますがSystemdじゃなくてsysvinit使ってたりしてたりGUIを使って設定できるのに説明がなかったり…
なんやかんやでモヤモヤしたので自分なりの方法をまとめなおしました。
環境
- VPS: ConoHa
- 料金自体安く、プリペイドでチャージできる使いすぎる心配がない。使った時間だけor月ごとの課金
- VPNサーバ: SoftEther VPN
- ファイアウォールを貫通してくれる。つよい。(VPNの通信を448番ポートでやったり…)
- クライアントOS: Windows 10
- サーバマネージャーとクライアントソフトはMac版あり。
- クライアントソフト: SoftEther VPN Client
- 今回は規制(学校などのファイアウォール)にひっかかるのを回避するのでこれを使う。
- 一応SoftEther VPN ServerにはL2TP/IPsecやOpenVPNの互換機能もある。
手順
1. ConoHaでVPSを立てる
残高をチャージすればすぐにサーバを立てられます。特に説明するようなこともなく簡単にできます。
自分の場合メモリ512MBのプランで全然問題ありませんでした。
OSですが今回はUbuntu18.04を利用していきます。
2. サーバの下準備
ConoHaはWebブラウザ上からコンソールを利用できます。そのため今回自分はSSHを利用していないのでそこら辺の説明は省きます。
あと今回はVPNといってもサーバのあるLANにアクセスするする目的はないのでブリッジとかも省略してます
コンソールにrootでログインしたらまずユーザを追加。
# adduser [任意のユーザネーム]
設定したいパスワードを求められるので入力。(確認あり)
↓このように入力を求められるが、Enter連打で大丈夫。
Enter the new value, or press ENTER for the default
Full Name []:
Room Number []:
Work Phone []:
Home Phone []:
Other []:
最後にこれが出たら問題なければYを入力してEnter。
Is the information correct? [Y/n]
今作成したユーザにsudoの権限をつける
# gpasswd -a [任意のユーザネーム] sudo
rootからログアウウト
# exit
そうしたら今追加したユーザでログイン
まずは更新しておく
$ sudo apt update
$ sudo apt -y upgrade
のちのちのmakeとかに必要なソフトウェアをインストール
$ sudo apt install -y gcc make
3. SoftEther VPN Serverのインストール
作業用のtmpディレクトリを作って移動(ディレクトリ名は任意)
$ mkdir tmp
$ cd tmp
SoftEther VPN Serverをダウンロード(これのURLは 2019/04/25時点での最新バージョン)
$ wget https://github.com/SoftEtherVPN/SoftEtherVPN_Stable/releases/download/v4.29-9680-rtm/softether-vpnserver-v4.29-9680-rtm-2019.02.28-linux-x64-64bit.tar.gz
現在の最新バージョンはここから
選ぶのは「SoftEther VPN → SoftEther VPN Server → Linux → Intel x64 / AMD64 (64bit)」
選ぶとリンクが出る。
ダウンロードしたのを解凍(ファイル名はダウンロードしたバージョンごとに読み替えてください)
$ tar -xzvf softether-vpnserver-v4.29-9680-rtm-2019.02.28-linux-x64-64bit.tar.gz
makeする
$ cd vpnserver
$ make
使用権許諾契約書に同意するかどうかなど聞かれるので都度1を入力してEnter
vpnserverを/usr/local/ に配置する
$ cd ..
$ sudo mv vpnserver /usr/local
パーミッションを設定する
$ cd /usr/local/vpnserver
$ sudo chmod 600 *
$ sudo chmod 700 vpncmd vpnserver
4. 自動起動の設定
インストールしたvpnserverをサービスとして登録して、自動で起動するようにします。
sysvinitじゃなくてSystemdを使います。
Systemdのユニットファイルを新規作成(今回はエディタにnanoを使います)
$ sudo nano /etc/systemd/system/vpnserver.service
[Unit]
Description=SoftEther VPN Server
After=network.target
[Service]
Type=forking
User=root
ExecStart=/usr/local/vpnserver/vpnserver start
ExecStop=/usr/local/vpnserver/vpnserver stop
Restart=on-failure
RestartSec=3s
[Install]
WantedBy=multi-user.target
Ctrl+x → y → Enter で保存。
サービスを有効化して起動
$ sudo systemctl daemon-reload
$ sudo systemctl enable vpnserver
$ sudo systemctl start vpnserver
いちおうリブートして確認
$ reboot
以上でサーバ側での作業はOK.
あとセキュリティ的にはファイアウォールを設定しておくといいかも。
ファイアウォールにひっかからないようにSoftEther VPNでは443番ポートを使うのでそこだけallow
$ sudo ufw allow 443
$ sudo ufw enable
$ reboot
5. クライアントPC(Windows)から管理マネージャーでサーバに接続、設定する
次はクライアント側から設定ソフトで接続して、VPNサーバの設定をしていきます。
まずはWindowsにVPNサーバ管理マネージャーをインストール
インストーラはここから
選ぶのは「SoftEther VPN → SoftEther Server Manager for Windows → Windows → Intel (x86 and x64)」
インストールで選択するのは「SoftEther VPN サーバ管理マネージャ (管理ツールのみ)」
あとは画面に従ってインストール。
VPNサーバ管理マネージャを起動したら「新しい接続設定」をクリック
接続設定名とホスト名にサーバのIPアドレスを入力してOKをクリック
登録出来たら「接続」をクリック
正常に接続できれば、VPNサーバの管理パスワードを設定するダイアログが出てくるので設定する。
「リモートアクセス VPN サーバー」を選択して次へ
確認ダイアログが出るので「はい」
次のダイアログ(仮想ハブ名の設定)も「VPN」のまま「OK」
ダイナミックDNS機能の設定が出てくるが特に使わなければそのまま「閉じる」
(ダイナミックDNS機能はデフォルトでは有効なので特に使わない場合も気にしなくてOK。(止めることもできる))
この画面でもそのまま「OK」
(この画面の互換機能に加えOpenVPN互換機能とかもあるけどだいたい規制に引っかかるので今回はスルー)
次の画面 VPN Azureは無効にするチェックを入れてOK
(Windows標準のVPN機能しか使えないとかいうときは役に立ちますが)
次の画面で「ユーザを作成する」→出てきた画面で「新規作成」→この画面が出る
VPN接続ユーザを作成する。(接続時のログイン情報。)
最低限ユーザー名とパスワードを設定してOK
ユーザが追加できたことを確認出来たら「閉じる」をクリック
「VM 内でのローカルブリッジ機能の使用」というダイアログが出るが問題ない。そのままOK
仮想HUB「VPN」を選択して「仮想 HUB の管理」をクリック。
(ちなみにこの画面にあるリスナーポートは443番以外消してOKです。)
「仮想 NAT および仮想 DHCP サーバー機能」をクリック。
「Secure NAT 機能を有効にする」をクリック。
確認ダイアログが出るので「OK」
これでVPNサーバの設定は以上です。
6. クライアントソフトからVPN接続
そしてまたここからダウンロード
選ぶのは「SoftEther VPN → SoftEther VPN Client → Windows → Intel (x86 and x64)」
インストールするのは「SoftEther VPN Client」
あとは画面に従ってインストール
クライアントソフトを起動。
新しい接続設定の作成。
仮想LANカードは問題なければそのまま作成。
ホスト名にサーバのIPアドレス
仮想HUB名に「VPN」(変更していなければ)
VPN接続ユーザ名とパスワード
「高度な通信設定」でTCPコネクション数は8くらいに増やしておいたほうがいいです。
これで接続できればOKです。お疲れさまでした。
さいごに
今回は設定を設定ソフトから接続して行いましたが、ConoHaのスタートアップスクリプトでサーバ立てるのすべて自動化したいとかのときはサーバだけで行う方法もあります。
個人的な話になりますが初めてMarkDownでこういった記事を書きました。わかりやすく書きたかったけどとても読みずらくなってしまいました。(›´ω`‹ )
初めてやる他の人にもわかりやすいようにするって難しいものですね。(›´ω`‹ )
なんか自分のやり方で画像を載せるとなぞの消せないMarginができたりレイアウトに問題ありなのでもうちょっとちゃんと書けるように練習してきます。(あとちゃんとした日本語)\\\ ٩( 'ω' )و ////