仅允许特定 IP 访问特定端口

诉求及策略

尽管最终目标“禁止 IP + 端口访问”未实现,不过也算是已经变相满足安全诉求。这是第三种用来屏蔽外界直接访问特定服务之解决方案,之前两种,一种是直接不暴露 Docker 容器端口借助反代从根源上达到目的,另一种是通过自定义容器内配置文件以达到屏蔽外界通过 IP 地址直接访问服务之可能性,这第三种比较特殊,不能通过上述那两种方法达到目的,必须要暴露并映射端口才能使用,也无法通过自定义配置文件去屏蔽。具体策略就是,仅允许特定 IP 访问某个端口且开机自动运行,尽管无法通过反代访问,不过就算是没有 ssl 配置之安全加持,外界也无法访问特定端口之服务。最终,特定之服务,只能通过特定 IP 地址访问,其实就是代理地址。

第 1 步

安装ipset工具,并新建add_ips.sh脚本。

第 2 步

add_ips.sh脚本中添加以下内容。

第 3 步

赋予add_ips.sh执行权限,并新建add_ips.service开机自动运行服务文件。

第 4 步

add_ips.service文件中添加以下内容。

第 5 步

重新加载配置,设置开机自动运行,启动服务,查看运行状态。验证配置是否已经生效。

第 6 步

重启服务器,验证是否开机自动运行。

命令备忘

鸣谢

所有解决思路和方案探讨,以及最终诉求达成,全部来自 ChatGPT 之建议。

THE END