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接続を行い、自宅のローカルネットワーク上のファイルサーバにアクセスできるようにしたいと思います。
なお、今回は以下のような環境で実施しています。
機器 | バージョン |
---|---|
Sophos XG Firewall | SFOS 18.5.1 MR-1-Build326 |
クライアント | Windows10 Pro(20H2) |
ipad Pro 11(iPadOS 15.1) |
FreeDNSの設定
FreeDNSについて
FreeDNSとは数あるDDNSサービスの一種ですが、主に以下のことができます。
- 自身が所有しているドメインを登録し、動的IPアドレスとドメインを紐づける
- 自身が所有しているドメインを登録し、他者にサブドメインを提供する
- 他者が提供しているドメインにサブドメインを付与し、動的IPアドレスとサブドメインを紐づける
今回利用するのは3のパターンです。
1は過去にこのサイトのドメイン「joy-lab.net」を登録し、自宅に設置したWebサーバを公開するのに利用していました。
2は利用したことがありませんが、他者に提供したサブドメインを悪用されドメインごとブラックリストに登録される等のリスクが大きい気がします。
FreeDNSの利用登録
以下のURLにアクセスし、「Sign up Free<」をクリックし会員登録を行います。
(会員登録後、メールが送信されるのでメール内URLをクリックしてアカウントを有効化します)
サブドメインの登録
ログイン後、「Subdomains」→「Add a subdomain」をクリックします。
以下のように各項目を入力し、「Save!」をクリックします。
項目 | パラメータ |
---|---|
Type | A(変更なし) |
Subdomain | 希望するサブドメイン名を入力(例. joy.example.comの「joy」の部分) |
Domain | 希望するドメイン名を選択(例. joy.example.comの「example.com」の部分) |
Destination | 現在の自分が使用しているグローバルIPアドレス(変更なし) |
TTL | 空欄(変更なし) |
Wildcard | チェック無し(変更なし) |
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リース範囲のサブネットマスクを選択 |
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] は「ネットワークオブジェクトの作成」で作成したオブジェクトを選択します)
ローカルサービスACLの設定
「管理」→「デバイスのアクセス」をクリックし、以下のように「SSL-VPN – WAN」にチェックを入れて「適用」をクリックします。
ファイアウォールルールの設定
「ルールとポリシー」→「ファイアウォールルールの追加」→「新しいファイアウォールルール」をクリックします。
以下のように各項目を入力し、「左下」の保存をクリックします。
クライアントの設定
クライアントソフトのダウンロード
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接続しているユーザがいる場合、以下のように表示されます。
現在のアクティビティで現在接続されているユーザの詳細の確認や接続の制御が行えます。