FreeDNS × Sophos XG Firewall でDDNSを設定し、自宅ネットワークへSSL-VPN接続を行う

Sophos XG FirewallというUTM製品があるのですが、なんとこの製品、個人利用であればSophos XG Firewall Home Editionという無料でフル機能が使えるOSが提供されています。

無料のホームファイアウォール | Sophos Home Edition Firewall

そのため我が家では以下のベアボーンPCにをインストールして使用しています。

ファンレスファイアウォールルーター,pfSense準拠のミニPC,Celeron j1900

Sophos XG Firewall Home Editionは以下の管理画面から見ても分かるように一般的なUTM製品にあるような機能を一通り備えており、多機能です。

とりあえず今回は以下のような環境で、インターネット上のクライアントから自宅に設置されたSophos XG Firewallに対してSSL-VPN接続を行い、自宅のローカルネットワーク上のファイルサーバにアクセスできるようにしたいと思います。

ポイント
  • 自宅のグローバルIPアドレスは動的IPアドレスであり、定期的に変更されてしまう。
    そのため、DDNSサービス(FreeDNS)を利用して登録したサブドメインに対して自宅のグローバルIPアドレスを紐づけ、サブドメインでアクセスできるようにする。
  • クライアントとSophos XG FirewallとSSL-VPNトンネルを張り、その後ファイルアクセス等の通信を行うことで、自宅のローカルネットワークへの通信を暗号化する。

なお、今回は以下のような環境で実施しています。

機器バージョン
Sophos XG FirewallSFOS 18.5.1 MR-1-Build326
クライアントWindows10 Pro(20H2)
ipad Pro 11(iPadOS 15.1)

FreeDNSの設定

FreeDNSについて

FreeDNSとは数あるDDNSサービスの一種ですが、主に以下のことができます。

  1. 自身が所有しているドメインを登録し、動的IPアドレスとドメインを紐づける
  2. 自身が所有しているドメインを登録し、他者にサブドメインを提供する
  3. 他者が提供しているドメインにサブドメインを付与し、動的IPアドレスとサブドメインを紐づける

今回利用するのは3のパターンです。

1は過去にこのサイトのドメイン「joy-lab.net」を登録し、自宅に設置したWebサーバを公開するのに利用していました。

2は利用したことがありませんが、他者に提供したサブドメインを悪用されドメインごとブラックリストに登録される等のリスクが大きい気がします。

注意点

③はLet’s Encrypt のレート制限に達している、Googleの検索結果に表示されない等の話が見受けられるのでWebサイトの公開等に利用するのには向いていないかと思います。

FreeDNSの利用登録

以下のURLにアクセスし、「Sign up Free<」をクリックし会員登録を行います。
(会員登録後、メールが送信されるのでメール内URLをクリックしてアカウントを有効化します)

サブドメインの登録

ログイン後、「Subdomains」→「Add a subdomain」をクリックします。

以下のように各項目を入力し、「Save!」をクリックします。

項目パラメータ
TypeA(変更なし)
Subdomain希望するサブドメイン名を入力(例. joy.example.comの「joy」の部分)
Domain希望するドメイン名を選択(例. joy.example.comの「example.com」の部分)
Destination現在の自分が使用しているグローバルIPアドレス(変更なし)
TTL空欄(変更なし)
Wildcardチェック無し(変更なし)
備考

Domainで選択できるドメイン名は、デフォルトではFreeDNSを運営しているafraid.orgが所有するドメインのみとなっています。「Many many more available…」からで選択できるドメイン名を増やすことができるようですが、他の利用者が提供しているドメイン名は更新がされずに失効したりするリスクが高いと考えられるので、基本的にはデフォルトで選択できるドメイン名にしておくのが無難かなと思います。

DDNSの登録

「Dynamic DNS」をクリックします。

「dynamic update interface」をクリックします。

先ほど登録したサブドメインが表示されるので、チェックを入れて「Apply」をクリックします。

Sophos XG Firewallの設定

ここからはSophos XG Firewallの設定を行っていきます。

なお、キャプチャ上では本来画面左下にある保存、キャンセル等のボタンが表示されていませんので注意してください。(全部キャプチャした後に気が付きましたorz)

DDNS設定

Sophos XG FirewallからFreeDNSへグローバルIPアドレスの更新要求を行うように設定します。

「ネットワーク」→「ダイナミックDNS」→「追加」をクリックします。

以下のように各項目を設定し、左下の「保存」をクリックします。

項目パラメータ
ホスト名FreeDNSで登録したサブドメインを入力(例. joy.example.com)
インタフェースWAN側のインタフェースを指定
IPv4アドレス「ポートIPの使用」を選択(変更なし)
サービスプロバイダ「FreeDNS」を選択
ログイン名FreeDNSのアカウント名を入力
パスワードFreeDNSのパスワードを入力

ちなみにサービスプロバイダでは以下のDDNSサービスが選択できました。

  • DynDNS
  • ZoneEdit
  • EasyDNS
  • DynAccess
  • No-IP
  • DNS-O-Matic
  • Google DDNS
  • Namecheap
  • FreeDNS

設定した直後はDDNSサービスの更新が失敗しましたが、5分ほど経過すると以下のように成功するようになりました。(Sophos XG FirewallからFreeDNSへの更新は5分ごとに行われるためだと考えています)

SSL-VPN設定

SSL-VPNに関する設定を行っていきます。

VPN基本設定

「VPN」→「VPN設定を表示」をクリックします。

以下のように各項目を入力し、左下の「適用」をクリックします。

項目パラメータ
プロトコル「UDP」を選択(TCPでもよい)
ホスト名の上書きFreeDNSで登録したサブドメインを入力(例. joy.example.com)
ポート8443(変更なし)
IPv4リース範囲SSL-VPN接続したときにクライアントに割り当てられるIPアドレス範囲を入力
サブネットマスクIPv4リース範囲のサブネットマスクを選択
注意点

IPv4リース範囲で指定するアドレスは、他のネットワークと重複しない値にしてください。 またポートについてはこちらの環境ではデフォルト値が「8443」でしたが、「443」になっているような話も見受けられます。「443」を使用する場合は、ユーザポータルと同じポート番号になるため管理→管理者とユーザーの設定→ユーザーポータル HTTPS ポート で重複しないようにポート番号を変更してください

備考

プロトコルについてはTCPとUDPどちらがよいか諸説あります。こちらはとりあえずUDPを選択して使用していますが、今のところ気になるところはありません。どちらを選択するかについては各自で調べて判断していただければと思います。

SSL-VPN接続用グループの作成

「認証」→「グループ」→「追加」をクリックします。

以下のように各項目を入力し、左下の「保存」をクリックします。

項目パラメータ
グループ名グループ名を入力
ネット閲覧クォータアクセス周期を選択(無制限の場合は「Unlimited Internet Access」を選択)
アクセス時間アクセス時間を選択(無制限の場合は「Allowed all the time」を選択)

SSL-VPN接続用ユーザの作成

「認証」→「ユーザー」→「追加」をクリックします。

以下のように各項目を入力し、左下の「保存」をクリックします。
(グループでは「SSL-VPN接続用グループの作成」で作成したグループ名を選択します)

ネットワークオブジェクトの作成

「ホストとサービス」をクリックし、「追加」をクリックします。

SSL-VPN接続用ネットワークのオブジェクトを作成します。
以下のように各項目を入力し、左下の「保存」をクリックします。
(IPアドレスでは「VPN基本設定」のIPv4リース範囲で設定したネットワークアドレスを指定します)

ローカルネットワークのオブジェクトを作成します。
再度「追加」をクリック、以下のように各項目を入力し、左下の「保存」をクリックします。
(IPアドレスではローカルネットワークのネットワークアドレスを指定します)

SSL-VPN接続ポリシーの作成

「VPN」→「SSL VPN[リモートアクセス]」→「追加」をクリックします。

以下のように各項目を入力し、左下の保存をクリックします。
(ポリシーメンバーは「SSL-VPN接続用グループの作成」で作成したグループ、 許可するネットワークリソース[IPv4] は「ネットワークオブジェクトの作成」で作成したオブジェクトを選択します)

注意点

「デフォルトのゲートウェイとして使用」はSSL-VPN接続を行った状態でインターネットに接続するときの動きを指定します。 ONにすると、インターネット向けの通信も一旦SSL-VPNトンネルを介してSophos XG Firewallに送信され、 Sophos XG Firewallからインターネットへ向かうようになります。 (OFFだとスプリットトンネル有効のようなイメージ) 今回はOFFにしていますが無料Wi-fi等から接続する場合はONにしておくとよいかなと思います。(インターネット向けの通信が一度 Sophos XG Firewall を経由するようになるので、速度は落ちる可能性があります)

ローカルサービスACLの設定

「管理」→「デバイスのアクセス」をクリックし、以下のように「SSL-VPN – WAN」にチェックを入れて「適用」をクリックします。

ファイアウォールルールの設定

「ルールとポリシー」→「ファイアウォールルールの追加」→「新しいファイアウォールルール」をクリックします。

以下のように各項目を入力し、「左下」の保存をクリックします。

備考

SSL-VPN接続に関しては基本は外(VPN)→内(LAN) の通信で、逆方向の内(LAN)→外(VPN)の通信は発生しないはずなので、 外(VPN)→内(LAN)の通信のみを許可するように設定しています。( 外(VPN)→内(LAN) の通信の戻りについては、ステートフルインスペクション機能によって自動的に許可されます)

クライアントの設定

クライアントソフトのダウンロード

https://[Sophos XG FirewallのIPアドレス]:ポート番号

上記URLにアクセスすると、以下のような画面が表示されるので「SSL-VPN接続用ユーザの作成」で作成したユーザでログインします。(ポート番号はデフォルトは「443(入力不要)」ですが、変更している場合は変更した値を入力してください)

「VPN」をクリックし、使用するクライアントのOSに合わせてSSL-VPNクライアントをダウンロードします。
(なお、今回はWindows10とiPadでSSL-VPN接続を行うので、「Windows向けクライアントと設定のダウンロード( Windows10用)」「その他のOS向け設定のダウンロード(iPad用)」をダウンロードします)

Window10の設定

Sophos SSL VPN Clientのインストール とSSL-VPN接続の実施

ダウンロードしたファイル([ユーザ名]_ssl_vpn_client.exe)をダブルクリックし、インストールを行います。

インストールが完了すると、以下のようなアイコンがスタートメニューに追加されるのでクリックします。

右下のタスクトレイに以下のようなアイコンが表示されるので、右クリック→「接続」をクリックします。

ユーザー認証のウィンドウが表示されるので、「SSL-VPN接続用ユーザの作成」で作成したユーザ の情報を入力し、「OK」をクリックします。

SSL-VPN接続が成功すると以下のようなメッセージが画面右下に表示されます。

ipad OSの設定

OpenVPN ConnectのインストールとSSL-VPN接続の実施

AppStoreからOpenVPN Connectのアプリをインストールし、起動します。

利用規約が表示されるので「AGREE」をクリックします。

ファイルアプリでダウンロードしたファイル([ユーザ名]_ssl_vpn_config.ovpn)を長押し、「共有」を選択します。

「OpenVPN」を選択します。

OpenVPN Connectアプリが立ち上がるので「ADD」を選択します。

SSL-VPN接続用ユーザの作成」で作成したユーザ の情報を入力し、「ADD」を選択します。

「”OpenVPN”がVPN構成の追加を求めています」と表示されるので、「許可」を選択します。

パスコードを要求されるので入力します。

プロファイルが追加されるので、トグルをONにします。

SSL-VPN接続に成功すると以下のような画面が表示されます。

SSL-VPN接続後、自宅のローカルネットワーク上のファイルサーバにアクセスすることができました

Sophos XG Firewall側での接続確認

SSL-VPN接続しているユーザがいる場合、以下のように表示されます。

現在のアクティビティで現在接続されているユーザの詳細の確認や接続の制御が行えます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA