linux防火墙防内网横向移动的关键是“管内”:默认拒绝内网通信,按源地址与zone细粒度划分信任边界,静默丢弃非白名单流量,限制ssh等连接速率,并严格管控出站与转发。

Linux 防火墙要真正防住内部恶意流量扫描与横向移动,关键不是“拦外”,而是“管内”——即对内网流量做细粒度识别、状态感知与行为约束。默认放行内网所有通信是最大风险源,必须转向“默认拒绝 + 按需放行 + 行为限速”的主动防御模型。
按源地址与区域严格划分信任边界
内部威胁往往源于已被攻陷的终端或跳板机,因此不能假设“内网可信”。firewalld 的 zone 机制是落地该策略的核心:
- 将不同业务网段(如运维区 192.168.10.0/24、数据库区 192.168.20.0/24、办公终端区 192.168.30.0/24)绑定到不同区域(如 trusted、dmz、workstation)
- 每个区域设置独立的默认策略:例如 dmz 区域默认 reject,仅显式允许来自 trusted 的 3306/tcp;workstation 区域禁止任何出站到数据库端口
- 避免使用 public 区域承载内部服务,它默认宽松,易成横向移动跳板
阻断扫描行为:静默丢弃 + ICMP 失真
内网扫描(如 nmap -sS、-sn)依赖响应反馈。防火墙应让非白名单流量“石沉大海”,而非返回 RST 或 ICMP 不可达:
Linux 性能分析与调优专家,覆盖 CPU、内存、磁盘 I/O、网络、内核参数、编译优化、容器/K8s。适用场景:系统卡顿/高负载、内存不足/OOM/Swap 高、CPU 异常/iowait 高。
- 对 TCP 新连接(state NEW),只放行明确授权端口(如 SSH 22、HTTPS 443),其余全部 DROP(非 REJECT),避免暴露端口状态
- 禁用三类关键 ICMP 响应:Time Exceeded(traceroute 中途节点)、Destination Unreachable(目标主机拒绝)、Echo Reply(ping 回复)。命令示例:
firewall-cmd --permanent --add-rich-rule='rule protocol value="icmp" icmp-type="time-exceeded" drop' - UDP 扫描(如 dnsenum)同样需限制:仅保留必要端口(如 53/udp),其余新连接 DROP
限制连接行为,抑制横向移动节奏
攻击者横向移动依赖高频试探(如爆破 SSH、遍历 SMB 共享、反复连接 Redis)。防火墙需在协议层直接控速:
- 对 SSH 端口启用连接速率限制:
firewall-cmd --permanent --add-rich-rule='rule service name="ssh" limit value="3/m" accept'
超限后自动丢包,不触发登录失败日志,降低暴力破解成功率 - 对数据库端口(3306、5432、6379)禁止来自非业务网段的连接,且单 IP 每分钟新建连接不超过 5 次
- 禁用内网常见横向通道协议:显式 drop FTP(21/tcp)、Telnet(23/tcp)、RSH(514/tcp)、SMB(139/445/tcp)等非加密或高危服务端口
区分流量方向,严控出站与转发
横向移动常通过被控主机向外联络 C2 或向内探测。仅控入站远远不够:
- 服务器本机出站(OUTPUT 链)也设默认 DROP,仅允许 DNS(53/udp)、NTP(123/udp)、软件源(如 80/443)等必需出口
- 若机器充当网关或跳板,FORWARD 链必须严格匹配源/目的区域+端口+协议,禁止跨安全域任意转发
- 启用 conntrack 状态检测,只放行 ESTABLISHED,RELATED 流量,阻断伪造会话或非对称连接










