首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在AWS中,使用ssh代理+ sshd进行访问控制。

在AWS中,使用ssh代理+ sshd进行访问控制。
EN

Stack Overflow用户
提问于 2016-07-15 06:31:41
回答 1查看 72关注 0票数 0

在AWS中,我们的用户(系统管理员)可以使用SSH隧道访问内部区域DB服务器,而不受任何本地第一墙的限制。如您所知,要访问内部节点,用户必须先通过公共区域网关服务器。因为网关实际上是一条通道,所以我希望控制网关服务器上隧道用户的流量。例如,为了获得所有客户端当前连接的ip地址,要确认用户访问的内部路径(例如DB服务器ip),我希望控制未经授权用户的连接。

对于我的梦想成真,我认为下面的想法真的是理想的。1)将sshd端口更改为22以外的其他端口。重新启动sshd守护进程。2)在sshd之前定位ssh代理(nginx、proxy等),并让代理从客户端获取所有ssh流量。3) ssh代理将流量路由到sshd 4)然后通过分析ssh代理日志可以看到所有用户的活动。就这样。

这可能是梦吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-15 10:27:04

聪明,但有一个关键的缺陷:你不会获得任何新的信息。

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

您所设想的"ssh代理“将无法告诉您SSH连接内部发生了什么,而SSH连接正是在这里协商隧道的。当然,连接是加密的,SSH的一个重要点是它不能被监听。ssh代理位于同一台机器上这一事实并没有什么不同。如果它能被嗅出来,它就不会安全。

SSH代理可以告诉您的是,入站连接是从客户端计算机创建的,syslog已经告诉您了。

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

因此,您将无法通过这种方法了解任何新的信息。

听起来,您需要的是ssh守护进程(大概是openssh )记录由连接用户建立的隧道连接。

这篇博客文章 (具有讽刺意味的是,您需要绕过无效的SSL证书才能查看)提到了服务器故障,并显示了对openssh源代码的简单修改,以记录您想要的信息:谁设置了隧道,以及在哪里。

或者,在sshd上启用一些调试级别的日志记录。

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38389285

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档