V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Zizpop
V2EX  ›  信息安全

有没有什么 webui 服务可以控制服务器端口的开放

  •  
  •   Zizpop · 13 天前 · 2412 次点击
    在自己的小服务器建了一个密码管理器,但是怕被入侵,同时又不想放弃网页密码管理器的便利性。

    所以想问问有没有什么 webui 服务能够控制密码管理器的端口的开放。

    预期方案:
    - 不用时:密码管理器的网页端口被关闭,这样就不怕密码管理器的 0day 漏洞
    - 使用时:先通过端口管理服务开放密码管理器的端口 5 分钟,随后自动关闭对应端口

    目前的方案是:
    要用的时候通过 ssh 端口转发,把密码管理器映射到本地。用完后关闭端口转发。
    第 1 条附言  ·  13 天前
    先谢谢大家的反馈。

    总结一下大家提供的方案:
    1. 用服务器提供商的防火墙控制(阿里云、腾讯云的 VPS 控制面板)
    2. 用 Linux 面板( 1panel )等
    3. 用 VPN ( Cloudflare Zero Trust ,SS ,Tailscale 等)
    4. 自行实现( CGI )
    5. 其他有些方案还没太理解

    想法:
    1. 依赖服务器提供商,这个方案还是太麻烦了,PASS
    2. Linux 面板也比较复杂,感觉背离了初衷,PASS
    3. VPN 的话确实理论上说是标准答案,但是还是麻烦,PASS

    目前看来就自己动手吧
    用 flutter 搞个静态网页,然后 IPC 发到后台高权限进程,高权限进程执行 Linux 系统防火墙命令
    34 条回复    2024-05-20 17:46:13 +08:00
    afirefish
        1
    afirefish  
       13 天前
    主机允许所有端口入站,然后依赖腾讯云和阿里云控制面板里面的防火墙。
    Zizpop
        2
    Zizpop  
    OP
       13 天前
    @afirefish 之前想过这个方案,但是还要登录对应的服务器提供商的控制面板,还是太麻烦了
    llej
        3
    llej  
       13 天前   ❤️ 1
    1panel 面板支持
    x2ve
        4
    x2ve  
       13 天前
    没有绝对的安全,只有成本高低;我目前就是一个自己写的密码管理服务,但是我没有显示任何标题跟用户有关的信息放在页面上,并且输入错误也能有返回
    lanceb1uy
        5
    lanceb1uy  
       13 天前
    你是否再找 端口敲门/knock
    Zizpop
        6
    Zizpop  
    OP
       13 天前
    @x2ve 确实没有绝对的安全,目前想的就是用简单的端口管理服务替代较复杂的在线密码应用服务,来做到更安全。
    毕竟通俗概念上都是简单的东西比复杂的东西更安全
    Zizpop
        7
    Zizpop  
    OP
       13 天前
    @lanceb1uy 嗯,这个说道点上了呀,有没有啥 web 可用的端口敲门
    BenHua
        8
    BenHua  
       13 天前
    如果在云上,那就写个 api 脚本,起停安全组就行了,要啥 ui
    Jinnrry
        9
    Jinnrry  
       13 天前 via Android
    我觉得你这种不知名面板出漏洞的可能性比密码工具出漏洞的可能性高多了。

    甚至你找个不知名面板本身就自带后面

    真要 ui 控制的话,你用阿里腾讯云吧,服务器网络管理里面可以开关端口,阿里云好像还有 app ,可能都不需要登录 web ,app 上就能操作
    Zizpop
        10
    Zizpop  
    OP
       13 天前
    @Jinnrry 不是想用什么 linux 面板之类的来管理,毕竟这玩意也复杂。想的是有没有什么静态网页之类的,提交一个
    {
    token: "xxx",
    port: "xxx",
    alive: "xxx",
    }
    数据包来控制,这种服务就简单很多,出漏洞的概率就极低了
    Jinnrry
        11
    Jinnrry  
       13 天前 via Android
    @Zizpop 还不如自己写一个,百来行代码就行了。拿 python 写可能都要不了 100 行,python 操作防火墙,搭建 http 服务,都是几行代码搞定,自己在糊一个 http 页面完事
    lisxour
        12
    lisxour  
       13 天前
    @Zizpop #2 这是没办法的,像很多国内云,他们的控制台是优先级最高的,就是你服务器上开放了还不行,必须在他们的控制台开放才能通,这是无解的,有一些就没有控制台,服务器开了就是开了。

    说人话就是,有的云有两层防火墙,提供商那一边的那层,你 webui 是没法关的。
    fmd12345
        13
    fmd12345  
       13 天前
    要不你用 cf 的那个 Cloudflare Zero Trust 吧,在哪里用的时候收一封邮件验证码就行
    ysc3839
        14
    ysc3839  
       13 天前 via Android
    个人还是建议用 KeePass+网盘存储。你这么弄的话,设备本地有密码管理器的数据吗?没的话如果服务器炸了怎么办?
    coolcoffee
        15
    coolcoffee  
       13 天前
    iqingqian
        16
    iqingqian  
       13 天前
    服务器上装个 ss ,通过连接 ss 使用密码管理器服务
    zhangjiashu2023
        17
    zhangjiashu2023  
       13 天前
    建议直接用 1password ,确实体验好很多。
    要么你就把端口限制 ip 访问呗。
    lovelylain
        18
    lovelylain  
       13 天前 via Android
    frpc 啊,先配置好,要用的时候启动 frpc 服务,不用了关闭,可以搭配 nodered 实现你要的自动关闭。
    Zizpop
        19
    Zizpop  
    OP
       13 天前
    @lisxour 控制台一直开着就行,服务器上软件控制系统防火墙开关对应端口
    Zizpop
        20
    Zizpop  
    OP
       13 天前
    @ysc3839 每天都有备份数据到网盘,用在线的就是图个方便
    paopjian
        21
    paopjian  
       13 天前   ❤️ 1
    使用 ping 钥匙临时开启 SSH:22 端口 https://www.cnblogs.com/martinzhang/p/5348769.html
    x2ve
        22
    x2ve  
       13 天前
    @Zizpop #6 找找云厂商的 api ,调接口吧,或者用 caddy ,自带有个 api 能直接替换反代地址,我是突然想起来我的梯子当时就是老封端口,用的这个玩意灵活的变化端口
    securityCoding
        23
    securityCoding  
       13 天前 via Android
    套个 cf tunnel 。
    serical
        24
    serical  
       13 天前
    看你熟悉哪个防火墙管理,可以用类似下面的命令,一般编程语言都有调用系统命令行的功能

    firewall-cmd --zone=public --permanent --add-port=8443/tcp
    firewall-cmd --reload

    firewall-cmd --zone=public --permanent --remove-port=443/tcp
    firewall-cmd --reload
    swordsmile
        25
    swordsmile  
       13 天前
    可以试试 webhook, 对方暴露一个 HTTP(S) 服务,访问这个地址后服务器后台执行一个脚本,在脚本里配置你想干的活都可以。
    我用来搭配 DDNS, 发现公网 IP 变化的时候,在内网运行一些脚本。
    也可以单独用来 WOL 唤醒机器

    https://github.com/adnanh/webhook
    78786381
        26
    78786381  
       13 天前
    我是家里 openwrt ,然后开放 50000-60000 网段,用的时候登录后台设置下端口开启状态
    flyqie
        27
    flyqie  
       13 天前 via Android
    实在不行你搞个 cgi 来实现吧,啥语言都行,复古但好用。
    Jirajine
        28
    Jirajine  
       13 天前
    要什么 webui ,你都有 ssh 了,直接`ssh myserver 'ufw allow 443 && sleep 300 && ufw deny 443'` 把这条命令放到一个脚本里双击就行了,Android 上 termux 也可以创建一个桌面 widget 。
    当然你要想把这个命令作为 api 暴露出来也就几行代码。
    hgc81538
        29
    hgc81538  
       13 天前 via iPhone
    用 Tailscale, 密码管理器的端口只監聽內網 100.x.y.z , 防火牆限制只有某些內網連線,密码管理器客戶端通過 tailnet 內網連服務器
    Zizpop
        30
    Zizpop  
    OP
       13 天前
    @Jirajine 希望能换掉 ssh ,手机上没法用,所以搞个 webui 的就很方便
    Jirajine
        31
    Jirajine  
       13 天前
    @Zizpop 为啥没法用 ssh ? android 有 termux,iOS 有 ish 。你甚至可以创建个 widget 放桌面上,点一下就自动运行写好的脚本。
    pinkbook
        32
    pinkbook  
       13 天前
    最简单的是用 iptables 管理,规则上把端口关掉,同时写个脚本每 10 分钟刷新一次 iptables ,或者检测到端口被打开后延迟 10 分钟刷新 iptables 。实现简单,没有任何包袱。
    hingle
        33
    hingle  
       13 天前
    我之前的方案是,电脑/手机 -> clash 域名分流 -> 服务器 ss -> vaultwarden 。
    ClarkAbe
        34
    ClarkAbe  
       13 天前
    真要通过面板的话 Red hat 有个开源的叫 Cockpit 的项目 ( https://cockpit-project.org/)
    安装后记得安装防火墙后端 (firewalld) 然后通过侧边栏转到 [网络] 选项卡, 再通过创建区域使用 firewall 控制端口...
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   878 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 20:41 · PVG 04:41 · LAX 13:41 · JFK 16:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.