设计防火墙策略首先要遵循最小权限原则:默认拒绝所有入站流量,只允许明确必要的出站与入站连接。将主机划分为不同角色(如WEB、SSH、数据库)并为每一类角色制定专门的规则。
开启默认策略(DROP/REJECT),为SSH、HTTP/HTTPS、应用端口分别创建白名单;限制出站到可信IP段;启用状态检测(stateful inspection)。
例如使用iptables:先设默认策略为DROP,再添加允许已建立连接和本地回环的规则,最后单独允许22/80/443等端口。
不要直接在生产服务器上一次性替换全部规则,先在控制台或备份会话下测试,以免锁死管理员访问。
必须开放的端口取决于服务:HTTPS(443)和HTTP(80)通常需要开放;SSH(22)仅对管理IP开放;数据库端口(如MySQL 3306、Postgres 5432)应默认关闭,仅通过内网或VPN访问。
实施端口最小化:仅对外暴露必要端口;对管理员端口实施IP白名单或改用非标准端口并配合密钥认证;使用端口转发或反向代理避免直接暴露后端服务端口。
将数据库端口绑定到127.0.0.1或私有网段,使用SSH隧道或VPN进行访问。对外开放的HTTP服务放在反向代理后面,后端服务仅允许代理IP访问。
定期扫描端口(如nmap)并与服务清单核对,防止遗留服务未被及时关闭或被误配置为开放。
选择取决于技能、可维护性与部署环境。裸机或VPS上可选iptables或更友好的ufw;CentOS/RHEL环境常用firewalld;在云提供商(如AWS/GCP/Azure)上则优先使用云防火墙/安全组来简化网络边界控制。
优先在网络边界(云安全组或物理防火墙)阻断不必要流量,再在主机层使用主机防火墙做细粒度控制。对关键服务同时启用两个层次的防护。
ufw 示例:ufw default deny incoming; ufw allow proto tcp from 管理IP to any port 22; ufw allow 443/tcp; ufw enable。
云安全组规则优先于主机规则,部署时要理解规则优先级;记录所有变更并使用基础设施即代码(如Terraform)管理云防火墙配置。
应实现集中日志与告警、入侵检测、端口转发的安全策略以及访问控制。开启并转发防火墙日志到集中日志系统(如ELK、Splunk或云日志服务),设置阈值告警与异常流量检测。
启用Fail2Ban或类似工具防止暴力破解;对SSH使用公钥认证并禁用密码登录;启用端口敲门或基于时间的访问控制可以进一步降低暴露风险。
配置iptables NAT规则进行端口转发时,只允许来自反向代理或特定子网的流量;日志通过rsyslog转发到集中服务器并触发异常流量告警。
告警策略要避免噪声过多,优先监控针对管理端口的大量连接尝试和非常规来源的流量。
根据业务涉及的合规要求(如HIPAA、PCI-DSS、CCPA)采取相应加密、访问控制和审计措施。持续监测包括流量基线、异常检测、漏洞扫描与定期补丁管理。
启用TLS全程加密、对敏感数据存储加密、记录访问审计日志并长期保留;对外部扫描与渗透测试有计划并保留复测记录。
使用自动化补丁管理工具定期更新系统与应用;部署网络流量采集(如Zeek)配合SIEM做实时分析和告警。
合规不仅是技术控制,还需文档和流程(变更管理、备份与恢复演练、事件响应计划),确保审计可追溯。