Microsoft隧道网关参考
此参考中提供了Microsoft Tunnel Gateway 的信息,以支持在环境中安装和维护隧道安装。
用于Microsoft隧道网关的 mst-cli 命令行工具
Mst-cli 是用于 Microsoft Tunnel Gateway 的命令行工具。 此工具在隧道安装完成后在 Linux 服务器上可用,可在 /usr/sbin/mst-cli 中找到。 可以使用此工具完成的一些任务包括:
- 获取有关隧道服务器的信息。
- 设置或更新隧道服务器的配置。
- 重启隧道服务器。
- 卸载隧道服务器。
以下是该工具的常见命令行用法。
命令行接口:
mst-cli –help
- 用法: mst-cli [command]命令:
-
agent
- 对代理组件进行操作。 -
server
- 在服务器组件上操作。 -
uninstall
- 卸载Microsoft隧道。 -
eula
- 显示 EULA。 -
import_cert
- 导入或更新 TLS 证书。
-
mst-cli agent –help
- 用法: mst-cli 代理 [command]命令:
-
logs
- (-h 显示代理日志以获取) 的详细信息。 -
status
- 显示代理状态。 -
start
- 启动代理服务。 -
stop
- 停止代理服务。 -
restart
- 重启代理服务。
-
mst-cli agent logs help
- 用法: mst-cli 代理日志 [flags]标志:
-
-f, --follow
- 遵循日志输出。 默认值为 false。 -
--since string
- 显示自 TIMESTAMP 以来的日志。 -
--tail uint
- 在日志末尾输出指定数量的 LINES。 默认为零 (0) ,这将打印所有行。 -
-t, --timestamps
- 输出日志中的时间戳。
-
mst-cli agent status
- 以下返回结果是你可能会看到的结果示例:- 状态:正在运行
- 运行状况:正常
mst-cli agent start
- 如果代理已停止,则启动代理。mst-cli agent stop
- 停止代理。 必须在停止后手动启动。mst-cli agent restart
- 重启代理。mst-cli server --help
- 用法: mst-cli 服务器 [command]命令:
-
logs
- 显示服务器日志。 有关详细信息 ,请使用 -h 。 -
status
- 显示服务器状态。 -
start
- 启动服务器服务。 -
stop
- 停止服务器服务。 -
restart
- 重启服务器服务。 -
show
- 显示各种服务器统计信息。有关详细信息 ,请使用 -h 。
-
mst-cli server logs –help
- 用法: mst-cli 服务器日志 [flags]标志:
-
-f, --follow
- 遵循日志输出。 默认值为 false。 -
--since string
- 显示自 TIMESTAMP 以来的日志 -
--tail uint
- 在日志末尾输出指定数量的 LINES。 默认为零 (0) ,这将打印所有行。 -
-t, --timestamps
- 输出日志中的时间戳。
-
mst-cli server status
- 以下返回结果是你可能会看到的结果示例:- 状态:正在运行
- 运行状况:正常
mst-cli server start
- 如果服务器已停止,则启动服务器。mst-cli server stop
- 停止服务器。 必须在停止后手动启动。mst-cli server restart
- 重启服务器。mst-cli server show
-
show status
- 打印服务器的状态和统计信息。 -
show users
- 打印连接的用户。 -
show ip bans
- 打印禁止的 IP 地址。 -
show ip ban points
- 打印具有点的所有已知 IP 地址。 -
show iroutes
- 打印服务器用户提供的路由。 -
show sessions all
- 打印所有会话 ID。 -
show sessions valid
- 打印重新连接会话的所有有效值。 -
show session [SID]
- 打印有关指定会话的信息。 -
show user [NAME]
- 打印有关指定用户的信息。 -
show id [ID]
- 打印指定 ID 上的信息。 -
show events
- 提供有关连接用户的信息。 -
show cookies all
- 显示会话全部的别名。 -
show cookies valid
- 显示有效会话的别名。
-
环境变量
以下是在 Linux 服务器上安装 Microsoft Tunnel 网关软件时可能需要配置的环境变量。 这些变量位于环境文件 /etc/mstunnel/env.sh:
- http_proxy=[address] - 代理服务器的 HTTP 地址。
- https_proxy=[address] - 代理服务器的 HTTPs 地址。
数据路径
路径/文件 | 说明 | 权限 |
---|---|---|
/.../mstunnel | 所有配置的根目录。 | 所有者根,组 mstunnel |
/.../mstunnel/admin-settings.json | 包含服务器安装的设置。 | Intune管理此文件,不应手动编辑该文件。 |
/.../mstunnel/certs | 存储 TLS 证书的目录。 | 所有者根,组 mstunnel |
/.../mstunnel/private | 存储Intune代理证书和 TLS 私钥的目录。 | 所有者根,组 mstunnel |
在服务器安装期间添加文件
/etc/mstunnel:
admin-settings.json:
- 包含来自 Intune 的序列化服务器配置。
- 在服务器注册后创建。
agent-info.json:
- 注册完成后创建。
- AgentId、IntuneTenantId、AADTenantId 和代理证书 RenewalDate。
- 在代理证书续订时更新。
private/agent.p12:
- 用于代理身份验证的 PFX 证书Intune。
- 自动续订。
version-info.json:
- 包含各种组件的版本信息。
- ConfigVersion、DockerVersion、AgentImageHash、AgentCreateDate、ServerImageHash、ServerCreateDate。
ocserv.conf:
- 服务器配置
Images_configured
用于创建容器的 Docker 映像:
- agentImageDigest
- serverImageDigest
admin-settings.json示例
{
"PolicyName": "Auto Generated Policy for rh7vm",
"DisplayName": "rh7vm Policy",
"Description": "This policy was auto generated for rh7vm",
"Network": "169.100.0.0/16",
"DNSServers": ["168.63.129.16"],
"DefaultDomainSuffix": "nmqjwlanybmubp4imht0k2b4qd.xx.internal.cloudapp.net",
"RoutesInclude": ["default"],
"RoutesExclude": [],
"ListenPort": 443
}
管理员设置 | 说明 |
---|---|
PolicyName | 设置策略的名称。 可以选择名称。 |
DisplayName | 简短的显示名称。 可以选择名称。 |
说明 | 策略说明。 可以选择说明。 |
网络 | 用于分配客户端虚拟地址的网络和掩码。 除非发生冲突,否则不需要更改。 此设置最多支持 64,000 个客户端。 |
DNSServers | 客户端应使用的 DNS 服务器列表。 这些服务器可以解析内部资源的地址。 |
DefaultDomainSuffix | 客户端在尝试解析资源时追加到主机名的域后缀。 |
RoutesInclude | 通过 VPN 路由的路由列表。 默认值为所有路由。 |
RoutesExclude | 应绕过 VPN 的路由列表。 |
ListenPort | VPN 服务器接收流量的端口。 |
Docker 命令
下面是 Docker 的常见命令,如果必须调查隧道服务器上的问题,可以使用这些命令。
注意
大多数 Linux 分发版都使用 Docker。 但是,Red Hat Enterprise Linux (RHEL) 8.4 不支持 Docker。 相反,这些分发使用 Podman。 有关支持的分发版以及每个分发版的 Docker 或 Podman 要求的详细信息,请参阅 Linxu 服务器。
为 Docker 编写的引用和命令行可以通过将 docker 替换为 podman 来与 Podman一起使用。
命令行接口:
docker ps –a
– 查看所有容器。- mstunnel-server – 此容器运行 ocserv 服务器组件,并使用入站端口 443 (默认) 或自定义端口配置。
- mstunnel-agent - 此容器运行 Intune 连接器并使用出站端口 443。
重启 Docker:
systemctl restart docker
若要在容器中运行某些内容,请执行以下操作:
docker exec –it mstunnel-server bash
docker exec –it mstunnel-agent bash
Podman 命令
下面是 Podman 的命令,如果必须调查隧道服务器上的问题,可以使用这些命令。 有关可用于 Podman 的更多命令,请参阅 Docker 命令。
-
sudo podman images
- 列出所有正在运行的容器。 -
sudo podman stats
- 显示容器 CPU 使用率、MEM 使用情况、网络和块 IO。 -
sudo podman port mstunnel-server
- 列出从隧道服务器到本地 Linux 主机的端口映射。
Linux 命令
以下是可用于隧道服务器的常见 Linux 命令。
sudo su
- 使你在框上生根。 在运行以下命令之前和运行 mstunnel-setup 之前,请使用此命令。ls
– 列出目录的内容。ls – l
– 列出目录的内容,包括时间戳。cd
– 更改为另一个目录。 例如,cd /etc/test/stuff
将你从 根 目录更改为 etc 子文件夹 > ,更改为 测试 子文件夹 > ,然后更改为 stuff 文件夹。cp <source> <destination>
- 用于将证书复制到正确的位置。ln –s <source> <target>
- 创建软链接。curl <URL>
– 检查对网站的访问。 例如:curl https://microsoft.com
./<filename>
- 运行脚本。
手动加载 ip_tables
使用以下命令检查 Linux 服务器内核中的ip_tables,并在必要时手动加载。 使用 sudo 上下文:
验证服务器上 ip_tables 状态:
lsmod |grep ip_tables
创建一个配置文件,用于在服务器启动时将ip_tables加载到内核中:
echo ip_tables > /etc/modules-load.d/mstunnel_iptables.conf
将ip_tables立即加载到内核中:
/sbin/modprobe ip_tables