VPN環境を構築し、テレワークができる準備をして時代遅れにならないようにする。

ここ最近、急速にテレワークや在宅勤務などにシフトする企業が増え、いっきに環境が変化しています。
そこで、本日はパソコンにVPN環境を構築して社員がどこにいても社内のネットワークに参加できるようにします。簡単なイメージを作成したので参照してください。

詳しい説明は割愛しますが、インターネットから、どこにいても社内LANに参加できるというものです。IPアドレスをプライベートとすることにより、これを実現することが可能になります。ファイルの共有、プリンタへの印刷など便利なことを外出先からできるようになります。

今回はクラウドサービスにLinuxの仮想マシンが構築してあり、VPNの導入方法をいちから紹介したいと思います。使用するクラウドサービスはオラクルクラウドですがAWS、AZURE、GCPでも可能です。OSはCentOS7とします。

第一段階としてVPNを実現できるソフトを選びます。無料で高機能かつオープンソースであるSoftEther VPN Serverを使用いたします。
http://www.softether-download.com/ja.aspx?product=softether
にアクセスして目的にあったコンポーネント、プラットフォーム、CPUを選択します。するとダウンロードリンクが現れるので右クリックしてコピーしておきます。あとで使用します。

それではssh接続してVPN Serverに必要なソフトを事前にダウンロード、インストールしておきましょう。まずはDevelopment Tools、readlineなどをインストールします。私のマシンは32ビットだったのでそれ相応のものをインストールすることになりました。あとから説明いたします。下記のコマンドを入力します。

yum -y groupinstall "Development Tools"
yum -y install readline-devel ncurses-devel openssl-devel
yum install glibc-devel.i686 libgcc.i686 libstdc++-devel.i686 ncurses-devel.i686

最初は3行目のコマンドを入力してなかったのでVPNのインストールでエラーが発生して苦労しましたが、通常は入力する必要はないと思います。
必要なプログラムの準備が完了したらVPN Serverをダウンロードして、インストールします。

cd /tmp
wget https://jp.softether-download.com/files/softether/v4.34-9745-rtm-2020.04.05-tree/Linux/SoftEther_VPN_Server/32bit_-_Intel_x86/softether-vpnserver-v4.34-9745-rtm-2020.04.05-linux-x86-32bit.tar.gz
tar zxvf softether-vpnserver-v4.34-9745-rtm-2020.04.05-linux-x86-32bit.tar.gz

tmpディレクトリに移動して、WGETでダウンロードします。WGETのあとのURLが先ほどコピーしたリンクアドレスとなります。そして解凍します。VPNSERVERというディレクトリが作成されそこにファイルが解凍されています。

cd vpnserver

vpnserverディレクトリに移動します。

make

これにより、MakeFileに基づいて、アプリのコンパイルが行われます。


その前にライセンスに同意するか問われるので1を押して次に進みましょう。その後を1を2回押しましょう。

cd ..
mv vpnserver /usr/local
cd /usr/local/vpnserver
chmod 600 *
chmod 700 vpncmd
chmod 700 vpnserver
chown root:root *

上のコマンドの説明です。
1行目:一つ上の階層であるtmpに移動する。
2行目:vpnserverディレクトリごと/usr/local直下に移動する。ここが推奨されています。
3行目:ファイルの移動先に移動。
4行目:セキュリティでroot以外アクセスできないようにする。
5,6行目:対象ファイルに実行権限を付与。
7行目:所有権をrootにする。

./vpncmd
3
check
exit

vpncmdを実行して、3番のVPN Toolsコマンドを使用します。checkと入力してコマンドが成功するか確認します。成功したのでexitにてモードを抜けます。

cd
vi /etc/systemd/system/softvpn.service

ホームに戻りsoftvpn.serviceというファイルを作成します。記述する内容は下に示します。softvpnとしましたが自分でわかりやすいものを決めてください。
仮想マシン上でVPNサーバープロセスを常駐化させるため、Systemdでサービス化します。そのためにユニットファイルを作成します。

[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

上書き保存して動作確認をします。

systemctl daemon-reload
systemctl start softvpn
systemctl enable softvpn

3行目でシステム再起動時に起動するようにします。

あともう少しです。次にSoftEther VPN Serverの使用するポート番号を確認してみましょう。実はあとでwindows版のvpnserverでもできます。こちらはGUIでわかりやすいですが、学習のためやっておきましょう。

systemctl stop softvpn
vi /usr/local/vpnserver/vpn_server.config

プログラムを停止します。何らかの理由で、ウェブサーバーがあり443はSSL(https)で使用しているならFalseにして停止しておきましょう。

systemctl start softvpn

設定が完了したので起動します。

次はOSにポート開放をします。開放するポートは5555及びスマホなどで使用するL2TP/IPsec用のポートです。UDPの500と4500となりますが、ipsecというサービス名で登録されています。

firewall-cmd --list-all
firewall-cmd --permanent --zone=public --add-port=5555/tcp
firewall-cmd --permanent --zone=public --add-service=ipsec
firewall-cmd --get-services
firewall-cmd --reload

最初にどんなルールが設定されているか確認します。順に、TCP5555、UDP500、4500を登録します。4行目は登録されているものを確認することができます。反映も忘れずにおこないます。

オラクルクラウドのイングレスルールにもこれらのポート開放の設定を忘れずにしておきます。他のクラウドでも同様の設定項目があります。自宅サーバであればルーターの設定を見直す必要もあります。

次はVPN Serverにアクセスできるユーザーを作成しますがコマンドでは困難なこともあるのでwindows版をダウンロードしてきます。
http://www.softether-download.com/ja.aspx?product=softether
にてダウンロードしてインストールします。

サーバー管理マネージャーから新しい接続設定をクリックします。

次の画面で接続設定名を任意で、ホスト名、ポート番号は5555を選択します。管理パスワードは何もいれずに「OK」ボタンをクリックします。ホスト名はオラクルクラウドのインスタンスに使用している外部IPアドレスとなります。最初に限り次の画面でパスワードと再確認の2つを入力する必要があります。管理画面では5555以外停止中ですね。先ほどのSSH接続でおこなったコマンドの内容が反映されていることがわかります。


ウィザードにそって進めていきます。リモートアクセスVPNサーバーにチェックをいれて次に進みます。仮想HUB名の入力画面がでたらわかりやすいものを入力します。


ダイナミックDNS機能の画面がでたらいったん閉じます。この時点でXXXXX.softeher.netでもアクセスができますが独自ドメインを使用したい方は無効にしておきましょう。まだまだ続きます。VPN AZUREは今回は無効としました。ユーザー作成画面がでたら作成しますが、後からでもできます。ローカルブリッジの設定では必ず一覧から選択します。


先ほどコマンドでポート開放をしたのでIPsec、L2TPは設定しましょう。「L2TPサーバー機能を有効にする」にチェックをいれます。IPsec事前共有鍵は任意で設定しておきます。スマホで接続する時に必要です。


仮想HUBの管理画面で「仮想NATおよび仮想DHCPサーバー機能」ボタンをクリックして次の画面で「SecureNAT機能を有効にする」をクリックします。詳細な振り分けIPアドレスを指定したい方は「SecureNATの設定」ボタンにておこなえます。

ここまででサーバー側の設定は完了しました。ここら辺は管理者がおこなう業務となるでしょう。
次にようやくクライアントの設定を行います。パソコンとスマホの設定を見ていきます。
http://www.softether-download.com/ja.aspx?product=softether
でクライアントを選択してダウンロードしてインストールします。最初のインストールでは仮想ネットワーク関連のドライバのインストールもする必要があるかもしれません。

それではクライアントを起動して「新しい接続設定の作成」をダブルクリックしましょう。次の画面で入力すべきところは、接続設定名、ホスト名、ポート番号の選択、およびサーバーで追加したユーザー名とパスワードになります。「OK」をクリックすれば一覧に追加されています。

追加された接続設定名をダブルクリックします。接続がうまくいけばプライベートアドレスが割り当てられネットワークに参加できます。コマンドプロンプトで確認してみましょう。プライベートアドレスが割り当てられてます。


それではインターネットにアクセスしたときどんな外部IPが使用されているのでしょう。自分のIPアドレスが調査できるサイトにアクセスして確認します。これはまさにオラクルクラウドの外部IPとなっています。

最後にスマホの設定をしていきましょう。Androidを例に設定方法を説明していきます。
設定からVPNの項目を探します。名前を任意で、タイプは「L2TP/IPSec PSK」を選択します。

サーバーアドレス、IPSec事前共有鍵を入力します。IPSec事前共有鍵はデフォルトではVPNとなってましたが変更しておきましょう。

DNS検索ドメイン、DNSサーバーは空白のままで大丈夫ですが自分で用意していればその限りではありません。転送ルートは「0.0.0.0/0」と入力します。

最後にサーバーで追加したユーザー名とパスワードを入力して接続してみましょう。

教育

Posted by admin