有用户在群里问:能不能直接在工具里管 Linux 的防火墙,别每次都 SSH 进去敲命令了。
这个需求我其实琢磨有一阵了,加上之前答应过的几件事,2.0 之前要做的功能大概定下来了。今天先跟大家说说七亿批量远程管理工具接下来要加什么,讲个大概,细节还在磨。
一、Linux 防火墙可视化
现在想改防火墙,基本就得 SSH 进去敲 firewall-cmd 或者 ufw。命令本身不难,但是对于新站长来说还是比较困难,还有就是有些运维管理的服务器多,每天敲、每台机器敲,改错了还得自己盯着还是挺麻烦的一件事。所以打算在 SSH 窗口顶栏加一个「🛡 防火墙」按钮,点开是个独立小窗:上面看防火墙类型和运行状态、能一键开关;中间是规则表格,端口、协议、来源、动作一目了然;工具条上直接加、删、改规则。
后端先支持 firewalld(RHEL / CentOS / 欧拉这一挂)和 ufw(Ubuntu / Debian),老的 iptables、nftables 往后再补。不装 agent、不开新端口,复用现有的那条 SSH 连接。
这里有个我最怕的坑得单独说:防火墙这东西,一不留神就把自己关在门外。ufw enable 之后要是没放行 SSH 端口,当前连接当场断,而且再也连不上,只能进机房。所以会做几层保险——SSH 端口直接从主程序的连接配置里读(改成 2222 也认),凡是命中这个端口的规则一律锁死,不给删、不给停;开防火墙之前要是端口还没放行,程序先自动补一条再开;改完还会提示你另开一个会话验证过了再退出当前这个。
目标就一个:不太懂防火墙的人敢点,会用的也觉得省事。
二、防爆破 + 登录审计
这套东西宝塔是放专业版收费的,我准备免费做。
数据全是系统自带的,不用额外装任何软件:登录成功、失败的记录都在 /var/log/secure(Debian 系是 auth.log)里,谁在线上看 last、who。做出来大概三样:
- 登录审计:谁、什么时候、从哪个 IP、成功还是失败、用密码还是密钥,能按 IP 或用户名聚合,一键导出来。
- 自动封禁:盯着最近一段时间的失败记录,同一个 IP 失败到一定次数,自动加一条防火墙 deny,带过期时间,到点自动解。当前连接的 IP 和 SSH 端口永远不封——不然防爆破第一个封的就是你自己。
- 扫描感知:连接数突然变多就提示。想看清楚是谁在扫哪些端口,得给防火墙加一条记录规则,这个做成开关,默认关着。
有件事得说清楚:窗口关了就停,不是后台 24 小时在跑。真要 24 小时防护,就得上服务器常驻。我的做法是把一个几十行的脚本内嵌在程序里,你想用就点一下「开启防护」,程序自动传上去、挂个计划任务,每分钟跑一次、跑完就退,几乎不占内存;不想用了点「关闭防护」清干净。脚本是纯 sh 写的,装之前能直接看内容,不放心自己 cat 一遍再决定。
三、给以后的 AI 留个口子
之前提过要接 AI 做一键诊断,这次没直接做,但顺手把底子铺好了:把功能拆成「只读采集」和「会改系统的动作」两半,都走统一的接口。
现在看是没什么用,纯粹是怕以后接 AI 的时候再回头大改。等 2.0 真接上,大概是这么个流程:点一键诊断,程序把机器信息收上来(密码、密钥这些可以脱敏,发之前能看一遍要发什么),直连你自己选的模型,回一份报告——哪有问题、证据是什么、建议怎么改。每条建议后面挂一个「执行」按钮,你点了才执行。
这条我会一直守着:AI 负责提建议,动手那一下必须是人点。生成命令这事说错一句,线上机器就没法看了。
进度就先不写死了,做工具这行计划列完经常被一个突然冒出来的 bug 打乱。上面这几个你们最想要哪个,或者有别的想法,评论区说一声。
评论