首页 文章

在AWS中,通过ssh proxy sshd进行访问控制

提问于
浏览
0

在AWS中,我们的用户(系统管理员)可以使用SSH隧道访问内部区域数据库服务器,而无需任何本地防火墙限制 . 如您所知,要访问内部节点,用户必须首先通过公共区域网关服务器 . 因为网关实际上是一个通道,我希望控制来自网关服务器上的隧道用户的流量 . 例如,为了获得所有客户端的当前连接的ip地址,为了识别内部路径(例如DB服务器ip),用户进一步访问我希望控制未授权用户的连接 .

为了我的梦想成真,我认为下面的想法是非常理想的 . 1)将sshd端口更改为22以外的其他端口 . 重新启动sshd守护程序 . 2)在sshd之前找到ssh代理(nginx,haproxy或其他),让代理从客户端获取所有ssh流量 . 3)ssh代理将流量路由到sshd 4)然后我可以通过分析ssh代理日志来查看所有用户的活动 . 而已 .

这可能是梦吗?

1 回答

  • 0

    聪明,但有一个严重的缺陷:你不会获得任何新的信息 .

    为什么? SSH中的第一个S:“安全” .

    您设想的“ssh代理”无法告诉您有关SSH连接内部发生了什么的信息,这是隧道协商的地方 . 当然,连接是加密的,SSH的重要一点是它不能被嗅探 . ssh代理在同一台机器上的事实没有区别 . 如果它可能被嗅到,那就不安全了 .

    您的所有SSH代理都可以告诉您入站连接是从客户端计算机进行的,而syslog已经告诉您 .

    实际上,它根本不是“ssh代理” - 它只是入站连接上的一个天真的TCP连接代理 .

    因此,您无法通过此方法了解任何新信息 .

    听起来你需要的是你的ssh守护进程,可能是openssh,记录连接用户 Build 的隧道连接 .

    This blog post(具有讽刺意味的是,你需要绕过无效的SSL证书才能查看)被提到了at Server Fault并显示了对openssh源代码进行简单修改以记录你想要的信息:谁设置隧道,到哪里

    或者,enable some debug-level logging on sshd .

    因此,对我而言,似乎额外的TCP代理是多余的 - 您只需要执行实际隧道(sshd)的进程来记录它正在做什么或被请求做什么 .

相关问题