如何在远程模式下建立对服务器的安全访问



在哈布雷(Habré)上已经有数十篇文章,讲述人们如何体验到偏远地区的过渡,他们如何体验偏远地区的第一天,第一周的经历等等。有时,在描述情感之间会有一些实用的建议。作为拥有12年远程服务器管理经验的人们,我们决定讨论一种工具,没有该工具,远程服务器将对您的企业构成相当危险的事件。为什么? -因为人们会考虑任何事情(首先,当然要考虑“缩放”中该死的40分钟免费),而不是安全性。当然,更准确地说,您考虑过这个问题-但是我们敢打赌,他不是第一个排队的人吗?

和反问:我想知道您的想法导致了什么。毕竟,您的同事们坐在舒适的公寓和房屋中,通过不受保护的渠道使用不受保护的设备并从字面上触摸公司的所有服务器...

我们希望与您共享我们公司用作堡垒服务器的工具的开源版本。它称为DevOpsProdigy隔离身份验证服务器

怎么运行的


1. Isolate为SSH登录添加了一次性密码和两因素身份验证。您可以为此使用YubiKey设备Google Authenticator应用程序。即使用户在没有OTP密钥的情况下从帐户中丢失了密码,攻击者也无法使用该密码并访问隔离服务器。为了实现两因素身份验证,我们使用了pam模块。您可以在这篇旧文章中阅读有关此内容的更多信息

2.用户无法直接访问最终服务器-连接通过隔离服务器,并且系统监视并记录他们的所有活动。

所有用户操作归结为使用两个命令:

s <search-str>-要通过项目名称或服务器名称搜索信息,信息存储在内置的Redis数据库中,该数据库已被授权关闭。

g <ip-address> / g <project-name> <server-name>-开始对此命令的调用/usd/bin/ssh 。呼叫参数(例如,用户名,ip地址,端口,代理)从数据库中获取。

3.易于管理对身份验证服务器的访问-添加/删除用户等。你可以找到在自述中使用的命令大量的实例auth-add-userauth-add-host等等。

从技术上讲,你需要生成,并把隔离服务器密钥的目标服务器上,并且用户必须从须藤到隔离服务器经常访问的ssh。

并且当他们想要连接到目标服务器时,系统将执行ssh命令。接下来,从特权用户启动的ssh客户端将收到一个密钥,系统将使用该密钥依次访问所需的服务器。

就这样。隔离可在CentOS 7 / Ubuntu 16.04 / Debian 9安装程序上运行。还需要Ansible 2.3+

我不得不注意到DevOpsProdigy隔离它在“和平时”中也很有用:即使有人丢失了带有SSH密钥的笔记本电脑,您也可以对服务器保持冷静。当拥有访问权限的员工离开公司时,您将不必着急更改所有密码和密钥。现在,我们正在为该工具的当前版本准备一系列改进和功能,这些改进和功能在内部系统中实现。我们正在github存储库中等待愿望,问题,PR 对于讨论和问题,还有电报聊天Slack中聊天

因此,现在您公司中的远程工作可能会变得容易一些。而且可以肯定-更安全。祝好运

All Articles