多网段服务器上统一接入控制需协同路由策略、访问源限制与协议分流:确保网卡IP唯一、静态路由明确、跃点数合理;按网段分协议绑定(办公网仅RDP、运维网仅SSH、管理网双协议限账号);统一审计SSH/RDP日志并联动fail2ban限流;跳板机需网络层nftables过滤+协议层ProxyJump/RD Gateway校验。

多网段服务器上同时提供 SSH 和 RDP 服务时,统一接入控制不能只靠协议层配置,必须结合路由策略、访问源限制和协议分流三者协同。核心思路是:让流量“进得准、判得清、转得对”,避免因路由混乱导致控制失效或策略绕过。
一、先理清网卡与路由的对应关系
服务器若有多块网卡(如 eth0 接办公网 192.168.5.0/24,eth1 接运维网 10.10.20.0/24,eth2 接管理网 172.16.100.0/24),务必确保:
- 每块网卡只配置唯一网段 IP,禁止同网段多 IP(否则内核 ARP 行为异常,导致 SSH/RDP 响应错乱)
- 删除系统自动生成的重复默认路由:route delete 0.0.0.0 mask 0.0.0.0
- 为每个业务网段添加明确静态路由,指定出向接口和网关:
route add -p 192.168.5.0 mask 255.255.255.0 192.168.5.1 if
route add -p 10.10.20.0 mask 255.255.255.0 10.10.20.1 if - Windows 系统还需调整接口跃点数,确保优先走指定网卡:在注册表中设置 InterfaceMetric 值,数值越小优先级越高
二、按网段分协议绑定访问入口
不建议所有网段都开放全部协议。应按安全等级划分职责:
- 办公网段(192.168.5.0/24):仅放行 RDP(TCP 3389),用于日常图形化操作;禁用该网段 SSH 登录(通过 sshd_config 的 AllowUsers 或 Match Address 排除)
- 运维网段(10.10.20.0/24):仅放行 SSH(TCP 22),强制密钥认证;关闭密码登录、root 直接登录
- 管理网段(172.16.100.0/24):SSH + RDP 双开,但仅限特定账号(如 admin@172.16.100.0/24 和 rdpadmin@172.16.100.0/24)
Linux 示例(sshd_config):
开箱即用的技能链路由引擎。13 条预定义链覆盖搜索、开发、审查、MLOps、法律、创意等场景,三层路由架构(触发词→SAD反馈→DAG编排),recall@10=96.97%。配置驱动(chains.yaml),零代码扩展。pip install skill-weave-chains 一键安装。
Match Address 192.168.5.0/24
AllowUsers none
Match Address 10.10.20.0/24
AllowUsers ops dev
Match Address 172.16.100.0/24
AllowUsers admin rdpadmin
三、双协议共存下的统一审计与限流
SSH 和 RDP 日志来源不同,需统一归集并联动控制:
- SSH 日志路径为 /var/log/auth.log(Linux)或 Windows Event Log 中的 OpenSSH 日志(ID 4, 6, 11)
- RDP 登录事件在 Windows 安全日志中 ID 4624(登录成功)、4625(失败),类型为 “TerminalServices-LocalSessionManager”
- 部署 fail2ban 或自定义脚本,将两类失败登录次数合并统计:连续 5 次失败即封源 IP 30 分钟(通过 nftables 或 Windows 防火墙动态规则)
- 所有日志转发至同一 SIEM 平台(如 ELK 或 Splunk),用字段 source_network 和 protocol 做联合查询
四、跳板场景下强化路由与协议跳转控制
若通过跳板机访问多网段服务器,需在跳板机上做两层约束:
- 网络层:nftables 仅允许来自可信源 IP 的连接,并限制目标端口和目的网段
nft add rule ip filter input ip saddr { 192.168.5.0/24, 10.10.20.0/24 } tcp dport { 22, 3389 } ip daddr 172.16.100.0/24 accept - 协议层:对 SSH 转发启用 ProxyJump + Match exec 校验,对 RDP 使用 Remote Desktop Gateway(RD Gateway)策略,限定可访问的目标服务器列表
- 客户端 ~/.ssh/config 可配合:
Match host server-a exec "ip route get 172.16.100.10 | grep -q 'dev eth1'"
确保只有从运维网卡出发的请求才允许跳转到 server-a










