🛠️

CentOS/Ubuntuで始めるVPN構築

2021/09/12に公開
3

はじめましての方は、はじめまして。以前、記事を見たことのある方は、お久方ぶりです。

今回は、学校から自宅の機器やファイルサーバーにアクセスしたりしたいという願いから、Softether VPNを使用して、VPNを構築してみました。

で、構築するにあたって後々必要になってくるであろう、グローバルIPアドレス。
自分の家のグローバルIPアドレスを調べてみたら、なんと!!「グローバルIPアドレスがない!!!」ということに気づきました(泣)まじかよ。(ないというよりかは、マンション全体で一つのグローバルIPアドレスを共有しています)
なので、毎度お馴染みのConohaVPS上でVPNを構築し、家に余っているPCからConohaVPS上に立てたVPN Serverにカスケード接続して、お家のネットワークにアクセスできるようにしていきたいと思います。

環境

ConohaVPS:
 OS:CentOS
お家の余ってたPC:
 OS:Ubuntu 20.04 LTS
作業用PC:
OS:Windows10 Home

注意

CentOS/Ubuntuでのコマンドの違い

CentOSの方は、基本的に記載してあるコマンドをそのまま実行すればできますが、Ubuntuの場合は、○○を実行する許可はありませんと表示される場合がありますので、基本的にコマンドの前にsudoをつけて実行するようにしてください。

makeのインストール

Ubuntuには確か標準でmakeはインストールされておらず、makeコマンドが使えない場合があるので、予めインストールしておきます。

sudo apt install build-essential

CentOSではインストールされているはずですが、されていない方は以下のコマンド。

yum install make

ConohaVPS上にVPN Serverを立てていこう!

インストール編

はい、まずはConohaVPS上にVPN Serverを立てていきます。
とりあえず、ConohaVPSに登録する作業とか、サーバーの作成とか割愛!!
サーバープランは各自で決めてOKですが、基本的に512MBプランでスペック的には足ります。
サーバーを契約するとこんな感じに表示されているので、詳細情報>ネットワーク情報>IPアドレスのIPアドレスをコピーしておいてください。

IPアドレスをコピーしたら、Win+Rでcmdと入力するか、MicrosoftStoreで配布されている「Windows Terminal」をインストールし、起動してください。
※SSH接続ができるフリーソフト(TeraTeamなど)を使用していただいても結構です。
起動ができたら、コマンドプロンプトもしくはWindowsTerminalを使用している場合は、ssh root@IPアドレスと入力するとパスワードが求められるので、Conohaで契約した際に決めたパスワードを入力してください。すると、以下のように接続できます(自分はローカルPCに接続しているため、画面の表示が少々異なりますが、基本的に作業は変わりません)

接続ができたら、tmpディレクトリに移動します。

cd /tmp

そしたら、こちらのサイトから、画像のような条件で検索します。
検索結果が表示されるので、rtmと書いてある最新バージョンのダウンロードリンクをコピーします。(赤枠の名前の部分で右クリック>リンクアドレスをコピー)

できたら、SSH接続している画面に戻り、

wget [コピーしたリンク]

でダウンロードします。

ダウンロードしたものは、.gzになってるので解凍します。

ls -l
# 実行結果
合計 14672
-rw-rw-r-- 1 seiwell seiwell 7510103  4月  5  2020 softether-vpnserver-v4.34-9745-rtm-2020.04.05-linux-x64-64bit.tar.gz

# 解凍
tar zxvf softether-vpnserver-v4.34-9745-rtm-2020.04.05-linux-x64-64bit.tar.gz

解凍が完了したら、解凍されたファイルのディレクトリに移動します。

cd vpnserver

vpnserverのディレクトリに移動したら、makeコマンドを使用して、ビルドしていきます。

make

ビルドが完了したら、一つ前のディレクトリに移動し、/usr/local/ディレクトリに移動していきます。

cd ..
mv vpnserver/ /usr/local/

移動が正常に完了すると、何も表示されません。
移動ができたら、自分も移動したディレクトリに移動します。

cd /usr/local/vpnserver/

次にファイル/フォルダなどにパーミッションを設定していきます。

sudo chmod 600 * && sudo chmod 700 vpncmd && sudo chmod 700 vpnserver && sudo chown root:root *

以上でインストールは完了です。

設定編

インストールが完了したら、念の為Softetherのチェック機能を使用して確認をします。

cd /usr/local/vpnserver
./vpncmd
By using vpncmd program, the following can be achieved. 

1. Management of VPN Server or VPN Bridge 
2. Management of VPN Client
3. Use of VPN Tools (certificate creation and Network Traffic Speed Test Tool)

と出てくるので、3を入力してEnter。
そしたら、checkと入力して、すべてpassと出ればOKです。
次に、自動起動の設定をしていきます。まずはディレクトリを移動します。

cd /etc/systemd/system

そうしたら、以下のコマンドを入力

sudo micro softethervpn.service

エディタが開くので、以下の内容を入力して、Ctrl+Sで保存し、Ctrl+Qでエディタを閉じます。

[Unit]
Description=SoftEther VPN Server
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/vpnserver/vpnserver start
ExecStop=/usr/local/vpnserver/vpnserver stop

[Install]
WantedBy=multi-user.target

一応、ファイルが作成されたか確認します。

ls -l softethervpn.service

systemctlコマンドで自動起動の設定を行います。

sudo systemctl enable softethervpn

再度、自動起動になったか確認します。
enabledとなっていたら、成功です。

sudo systemctl list-unit-files --type=service | grep softether

サーバーの再起動を行います。

sudo reboot

再起動が完了したら、Softetherが起動しているか確認してみます。

systemctl status softethervpn

Active: activeになっていたらOKです!
次にファイヤーウォールの設定をします。
Firewalldをインストールしていきます。

sudo apt update
sudo apt-get install firewalld

Firewalldを有効化、サービスを開始します。

sudo systemctl enable firewalld
sudo systemctl start firewalld

ステータスを確認します。

sudo firewall-cmd --state

runningと出ていればOKです!
次にUDPの500と4500のポートを開けていきます。

# ポートを開放
sudo firewall-cmd --zone=public --add-port=500/udp --permanent
sudo firewall-cmd --zone=public --add-port=4500/udp --permanent

# 設定の反映
sudo firewall-cmd --reload

すべて、「success」と出ていればOKですが、念のため設定の反映をしたら再起動します。
以上で、CLIで設定する項目は以上です!

GUIで設定していく編

コマンドでの設定は完了したので、今度はSoftetherのサーバー管理ソフトで設定をしていきます。
まずは、構築したVPNサーバーに接続します。
「新しい接続設定」をクリック。

設定画面が開くので、以下のように設定します。

接続設定名:好きな名前
ホスト名:VPSに接続するときに使っているIPアドレス

それ以外は変えなくて大丈夫です。

そしたら、OKを押します。
接続先を選択して、「接続」をクリック。

新しい管理者パスワードを決めるダイアログが出るので、新しいパスワードを入力してOKをクリック。

初期設定を進めていきます。
僕の場合は、とりあえず一番上のやつにチェックを押して次に行きます。
次へ行くと、HUB名を入力する画面が出てきますが好きな名前で結構です。
また、ユーザーを作成などを設定するところが出てきますので、ユーザーの作成は行ってください。ブリッジするLANカードは、選択できるやつを選択してもらえればOKです。

「L2TPサーバー機能を有効にする」にチェックを入れます。
IPsec共通鍵は適当に決めてください。(ここでは仮にvpn12345にしてます)

Azureは必要ないので無効にするを選択して次へ

そうすると、初期設定は完了です。
HUBを選択して、「仮想HUBを管理」をクリック。

「仮想NATおよび仮想DHCPサーバー機能」をクリック。

「SecureNAT機能を有効にする」をクリック。
有効にしたら、「SecureNATの設定」をクリック。

MACアドレスを入力する欄があると思うので、最初の○○-○○を削除して、00-ACに変更します。
画像で言うと

修正前:5E-60-61-CD-5C-3E
修正後:00-AC-61-CD-5C-3E

となります。
修正前
修正後
設定が完了したら、OKを押して終了です。
あとはスマホから接続できれば完了です!!
お疲れさまでした。

最後に

いかかがでしたか。
僕の環境はUbuntuで、参考にしたサイトの多くがCentOSだったので、結構苦戦しました。
少しでも参考になれば幸いです。
また次回!

変更履歴

2021-09-12 公開
2022-09-06 語弊のある文言を修正

Discussion

winror22winror22

動きません。
そしてconohaを使わない方法も初回してほしかったです.....

ruisruis

動きません。

「動きません」と一口に言っても、何が動かないのか分かりません。
可能なら、エラーやどこまで手順を踏んで動かないのか教えて頂きたいと言いたいところですが、
あいにくteratailのような場所ではないので、難しいです。
(プロフィールのメアドに問い合わせるなりしたら、別でしょうが...)

そしてconohaを使わない方法も初回してほしかったです.....

Conoha以外でも、同じ手順でできます。

winror22winror22

返信ありがとうございます。
コメントがわかりにくくすみませんでした。
やり方が間違ってた可能性もあるので見直してきます...