保护报表数据库

网络安全Beginner
立即练习

介绍

报表应用从另一个 PostgreSQL 数据库读取合成商店订单。External Probe 目前也能访问该数据库。你需要关闭非预期连接路径,同时保持报表页面可用。

本挑战从独立环境开始。请把引导实验中练习过的连接探测、路由查看与有序 Gateway 规则,迁移到不同的地址图和数据库端口。

保护报表数据库

当前情况

打开 Order Page,查看报表应用的订单、网络图与实时连接观察。Report Client 是合法应用节点,External Probe 代表非预期客户端,Gateway 控制它们的转发流量。各容器的网络命名空间独立,但共享同一个实例内核。

范围

只修改运行中的 Gateway 的 LAB_FORWARD 链。不要更改路由、地址、凭据、数据库设置、应用代码或服务。父链 FORWARD 已接好,并会拒绝未匹配的流量。规则只需在本次实验会话中有效,不涉及重启持久化。

来源 目的地 要求
Report Client 172.29.10.40 数据库 172.29.20.15:5544 允许真实 PostgreSQL 读取
External Probe 172.29.10.50 数据库 172.29.20.15:5544 阻断新的 TCP 连接
两个客户端 公共状态 172.29.20.15:8001 允许

客户端的下一跳为 172.29.10.254,数据库通过 172.29.20.254 返回。固定连接信息是用户 shopapp、密码 training-only、数据库 shop、表 orders,列为 id 和 item。tcp-probe ADDRESS PORT、ip route get ADDRESS、psql 与 curl 的用法和之前相同。报表应用使用相同数据库凭据。

规则字段参考:-A 追加,-s 匹配来源,-d 匹配目的地,-p tcp 匹配协议,--dport 匹配目的端口,-j 选择动作。-F CHAIN 只清空指定链;-nvL CHAIN 显示数字规则与计数。响应需要连接跟踪。宽泛拒绝若位于精确允许之前,会优先生效。

你的目标

报表数据库必须接受合法客户端,并拒绝 External Probe 的新 TCP 连接,同时保留报表页面与公共状态服务。数据库及其凭据必须保持不变。

验收标准

  • Report Client 使用固定凭据,通过 5544 端口的 PostgreSQL 读取真实记录。
  • External Probe 无法向该端口建立新 TCP 连接。
  • External Probe 仍能从 8001 收到 PUBLIC STATUS OK,报表订单仍能加载。
  • 修改后,通过 Order Page 创建的订单 practice-2 存在,商品为 Green tea。无需报告或截图。

提示

例外规则应该使用哪个来源?

使用真正发起数据库连接的客户端,而非浏览器或 Gateway 的地址。网络图和 ip route get 能帮助确定来源。

为什么合法流量也停止了?

比较首先匹配的规则、目的端口与响应处理。本挑战的数据库端口不同于引导实验。输入有误后可以重建实验专用链。

身份验证失败能证明风险已阻断吗?

密码被拒绝说明已经到达 PostgreSQL。用 TCP 探测检查禁止路径,用真实查询检查允许路径,并单独测试公共状态。

总结

你把网关过滤方法迁移到新的客户端和端口,同时保留数据库支持的报表及公共状态。实际允许与拒绝测试证明结果;保持宽松网关、停止数据库或使用错误密码,都不能满足目标。

✨ 查看解决方案并练习