SSH跳板机通过IP段授权实现访问控制,核心是限制用户仅能从指定网段登录,并结合ProxyJump、tcpwrappers或nftables做细粒度转发过滤,辅以审计日志、LDAP角色映射和动态证书提升安全性。

SSH跳板机(Bastion Host)是访问内网服务器的安全入口,核心目标是:控制谁、从哪、能连到哪些机器。策略设计需兼顾安全性与运维效率,IP地址段授权是其中关键一环。
跳板机基础策略原则
跳板机本身应最小化暴露:仅开放22端口,禁用密码登录,强制使用密钥认证;关闭root直接登录;启用fail2ban防暴力破解;系统保持及时更新。所有用户必须通过跳板机中转访问内网,禁止直连目标服务器的SSH端口。
基于IP段的访问控制(服务端配置)
在跳板机的SSH服务端(/etc/ssh/sshd_config)中,可通过AllowUsers或Match Address实现IP段粒度的准入控制:
- 限制特定用户仅能从某IP段登录:
Match Address 192.168.10.0/24
AllowUsers dev-user ops-user - 全局禁止非授权网段(配合iptables更稳妥):
DenyUsers *(放在Match块外,作为兜底) - 重启生效:sudo systemctl restart sshd
细粒度权限控制(客户端中转逻辑)
跳板机不是终点,而是中转枢纽。推荐使用ProxyJump或ProxyCommand实现“一次认证、链式跳转”,同时结合~/.ssh/config做IP段路由隔离:
- 示例配置(只允许从办公网段访问生产服务器):
Host prod-db
HostName 10.20.30.40
User app-admin
ProxyJump jump-host
Match exec "ip route get 10.20.30.40 | grep -q 'src 192.168.5.0/24'" - 更可靠的做法是在跳板机上部署sshd_config + tcpwrappers(/etc/hosts.allow)或nftables规则,按源IP过滤目标主机的转发请求。
审计与动态授权补充建议
静态IP段授权易维护但缺乏灵活性。生产环境建议叠加以下机制:
- 所有SSH会话强制记录操作日志(auditd + ttyrec 或商用审计代理)
- 结合LDAP/AD统一身份,将用户所属部门/角色映射为可访问的IP段标签
- 临时提权走审批流程,通过自动化工具(如Ansible + Vault)动态下发带时效的SSH证书,替代长期密钥
- 定期扫描跳板机上的~/.ssh/authorized_keys,清理过期公钥
策略落地不靠单一配置,而靠分层收敛:网络层限源IP、系统层控用户、SSH层管跳转、应用层审行为。IP段授权是第一道门,但不是最后一道锁。

















