通过自建SSLVPN访问家里的NAS

2024-01-10 16:46:16 0点赞 14收藏 0评论

在搭建好家里的存储系统之后,我遇到了一个新问题:如何在外部安全地访问这个系统。Qnap提供了一个名为myQnapCloud Link的服务,这与群晖的QuickConnect类似,可以通过NAT穿透和中继技术实现在互联网上访问家里的NAS。但我总觉得,把NAS直接暴露在公网上并不太安全。幸好,我家的网络可以获取公网IP地址,于是我决定采用DDNS结合自建SSL VPN的方式来访问家里的应用,这样既更安全,又能满足我的需求。

(一)购买域名

原本我考虑通过直接拨号SSL VPN来访问家里的应用,但很快意识到这样做并不理想,因为家里的IP地址是动态分配的,每天都在变,不可能时刻记住当前的IP地址。虽然Qnap提供了免费的DDNS服务,但这种服务只能提供一个域名,而且不易记忆。因此,我决定购买一个个人域名来解决这个问题。在网上搜索后,我发现NameSilo上的域名价格非常实惠,一个.top后缀的一级域名仅需1.88美元一年。经过一番考虑,我最终选定了一个我喜欢的名字,并购买了这个.top的一级域名。

通过自建SSLVPN访问家里的NAS

一个需要注意的细节是,由于NameSilo的服务器位于国外,当在国内修改DNS记录时,这些更改在互联网上的生效时间可能会比较长。为了加快这一过程,可以把域名添加到国内的域名解析服务商进行管理。我选择使用的是Dnspod,因为它的操作步骤简单直观。首先,在Dnspod注册账号,并在域名管理界面添加你的域名。添加成功后,Dnspod会提示你需要到原域名解析商处修改NS(NameServer)记录。这时,只需登录到NameSilo的管理平台,找到你的域名,点击修改NameServer,然后将Dnspod提供的NS记录填入并保存即可。这样操作后,域名解析的速度会显著提升,特别是在国内访问时。

通过自建SSLVPN访问家里的NAS通过自建SSLVPN访问家里的NAS通过自建SSLVPN访问家里的NAS

(二)部署DDNS-Go服务

首先,得在Dnspod上增加DNS记录。由于地址不固定,我们需要使用名为ddns-go的Docker应用来自动将动态IP注册到Dnspod。以Qnap为例:

  • 在Qnap的APP Center中安装Container Station服务。

通过自建SSLVPN访问家里的NAS
  • 打开Container Station,点击“容器→创建”,在映像处输入jassy/ddns-go,然后点击“下一步”。

通过自建SSLVPN访问家里的NAS
  • 在配置容器页面,自定义容器名称后点击“高级设置”。

通过自建SSLVPN访问家里的NAS
  • 在高级设置中选择网络,选择Host模式(注意,我已经部署过,可能会提示端口冲突)。

通过自建SSLVPN访问家里的NAS
  • 在存储页面,添加卷时绑定装载主机路径。在主机处输入在NAS中预先创建的共享文件夹路径,在容器中输入/Root,点击应用。

通过自建SSLVPN访问家里的NAS通过自建SSLVPN访问家里的NAS
  • 点击上一个窗口的“下一步”,再点击“完成”,此时容器应该已成功创建。

(三)配置DDNS-Go服务

在浏览器中输入http://[Nas的ip]:9876,即可访问ddns-go管理界面。

通过自建SSLVPN访问家里的NAS

对于DNSPod:

  • 登录DNSPod,创建API密钥。

通过自建SSLVPN访问家里的NAS
  • 点击头像→API密钥→DNSPod Token→创建密钥。

通过自建SSLVPN访问家里的NAS
  • 保存好ID和Token。

通过自建SSLVPN访问家里的NAS通过自建SSLVPN访问家里的NAS通过自建SSLVPN访问家里的NAS

(四)部署SSLVPN服务

在VPN选择上,我考虑了两个开源项目:OpenConnect Server(ocserv)和AnyLink。OpenConnect Server是一个功能丰富的SSL VPN解决方案,而AnyLink是基于ietf-openconnect协议开发的,具有Web管理界面,支持二次认证等功能。但由于AnyLink在基于DNS的隧道实现上有些问题,我最终选择了部署Ocserv。

部署Ocserv的步骤:

  • 在Qnap或Windows的虚拟化服务上部署Linux系统(例如Rocky Linux)。

  • 安装ocserv。

dnf install ocserv

  • 配置ocserv,设置用户名密码认证、证书、隧道配置等。

vi /etc/ocserv/ocserv.conf auth = "plain[passwd=/etc/ocserv/ocpasswd]" tcp-port = 8443 #证书部分 #可以使用默认不受信任证书,也可以在dnspod申请免费证书上传到服务器替换 server-cert = /etc/letsencrypt/live/vpn.example.com/fullchain.pem server-key = /etc/letsencrypt/live/vpn.example.com/privkey.pem #隧道配置部分,用于基于域名进行隧道加密 split-dns = example.com #sslvpn客户端获取的ip配置,可以自定义,如192.168.2.0,不能和内网网段冲突 ipv4-network = 192.168.2.0/24 #sslvpn客户端获取的dns dns = 192.168.0.11 dns = 192.168.0.12 #sslvpn下发的路由配置,比如你家里的网段是192.168.0.0/24,那就填写如下 route = 192.168.0.0/255.255.255.0 #修改mtu mtu = 1420 #关闭所有dns都基于隧道提供的dns进行解析。好处是如果家里有dns服务器,只有指定的域名才会通过SSLVPN下发的dns进行解析。 tunnel-all-dns = false

  • 创建本地用户名密码。

$ sudo ocpasswd -c /etc/ocserv/ocpasswd username Enter password: Re-enter password:

  • 启动并检查VPN服务。

systemctl start ocserv systemctl status ocserv通过自建SSLVPN访问家里的NAS

  • 设置防火墙策略,允许SSLVPN客户端访问内部网络。

#安装ufw防火墙工具 sudo apt update sudo apt install ufw

  • 配置规则

sudo ufw route allow in on ens3 out on ens3 from 192.168.2.0/24 sudo ufw route allow in on ens3 out on ens3 to 192.168.2.0/24 sudo ufw allow 8443/tcp

  • 路由器或光猫上设置NAT规则,暴露8443端口。我选择使用Cisco AnyConnect作为VPN客户端,安装完AnyConnect后双击打开,在文本框中输入自己的域名加上端口,点击Connect,在弹出的对话框中输入用户名和密码,点击确定,如果验证成功,则说明连接好了。

通过自建SSLVPN访问家里的NAS
  • 这个时候就能在浏览器访问内部nas了。

通过自建SSLVPN访问家里的NAS

以上分享的观点和经验仅基于我的个人环境,可能并不适用于所有人。每个人的家庭网络配置、硬件条件和安全需求各不相同,因此我的解决方案可能不会完全符合其他人的实际情况。尽管如此,我希望我的经历能为他人提供一些灵感和参考,但在具体实施时,每个人都应根据自己独特的需求来调整和选择合适的方案。

展开 收起

Synology 群晖 DS224+ 双盘位NAS(赛扬J4125、2GB)

Synology 群晖 DS224+ 双盘位NAS(赛扬J4125、2GB)

2289.89元起

Synology 群晖 DS920+ 4盘位 NAS存储(J4125、4GB)

Synology 群晖 DS920+ 4盘位 NAS存储(J4125、4GB)

2190.84元起

Synology 群晖 DS220+ 2盘位NAS (赛扬J4025、2GB)

Synology 群晖 DS220+ 2盘位NAS (赛扬J4025、2GB)

2179元起

Synology 群晖 DS923+ 4盘位 万兆扩展 NAS网络存储服务器 私有云 企业团队云盘 标配(不含硬盘)

Synology 群晖 DS923+ 4盘位 万兆扩展 NAS网络存储服务器 私有云 企业团队云盘 标配(不含硬盘)

4207元起

Synology 群晖 DS423+ 4盘位 NAS网络存储 (Intel四核 、无内置硬盘)

Synology 群晖 DS423+ 4盘位 NAS网络存储 (Intel四核 、无内置硬盘)

3484.15元起

Synology 群晖 DS1821+ 8盘位NAS (V1500B、4GB)

Synology 群晖 DS1821+ 8盘位NAS (V1500B、4GB)

8899元起

Synology 群晖 DS1821+ 8盘位 NAS(V1500B、4GB)

Synology 群晖 DS1821+ 8盘位 NAS(V1500B、4GB)

7196元起

Synology 群晖 DS223J家用网络存储服务器nas私有云

Synology 群晖 DS223J家用网络存储服务器nas私有云

1316.65元起

Synology 群晖 DS223j 双盘位 NAS网络存储服务器 私有云 智能相册 文件自动同步

Synology 群晖 DS223j 双盘位 NAS网络存储服务器 私有云 智能相册 文件自动同步

1317元起

Synology 群晖 DS124 四核心 单盘位 NAS网络存储 私有云

Synology 群晖 DS124 四核心 单盘位 NAS网络存储 私有云

1399元起

Synology 群晖 DS420+ 4盘位NAS (赛扬J4025、2GB)

Synology 群晖 DS420+ 4盘位NAS (赛扬J4025、2GB)

3090元起

【豪礼自选】Synology群晖nas私有云主机DS923+网络存储器企业家庭用存储盘4盘位局域网共享硬盘盒群辉ds920

【豪礼自选】Synology群晖nas私有云主机DS923+网络存储器企业家庭用存储盘4盘位局域网共享硬盘盒群辉ds920

4207元起

群晖(Synology)DS124单盘位NAS网络存储服务器私有云智能相册文件自动同步

群晖(Synology)DS124单盘位NAS网络存储服务器私有云智能相册文件自动同步

1399元起

Synology 群晖 DS720+ 双盘位NAS(J4125、2GB)

Synology 群晖 DS720+ 双盘位NAS(J4125、2GB)

4099元起

Synology 群晖 防尘网防尘罩挡灰尘面板

Synology 群晖 防尘网防尘罩挡灰尘面板

69元起

synology群晖nas云存储ds920+中小型企业办公网络存储群辉家庭个人私有云盘四盘位NAS备份硬盘服务器ds918+(DS920+希捷企业级16T*4)

synology群晖nas云存储ds920+中小型企业办公网络存储群辉家庭个人私有云盘四盘位NAS备份硬盘服务器ds918+(DS920+希捷企业级16T*4)

14203元起
0评论

当前文章无评论,是时候发表评论了
提示信息

取消
确认
评论举报

相关好价推荐
查看更多好价

相关文章推荐

更多精彩文章
更多精彩文章
天猫超级红包
距结束::
每天领现金,最高24888元
红包按钮
最新文章 热门文章
14
扫一下,分享更方便,购买更轻松