首页/安全/取证与溯源速查/SSH 端口转发配置与监听核查
Linux 取证135 条

SSH 端口转发配置与监听核查

SSH 可建立本地与远程转发,把内网端口暴露到外部或把外部端口引入内网;服务端监听端口出现非业务进程时优先怀疑转发。

取证与溯源速查安全更新于 2026-10-13

SSH 端口转发核查

SSH 端口转发能把某个端口的流量通过加密隧道转发出去,既是运维常用手段,也是绕过边界访问内网资源的常见通道。服务端由 AllowTcpForwarding、GatewayPorts、PermitOpen 控制,客户端用 -L、-R、-D 发起,判断时必须两侧一起看。

基本信息

服务端控制项AllowTcpForwarding、GatewayPorts、PermitOpen
本地转发ssh -L,把本地端口映射到远端服务
远程转发ssh -R,把远端端口映射回本地服务
动态转发ssh -D,提供本地 SOCKS 代理
生效确认sshd -T | grep -i forward
权限要求修改服务端配置需要 root

典型使用场景

  • 排查加密隧道内的横向访问
  • 确认服务器是否允许端口转发
  • 分析未知监听端口的来源
  • 与边界策略对照评估绕过风险
  • 加固时按实际需要限制转发能力

最小示例

最小示例
ss -tlnp | grep -i sshd                          # 是否有 sshd 相关监听
sshd -T 2>/dev/null | grep -Ei 'allowtcpforwarding|gatewayports|permitopen'
grep -Rn 'AllowTcpForwarding\|GatewayPorts\|PermitOpen' /etc/ssh/sshd_config /etc/ssh/sshd_config.d/ 2>/dev/null
ps -ef | grep -E 'ssh .*-[LRD]' | grep -v grep   # 检查出向转发进程
ss -tlnp | head -20                              # 本机监听端口全貌
journalctl -u sshd --since today | tail -10      # 近期 sshd 相关记录

配置与风险

配置或行为含义风险
AllowTcpForwardingall 允许、no 禁止,也可分别限制方向开启时隧道可穿透网络边界
GatewayPorts决定转发监听是否绑定全部地址为 yes 时暴露面明显扩大
PermitOpen限制转发目标地址未设置时转发目标不受限
ssh -L本地端口映射到远端服务常用于访问内网数据库
ssh -R远端端口映射回本地可把内部服务暴露到外部
ssh -D本地 SOCKS 代理被用于搭建通用代理通道
GatewayPorts 为 yes 时远程转发会监听全部地址,风险面明显扩大;排查时要把该值与实际监听端口放在一起核对。
客户端一次 -R 或 -L 就能建立通道,本地不一定留下明显文件;结合进程列表与网络连接视图更容易发现。
禁止转发并不等同于禁止登录,反之亦然;加固要按实际需要分别设置转发能力与登录权限。
变更转发相关配置会立即影响现有隧道与业务连接;取证阶段只记录现状,处置动作另按流程执行。

易错点

  • 只看客户端不看服务端:是否允许转发、允许哪些目标都由服务端配置决定,单看一侧判断不全
  • 忽略 GatewayPorts:该值为 yes 时监听范围扩大,边界暴露风险被严重低估
  • 把转发当登录:隧道建立与交互式登录是两回事,日志表现与处置方式都不同
  • 取证期间调整转发配置:可能切断在用隧道,也会改变证据环境

数据来源与参考

  • OpenSSH 手册(ssh(1) 端口转发、sshd_config(5))
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌