真正拦截内网横向移动需从攻击链路入手:111端口是RPC探测起点,445端口是SMB主通道,须同步阻断入口(封111/445等端口)、收敛暴露(限源IP、禁非必要服务)、记录溯源(SYN日志+fail2ban)。

要真正拦截内网横向移动中的RPC与SMB扫描,不能只封端口,得从攻击链路入手:111端口是RPC探测起点,445端口是SMB横向主通道,两者常被联动利用。配置需同步实现“阻断入口、收敛暴露、记录溯源”三层动作。
严格封禁RPC核心端口(111)及辅助服务
111端口(portmap/rpcbind)是所有RPC服务的统一入口,几乎所有横向工具(如rpcdump、BloodHound、Metasploit scanner)都先扫它。必须默认拒绝,仅对确需调用的子网例外放行:
- 在INPUT链最前插入两条DROP规则:iptables -I INPUT -p tcp --dport 111 -j DROP 和 iptables -I INPUT -p udp --dport 111 -j DROP
- 若内网有NFS客户端集群(如10.10.0.0/16),再在其前加精确ACCEPT规则:iptables -I INPUT -s 10.10.0.0/16 -p tcp --dport 111 -j ACCEPT(UDP同理)
- 同步屏蔽高危联动端口:2049(NFS)、892(mountd)、32769–32803(nlockmgr动态端口),TCP/UDP均需覆盖
- 禁用ICMP timestamp(type 13/14)和time-exceeded(type 11),防止攻击者通过ICMP测绘内网拓扑与时钟偏差
收缩SMB服务暴露面,迁移或限制445端口访问
445端口是永恒之蓝(MS17-010)等漏洞的直接入口,也是IPC$、C$共享、远程命令执行的主通道。单纯关闭服务不现实,应分层控制:
- 禁止非管理网段访问445:例如运维网段为10.20.100.0/24,则加规则 iptables -A INPUT -p tcp --dport 445 ! -s 10.20.100.0/24 -j DROP
- 若业务必须开放SMB,启用连接数限制防爆破:iptables -A INPUT -p tcp --dport 445 -m connlimit --connlimit-above 2 --connlimit-mask 32 -j REJECT
- 生产环境推荐迁移到高位端口(如5445),并在Samba配置中显式指定 bind interfaces only = yes 和 interfaces = eth0,避免监听lo或多余网卡
- 配合协议降级防护:在smb.conf中设置 server min protocol = SMB2_02,禁用NT1及更旧版本,规避NTLMv1明文认证风险
启用SYN日志+fail2ban实现可溯防御
仅DROP无法识别扫描意图。必须让防火墙“看见”异常连接尝试,并自动响应:
- 在所有DROP规则前插入LOG规则,专捕RPC/SMB类SYN包:iptables -I INPUT -p tcp --syn -m multiport --dports 111,445,139,2049,892 -j LOG --log-prefix "LATERAL-SCAN: "
- 将日志定向到独立文件(如/var/log/iptables-lateral.log),避免混入系统日志;修改rsyslog配置,添加 :msg, contains, "LATERAL-SCAN" /var/log/iptables-lateral.log
- 配置fail2ban jail,匹配连续3次以上SYN尝试即封源IP 24小时。示例filter:failregex = LATERAL-SCAN.*SRC=
;action可设为iptables-multiport[name=rpc-smb, port="111,445,139", protocol=tcp]
关键资产节点实施白名单通信策略
域控、文件服务器、数据库等高价值节点不应被动封端口,而应主动定义“谁可以连、连什么”:
- 将INPUT默认策略设为DROP,仅放行必需协议:LDAP(389/636)、Kerberos(88)、DNS(53)、NTP(123),且全部限定源IP为运维网段(如-s 10.20.100.0/24)
- 在FORWARD链中禁止跨子网同类服务互访:例如终端网段10.30.0.0/16不可直连数据库网段10.40.0.0/16的445或1433端口,除非明确配置业务白名单
- 对确需开放的SMB共享,强制要求客户端使用Kerberos认证(smb.conf中启用 kerberos method = system 并配置keytab),避免凭据明文传输

















