这样用 Frp 给 NAS 应用做内网穿透,够安全吗?

2022-01-30 22:58:47 +08:00
 oraant

我在 Nas 上用 SeaTable 部署了个在线表格,放一些敏感数据,现在打算穿透放到公网上,方便相关人员访问。

Nas 上用 Docker 装的应用:

  1. 应用采用https协议,Nginx 配置 http 请求自动转 https
  2. Docker 将80443端口,在外部映射为88804443端口
  3. Nas 上尽量不开启ssh 服务,只有需要时才临时开启,同时会开启 Dos 防御、错 5 次锁 1 天等

( Nas 上没开防火墙,不知有无必要?)

Frpc 配置:

  1. 在 Nas 上用 Frpc 只将4443端口穿透到 Frps 服务器上,并开启Token 、加密、压缩三项配置
  2. Frpc 采用虚拟服务器策略,通过指定域名 xxx.xxx 访问才会打开网站,其他域名或直接用 IP 则不认

Frps 配置:

  1. Frps 部署到阿里云服务器 ECS 上
  2. Frps 开启 Token 验证( Frpc 必须写上一样的 Token 才行)
  3. 只配置监听和 https 端口,且自定义为高端口号(监听 50007 端口,https 对外端口设置为 50008 )

服务器防火墙:

  1. 阿里云服务器采用安全策略,类似防火墙,只保留 67000 、60443 两个端口,其他 80 、443 之类的全部禁掉
  2. 云服务器的** 22 端口只在需要远程时开放**,不用时立马关闭(感觉有问题,不知能否优化)
  3. 云服务器只在外部人员访问时开机,用完就关(服务器采用 EIP ,即弹性公网 IP ,可以保证重启后 IP 不变)

应用内部配置:

  1. 应用的普通页面,如填写表单等,无需登录就能访问,但敏感数据必须登录后才能访问
  2. 应用不允许注册,只开放三五个自建的普通账号
  3. 应用开放的普通账号、管理员账号,登录密码均为强密码(大写+小写+数字)
  4. 应用登录时,密码错 5 次,直接冻结用户(需用管理员账号登录,然后手动恢复)

(技术原因暂时开不了两步验证)

这样配置好后,打算放到公网上,不知道安全不安全?

6890 次点击
所在节点    程序员
28 条回复
oraant
2022-01-30 23:11:11 +08:00
写错了一个地方:Frps 只开的 50007 、50008 ,然后 ECS 的防火墙也只开 50007 、50008 这两个端口
vibbow
2022-01-31 01:04:11 +08:00
还可以把所有国外 IP 都屏蔽掉 (需要在阿里云上写 iptables)
mineralsalt
2022-01-31 01:24:52 +08:00
当然安全, 只要不用弱密码, 直接开放公网也没事
initd
2022-01-31 01:48:45 +08:00
宝友,Cloudflare Argo Tunnel 了解一下?
oraant
2022-01-31 02:00:52 +08:00
@vibbow 666 ,直接屏蔽一大半扫描流氓,谢谢大佬!
oraant
2022-01-31 02:01:59 +08:00
@mineralsalt 不会吧,我在 v2 一查,frp 穿透内网后,被下毒的被勒索的一大堆。
mineralsalt
2022-01-31 02:05:45 +08:00
@oraant 多虑了, 开放到公网上的服务, 除了走正常的登录途径, 就是服务自身存在零日漏洞, 像 SSH, 远程桌面, FTP 等这些服务都是非常成熟的产品, 你只要保管好账号密码, 又有什么好担心的, 公网上有大量的群晖服务, 如果都被爆破了, 那还得了
oraant
2022-01-31 02:08:34 +08:00
@initd 谢谢指路,不过这个别人好像必须得装客户端才行?
oraant
2022-01-31 02:37:52 +08:00
@mineralsalt
可是我看好多人开 3389 被爆破的,
还有这个开 ssh 被投毒的: https://www.v2ex.com/t/757579#r_10257270
还有小米的: https://www.v2ex.com/t/726197?p=1
duke807
2022-01-31 02:42:58 +08:00
只要不是用 windows 系統就是安全的

你的手機走移動網路,手機暴露在公網( ipv6 ),你會擔心手機有安全隱患嗎
jeeyong
2022-01-31 03:09:56 +08:00
@mineralsalt 我曾经不小心暴露了 1080 端口, 被扫懵逼了...哈哈哈
dangyuluo
2022-01-31 04:38:40 +08:00
把服务暴露在公网肯定要做好安全防护啊,SSH 禁止密码登录,使用证书,各种服务禁止弱密码,如果可能的话限制可访问端口的 IP 。

我现在就有一些服务用 frp 转发到一台公网服务器上。首先我的公网服务器的 frps 端口只接受家庭 IP 访问,然后我各种服务端口在防火墙上配置了只接受 localhost 的访问,然后当我需要用这个服务的时候会用手机、笔记本 Wireguard 到服务器上使用。虽然麻烦一点,然后我配置了 fail2ban/sshguard ,这下只要 wireguard 和 SSH 没有协议上的漏洞,应该想不到谁能黑掉我的机器了。
guowq
2022-01-31 08:15:33 +08:00
公网最好要备案,高号端口有时也会被检测到
neptuno
2022-01-31 10:29:59 +08:00
个人感觉,不要开 ssh 端口,关闭 admin 账户,不要弱密码,使用 https ,就很安全了
Explr
2022-01-31 11:42:53 +08:00
我最近也在琢磨这个问题,如果 frps 被渗透导致任意代码执行,攻击者能否利用 frps 和 frpc 之间的控制连接进而渗透 frpc ,造成 frpc 配置被篡改,其他本地服务被暴露到公网上。
wonderfulcxm
2022-01-31 17:01:42 +08:00
不如用 moon 安全,服务走虚拟局域网
fitmewell
2022-01-31 18:49:49 +08:00
直接远程服务器搭建 wireguard 更安全点吧
zmxnv123
2022-01-31 18:50:41 +08:00
试试 tailscale
oraant
2022-02-01 00:52:03 +08:00
@duke807 我两个卡,移动联通,都是 ipv4 的 T_T
没有安全隐患主要是因为手机不暴露什么接口吧。。
oraant
2022-02-01 00:53:28 +08:00
@dangyuluo 你的公网服务器相当于一台跳板机呀

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/831467

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX