Ubuntu16.04LTSにOpenVPNを導入する

Ubuntu16.04LTSにOpenVPN Serverをtun設定(Layer3)で導入し外出先からでも自宅内のコンテンツにアクセスできるようにします。ネットワーク設定にはufwを使用します。ufwが有効化されている環境を前提としています。ufwを有効にしていない場合は前回掲載の当Blog内記事を参照のうえ有効化してください。

1.PKGの最新化

以下の通りアップデート、アップグレードをしてubuntu16.04LTSを最新に更新します。

2.インストール
(1)バージョン確認

インストールの前にopenvpnとeasy-rsaのインストールバージョンを確認します。

インストール予定バージョンは以下のようになります。

openvpn:2.3.10-1ubuntu2.1、easy-rsa:2.2.2-2

(2)インストール実行

以下の通り、apt installコマンドでopenvpnとeasy-rsaをインストールします。

3.各種証明書等の作成
(1)環境設定ファイル準備

varsファイルを作成し証明書作成時に参照する環境変数を設定します。

make-caコマンドでcaディレクトリを作成しデフォルト設定のvarsファイルを編集します。

以下の通りvarsファイルを編集し所在地情報を変更します。修正しない場合はデフォルト値が証明書作成時に使用されます。

(2)Varsファイル内容反映

varsファイル内容を環境変数に設定します。

(3)ディレクトリ初期化

作成したcaディレクトリを初期化します。

(4)CA証明書とCA秘密鍵作成

build-caコマンドでCA証明書とCA秘密鍵を作成します。
途中キー入力を求められますがすべて[Enter]を入力します(計8回)。

(5)サーバー証明書と秘密鍵作成

build-caコマンドでCA証明書とCA秘密鍵を作成します。
途中キー入力を求められますが[Enter]を入力します(計10回)。
最後に[y/n]はyを入力します(2回)。

(6)DHパラメーター生成

2048ビットのDHパラメーターを生成します。

時間がかかります。

(7)TLS認証用の秘密鍵作成

TLS認証用の秘密鍵を作成します。

(8)各種証明書コピー

生成した各種証明書や秘密鍵などを、「/etc/openvpn/」ディレクトリーにコピーします。
以下の6ファイルをコピーします。

NO ファイル名 説明
1 ca.crt CA証明書
2 ca.key CA秘密鍵
3 server.crt サーバー証明書
4 server.key サーバー秘密鍵
5 ta.key TLS認証用の秘密鍵
6 dh2048.pem DHパラメーター

4.OpenVPN設定ファイルの作成
(1)サンプル設定ファイル解凍&コピー

サンプルのserver.confを解凍し/etc/openvpn/ディレクトリにコピーします。

(2)設定ファイルの修正

以下の設定を確認し相違があれば変更します。ネットワーク設定項目は各環境に合わせて修正します。右側にコメントを記載しましたので参考にしてください。

5.ネットワーク設定
(1)ポート転送の有効化

/etc/sysctl.confファイルを書き換えてIP4ポート転送を有効にします。書換後設定をロードします。

(2)ポート開放

VPN通信用にファイア―ウォールの1194番ポートを開放します。

(3)IPマスカレード設定事前調査

サーバーのネットワークインタフェースのデバイス名を調査します。

デバイス名はens160と分かりました。

(4)IPマスカレード設定

VPNの通信を中継させるためにIPマスカレードの設定をします。ファイアウォールのルーティングテーブル「/etc/ufw/before.rules」を修正します。行頭コメントブロック内「# ufw-before-forward」の行の後、10行目から15行目のブロックを追記します。

(5)デフォルト転送設定変更

外部からの転送設定をDROPからACCEPTに、「/etc/default/ufw」を変更します。

(6)ファイアウォール再起動

変更後はファイアウォールを再起動します。

6.起動

openvpnサーバを起動します。再起動後も自動起動されるよう設定します。

statusを確認しActive: activeと表示されていたら成功です。

7.Clientの設定
(1)クライアント証明書と秘密鍵作成

クライアント接続用の証明書と秘密鍵を作成します。接続するクライアントが複数ある場合はその数だけユニーク名を指定し作成します。build-keyコマンドで途中キー入力(計10回)を求められますが全て[Enter]を応答します。最後2回の[y/n]入力要求は「y」を入力します。クライアント証明書名はubuntucl1とします。

(2)クライアントのセットアップ

Windowsクライアント前提になりますが、OPENVPNClientのインストーラをこのURLからダウンロードしセットアップします。

(3)証明書ダウンロード

FTPクライアントツールを使用しopenvpサーバで作成した以下のファイルをダウンロードし
C:\Program Files\OpenVPN\configへコピーします。

NO ファイル名 説明
1 ca.crt CA証明書
2 ta.key TLS認証用の秘密鍵
3 ubuntucl1.key クライアント秘密鍵
4 ubuntucl1.crt クライアント証明書
(4)クライアント設定ファイルの修正

クライアント設定ファイルサンプル(C:\Program Files\OpenVPN\sample-config\client.ovpn)を設定ファイル格納フォルダ(C:\Program Files\OpenVPN\config)へコピーします。client.ovpnをc:以外にコピーして編集します。

編集完了後に、C:\Program Files\OpenVPN\config)へコピーします。

8.ログローテーション設定

ログロテーションファイルを用意し、ログが一定期間で切り捨てられるようにします。

9.参考にさせて頂いた情報

Ubuntu 15.10にOpenVPNサーバーを構築
日経Linux2017年9月号特集1-28

ありがとうございます。

Centos7のVPN設定は、当Blog内「CentOS7にOpenVPNをtun設定で導入する」です。

スポンサーリンク
レクタングル大広告




レクタングル大広告




シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
レクタングル大広告