如何保护暴露在公网的端口?

起因是之前配置zerotier的自建controller,Webui页面暴露在公网的一个端口号上以供接入。但是登录界面只有密码形式。
请问是否能保护暴露在公网的端口?

防火墙,软的硬的都行

不好意思,我提供的信息太少了,我搭建在云上。
但是你这个思路也适合搭建在NAS上,感谢。

我这边ssh是用fail2ban保护的,验证错误3次以上IP会被ban一段时间。fail2ban也能防护一些web程序,我看到默认配置里有apache和nginx的设置。

web的防御比ssh难一些,毕竟攻击面更多,试试上个WAF?

或者直接等等青蛙和老鼠,毕竟站长的经验更丰富一些……

了解,感谢,我现在去搜索一下相关的教程。这个是不是可以防止被爆破?

对,效果还不错,至少我有几个月没有和矿佬斗智斗勇了(但也可能是我逼着所有人用了16位以上密码)……
我直接发你个教程吧
算了,我的笔记里只有ssh的……

感谢!我稍后尝试一下~~

你搭在云上啊,那整个云都在公网啊

是搭在云上的。
服务是zerotier的自建controller和moon节点。
问题是控制页面的webui是暴露在一个固定公网ip的对应端口上,所以看看有没有办法增加安全性。

看具体项目吧。

zerotier 这种东西,配置一次很久不用管啊,平时把它关了?

也是哦,直接在运营商的控制台把对应端口给关了,用的时候再开。
但是我在想是不是上证书比较好,配和SSL访问对应IP地址。

我有部分服务是用VPS做内网穿透,需要用的时候用SSH打开端口,不用就关闭。SSH设置快捷命令,基本都是一键开关,很方便。

只允许zerotier网络访问webui不就可以了吗,相当于套了一层XXX

frp有安全模式,要两两对应才能访问

参考了所有坛友的回复后,我目前采用的策略是在云的防火墙面板打开对应端口,但是把主机内的防火墙只允许在zerotier定义的内网地址访问这个端口号,此方法目前最方便。
fail2ban研究了一下,原理是通过读取日志的方式找出登录失败的次数并实施对防火墙的修改,但奇妙的是,docker的日志我无法找到登录的详细信息,ztncui本身也没找到登录的日志信息(估计是没做,但不排除没找到),这样也就无法定义ban的规则,没辙。