スズハドットコム

IT関連や3Dプリンタの記事、たまに生活のメモを書いていきます。

UniFi Dream Routerの話 ③設定いろいろ

2023/7/27
UniFi OS v3.1.14にアップデートしたら一部操作が変わりました。記事書いたばっかりなのに(´・ω・`)
これに合わせて更新しています。

この記事はUniFi Dream Router、UniFi OS v3.1.14、Network 7.4.162 に準拠しています。

こちらの記事の続きです。 suzu-ha.com

前回、スマホを使ってUniFi Dream Router(UDR)の初期設定をしました。
この記事ではPCのブラウザからいろいろ設定していきます。

特にスマホ/タブレット向けのVPNであるTeleport、凄いです。
本当にコンフィグフリー。恐ろしく簡単にVPNできてしまいます。

目次

設定画面を開く

PCのブラウザから https://unifi.ui.com にアクセスします。

既にuiアカウントでログインしていたので、いきなりUDRが表示されました。

アップデート

NetworkとUniFi OSにUpdateが表示されていましたので、それをクリックしてアップデートします。
最新の状態になるまでそれぞれ2回アップデートする必要がありました。

Protect(監視カメラアプリ)は使う見込みがないので、Protectアイコン右上の3点メニューからUninstallしました。
(追記)UniFi OS v3.1.14では、Networkアプリのみバンドルとなったようです。Protectアプリは最初から入ってませんので、手動削除する必要はありません。.
※画像では見えてませんが、Protectの上にマウスカーソルを置くと3点メニューが表示されます。

最終的にこのようになりました。

基本設定(地域、言語など)

ホーム画面でNetworkをクリックします。

Settings(歯車アイコン)→Systemをクリックします。

Country/Regionを使用する国に合わせます。
LanguageやTime Formatはお好みで設定します。
Apply Changesをクリックします。

※設定反映中は1分くらいネットワーク接続が切れるようです。

LCMディスプレイ、本体上部のLEDを消灯

LCMディスプレイとLEDは消すことができます。

画面左上のBack to Consolesをクリックしてポータルに戻り、Dream Routerをクリックします。
左側のConsole Settingsをクリックします。
LED / LCM Screenの枠にあるチェックを外します。
Apply Changesをクリックして反映するとLCMディスプレイ、本体上部のLEDが消灯します。

また、ナイトモードが追加され、指定した時間はLCMディスプレイが消えるようになりました。(おそらくUniFi OS v3.1系から)
Start Time、End Timeを指定したら、Apply Changesをクリックして反映します。
…ナイトモードをDisableにする選択肢がないですね?仕方がないのでStart Time、End Time両方を同じ時刻(AM12:00など)にしたら無効になり、LCMディスプレイが消えなくなりました。

地図上の位置を設定

UniFiポータルでは機器を地図上に表示できます。
複数拠点に機器を設置している場合には便利ですが、ウチのようにDream Router1個だけの場合はあまり関係ない機能かもしれません。

Console Settings画面内のEdit Location on Mapをクリックして、ドラッグ&ドロップで設定します。
Apply Changesをクリックして反映します。

DHCPサーバの設定

DHCPの割当IPアドレスの範囲を変更する

LANのIPアドレス帯192.168.1.0/24のうち、192.168.1.1~127は固定割り当てのために取っておいて、192.168.1.128~254をDHCP割当用に使いたいなんていう場合の設定です。

Network画面でSettings→Networksをクリックし、DHCP設定を変更したいネットワーク(今回はDefault)をクリックします。

Gateway IP/Subnet→Auto-Scale Networkのチェックを外すと、設定可能な項目が増えます。

DHCPの割当IPアドレスの範囲を変更したいので、以下の項目を変更します。
DHCP Range
Start 192.168.1.128
Stop 192.168.1.254

Apply Changesをクリックして反映します。

今回はDHCPの割当IPアドレスを狭めたので、現時点では割当範囲外のIPアドレスを持っているデバイスがあります。
DHCPのリース切れまで待てばいずれ直るはずですが、UDRの再起動で一気に割り当てなおします。

左上のBack to Consolesをクリックしてトップ画面に戻り、再度UDRを選択します。

左側のConsole Settingsをクリックし、Console Controlsの枠にあるRestartをクリックします。

UDRの再起動が終われば、割当範囲外のIPアドレスを持っているデバイスは無くなるはずです。

デバイスのIPアドレスを固定する

スマート家電など、デバイス自体に固定IPアドレスを設定する機能がなくても、DHCPサーバ側で割り当てるIPアドレスを固定することができます。

Network画面でClient Devices(PCとスマホのようなアイコン)をクリックします。
さらに、対象のデバイスをクリックします。

プロパティが表示されるので、右上のSettingsをクリックします。

Nameには自分が識別できる名前をつけます。

Fixed IP Addressにチェックを入れて、IPアドレスを指定します。
Apply Changesをクリックして反映します。

WANポートのMACアドレスを変更する

ネットワークに接続可能な機器がMACアドレスで制限されているとか、ISPから固定グローバルIPアドレスを割り振ってもらうためにMACアドレスを登録している(うちの場合はこれ)ような場合、以前の機器のMACアドレスを引き継ぐことができれば、MACアドレスの再登録手続きをしなくてもよいので便利です。

Network画面で、Settings→Internetをクリックし、Primary(WAN)をクリックします。

AdvancedをAutoからManualに変更します。
MAC Address CloneのEnabledにチェックを入れて、MACアドレスを入力します。
※区切りのコロンは自動で入力されました。
Apply Changesを押して反映します。

ポートフォワーディングを設定する

LAN内にサーバを立ててインターネットから接続できるようにするような場合に使う設定です。

Network画面で、Settings→Firewall & Securityをクリックし、Port ForwardingのCreate Entryをクリックします。

今回は、インターネットからHTTP、HTTPS(ポート番号80、443)のアクセスが来たらLAN内の192.168.1.62に転送する設定を入れます。

項目
Name HTTP/HTTPS port forwarding
Forward Rule Enableにチェック
From Any
Port 80,443
Forward IP 192.168.1.62
Forward Port 80,443

Apply Changesをクリックして反映します。

Firewall Rulesに追加されました。(Index 3005)

VLANを設定する

今回は、VLAN ID200、IPアドレス192.168.200.0/24のネットワークを作成し、Wi-Fiで接続可能にします。
イメージ図はこんな感じです。

このページが参考になります。
https://help.ui.com/hc/en-us/articles/9761080275607-UniFi-Network-Creating-Virtual-Networks-VLANs-

VLAN200の作成

Network画面で、Settings→Networksをクリックし、Virtual NetworksのCreate Newをクリックします。

設定を入れていきます。Auto-Scale Networkのチェックを外し、画像のとおり入力しました。

AdvancedをAutoからManualに切り替えて、設定を入れます。
Addボタンで反映します。

VLAN200が追加されました。

VLAN200に接続するWi-Fiネットワークの作成

Network画面で、Settings→Wi-Fiをクリックし、Create Newをクリックします。

Name、Passwordを入力し、NetworkはVLAN200を選択します。
Add Wi-Fi Networkをクリックして反映します。

VLAN200に対応する新しいWi-Fiネットワークが作成されました。
SSIDを隠してしまったので分かりづらいかも。ごめんなさい。

有線LANポートのVLAN設定

VLANを構成すると、初期状態では各LANポートはトランクポート(複数のVLANのトラフィックが流れる)となり、defaultネットワークがネイティブVLAN(タグ無し)、その他VLANがタグありとなるようです。

defaultネットワーク以外をネイティブVLANにしたい

あるいはポートVLAN(特定のVLANのトラフィックだけ流れる)にしたい

といった場合は、以下のように設定します。

ここでは、例としてPort1をdefaultネットワーク専用にしてVLAN200を流さないようにしてみます。

Network画面で、Devicesをクリックし、Dream Routerを選択します。

プロパティが表示されるので、Ports→Port Managerをクリックします。

Port1を選択します。

Primary Networkがdefaultになっていることを確認します。
Traffic Restrictionにチェックを入れ、Block Allを選択します。
Apply Changesを押して反映します。

これでPort1にはdefaultネットワークのトラフィックしか流れなくなりました。
他のポートも適宜設定します。

ファイアウォールでVLAN間の通信を制限する

VLAN構成後、初期状態ではVLAN間の通信は自由にできます。
何らかのトラフィックを分離したくてVLANを構成することがほとんどでしょうから、ファイアウォールを設定します。
イメージはこんな感じです。

ここでは例として、VLAN200からdefaultへのアクセスは192.168.1.147のポート80、443宛のみ許可し、他は禁止するように設定してみます。

Firewall設定に関してはこちらが参考になりそうです。
https://help.ui.com/hc/en-us/articles/115003173168-UniFi-Gateways-Introduction-to-Firewall-Rules

Network画面で、Settings→Firewall & Securityをクリックし、Firewall Rulesの枠のCreate Entryをクリックします。

VLAN200からdefaultへの通信をすべて禁止する設定を入れます。
なお、LAN InとかLAN OutのIn/Outは、ファイアウォール視点での出入りのことのようです。
LAN Inの場合、他のネットワークを目指してファイアウォールに入ってくるトラフィックに対してルールが適用されます。
LAN Outの場合、そのネットワークを目指してファイアウォールから出るトラフィックに対してルールが適用されます。

項目
Type LAN In
Description Drop VLAN200 to default network
Rule Applied Before Predefined Rules
Action Drop
IPv4 Protocol All

Source

項目
Source Type Network
Network VLAN200
Network Type IPv4 Subnet
MAC Address 空白

Destination

項目
Destination Type Network
Network Default
Network Type IPv4 Subnet

Apply Changesをクリックして反映します。

これで、VLAN200からdefault側に通信できなくなりました。 ただし192.168.1.1は繋がります。ルータ自身を宛先とするトラフィックはLAN In/LAN OutではなくLAN Localで設定しなければいけないためです。

VLAN200から192.168.1.1も192.168.200.1も触れないようにします。
192.168.1.1側は全部塞いでしまいます。

項目
Type LAN Local
Description Drop VLAN200 to router of default network
Rule Applied Before Predefined Rules
Action Drop
IPv4 Protocol All

Source

項目
Source Type Network
Network VLAN200
Network Type IPv4 Subnet
MAC Address 空白

Destination

項目
Destination Type Network
Network Default
Network Type IPv4 Subnet

192.168.200.1側は、全部塞ぐとVLAN200に接続されているクライアントがインターネットに接続できなくなってしまいます。
Dropするポートを限定して、狙われそうなSSH、HTTP、HTTPSは塞ぎます。

項目
Type LAN Local
Description Drop VLAN200 to router of VLAN200 network
Rule Applied Before Predefined Rules
Action Drop
IPv4 Protocol TCP and UDP

Source

項目
Source Type Network
Network VLAN200
Network Type IPv4 Subnet
MAC Address 空白

Destination

項目
Destination Type IP Address
IPv4 Address 192.168.200.1
Port 22,80,443

VLAN200側にリバースプロキシ(ここでは192.168.200.228)を配置して、defaultネットワーク側の特定のサーバ(192.168.1.61)だけに通信許可するようなシーンを想定して、設定を追加してみます。
再びFirewall Rulesの枠のCreate Entryをクリックし、VLAN200の192.168.200.228からdefaultネットワークの192.168.1.61のポート80、443宛のみアクセスを許可する設定を入れます。

項目
Type LAN In
Description 何の設定かわかるよう説明を入れてください
Rule Applied Before Predefined Rules
Action Accept
IPv4 Protocol TCP
Match all protocols except for this チェック無し

Source

項目
Source Type IP Address
IPv4 Address 192.168.200.228
Port 空白
MAC Address 空白

Destination

項目
Destination Type IP Address
IPv4 Address 192.168.1.61
Port 80,443

Apply Changesをクリックして反映します。

Firewall Rulesに追加されました。

最後に追加したAcceptのルール(上の画像でいうとLAN InのIndex2001)が、Drop(LAN InのIndex2000)よりもリストの上側でないと想定した動作にならなかったので、ドラッグ&ドロップで並べ替えました。
Rule Indexの番号は自動で振りなおされます。便利。

これで、VLAN200からdefaultへのアクセスは192.168.200.228から192.168.1.61のポート80、443宛のみ許可し、他は禁止されました。

VLAN200側のWi-Fiに接続したスマホで確認してみます。
スマホのIPアドレスが192.168.200.228の場合は…

192.168.1.61を表示できます。

スマホのIPアドレスを別のものに変えると…

192.168.1.61を表示できなくなります。

スマホのIPアドレスを192.168.200.228に戻し、Nasne(192.168.1.203)に接続してみます。 制限がなければNasne Homeが表示されますが、こちらも想定どおり表示できなくなっています。

VPNサーバ

スマホからVPN接続する(Teleport)

WiFimanというアプリを使用して接続します。
Android用とiOS用が存在します。
PC用はありませんので、事実上Teleportはスマホ/タブレット専用のVPN接続方法ということになります。
play.google.com

Wi-Fimanを開き、画面下部のTeleportをタップします。
UIアカウントでサインインを促す画面が表示されます。

UIアカウントでログインします。

TeleportをOnにします。

VPNプロファイルのインストールを求められるので、インストールします。

接続が確立されました。

インターネットからはアクセスできないLAN内のWebページが表示できました。

ここまで、UDRのWi-Fiが届く場所にいないくても設定可能でした。
UIアカウントが漏れたら第三者からVPN接続されるリスクがありそうです。
UIアカウントの2ファクター認証などセキュリティ強化は必須ですね。

パソコンからVPN接続する(WireGuard)

Ubiquiti的には、パソコンにはWireGuardを強く推奨のようです。

Should I Use L2TP?
On Next-Gen UniFi gateways, there are much better options available such as Teleport and Wireguard.

* For mobile users, we strongly recommend to use Teleport instead of L2TP. Teleport is faster, more secure, and requires zero configuration.
* For desktop and laptop users, we strongly recommend to use Wireguard instead of L2TP. Wireguard is faster, more secure, and requires less configuration.

https://help.ui.com/hc/en-us/articles/12594825307927-UniFi-Gateway-L2TP-VPN-Server

ここからWindows用のWireGuardインストーラをダウンロードし、インストールします。
特に選択肢はなく、インストーラを起動するだけでインストール完了しました。
https://www.wireguard.com/install/

Network画面で、Settings→Teleport & VPNをクリックし、VPN ServerのCreate Newをクリックします。

TypeはWireGuardを選択します。
NameはVPNサーバ名をつけます。クライアント名ではないので注意してください。
Server AddressはデフォルトでWANポートのIPアドレスが表示されています。
WireGuardはポート51820がデフォルトらしいのでそれを入力します。
うちの場合はWANポートにはプライベートIPアドレスが割り当てられており、グローバルIPアドレスからNATされてきます。このような場合はEnter IP Address manuallyをクリックして、グローバルIPアドレスを指定します。

IPアドレス帯を変更したい場合はAdvancedをManualに切り替えて設定します。
VPN接続するPCは1台だけなので範囲を最小に絞って192.168.100.0/29にしてみます。
Apply Changesをクリックして反映します。

VPN Serverが追加されました。
作成されたVPNサーバ名をクリックします。

Clients→Add Clientをクリックします。

Nameはクライアント名を入力します。
Download Configuration Fileをクリックしてコンフィグファイルをダウンロードします。
Addボタンをクリックして閉じます。

クライアントが追加されました。
Apply Changesをクリックして反映します。

WireGuardクライアントに戻り、「ファイルからトンネルをインポート」をクリックして、ダウンロードしたコンフィグファイルを指定します。

トンネル設定が追加されます。
有効化をクリックします。

VPN接続されました。

インターネットからはアクセスできないLAN内のWebページが表示できました。

脅威の管理(セキュリティ機能)

怪しいアクティビティを検知して通知したり、ブロックしたりすることができます。IDS/IPS的な機能です。
Torのトラフィックをブロックしたり、悪意のあるWebサイトをブロックすることもできます。

Network画面で、Settings→Firewall & Securityをクリックします。

Suspicious Activityは、疑わしいアクティビティに対する対処の指定です。
No Actionは文字どおり何もしません。
Notifyは通知のみ(実際はログ記録のみかな?)です。IDS的な動作ですね。
Notify and Blockは通知に加えて通信をブロックします。IPS的な動作ですね。

No Action以外の選択肢を選ぶと、下部にある項目が設定できるようになります。

Detection BehaviourのLow/Medium/High/Customで検知のレベルを設定します。
レベルを上げると正常なトラフィックを誤検知でブロックしてしまい、支障が出る可能性があります。
逆に、レベルを下げると脅威を見逃す可能性があります。
現時点ではMediumで問題なさそうですが、様子を見てチューニングする項目です。

8 of 11 Detection Typesの横にあるEditをクリックすると、検知項目を選択できます。
まともなドキュメントがないので推測ですが、検知レベルをCustomにしたときに効いてくる設定値だと思われます。

Dark Web BlockerはTorのトラフィックをブロックできます。

Malicious Website Blockerは悪意のあるサイトをブロックできます。クラウド上のデータベースに基づいてブロックするようです。

使用上の注意としては、スループットが落ちます。 また、Dream Routerのメモリ使用率が高くなります。

スループットに関しては、テキトーに(※)スピードテストしてみたところ以下のとおりでした。
落ちることは落ちますが、個人的には実用上問題ない範囲かと思います。

設定 速度(下り/上り)
No Action 376/532Mbps
Notify and Block 356/360Mbps

※Googleスピードテストで計測。クライアントはWi-Fi6接続、リンク速度1081/1201Mbps。他の有線、無線デバイスは排除せず、それどころか家族がYouTubeを視聴中だったりするので、正確なテストではない。

メモリ使用率に関しては、公式サイトのCapacity Calculatorによると以下のとおりです。
Networkのみ使用なら問題にならなさそうですが、Protect(監視カメラアプリ)などを併用していると厳しそうです。

Threat Management CPU メモリ
オフ 21.63% 43.88%
オン 45.03% 56.52%

※試算条件は、アプリはNetworkのみ、APは2個、VPN利用あり、Threat SensitivityはMidium。

Notify and Block設定、Detection BehaviourはMediumで一晩動かした結果です。
このpizero2wはインターネットからアクセス可能なWebサーバですので、外部からアクセスがあること自体は正常ですが、不審なアクセスも少なくないようです。
ほとんどはDShieldのリストに載っているIPアドレスのブロックですが、中には「XML External Entity Injection/SSRF Attempt」のように攻撃の振る舞いを検知してブロックしているものもありました。