OpenVPN(日本語)を使用してSSL-VPN方式のインターネットVPNを構築し、外部からOpenVPN経由でLANに安全に接続できるようにする。なお、VPNクライアントはWindowsマシンとする。 【前提とするネットワークイメージ】 ![]() 【前提とするネットワーク条件】 LANネットワークアドレス:192.168.1.0/24 VPNサーバーIPアドレス:192.168.1.2 VPN用仮想ネットワークアドレス:10.8.0.0/24※ VPNサーバー仮想IPアドレス:10.8.0.1※ ※VPNでは仮想のプライベートIPアドレスをサーバー/クライアントともに割当てて、その仮想アドレスでVPN通信を行うが、ここでは、元々のLAN内プライベートIPアドレス(192.168.1.X)を指定して対象ホストへアクセスできるようにする。 |
|
(1)CA証明書・秘密鍵作成 |
|
(2)サーバー証明書・秘密鍵作成 |
|
(3)DH(Diffie Hellman)パラメータ作成 |
|
(4)証明書廃止リスト作成 将来的にクライアント証明書を廃止できるようにするため、証明書廃止リストを作成する。 ※証明書廃止リストは、実際にクライアント証明書を作成してから廃止を行わないと作成できないので、ダミーのクライアント証明書をいったん作成&廃止することにより証明書廃止リストを作成する |
|
(5)OpenVPN設定 |
|
(6)VPNインタフェース用ファイアウォール自動設定 |
|
(7)VPNインタフェース用ファイアウォール自動設定解除 |
|
(8)OpenVPNログローテーション設定 |
|
(1)OpenVPN起動 |
|
(2)ファイアウォール設定 ルーター側で、UDPの1194番ポートへのアクセスをサーバーに転送するようにする。 ※ルーターがLinuxの場合のファイアウォール設定はこちらを参照 サーバー側で、UDPの1194番ポートへのアクセスを許可するようにする。 ※ファイアウォール設定はこちらを参照 サーバー側で、VPNインタフェース用ファイアウォールを設定する。 ※ファイアウォール設定はこちらを参照 |
(3)LANゲートウェイにVPNサーバーを追加※VPNサーバーがLANゲートウェイ(ルーター)以外の場合 ルーター側で、宛先がVPN(例:10.8.0.0/24)のアクセスはVPNサーバー(例:192.168.1.2)を経由するようにルートを追加する。 ※ルーターがLinuxの場合は以下を参照 |
|
OpenVPNダウンロードページからOpenVPNをダウンロードしてインストールする。 ※インストール時、「ハードウェアのインストール」警告メッセージが表示されるが、「続行」ボタンを押下 |
(1)クライアント証明書・秘密鍵作成※サーバー側作業 |
|
(2)CA証明書、クライアント証明書・秘密鍵、TLS認証鍵設置※クライアント側作業 サーバー側からCA証明書(/etc/openvpn/ca.crt)、クライアント証明書(/etc/openvpn/easy-rsa/keys/client1.crt)、クライアント秘密鍵(/etc/openvpn/easy-rsa/keys/client1.key)、TLS認証鍵(/etc/openvpn/ta.key)をクライアント側へ持ち込み、設定ファイル格納フォルダ(C:\Program Files\OpenVPN\config)へ格納する。 ※CA証明書、クライアント証明書、クライアント秘密鍵、TLS認証鍵をクライアント側へ持ち込む際は、フロッピーディスク、USBメモリ等の可搬媒体経由または、SCPやSFTP等の暗号化されたネットワーク経由等の安全な経路で持ち込むこと |
(3)OpenVPN設定※クライアント側作業 クライアント設定ファイルサンプル(C:\Program Files\OpenVPN\sample-config\client.ovpn)を設定ファイル格納フォルダ(C:\Program Files\OpenVPN\config)へコピーする。 クライアント設定ファイル(C:\Program Files\OpenVPN\config\client.ovpn)編集 |
|
(1)VPN接続 タスクバー上のOpenVPN GUIアイコンをダブルクリック パスフレーズ応答※クライアント証明書作成時に応答したパスフレーズ OpenVPN GUIアイコンが黄色(接続中状態)⇒緑色(接続済状態)表示になることを確認 |
(2)VPN疎通確認 |
|
(3)VPN切断 タスクバー上のOpenVPN GUIアイコンをダブルクリックしてDisconnectボタン押下 |
VPNクライアントがVPN通信を行う場合はVPN用の仮想アドレス(10.8.0.0/24)で通信を行うので、VPNクライアントからアクセスしたいマシン側のファイアウォールや各アプリケーションのアクセス制限等で、VPNクライアントアドレス(10.8.0.0/24)からのアクセスを許可するように設定しておく。 |
(1)VPNクライアントからSambaへアクセスしたい場合 |
|
(2)TCP Wrapperによるアクセス制限対象外とする場合 |
|
外部から会社LANへVPN接続する場合等では、VPNクライアントごとにアクセス先マシンを制限したい場合がある。その場合は、VPNクライアントに固定IPアドレスを割当て、IPアドレスごとにファイアウォールでアクセス先マシンを制限するようにする。 例として、クライアント名client1に固定IPアドレス10.8.0.5を割当て、10.8.0.5からは192.168.1.3へのみアクセスを許可するようにする。 |
(1)OpenVPN設定 |
|
(2)client1固定IPアドレス割当て |
|
※10.8.0.5と10.8.0.6の5と6の部分は以下の各組み合わせから指定すること(例えば、10.8.0.9と10.8.0.10と指定すると10.8.0.9が割当てられる) ただし、10.8.0.1と10.8.0.2の組合せはVPNサーバーのアドレスなので指定しないこと [ 1, 2] [ 5, 6] [ 9, 10] [ 13, 14] [ 17, 18] [ 21, 22] [ 25, 26] [ 29, 30] [ 33, 34] [ 37, 38] [ 41, 42] [ 45, 46] [ 49, 50] [ 53, 54] [ 57, 58] [ 61, 62] [ 65, 66] [ 69, 70] [ 73, 74] [ 77, 78] [ 81, 82] [ 85, 86] [ 89, 90] [ 93, 94] [ 97, 98] [101,102] [105,106] [109,110] [113,114] [117,118] [121,122] [125,126] [129,130] [133,134] [137,138] [141,142] [145,146] [149,150] [153,154] [157,158] [161,162] [165,166] [169,170] [173,174] [177,178] [181,182] [185,186] [189,190] [193,194] [197,198] [201,202] [205,206] [209,210] [213,214] [217,218] [221,222] [225,226] [229,230] [233,234] [237,238] [241,242] [245,246] [249,250] [253,254] |
(3)client1用ファイアウォール設定 |
|
これで、client1の証明書を使用してVPN接続したクライアントには固定IPアドレス10.8.0.5が割当てられ、LAN内の192.168.1.3へのみアクセスができるようになる。 なお、クライアント設定ファイルが存在しない場合はVPNサーバーが空きIPアドレスを割当てるので、固定/非固定混在が可能。 |
なんらかの理由(VPN通信要件がなくなった、または、証明書のパスフレーズを忘れた等※)で特定のVPNクライアントからのVPN接続を廃止したい場合は、該当VPNクライアントが使用しているクライアント証明書を廃止すればよい。 ※廃止したクライアント名で証明書を再作成することができるので、パスフレーズを忘れてしまった場合は、いったん証明書を廃止後に同じクライアント名でクライアント証明書を再作成すればよい |
(1)クライアント証明書廃止 クライアント証明書を廃止して、該当クライアント証明書を使用したVPN接続をできないようにする。 |
|
(2)接続中クライアントの強制切断 クライアント証明書を廃止しても該当クライアントが接続中であった場合はそのまま継続して通信できてしまうので、それも強制的に切断したい場合は以下の手順で切断する。 |
|