围绕《跳板机 转发 与 策略路由 结合的安全设计与示例配置》这个主题,本段给出对成本与效果的快速判断:对于中小型企业,最佳方案通常是使用一台硬化的跳板机,配合系统级的策略路由和最少权限的转发规则;最好(稳定)是把日志、两步验证、流量标记和独立路由表结合;最便宜的做法是在现有Linux服务器上启用SSH端口转发和简单的ip rule/ip route配置,成本最低但需额外关注监控与审计。
设计目的是在不扩大攻击面下,通过跳板机实现对内网服务器的审计与访问控制,同时利用策略路由将不同类别流量送入不同出口或安全链路。威胁模型包括跳板机被攻破、横向渗透、非法端口转发和流量绕过。防护方向包括最小权限、流量打标、路由隔离与严格日志。
典型架构:边界防火墙 → 跳板机(Bastion)→ 内网目标服务器。跳板机负责转发(SSH隧道、SOCKS5、代理转发或端口转发),同时在内核层用策略路由决定哪些转发走正常出口、哪些走审计链路或VPN。关键点:路由表隔离、fwmark标记和反向路径过滤策略。
在跳板机上应禁用不需要功能:关闭密码登录(UsePAM/PasswordAuthentication no),限制SSH端口,启用公钥认证和强制命令(ForceCommand)或< b>PermitOpen仅允许必要的目标端口;安装fail2ban/iptables限制暴力破解;启用2FA并记录所有会话(auditd或session recording)。
采用最小化的转发策略:明确允许的本地/远程端口转发、禁止X11/Agent转发(ForwardX11 no,AllowAgentForwarding no),对SSH配置使用Match子句限制用户组的端口转发能力。例如:Match Group jumpers PermitOpen 10.0.0.5:22。
策略路由是基于源地址、流量标记(fwmark)、接口等决定路由表的机制。通过 ip rule 和 ip route 可以把被标记的流量推到特定路由表,从而走不同的出口或经过安全检查链路(例如透明代理或VPN)。与防火墙结合可以实现细粒度流量控制。
示例命令(在跳板机上):
iptables -t mangle -A PREROUTING -s 10.0.0.0/24 -p tcp --dport 80 -j MARK --set-mark 100
ip rule add fwmark 100 table 100
ip route add default via 192.0.2.1 dev eth1 table 100
说明:将来自内网的 HTTP 流量标记为100并使用表100的路由,这样可以把审计或出口分离。
思路:按用户在跳板机上做打标,连接出站前打mark。可以用iptables根据UID标记流量:
iptables -t mangle -A OUTPUT -m owner --uid-owner jumpuser -j MARK --set-mark 200
ip rule add fwmark 200 table 200; ip route add default via 198.51.100.1 dev eth2 table 200
这样jumpuser的所有出站流量走专用审计出口,便于隔离和流量审计。
sshd_config示例要点:
Port 2222
PermitRootLogin no
PasswordAuthentication no
AllowTcpForwarding yes
Match Group jumpers
PermitOpen 10.0.0.5:22,10.0.0.6:22
结合ForceCommand脚本可在每次登录时记录环境、审计会话并应用特定iptables规则。
当转发流量离开跳板机经NAT时可能丢失原始源IP,影响审计。可选择不做SNAT,或者在内网边界保留源IP并在跳板机记录会话原始信息。若必须SNAT,尽量在路由或日志中记录映射关系。
确保集中日志(rsyslog/ELK)、审计会话保留、异常行为自动报警。定期审计跳板机上的用户、Key、Allow rules。对策略路由变化做变更管理,避免路由回环或黑洞。
将跳板机的转发能力与策略路由结合,可以在网络层实现访问隔离、按用户或服务分流和审计链路分离。建议分步实施:先在测试环境验证 iptables+ip rule 的效果,再逐步在生产跳板机上开启最小权限转发,并把日志与自动化工单结合,形成可审计的安全访问体系。
