
【実践】YESKAMOのNVRをクラウドに頼らず遠隔監視!OpenWrt+WireGuardで不正アクセス対策
はじめに
自宅の防犯カメラを外出先から確認する際、メーカーが提供する専用アプリを使用している方は多いと思います。
専用アプリは便利ですが、製品によってはメーカーのクラウドサーバーやP2P接続機能を利用するため、通信経路を利用者自身で管理することが難しい場合があります。
そこで私は、YESKAMOのNVRをメーカーの専用アプリに依存せず、外出先から確認できる環境を構築しました。
使用したのは、オープンソースのルーターOS「OpenWrt」とVPNソフトウェア「WireGuard」です。
今回の構成では、NVRを専用ネットワークに配置し、インターネットへの不要な通信を遮断します。
そのうえで、外出先からはWireGuardを使って自宅に接続し、NVRの映像を確認します。
この記事では、構築方法とセキュリティ対策について、実際のネットワーク構成を基に解説します。
1. 今回のネットワーク構成
使用しているメインルーターは、ELECOM WRC-2533GST2です。
2018年発売の家庭用ルーターですが、純正ファームウェアをOpenWrtに置き換えて使用しています。
ネットワーク構成は次のとおりです。
Internet
│
ホームゲートウェイ
│
▼
ELECOM WRC-2533GST2
OpenWrt
│
┌────────────┼────────────┐
│ │ │
通常LAN 監視LAN WireGuard
│ │ ▲
PC │ │
NAS │ 外出先iPhone
YESKAMO NVR
│
カメラ
監視ネットワークには、以下のアドレスを割り当てています。
機器
IPアドレス
監視ネットワーク
192.168.X.0/24
YESKAMO NVR
192.168.X.X
Tapo C100
192.168.X.X
これらはプライベートIPアドレスです。
実際の構築では、読者自身のネットワークに合わせて設定してください。
2. NVR専用ネットワークを作成する
最初に、OpenWrtでNVR専用のネットワークを作成します。
今回は nvr というインターフェース名を使用します。
OpenWrtのSSHに接続し、設定を確認します。
uci show network
続いて、Firewallの設定を確認します。
uci show firewall
監視ネットワークが正しく作成されていれば、NVR専用のインターフェースとFirewall zoneが確認できます。
今回の目的では、NVRと通常LANを分離し、必要な通信だけを許可します。
なお、ネットワークを別サブネットにするだけでは、必ずしも通信が遮断されるわけではありません。
ネットワーク分離とFirewallによるアクセス制御を組み合わせることが重要です。
3. OpenWrtでNVRのインターネット通信を遮断する
今回のセキュリティ対策で、特に重要な部分です。
NVRがインターネットへ自由に通信できる状態では、メーカーのサーバーなどへの接続が発生する可能性があります。
そこで、監視ネットワークからWANへの通信を原則遮断します。
OpenWrtのFirewallでは、次の方針を採用します。
通信
許可・拒否
NVR → Internet
拒否
Internet → NVR
拒否
NVR → 通常LAN
拒否
通常LAN → NVR
原則拒否
WireGuard → NVR
必要な通信のみ許可
OpenWrtのLuCI管理画面では、Firewallのゾーン設定から通信方向を制御できます。
監視ネットワーク用ゾーンからWANへの転送を許可しないことが基本です。
また、NVRの管理画面や映像配信ポートをインターネットへ直接公開しないようにします。
ポート転送設定やUPnPによる自動ポート開放にも注意が必要です。
IPv6を使用している環境では、IPv6側のFirewall設定も確認します。
注意: インターネット通信を遮断すると、NVRの自動時刻同期やファームウェア更新が利用できなくなる場合があります。必要な機能は別途、安全な方法で維持する必要があります。
4. WireGuardで外出先からアクセスする
次にWireGuardを設定します。
WireGuardは暗号化されたVPNトンネルを構築するソフトウェアです。
今回の構成では、iPhoneから自宅のOpenWrtへ接続します。
通信経路は次のようになります。
外出先のiPhone
│
│ WireGuard VPN
▼
インターネット
│
▼
ホームゲートウェイ
│
▼
OpenWrt
│
│ Firewall
▼
192.168.X.X
│
▼
YESKAMO NVR
│
▼
カメラ映像
WireGuardのインストール
OpenWrtにWireGuardが導入されていない場合は、パッケージをインストールします。
OpenWrtのバージョンによってパッケージ管理コマンドは異なります。
apk を採用しているバージョンでは、例えば次のように実行します。
apk update
apk add wireguard-tools luci-proto-wireguard
opkg を使用する旧バージョンでは、次のようになります。
opkg update
opkg install wireguard-tools luci-proto-wireguard
インストール後、LuCIからWireGuardインターフェースを作成します。
WireGuardにはサーバー側とクライアント側の鍵が必要です。
秘密鍵は第三者に公開しないよう注意してください。
iPhone側の設定例
以下はWireGuardのクライアント設定例です。
[Interface]
PrivateKey = <iPhone側の秘密鍵>
Address = 10.XX.XX.2/32
[Peer]
PublicKey = <OpenWrt側の公開鍵>
Endpoint = <自宅の接続先>:XXXXXX
AllowedIPs = 192.168.X.XX/32, 10.XX.XX.1/32
PersistentKeepalive = 25
これは説明用の設定例です。
実際にはOpenWrt側のWireGuardアドレス、ポート番号、鍵などと一致させる必要があります。
また、ホームゲートウェイがOpenWrtの上流にある場合は、WireGuardのUDPポートをOpenWrtへ転送する設定が必要になることがあります。
FirewallでNVRへのアクセスだけを許可する
WireGuard接続後、iPhoneから家庭内LANのすべての機器へアクセスできる必要はありません。
今回の目的では、NVRへの必要な通信だけを許可します。
例えば、NVRがRTSPのTCP 554番ポートを使用している場合は、以下のようなアクセス制御を行います。
送信元:WireGuardネットワーク
宛先:192.168.XX.XX
プロトコル:TCP
宛先ポート:XXX
動作:許可
それ以外の監視ネットワークへの通信は原則拒否します。
実際に許可するポートは、NVRの仕様と映像再生方式に合わせて決定してください。
5. VLCでカメラ映像を確認する
今回の構成では、メーカーの専用アプリを使わず、ネットワークストリームに対応したVLCを使用します。
NVRがRTSP配信に対応している場合、VLCから映像を取得できます。
RTSPアドレスの基本的な形式は以下のとおりです。
rtsp://192.168.XX.XX:XXX/<ストリームパス>
ただし、これは一般的な形式を示したものであり、YESKAMOのすべてのNVRで使用できるアドレスではありません。
機種によって、ポート番号、ストリームパス、認証方式が異なります。
まず自宅のローカルネットワークから映像を再生できることを確認します。
その後、外出先からWireGuard経由で同じ映像を確認します。
外出先での確認手順
iPhoneのWi-FiをOFFにする
モバイル回線へ切り替える
WireGuardで自宅へVPN接続する
VLCを起動する
NVRのストリームアドレスを入力する
カメラ映像が表示されることを確認する
この方式では、NVRの映像配信ポートをインターネットへ直接公開する必要がありません。
6. 不正アクセス対策が機能しているか確認する
設定を完了したら、実際にアクセス制御が機能しているか確認します。
重要なのは、設定画面で「拒否」と表示されていることだけではなく、実際の通信結果を確認することです。
例えば、以下の検証を行います。
検証内容
期待する結果
NVRからInternetへの通信
遮断される
WANからNVRへの直接接続
接続できない
WireGuard未接続のiPhoneからNVRへ接続
接続できない
WireGuard接続後のiPhoneからNVRへ接続
許可した通信のみ成功
通常LANからNVRへの不要な接続
遮断される
NVRとカメラのローカル通信
正常に動作する
必要に応じてOpenWrtのFirewallログやパケットキャプチャも活用します。
なお、WAN側の確認は自宅LAN内からの試験だけでは不十分です。
実際にモバイル回線など、自宅とは別のネットワークから検証することが重要です。
7. この構成でも防げない攻撃
今回の構成は、NVRへの直接的な外部アクセスを減らすために有効です。
しかし、あらゆる攻撃を防げるわけではありません。
例えば、以下のリスクは残ります。
OpenWrtやNVR自体の脆弱性
WireGuard秘密鍵の漏えい
VPN接続を許可したスマートフォンの侵害
同一監視ネットワーク内の機器からの攻撃
ファームウェア更新の停止による脆弱性の放置
ネットワーク設定ミスによる意図しない通信許可
そのため、機器の更新、アクセス権限の管理、設定バックアップ、ログの確認も継続する必要があります。
8. まとめ
今回、YESKAMOのNVRをOpenWrtとWireGuardを使って遠隔監視する構成を紹介しました。
重要なポイントは次の3つです。
1. NVRを専用ネットワークに分離する
通常のPCやスマートフォンと同じネットワークに置かず、アクセス範囲を制限します。
2. NVRをインターネットへ直接公開しない
不要な外部通信を遮断し、NVRの管理画面や映像配信ポートをWANへ公開しない構成にします。
3. 外出先からはWireGuard経由で接続する
認証済みの端末だけに必要な通信を許可し、VLCなどで映像を確認します。
家庭用の監視カメラでも、OpenWrtを活用すれば、通信経路を細かく管理することができます。
メーカーの専用アプリを利用する方法とは異なり、ネットワーク構成やアクセス制御を自分で管理できることが、この方式の大きな特徴です。
ただし、セキュリティは一度設定すれば終わりではありません。
今後も設定を定期的に確認しながら、安全性と利便性を両立した監視環境を維持していきたいと思います。