2020年6月3日水曜日

OPNsenseでのOpenVPN設定

OPNsenseにOpenVPNの設定を追加する

公式サイトにドキュメントはあるものの、TOTPによる二要素認証を利用した方法等、今回使わない情報が載ってるので少し混乱した

【 Setup SSL VPN Road Warrior 】

構成は以前の記事同様XG Firewallと並列の構成
OpenVPNで接続したクライアントはXG FirewallのIPoEトンネルを利用してインターネットに抜ける構成になる
また、PPPoE側は個人向けOCNサービスのためダイナミックDNSとしてGoogle Domains内のDNSサービスに内包されているダイナミックDNSサービスを利用する



■ダイナミックDNS設定
まずは外部アクセス用にダイナミックDNSの設定を行う

GoogleDomainsのページにアクセスして【DNS】>【合成レコード】のプルダウンから【ダイナミックDNS】を選択
今回はサブドメインで運用するので、空欄に任意のサブドメインを入力して追加する

追加したダイナミックDNSの情報を開くと【ユーザ名】と【パスワード】が表示されるので、これを後でコピペする

次にOPNsenseにログインして【サービス】>【ダイナミックDNS】のページ内右上の【追加】から設定する
設定か所は以下
【有効】にチェック
【サービスタイプ】Google Domains
【監視するインターフェース】WAN
【ホスト名】Google Domainsで作成したサブドメインのFQDN
【ユーザ名】Google Domainsからコピペ
【パスワード】Google Domainsからコピペ

保存して強制更新すると、OPNsenseのダイナミックDNSのページ内で追加したものが有効化され、取得したグローバルIPアドレスが表示される
このアドレスはGoogle Domains上にも同様の値が表示される


■内部認証局作成
【システム】>【セキュリティ】>【認証局】から新しい認証局を追加する
【説明】OpenVPN-CA #任意の値
【方法】内部認証局を作成
【鍵長】4096
【ダイジェストアルゴリズム】SHA512
【国コード】JP(Japan)
【都道府県】#任意の値
【市】#任意の値
【組織】#任意の値
【電子メールアドレス】#任意の値
【コモンネーム】#任意の値

■サーバ証明書作成
【システム】>【セキュリティ】>【証明書】から新しいサーバ証明書を追加する
【方法】内部証明書の新規作成
【説明】OpenVPN-CE #任意の値
【認証局】OpenVPN-CA #上で作成した認証局を選択
【タイプ】サーバ証明書
【鍵長】4096
【ダイジェストアルゴリズム】SHA512
国コードからしたは認証局の情報が自動転記される

■VPNユーザ作成とユーザ証明書作成
【システム】>【アクセス】>【ユーザ】からVPN用のユーザを追加する
【ユーザ名】#任意の値
【パスワード】#任意の値
【証明書】クリックすると、ユーザ証明書を作成します にチェック

保存してユーザ証明書の作成画面に移管する
【方法】内部証明書の新規作成
【説明】user-CE #任意の値
【認証局】OpenVPN-CA #上で作成した認証局を選択
【タイプ】クライアント証明書
【鍵長】4096
【ダイジェストアルゴリズム】SHA512
国コードからしたは認証局の情報が自動転記される


■OpenVPNサーバ作成
【VPN】>【OpenVPN】>【サーバ】から【新規サーバの設定にウィザードを使用】にてVPNサーバを追加する

・認証タイプ選択
【サーバのタイプ】Local User Access #初期値

・証明局選択 #誤訳?
【認証局】OpenVPN-CA #上記で作成した認証局を選択

・サーバ証明書選択
【証明書】OpenVPN-CE #上記で作成したサーバ証明書を選択

・サーバ設定
【インターフェース】WAN
【プロトコル】UDP
【ローカルポート】1194
【DHパラメータ長】4096
【暗号化アルゴリズム】AES-128-CBC(128 bit key, 128 bit block)
【認証ダイジェストアルゴリズム】SHA512(512-bit)

【IPv4 トンネルネットワーク】192.168.0.0/29 #VPNクライアントに割り当てるNW
【リダイレクトゲートウェイ】チェック入れる #VPNサーバ経由でインターネットへアクセスさせる
【IPv4 ローカルネットワーク】192.168.0.0/28

【動的IP】チェック入れる
【アドレスプール】チェック入れる



・ファイアウォールルール構成
【クライアントからサーバへのトラフィック】チェック入れる
【クライアントからVPN経由のトラフィック】チェック入れる

■作成されたFWルールの確認
【ファイアウォール】>【ルール】の【OpenVPN】と【WAN】それぞれに新しいルールが追加されている




これでOPNsense側のOpenVPN設定は完了

【VPN】>【OpenVPN】>【クライアントのエクスポート】からプロファイルをダウンロードして端末へ設定してやればつながる

androidの場合は
【Export type】ファイルのみ
として画面下の証明書からユーザ証明書のデータをダウンロードすれば利用できる


認証局や証明書を別途作成するのが面倒だったものの、サーバ自体はウィザードが用意されておりFWルールも自動作成なので設定自体は簡単だった

実スループットは回線とOPNsenseへの割り当てリソースに左右されるだろうから、実用的かどうかは様子見