
※ スマホの方はPC表示でご覧ください。
緊急事態宣言!
新型コロナウィルス感染拡大に対して、ようやく4月7日に7都道府県に対して緊急事態宣言が発令されました。その後、更なる感染拡大により緊急事態宣言は全都道府県に拡大されました。
さらにさらに、その緊急事態宣言の期間を延長せざるを得ないという非常に残念な状況に陥っています。各都道府県知事が先頭に立って「STAY HOME」を提唱し、今年のゴールデンウイークは「STAY HOME WEEK」と呼び、外出自粛を呼び掛けております。
その効果は大きく、ゴールデンウィーク中にも関わらず乗車率0%の新幹線も!閑散とした街や駅、列車など、おそらく、全国民が経験したことのない状況を目の当たりにしています。
そんな中、企業は「テレワーク」による業務継続を実施していますが、IT屋さんでも十分なテレワーク環境が整っていないのに、ほぼすべての業種でテレワークを進めなければならない今日の状況。
テレワーク
ここ1・2か月で急に浸透した言葉「テレワーク」。ここでちょっとだけ説明しますね。
「テレワーク」とは、情報通信技術(ICT)を利用した、時間と場所にとらわれない働き方のことです。テレワークは働く環境により下記3つに分けられます。
今、叫ばれているテレワークは1.の在宅勤務ですね。
でも、テレワークって誰でもできるの? と言われると必ずしもそうではない。
テレワークをしやすい仕事とは・・・
会社のシステムが、インターネット上で提供されているクラウドサービスを利用して、メールやファイル共有のほか、社内ポータルなどを実現していて、各社員はノート型のPCやタブレット端末で仕事している会社である。
これらの会社では、最初から、テレワークを想定しているので、全く問題なく環境的には移行が可能である。
では、テレワークが難しいのは・・・
建設業などインフラ構築関係の仕事は、工事現場に行かない訳にはいかないので非常に困難であると言える。
インフラ関係以外ではどうでしょうか?
社内システムが会社の閉じた環境にある会社はそう簡単にはいきません。
社内システムは大前提として「社内」からの接続のみ想定している。だから、「社外から」(外から)の侵入を防ぐため、会社のネットワークとインターネットの接点には、一般的にファイアウォールと呼ばれる装置を設置し、通信制御を実施している。
ご参考までに、侵入対策に対しては、このファイアウォールとは別に不正侵入検知システム(IDS)や不正侵入防止システム(IPS)と呼ばれるもうワンレベル上の対策を実施しているところも少なくない。これらの各装置の詳細についてはここでは割愛させていただきます。
ワタシの(あくまでも個人的な)感覚では、「クラウド」という言葉が誕生する以前からある企業で、自社内に、メールをはじめとするあらゆる基幹系システムが「自前」で構築されている。当然、セキュリティは強固である。おまけに、各社員に配布されているPCはデスクトップだったりする。
不要不急の外出自粛。テレワークと言われても・・・
(「不要不急」の定義もあいまいで云々は置いておきましょう。)
このような会社でテレワークを短期間で実現するには、社外から社内システムを利用するしかありません。では、どうすればよいのか?
自宅と会社をつなぐには?
会社にあるシステムとデータを、「安全に」自宅からで操作するには、VPN(Virtual Private Network)というインターネット経由で安全に社内へアクセスするための技術を使うのが一般的です。世の中には様々な方法や仕組みがありますが、最も一般的なVPN(L2TP/IPSec VPN)を用いて自宅と会社を安全に接続する環境を構築する方法について説明します。
必要なもの
必要なものは
- サーバ機材(ネットワークインタフェースは1ポートあればOK)
- Windows Serverライセンス
- 固定グローバルIPアドレス(1つ)
です。ファイアウォールはすでに設置されているものに設定を追加して使用します。固定グローバルIPアドレスがない場合については、この記事の終わりで代替方法に触れています。
現役引退したサーバなど余暇機材の流用でもOKです。
サーバのスペックの目安
サーバ機材が無ければ、クライアントPC用のコンピュータでもよいです。同時接続する人数に比例して要求されるサーバスペックも上昇します。
Windows Server (Standard)ライセンスは、使用するハードウェア(CPU)により必要ライセンスを準備してください。
VPN環境構築
構築する環境は下記のとおりです。
- VPNサーバは、Windows Server 2012R2 で、L2TP/IPSec VPN環境(Windows Server 2016やWindows Server 2019でもほぼ同様な手順で構築できますが、2012R2での運用経験が多く安定的に運用できているので2012R2で説明させていただきます。)
- VPNサーバは、社内ネットワークにのみ接続する。
- インターネット出口のファイアウォールにポートフォワードの設定を追加し、VPNサーバへの経路を新設する。
それでは、VPNサーバ環境設定の手順です。
1. VPN環境で必要となる決め事
環境構築を始める前に、これから設定する内容(ネットワーク情報)をあらかじめ決定しておきます。 ここでは、以降の説明で設定値を使用する関係で、(仮)設定値を記載しておきます。 (後の手順で、これらの値を設定していきます。)
※ 社内ネットワークは、172.26.0.0/16を想定で未使用のIPアドレスを割り振る。
- 静的アドレスプール : 172.26.250.2 ~ 172.26.250.16
※ VPN接続したクライアントPCに割り振るIPアドレスの範囲を指定する。
※ ここでは単純なキーにしていますが、実際に設定する際には、
長く複雑な文字列(英大文字、英小文字、数字、記号を使用し、意味のない文字列がよい。
- ネットワークポリシー名 : リモートアクセス
- VPN接続ユーザー ローカルグループ : VPNUsers
※ VPN1のローカルグループ
- ユーザー : User0001 (パスワード:123@abc)
※ VPN1のローカルユーザーで管理者権限は不要の一般ユーザーで
Usersグループ所属(デフォルト)に加え、 VPNUsersグループにも追加する。
2. VPNサーバ構築
2.1 VPNサーバの準備
VPNサーバ用として準備したマシンに、Windows Server 2012R2 Standardをインストールする。 すべてのデバイスを認識させます。(デバイスマネージャーでエラーのない状態)
2.2 VPN接続ユーザーを作成
サーバーマネージャを起動し、「ツール」→「コンピューターの管理」をクリックする。
「コンピューターの管理」ウィンドウが表示されるので、 ツリーから「ローカルユーザーとグループ」をクリックする。 右側画面に表示された「ユーザー」を右クリックして「新しいユーザー」をクリックする。
「新しいユーザー」ウィンドウで、
- ユーザー名 : User0001
- パスワード、パスワードの確認入力 : 123@abc
- ユーザーは次回ログオン時にパスワードの変更が必要 : チェックしない
※ VPN接続テスト時に変更を求められると面倒なので
- その他の項目はデフォルト値 入力を終えたら「作成」をクリックし、「閉じる」をクリックする。
2.3 ローカルグループ作成
ツリーから「ローカルユーザーとグループ」をクリックする。 右側画面に表示された「グループ」を右クリックして「新しいグループ」をクリックする。
「新しいグループ」ウィンドウで、
- グループ名 : VPNUsers
グループ名入力後、「追加」をクリックして「詳細設定」をクリックする。
「ユーザー の選択」ウィンドウで「検索」をクリックする。 検索結果の中から、「User0001」 を選択し、「OK」をクリックする。
「ユーザー の選択」ウィンドウに戻ったら、「OK」をクリックする。
「新しいグループ」ウィンドウで「作成」をクリックし、「閉じる」をクリックする。
「コンピューターの管理」ウィンドウはもう不要なので閉じる。
2.4 RRASサーバのインストール
サーバーマネージャを起動し、「管理」→「役割と機能追加」をクリックする。
「役割と機能の追加ウィザード」ウィンドウが表示されるので、以下の手順で進める。
- 開始する前に : 「次へ」クリック
- インストールの種類 : 「役割ベースまたは機能ベースのインストール」を選択し、「次へ」をクリックする。
- サーバーの選択 : 「サーバープールからサーバーを選択」をクリックし、サーバープールから、「VPN1」 をクリックし、「次へ」をクリックする。
- サーバーの役割の選択 : 「ネットワーク ポリシーとアクセス サービス」をクリックする。
※「役割と機能の追加ウィザード」ウィンドウが表示された場合、「管理ツールを含める(存在する場合)」をチェックし、「機能の追加」をクリックする。
- サーバーの役割の選択 : 「リモート アクセス」をクリックし、「次へ」をクリックする。
- 機能 : 「次へ」をクリックする。
- ネットワーク ポリシーとアクセス サービス : 「次へ」をクリックする。
- 役割サービス : 「ネットワーク ポリシー サーバー」をチェックし、「次へ」をクリックする。
- リモート アクセス : 「次へ」をクリックする。
- 役割サービス : 「DirectAccess および VPN (RAS)」をチェックし、「次へ」をクリックする。
※「役割と機能の追加ウィザード」ウィンドウが表示された場合、「管理ツールを含める(存在する場合)」をチェックし、「機能の追加」をクリックする。
- Web サーバーの役割 (IIS) : 「次へ」をクリックする。
- 役割サービス : デフォルトのまま、「次へ」をクリックする。
- 確認 : 「インストール」をクリックする。
・・・ インストールの完了を待ちます。・・・
- 「閉じる」クリックする。
2.5 VPNサーバの構成
「ルーティングとリモート アクセス」を起動する。
左側ツリーの「VPN1(ローカル)」を右クリックし、「ルーティングとリモートアクセスの構成と有効化」をクリックする。
ウィザードが始まるので「次へ」をクリックする。
- 構成 : 「カスタム構成」を選択し、「次へ」をクリックする。
- カスタム構成 : 「VPN アクセス」のみチェックし、「次へ」をクリックする。次の画面で「完了」をクリックする。
(警告メッセージは「OK」をクリックする。)
- サービスの開始 : 「サービスの開始」をクリックする。
左側ツリーの「リモートアクセスのログとポリシー」を右クリックし、「NPSの起動」をクリックする。
「ネットワークポリシーサーバー」ウィンドウが表示される。
「ネットワークポリシー」を 右クリックし、「新規」をクリックする。
「新しいネットワークポリシー」ウィンドウで下記を設定し、「次へ」をクリックする。
- ・ポリシー名 : 「リモートアクセス」
- ・ネットワークアクセスサーバーの種類 : 「リモートアクセスサーバー(VPN - ダイヤルアップ)」
「条件の指定」で、「追加」をクリックし、「Windows グループ」を選択し、「追加」をクリック、 「Windows グループ」ウィンドウで、「グループの追加」をクリックし、「VPNUsers」を追加する。
「条件の指定」に戻ったら、「次へ」をクリックする。
- アクセス許可 : 「アクセスを許可する」を選択し、「次へ」をクリックする。
- 認証方式の構成 : 「Microsoft暗号化認証バージョン2(MS-CHAP v2)」のみチェックし、「次へ」をクリックする。
- 制約の構成 : デフォルトのまま、「次へ」をクリックする。
- 設定の構成 : デフォルトのまま、「次へ」をクリックする。
- 新しいネットワークポリシーの完了 : 「完了」をクリックする。
「ネットワークポリシーサーバー」ウィンドウを閉じる
「ルーティングとリモート アクセス」ウィンドウの 左側ツリー上の「ポート」を右クリックし、「プロパティ」をクリックする。
「WAN ミニポート (L2TP)」以外のすべてに対して「構成」をクリックし、 表示された「デバイスの構成」ウィンドウで、すべてのチェックを外し、「OK」をクリックする。 L2TP以外は一覧上で、接続が「なし」と表示される。
「適用」をクリックし、「OK」で「ポートのプロパティ」ウィンドウを閉じる。
左側ツリー上の「VPN1」を右クリックし、「プロパティ」をクリックする。
プロパティウィンドウの「セキュリティ」タブをクリックする。
「カスタムIPsecポリシー をL2TP接続に許可する」をチェックし、 「事前共有キー」に「windows_vpn_server_access_key」を入力する。
プロパティウィンドウの「IPv4」タブをクリックする。
「静的アドレスプールを使う」を選択し、「追加」をクリックする。
- 開始 IP アドレス : 「172.26.250.2」
- 終了 IP アドレス : 「172.26.250.16」
「OK」をクリックする。
(プロパティウィンドウの「IPv6」タブはデフォルトのまま)
プロパティウィンドウの「ログ」タブをクリックする。
「すべてのイベントログを記録する」を選択する。(念のため)
プロパティウィンドウの「適用」をクリックし、「OK」ボタンで閉じる。
(再起動の警告が表示される。)
左側ツリー上の「VPN1」を右クリックし、「すべてのタスク」→「再起動」をクリックする。
2.6 Windows ファイアウォールの構成
コントロールパネルを開き、「Windows ファイアウォール」をクリックする。
「Windows ファイアウォール」ウィンドウで、「詳細設定」をクリックする。
「セキュリティが強化された Windows ファイアウォール」ウィンドウが表示されるので、下記を設定する。
受信の規則で下記通信を許可する設定を追加する。
3. VPNサーバの動作テスト3. VPNサーバの動作テスト
3.1 接続するPCのVPN設定(Windows10)
「Windows の設定」→「ネットワークとインターネット」をクリックする。 「VPN」をクリックする。 「VPN 接続を追加する」をクリックする。
「VPN接続を追加」ウィンドウで下記の値を入力し、「保存」をクリックする。
- VPN プロバイダ : 「Windows (ビルトイン)」
- 接続名 : 「VPN接続テスト」
- サーバー名またはアドレス : 「172.26.250.1」
- VPNの種類 : 「事前共有キーを使った L2TP/IPsec」
- 事前共有キー : 「windows_vpn_server_access_key」
- サインイン情報の種類 : 「ユーザー名とパスワード」
- サインイン情報を保存する : チェック
3.2 ネットワークアダプタの設定
「ネットワークと共有センター」→「アダプターの設定の変更」をクリックする。
「ネットワーク接続」ウィンドウ内の「VPN接続テスト」を右クリックする。
「VPN接続テストのプロパティ」ウィンドウの「セキュリティ」タブをクリックし、 「次のプロトコルを許可する」を選択し、「Microsoft CHAP Version 2 (MS-CHAP v2)」をチェック、 「OK」をクリックする。
3.3 社内からの接続テスト
「VPN接続テスト」をクリックする。 「接続」をクリックする。
「Windows セキュリティ」ウィンドウで、ユーザー名とパスワードを入力し、「OK」をクリックする。
「接続済み」になれば、VPNサーバの構築は 成功 です!
VPNサーバの準備は整いました!
いよいよ、社外から(外から)接続できるようにします。
4. ファイアウォールの設定
設置されている機器により操作方法が異なるので、細かいことは割愛します。
ポートフォワード設定で、下記の設定を追加する。
着信ポート: WAN側IPアドレス UDP 500, UDP 4500
転送先: 172.26.250.1 UDP 500, UDP 4500
5. VPN接続するPCの設定5. VPN接続するPCの設定
5.1 レジストリ設定(Windows7/10のみ)
下記の値を設定する。(通常は値が存在しないので追加する。)
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PolicyAgent
- 値の名前 AssumeUDPEncapsulationContextOnSendRule
- 値の種類 REG_DWORD
- 値 2 (サーバ、クライアント共にNATの背後)
5.2 ネットワークアダプタの設定
「ネットワークと共有センター」→「アダプターの設定の変更」をクリックする。
「ネットワーク接続」ウィンドウ内の「VPN接続」を右クリックする。 「VPN接続のプロパティ」ウィンドウの「セキュリティ」タブをクリックし、 「次のプロトコルを許可する」を選択し、「Microsoft CHAP Version 2 (MS-CHAP v2)」をチェック、 「OK」をクリックする。
5.3 接続するPCのVPN設定(Windows10 (1909))
「Windows の設定」→「ネットワークとインターネット」をクリックする。
「VPN」をクリックする。 「VPN 接続を追加する」をクリックする。
「VPN接続を追加」ウィンドウで下記の値を入力し、「保存」をクリックする。
- VPN プロバイダ : 「Windows (ビルトイン)」
- 接続名 : 「VPN接続」
- サーバー名またはアドレス : 「xxx.xxx.xxx.xxx」 <== グローバルIPアドレス
- VPNの種類 : 「事前共有キーを使った L2TP/IPsec」
- 事前共有キー : 「windows_vpn_server_access_key」
- サインイン情報の種類 : 「ユーザー名とパスワード」
- サインイン情報を保存する : チェック
5.4 社内からの接続テスト
「VPN接続」をクリックする。 「接続」をクリックする。
「Windows セキュリティ」ウィンドウで、ユーザー名とパスワードを入力し、「OK」をクリックする。
「接続済み」になれば、
社外から(外から)の接続ができる
ようになりました。
6. 最後に
6.1 セキュリティの高めるために (超 重要)
今回、説明するために、ユーザー名、パスワード、事前共有キーを単純なものにしています。実際の運用の際には複雑なものを設定するようにしてください。
6.2 固定グローバルIPアドレス が無いよー!
固定グローバルIPアドレスが無い場合、VPN環境が構築できないかというとそうではない。 下記の方法で、現在のグローバルIPアドレスを知ることができます。
- DICE (詳細は、グーグルセンセに聞いてみて!)
- 自前(プログラムを作成し)で、現在の割り当てアドレスを解析しメール等で通知する仕組みを作ってしまう!。
是非、皆さんも挑戦してみてください!
記事の書き方が下手で、読みにくいところが多々あり、ごめんなさい(ToT)
まだまだ勉強しないといけないですね。
今後も「システムネタ」やりますので、どうぞよろしく!
