V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
oraant
V2EX  ›  程序员

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

  •  
  •   oraant · 2022-01-30 22:58:47 +08:00 · 6291 次点击
    这是一个创建于 788 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我在 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 次,直接冻结用户(需用管理员账号登录,然后手动恢复)

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

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

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

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

    我现在就有一些服务用 frp 转发到一台公网服务器上。首先我的公网服务器的 frps 端口只接受家庭 IP 访问,然后我各种服务端口在防火墙上配置了只接受 localhost 的访问,然后当我需要用这个服务的时候会用手机、笔记本 Wireguard 到服务器上使用。虽然麻烦一点,然后我配置了 fail2ban/sshguard ,这下只要 wireguard 和 SSH 没有协议上的漏洞,应该想不到谁能黑掉我的机器了。
    guowq
        13
    guowq  
       2022-01-31 08:15:33 +08:00
    公网最好要备案,高号端口有时也会被检测到
    neptuno
        14
    neptuno  
       2022-01-31 10:29:59 +08:00 via iPhone
    个人感觉,不要开 ssh 端口,关闭 admin 账户,不要弱密码,使用 https ,就很安全了
    Explr
        15
    Explr  
       2022-01-31 11:42:53 +08:00 via iPhone
    我最近也在琢磨这个问题,如果 frps 被渗透导致任意代码执行,攻击者能否利用 frps 和 frpc 之间的控制连接进而渗透 frpc ,造成 frpc 配置被篡改,其他本地服务被暴露到公网上。
    wonderfulcxm
        16
    wonderfulcxm  
       2022-01-31 17:01:42 +08:00 via iPhone
    不如用 moon 安全,服务走虚拟局域网
    fitmewell
        17
    fitmewell  
       2022-01-31 18:49:49 +08:00
    直接远程服务器搭建 wireguard 更安全点吧
    zmxnv123
        18
    zmxnv123  
       2022-01-31 18:50:41 +08:00
    试试 tailscale
    oraant
        19
    oraant  
    OP
       2022-02-01 00:52:03 +08:00
    @duke807 我两个卡,移动联通,都是 ipv4 的 T_T
    没有安全隐患主要是因为手机不暴露什么接口吧。。
    oraant
        20
    oraant  
    OP
       2022-02-01 00:53:28 +08:00
    @dangyuluo 你的公网服务器相当于一台跳板机呀
    oraant
        21
    oraant  
    OP
       2022-02-01 00:54:21 +08:00
    @guowq 谢谢,备案过啦,阿里云上不备案不给用
    oraant
        22
    oraant  
    OP
       2022-02-01 04:38:22 +08:00
    @neptuno 关闭 admin 账户是什么意思,我应用的管理员是用的其他账号名,是您说的意思吗
    oraant
        23
    oraant  
    OP
       2022-02-01 04:39:45 +08:00
    @wonderfulcxm MOON 也需要客户端吧
    oraant
        24
    oraant  
    OP
       2022-02-01 04:40:08 +08:00
    @fitmewell 好,我看很多人都推荐,我去试试
    oraant
        25
    oraant  
    OP
       2022-02-01 04:41:06 +08:00
    @zmxnv123 好像延迟太大了
    cdlnls
        26
    cdlnls  
       2022-02-01 07:51:17 +08:00 via iPhone
    相关的程序和系统 安全补丁升到最新。

    相当于只是开放一个端口而已,能被攻击的入口也就一个端口没啥其他的东西了。无论有没有开 frp ,重点应该放在外网云服务器上。
    neptuno
        27
    neptuno  
       2022-02-01 12:49:55 +08:00
    @oraant 就是停用默认的 admin 账号,我使用的是威联通的 nas ,系统明确建议停用系统默认的 admin 账号,自行创建管理员账号,可以提高安全性
    twtiyb
        28
    twtiyb  
       2022-02-01 22:11:05 +08:00
    用 tailscale
    公网跟 nas 各开个一个节点
    公网开个 80 端口,用域名做反代,直连 nas 。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   4551 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 50ms · UTC 05:34 · PVG 13:34 · LAX 22:34 · JFK 01:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.