V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
OpenWrt 是一个专门面向嵌入式设备的 Linux 发行版。你可以将 OpenWrt 支持的型号的嵌入式设备,比如各种路由器上的系统,换成一个有更多可能性可以折腾的 Linux 系统。
OpenWrt 官方网站
wanmyj
V2EX  ›  OpenWrt

Openwrt 能否远程控制某些端口映射的开启和关闭?

  •  
  •   wanmyj · 2023-11-30 23:49:48 +08:00 · 1345 次点击
    这是一个创建于 393 天前的主题,其中的信息可能已经有所发展或是发生改变。
    如前贴所言,RDP 端口映射到公网毕竟不安全,然而又不太想用 VPN (不想所有流量都被 VPN 控制)。除此之外,一些文件共享服务,本人测试下来还是端口映射最为流畅。如果能有远程控制某个端口映射的开关,则在只有使用的时候打开,安全系数倍增。

    不知道 V2er 们有没有易用的实践可以 share 一下
    第 1 条附言  ·  2023-12-01 10:22:46 +08:00

    逛V2的大神还是很多啊

    @mohumohu 的 knockd 正好完美解决这个问题,传送门 openwrt portknock

    另外对于有些人的疑问,关于端口开放就已经不够安全,我是难以苟同。我觉得端口开放的风险很低,而端口映射的风险很大。即使公认安全的VPN也是在端口开放的基础上完成的。

    11 条回复    2024-01-29 10:06:43 +08:00
    sunulin
        1
    sunulin  
       2023-11-30 23:58:35 +08:00 via iPhone
    不想用 vpn 还想远控某个端口的开关,那就把 openwrt 的端口映射出去直接管理 openwrt 呗,既然能远控本地端口,这样又回到你所谓不安全的顾虑里面了。所以无解。
    iamwho
        2
    iamwho  
       2023-12-01 00:28:45 +08:00
    我是这么做的:

    - 预先设置所有端口转发。
    - 外出前将 OpenWRT 以非标端口暴露到公网:其实没什么用,主要怕运营商。
    - 所有支持 WOL 的设备都启用 WOL 。
    - 所有设备(包括路由器本身)接入单独的智能插座:物理切断或意外情况,比如我有一台当作服务器的 Windows 有时候会卡死,但是一直没排查出什么问题,所以我只能在它死机的时候切换智能插座开关重启它;路由器连接的是邻居的 Wi-Fi 。

    假设我现在要连接家里的 Windows 设备 A:

    1. 远程访问 OpenWRT WebUI 开启 设备 A 的端口转发。
    2. 远程打开设备 A 的电源。(如果没开)
    3. 网络唤醒设备 A

    ---

    因为有一次外出忘记把 OpenWRT 暴露到公网了,所以我后面添加了定时脚本,如果未主动暴露的情况下 00 、06 、12 、18 整点分别会临时转发 WebUI 5 分钟。
    mohumohu
        3
    mohumohu  
       2023-12-01 00:31:17 +08:00   ❤️ 1
    关键字:knockd
    cwcc
        4
    cwcc  
       2023-12-01 01:00:20 +08:00
    不走 VPN 真的不安全,即使只是在你用的时候才打开。

    我之前一个很经典的被骑代理的过程:因为要回家,所以用这个方法在换 VPN 配置时候临时开了两个口子,用于登录 SSH 和 SOCKS 代理(从家里的 IP 出口访问,有需求)。然后大概没过 1 小时,代理被骑了(就是有扫全网的脚本小子扫到代理,然后被用于挖矿、代理池等非法行为)。加密码,但是设置得太简单( 9 位,字母加年份),过了三四个小时又被骑了。被骑的后果就是我的 openwrt 的连接上限。然后 SSH 端口看 lastb 也在开放端口后开始刷屏,刷这个倒是没啥问题,但家用公网 IP 段哪怕高位端口,也要比云服务器的 22 端口要更容易被扫,同时家庭公网相比 VPS 而言没有任何安全防护。

    如果真的要在家庭公网 IP 开放临时的远程管理端口,最好不要把 openwrt 的地址开放出去,建议只开启打好补丁的 SSH 、RDP 端口,并且主机安装入侵检测软件,同时禁止易猜测的用户名,设置仅支持证书、公钥登录等。除此之外,有一个 VPN 或许是更安全的选择。

    另外有关你提到一个远程控制开关 RDP 端口,那你可以完全写个 bot ,反正家里电脑常开着,就搭个机器人,或者搞一个端口,直接写个裸 socket ,传输自己的密钥和指令开启关闭端口。另外,避免开启 HTTP 并在上面放网站页面,原因就是避免被喝茶违规操作。
    AoEiuV020JP
        5
    AoEiuV020JP  
       2023-12-01 01:30:44 +08:00 via Android
    c
    AoEiuV020JP
        6
    AoEiuV020JP  
       2023-12-01 01:32:13 +08:00 via Android
    clash 分流,我家里 openwrt 只开放一个 ss 端口,
    人在外面使用 clash 分流,家里局域网 ip 就走这个 ss 回家,其他网络连接不经过家里,
    wanmyj
        7
    wanmyj  
    OP
       2023-12-01 09:49:21 +08:00
    @iamwho 你这里的远程访问 OpenWRT WebUI ,如果用 nginx 做 proxy_pass 会安全许多,如果直接转发公网,感觉暴露面很大了
    roth
        8
    roth  
       2023-12-01 09:52:13 +08:00
    偷懒的办法,我是买了个 tplink 的商用路由器,走 tp 的商云来临时开关端口,当然就像前边兄弟的说法存在很大隐患
    wanmyj
        9
    wanmyj  
    OP
       2023-12-01 09:58:49 +08:00
    @mohumohu Bingo!
    wanmyj
        10
    wanmyj  
    OP
       2023-12-01 10:13:07 +08:00
    @roth 这个很可以的,不存在很大的隐患。开启端口映射和开启端口的安全意义是完全不同的。如果开启端口就等于不安全,那等于出门就可能出车祸,讨论起来就没意义了
    iamyangyiok
        11
    iamyangyiok  
       333 天前 via Android
    奇怪的要求,你不开放一个端口又怎么控制。 要安全就 VPN 。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2601 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 01:42 · PVG 09:42 · LAX 17:42 · JFK 20:42
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.