Для тех, кто использует UDM-SE (или, скорее всего, UniFi OS 2.x в целом), процесс, который описал @mstilling, немного изменился. UDM-SE работает на UniFi OS 2.x (у меня была версия 2.5.11). После небольшого исследования выяснилось, что архитектура изменилась: в ОС больше нет podman, и система загружается сразу в UniFiOS, а корневая файловая система теперь, похоже, постоянная. Также я проверил и увидел, что утилита mongo доступна прямо в оболочке UniFiOS через SSH.
В моём случае я хотел, чтобы подсеть Teleport соответствовала схеме нумерации, которую я использовал для развёртывания (я реально не люблю и стараюсь избегать адресного пространства RFC1918-C). Вот краткий план процесса, который я использовал, чтобы изменить подсеть Teleport.
Типичные предупреждения, как и раньше — обязательно сделайте резервную копию, будьте готовы принять отказ от гарантии при включении SSH, ожидайте, что такие изменения могут плохо отработать или вызвать проблемы при обновлениях, в общем — делайте всё на свой страх и риск.
Резервное копирование конфигурации – создайте бэкап через консоль и сделайте резервную копию UniFi Network.
Включите SSH на UDM-SE через настройки UniFi OS (‘Console Settings’) — примите предупреждение и продолжайте на свой страх и риск.
Подключитесь через SSH, запустите mongo напрямую и обновите настройку подсети Teleport с помощью синтаксиса, похожего на тот, что описан в посте @mstilling и примере ниже.
Перезагрузите UDM-SE.
Обратите внимание, что изменение подсети Teleport не вступило в силу при подключении клиента.
Подключитесь снова через SSH и проверьте настройку Teleport в mongodb — она сохранилась, но почему изменение не сработало?
Отключите и снова включите Teleport VPN — это вызвало перенастройку UDM-SE, и после этого Teleport заработал с новой подсетью.
Вероятно, последний шаг с отключением и повторным включением Teleport запустил процедуру Provision на UDM-SE, которая действительно подтянула изменения из mongodb. Думаю, вообще можно не отключать и включать заново — принудительная ручная Provision в UniFi Network Console (Devices -> Settings -> Manage -> Provision) скорее всего сработает, возможно, даже без перезагрузки.
root@UDM-SE:~# podman exec -it unifi-os mongo --port 27117
-bash: podman: command not found
root@UDM-SE:~# mongo --port 27117
MongoDB shell version v3.4.15
connecting to: mongodb://127.0.0.1:27117/
MongoDB server version: 3.4.15
<mongo output and warnings omitted>
> use ace
switched to db ace
> db.setting.find({ key: "teleport" })
{ "_id" : ObjectId("<omitted>"), "key" : "teleport", "site_id" : "<omitted>", "enabled" : true, "subnet_cidr" : "192.168.2.1/24" }
> db.setting.update({ key: "teleport" }, { $set: { subnet_cidr: "10.70.255.1/24" } })
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.setting.find({ key: "teleport" })
{ "_id" : ObjectId("<omitted>"), "key" : "teleport", "site_id" : "<omitted>", "enabled" : true, "subnet_cidr" : "10.70.255.1/24" }
> exit
bye