核心是“只放行必需的,其余一律挡掉”,即通过明确白名单规则关闭非必要端口、限制管理端口访问源ip、隔离内网服务、禁用icmp、设置兜底拒绝规则,实现最小化暴露面。

核心是“只放行必需的,其余一律挡掉”,不是靠隐藏端口或加复杂规则,而是用明确、可验证的白名单逻辑切断扫描路径。
只开业务刚需端口,其他全关
Web服务仅保留80和443,数据库、缓存、管理后台等非公网服务端口(如3306、6379、8080、21、3389)一律不开放入站规则。尤其注意:停用的服务(如旧测试后台、废弃API)对应端口必须从安全组中彻底删除,不能只停服务而留着端口规则。
- HTTP/HTTPS:TCP 80 和 443,源地址设为 0.0.0.0/0(仅限真正需公网访问的Web入口)
- 若已接入CDN或反向代理,把源地址改为该服务商公布的回源IP段(如阿里云CDN、腾讯云CDN均有公开列表),进一步缩小暴露面
- 禁用ICMP入站规则(即删掉默认那条允许所有ICMP的规则),避免被用于主机探测和网络拓扑测绘
管理端口必须绑定固定IP
SSH(22)、RDP(3389)等远程管理端口绝不能对0.0.0.0/0开放。只允许你办公网络或运维专线的固定公网IP(或IP段)访问。
- 例如你公司出口IP是 203.123.45.67,就填 203.123.45.67/32;若使用宽带且IP会变,应先申请静态IP或改用跳板机+密钥登录
- 强烈建议将SSH端口从22改为10000–65535之间的非常规端口(如22222),这不是替代IP白名单,而是叠加一层基础混淆,能有效过滤90%以上的自动化扫描器
- Windows服务器若必须开3389,请同步在系统层启用网络级身份认证(NLA),并关闭旧版加密协议
内网服务严格隔离,拒绝公网穿透
数据库、Redis、Elasticsearch等仅内部调用的服务,其入站规则源地址必须限定为应用服务器的**内网IP**(如172.16.0.10/32),绝对不可写0.0.0.0/0,也不可用“安全组内互通”这种模糊策略代替精确IP控制。
- 不同角色服务器(如Web层、DB层、缓存层)应分属不同安全组,避免规则混杂难追溯
- 若应用与数据库部署在同一台ECS上,仍建议关闭3306等端口的入站规则,改用
127.0.0.1本地连接,不走网络栈 - 禁止为内网服务分配公网IP,确需临时调试时,用云厂商提供的Web终端(如阿里云Workbench)或SSH隧道,而非开放端口
加一条显式拒绝兜底规则
在所有入站规则最底部,手动添加一条最高优先级的拒绝规则:
- 方向:入方向
- 协议:ALL
- 端口范围:-1/-1(即所有端口)
- 源地址:0.0.0.0/0
这条规则不是摆设——它确保任何未被上面白名单明确放行的请求(包括新上线服务忘记配规则、误填CIDR、扫描器随机端口试探)都会被立即拦截,不留策略空档。











