首页 程序笔记 如何在 OPNsense 上安装和配置 Tailscale 客户端

如何在 OPNsense 上安装和配置 Tailscale 客户端

Tailscale 客户端是一款软件应用程序,可以安装在 Linux、Windows、macOS、Android、iOS 等操作系统上。它用于将设备连接到安全的 Tailscale 网状网络。 Tailscale 的核心是 WireGuard 协议,可确保其创建的网络中的设备之间存在安全通信。

在本文中,我们将介绍安装、配置以及如何将 OPNsense 加入 Tailscale 或 Headscale 网络。最后,您的 OPNsense 及其路由(可选)将成为 Tailscale 专用网络的一部分。与传统 WireGuard 服务器设置相比,使用 Tailscale 的优势在于 Tailscale 不需要端口转发即可工作。那么让我们开始吧。

1.配置SSH服务器

我们将通过命令行界面在 OPNsense 上安装 Tailscale 客户端。这决定了 OPNsense 上 SSH 服务器的配置,可以通过以下文章来执行。

  • 如何在 OPNsense 上启用和启动 SSH 服务器

启用 SSH 服务后,使用 ssh 客户端登录 OPNsense 控制台。

$ ssh [email 
Warning: Permanently added '192.168.1.1' (ED25519) to the list of known hosts.
Last login: Thu Jan 25 01:05:07 2024 from 192.168.1.151
----------------------------------------------
|      Hello, this is OPNsense 23.7          |         @@@@@@@@@@@@@@@
|                                            |        @@@@         @@@@
| Website:	https://opnsense.org/        |         @@@"   ///@@@
| Handbook:	https://docs.opnsense.org/   |       ))))))))   ((((((((
| Forums:	https://forum.opnsense.org/  |         @@@///   "@@@
| Code:		https://github.com/opnsense  |        @@@@         @@@@
| Twitter:	https://twitter.com/opnsense |         @@@@@@@@@@@@@@@
----------------------------------------------

*** fw01.example.io: OPNsense 23.7.12 ***

 GuestWifi (vlan020) -> v4: 172.20.40.1/24
 IoTDevices (vlan021) -> v4: 172.20.41.1/24
 LAN (igb1)      -> v4: 192.168.1.1/24
 PrivateServers (vlan030) -> v4: 172.20.30.1/24
 WAN (igb0)      -> v4: a.b.c.d/24

 HTTPS: SHA256 66 1B 87 B8 43 2C 15 45 05 57 05 1E 5E FF BB BD
               AC A6 DF 50 C9 73 FC A6 D5 88 29 10 A4 16 7B 29
 SSH:   SHA256 lmQRFUxZjpwargrS5JII5m57XW04q8gE4ZHIrO3Ub0I (ECDSA)
 SSH:   SHA256 H3emXepr/oufi2zVoVRBWCt5iJM+JTVjtReBpBOlPUc (ED25519)
 SSH:   SHA256 +vgBRjGF6QyimDHDr9Dcq7aZqxuZGUlEdi//XEVLy8E (RSA)

  0) Logout                              7) Ping host
  1) Assign interfaces                   8) Shell
  2) Set interface IP address            9) pfTop
  3) Reset the root password            10) Firewall log
  4) Reset to factory defaults          11) Reload all services
  5) Power off system                   12) Update from console
  6) Reboot system                      13) Restore a backup

Enter an option:

2. 在 OPNsense 上构建 Tailscale 客户端

本指南中使用的安装方法是从源代码构建的。使用选项 8 打开 shell

Enter an option: 8

root@fw01:~ #

然后运行 OPNsense 代码实用程序来更新端口树。

opnsense-code ports

如果没有更新,您将看到下面的消息。

Already up to date.
ABI 23.7 is no longer supported
Already up to date.

将工作目录切换到 /usr/ports/security/tailscale

cd /usr/ports/security/tailscale

然后在 OPNsense 上构建并安装 Tailscale 客户端。

make install

成功安装将产生类似于下图所示的输出。

....
gvisor.dev/gvisor/pkg/sleep
gvisor.dev/gvisor/pkg/tcpip/transport
gvisor.dev/gvisor/pkg/tcpip/ports
gvisor.dev/gvisor/pkg/tcpip/transport/tcpconntrack
tailscale.com/net/packet/checksum
gvisor.dev/gvisor/pkg/tcpip/network/hash
gvisor.dev/gvisor/pkg/tcpip/stack
github.com/pkg/sftp
gvisor.dev/gvisor/pkg/tcpip/transport/internal/noop
gvisor.dev/gvisor/pkg/tcpip/header/parse
gvisor.dev/gvisor/pkg/tcpip/transport/internal/network
tailscale.com/net/tstun
gvisor.dev/gvisor/pkg/tcpip/transport/packet
gvisor.dev/gvisor/pkg/tcpip/link/channel
gvisor.dev/gvisor/pkg/tcpip/network/internal/fragmentation
gvisor.dev/gvisor/pkg/tcpip/network/internal/ip
gvisor.dev/gvisor/pkg/tcpip/transport/raw
gvisor.dev/gvisor/pkg/tcpip/network/internal/multicast
tailscale.com/wgengine/magicsock
gvisor.dev/gvisor/pkg/tcpip/network/ipv4
gvisor.dev/gvisor/pkg/tcpip/network/ipv6
gvisor.dev/gvisor/pkg/tcpip/transport/tcp
gvisor.dev/gvisor/pkg/tcpip/transport/udp
gvisor.dev/gvisor/pkg/tcpip/transport/icmp
gvisor.dev/gvisor/pkg/tcpip/adapters/gonet
tailscale.com/wgengine
tailscale.com/tsd
tailscale.com/ipn/ipnlocal
tailscale.com/wgengine/netstack
tailscale.com/ipn/localapi
tailscale.com/ssh/tailssh
tailscale.com/ipn/ipnserver
tailscale.com/cmd/tailscaled
===>  Staging for tailscale-1.58.0
===>   tailscale-1.58.0 depends on package: ca_root_nss>0 - found
===>   Generating temporary packing list
for t in ./cmd/tailscale  ./cmd/tailscaled; do  dst=$(echo ${t} |  /usr/bin/sed -Ee 's/^[^:]*:([^:]+).*$/\1/' -e 's/^\.$/tailscale/');  src=$(/usr/bin/basename ${dst});  case ${dst} in  /*) dst=/usr/ports/security/tailscale/work/stage${dst}; /bin/mkdir -p $(/usr/bin/dirname ${dst}) ;;  *) dst=/usr/ports/security/tailscale/work/stage/usr/local/bin/${src} ;;  esac;  echo "===>  Installing ${src} as ${dst}";  install  -s -m 555 /usr/ports/security/tailscale/work/bin/${src} ${dst};  done
===>  Installing tailscale as /usr/ports/security/tailscale/work/stage/usr/local/bin/tailscale
===>  Installing tailscaled as /usr/ports/security/tailscale/work/stage/usr/local/bin/tailscaled
====> Compressing man pages (compress-man)
===> Staging rc.d startup script(s)
===>  Installing for tailscale-1.58.0
===>  Checking if tailscale is already installed
===>   Registering installation for tailscale-1.58.0
Installing tailscale-1.58.0...

3.配置Tailscale客户端服务

安装完成后,使tailscale客户端服务自动启动。

# service tailscaled enable
tailscaled enabled in /etc/rc.conf

也启动该服务。

service tailscaled start

您可以通过检查服务状态来获取进程ID。

# service tailscaled status
tailscaled is running as pid 72048.

4. 将 OPNsense 加入 Tailscale 或 Headscale 网络

按照本节中提供的步骤将 OPNsense 加入 Tailscale 或 Headscale 网络。

1) 生成 Tailscale 身份验证密钥

我们需要 Tailscale 身份验证密钥才能将 OPNsense 注册到 Tailscale 网络。打开 Tailscale UI 仪表板,然后导航到设置个人设置 > 密钥 > 身份验证密钥 > <,生成身份验证密钥strong>生成身份验证密钥。

设置生成密钥所需的选项。

将生成的密钥复制到合适的地方。

Headscale 用户:

如果您使用自托管的 Tailscale 替代方案 – headscale,则可以从 CLI 生成密钥。

headscale --user <username> preauthkeys create --reusable --expiration 90d

2) 将 OPNsense 加入 Tailscale/headscale 网络

要加入 Tailscale 网络,请运行 tailscale up 命令。以下标志可供使用。

Tailscale 连接命令示例 - https://controlplane.tailscale.com

tailscale up --login-server https://controlplane.tailscale.com  \
--authkey <your_auth_key> \
--accept-routes \
--advertise-routes=192.168.1.0/24 \
--force-reauth

Headscale 连接命令示例 – https://controlplane.tailscale.com

tailscale up --login-server https://vpn.example.com  \
--authkey <your_auth_key> \
--accept-routes \
--advertise-routes=192.168.1.0/24 \
--force-reauth

请参阅下面有关如何安装 Headscale 服务器的文章:

  • 如何在 Docker 容器中使用 UI 运行 Headscale
  • 在 Ubuntu 上安装和配置 Headscale

如果您希望来自网状网络中的设备的流量通过 OPNsense 防火墙路由,请包含 --advertise-exit-node 标志。

运行登录命令后确认状态。

# tailscale status
100.85.221.75   fw01                 fw01.taila6df.ts.net freebsd -
100.99.203.103  desktop-irjpvj9      josphatkmutai@ windows -

在 OPNsense 上创建新的网络接口。登录以配置接口分配并启用它。

这是在接口 –> 分配 ==> “分配新接口” –> “选择设备” –> “tailscale0” 下完成的。

给出接口描述,例如“Tailscale

保存然后单击创建的界面并勾选两个框以启用并锁定以防止意外删除。

登录 Tailscale 管理控制台 https://login.tailscale.com/admin/ 并在“机器”菜单部分确认设备已连接。

5. 批准 OPNsense 通告的路由

如果您使用 --advertise-routes 标志将要通告到其他节点的路由传递给其他节点,则需要批准路由才能生效。

单击“机器名称”,单击右侧的三个点,然后单击“编辑路由设置”。

选择批准的路线或使用“批准全部”勾选所有路线。

确认保存设置。

如果在运行 tailscale up 命令时使用了选项 --advertise-exit-node,“用作退出节点 ” 不会变灰。

结论

OPNsense 和 Tailscale 都是强大的网络工具和技术,可以为网络用户带来巨大的好处。通过将 OPNsense 添加到 Tailscale 或 Headscale 专用网络,您不仅可以访问该设备,还可以访问通告路由中可用的所有网络设备。所有这一切都是可能的,无需手动配置 OpenVPN 服务器或通配符。设置过程非常简单,不需要任何高级的网络技能。我们希望我们的文章内容丰富,希望下次再见。

此网站上提供更多指南:

  • 如何在 pfSense/OPNsense 上配置 OpenVPN 服务器
  • 如何安装和配置 OPNSense 防火墙
  • 如何在 Ubuntu/Debian 上安装 netboot.xyz iPXE

2

站心网

Tailscale 客户端是一款软件应用程序,可以安装在 Linux、Windows、macOS、Android、iOS 等操作系统上。它..

为您推荐

ASP.NET如何将Views文件夹从项目分离

将 Views 文件夹从 ASP.NET 项目中分离是一个常见需求,比如为了实现模块化或分层架构。以下是实现此功能的完整步骤,从项目中分离 Views 文件夹,将其移到另一个独立的文件夹或项目中,并确保视图渲染仍然正常。1. ..

如何让AI写出Google认可的文章?

让 AI 写出 Google 认可的文章,核心在于满足 Google 的搜索排名算法要求。这些要求通常围绕以下几个关键点展开:内容质量、用户体验 和 SEO 优化。以下是详细指导:一、内容质量确保文章原创且有价值避免抄袭:Goog..

最新CentOS7安装搭建shadowsocks服务端+客户端使用图文教程

使用的CentOS版本是7.9,其他版本也可以。超级推荐的是搭建shadowsocks服务端,安装配置都很简单,几分钟就搞定,客户端支持PC移动端,下面是安装shadowsocks的过程,只要复制粘贴命令就行了,文件夹路径都不需要改..

如何从.NET Framework迁移到.NET Core或.NET 6/7?

从 .NET Framework 迁移到 .NET Core 或 .NET 6/7 是一个提升性能和跨平台能力的关键过程。以下是迁移的主要步骤和注意事项:迁移步骤1. 评估当前项目依赖项检查:确保所有第三方库和NuGet包都有与 .NET Core/.NET 6..

如何优化ASP.NET Core应用的性能?

优化ASP.NET Core应用性能需要从代码、数据库、配置、服务器和部署等多个层面进行综合考虑。以下是一些优化ASP.NET Core应用性能的关键方法和技巧:1. 代码级优化使用异步编程:避免阻塞线程,通过async和await处理I..

sourcetree安装跳过注册方法

SourceTree下载提取码: ni9m 需翻墙或者破解注册当前只有Win的版本,Mac自行百度很多人用git命令行不熟练,那么可以尝试使用sourcetree进行操作。然鹅~~sourcetree又一个比较严肃的问题就是,很多人不会跳过注册或者..

chrome 开发者工具如何查看元素:hover时的样式

在 Chrome 开发者工具中查看元素的 :hover 样式,可以通过以下步骤实现:打开开发者工具:右键点击页面中的元素,然后选择“检查(Inspect)”或按下 F12 或 Ctrl + Shift + I (Windows) / Cmd + Option +..

如何防止web应用DOS攻击?

防止web应用DOS攻击的最好的方法是什么? 如何防止web应用DOS攻击? 与所有的拒绝服务(DOS)攻击相关的一件事是他们都不可能避免。最好的方法是把重点放在减少影响DOS攻击的方法上。如果你有一个网络,黑客想要玩一玩..

数据库SQL Server2014和SQL Server2019的区别和如何选择?

SQL Server 2014和SQL Server 2019是微软公司发布的两个版本的数据库管理系统,它们在性能、安全性以及可扩展性等方面各有特点。在选择这两个数据库版本时,需要根据系统需求、预算状况以及技术团队的熟悉程度等因素..

MySQL如何建数据库

MySQL是一款非常流行的关系型数据库管理系统。无论是在企业还是个人项目中,都经常使用MySQL数据库。在使用MySQL之前,需要先创建一个数据库。本文将介绍如何建立MySQL数据库。一、安装MySQL在开始建立MySQL数据库之..

.NET Core 读取配置文件方法

在.NET Core中使用appsettings.json配置文件。假设我们的示例配置文件是这样的{"Logging":{"LogLevel":{"Default":"Information","Microsoft":"Warning","Microsoft.Hosting.Lifetime":"Information"}},"AllowedHost..

ASP.NET Core多环境配置

.NET Core多环境配置,从IWebHostEnvironment 对象来看,.NET Core自带设定了3种环境,也可以自己定义环境名称。//env.IsStaging预览//env.IsDevelopment开发//env.IsProduction生产//env.IsEnvironment("环境名称")..

.NET Core 日志配置,NLog配置示例

.NET Core内置的日志组件附带了以堆日志提供程序,输出到控制台,输出,系统事件。在Program.cs组件配置里可以配置,如下。Console和Debug是默认配置。publicstaticIHostBuilderCreateHostBuilder(string[]args)=>Ho..

ASP.NET Core MVC 添加Area和Route配置

什么是区域Area?区域Area是一项 ASP.NET 功能,用于将相关功能整理到一个组中作为:路由的命名空间。视图和 Razor Pages 的文件夹结构。使用区域会通过为 controller 和 action 或 Razor 页面 page 添加另一个路由..

jwt是什么?.NET Core API如何使用JwtBearer验证

JWT是JSON Web Token的缩写,是一种开放标准(RFC 7519),用于在网络上以安全和可靠的方式传输信息。它是一种被广泛使用的跨域身份验证解决方案,可以将用户信息、访问权限等加密后存储在Token中,然后通过网络传输..

CentOS7部署发布.NET Core网站Ngnix安装配置图文教程

Linux服务器部署.NET Core网站运行速度更快,最近打算把原来windows server上的网站迁到linux的云服务器上。 顺便记录一下CentOS7安装.NET运行环境,安装和配置Ngnix的过程。首先安装.NET运行时sudorpm-Uvhhttps://p..

.NET C#获取客户端真实IP

在 .NET 中获取客户端真实IP地址(而不是代理服务器的IP地址)可以通过 HttpContext.Current.Request.UserHostAddress 属性来实现。然而,在某些情况下,代理服务器可能会更改请求头信息,导致 UserHostAddress 返回..

什么是微服务架构?它与单体应用程序架构有什么区别?如何在.NET中实现微服务架构?

微服务架构是一种软件架构风格,通过将应用程序拆分为一组小型、自治的服务来构建应用程序。每个服务都专注于解决特定的业务功能,并通过轻量级的通信机制进行交互。这些服务可以独立开发、部署和扩展,可以使用不同..

winform如何隐藏边框和标题栏

在WinForms中,可以通过以下步骤来隐藏窗体的边框和标题栏:打开WinForms应用程序的窗体设计器。选择窗体控件,然后在属性窗口中找到FormBorderStyle属性。将FormBorderStyle属性设置为None,以指示窗体不显示边框。..

IIS使用Certify安装Let's Encrypt免费SSL证书

域名疑似被流量劫持,不仅被腾讯网址安全中心检测成危险网站,还间歇性出现访问域名被302重定向到Localhost。于是决定响应百度站长平台的号召,进行HTTPS改造。不用担心HTTPS后的SEO问题,百度站长平台官方已经表态..

发表回复

返回顶部