我们的组织拥有一个 Linux 服务器专用网络。该网络与互联网隔离,我们对网络和服务器的个人访问权限有限。
每个服务器都有一个标准用户登录名和一个 root 用户登录名。我们的商店分配通用登录 ID 和密码。例如:
- 标准用户登录名 =
foo
, 密码 =bar
- root 用户登录名 =
super
,密码 =user
foo
我们所有的程序都要求super
使用相关密码登录。
出于可追溯性的原因,我们希望对其进行修改,以便每个授权用户都有唯一的标准用户登录名,但继续使用默认密码。根级别访问登录预计不会更改。
例如,如果我是用户,我可以使用和foo93
登录到我们的任何服务器。其他人可以作为 登录。foo93
bar
foo29
我设想这样的事情:
- 登录
serverX
为foo93
serverX
检查某个中央服务器以查看是否foo93
是有效用户- 中央服务器回复是或否
- 如果是,则授予标准级别访问权限
serverX
。
这可行吗?如何?如果有人指出我该看哪里,我就可以跟着走。
我可以在 CLI 中执行基本操作,但我不知道从哪里开始寻找答案。我在谷歌上搜索了一些访问或密码控制的信息。我得到了有趣的结果,IMO 不适用于这个问题。
答案1
根级别访问登录预计不会更改。
这绝对不是一个选择。为什么有人犯了错误(或者做了恶作剧),以至于您想要跟踪所发生的事情,并以他们的个人用户身份登录?他们不会。那些需要跟踪的重要事情将由 root 来完成。拥有匿名 root 是不负责任的。
坦率地说,我会禁用 root 访问权限每个人。没有可以直接登录的特权用户(或者根密码很长,并且位于办公室的驱动器上,只有管理员知道解密密钥)。如果需要以 root 身份完成操作,请sudo
集中使用和记录访问。这是一个相当标准的政策!
以 foo93 身份登录 serverX serverX 检查某个中央服务器以查看 foo93 是否是有效用户 中央服务器回复“是”或“否” 如果是,则向 serverX 授予标准级别访问权限。我
这听起来像是一个标准方案:具有集中式的 PAM身份管理。这种情况是存在的 - 在 Windows 世界中,它被称为“Active Directory”(您实际上可以针对 Active Directory 域控制器进行身份验证)。对于 Linux 环境,在较小的设置中,除了 Linux 登录之外,您不需要单点登录:您将客户端配置为使用 SSSD 进行登录,特别是通过插件ldap
。这要求中央服务器进行身份验证。它还可以执行诸如在有人第一次登录计算机时创建目录之类的操作。
如果您搜索类似distroname SSSD LDAP guide
.所以这是粗略的想法:
为您的内部域选择一个名称; “airgappednet”什么的。
将一台计算机专用为中央身份服务器(通常,您确实会为此使用虚拟机 - 仅仅是因为您希望能够拍摄快照并将其迁移到备份计算机;否则您将构建单点故障。此外,你是气隙的,当你有互联网时,更容易设置虚拟机,然后将虚拟机映像复制到驱动器上,通过气隙进行传输,然后设置机密内容)
- 安装 openldap 。
- 在该服务器 VM 上设置 Slapd(为此您需要自签名 SSL 证书),以便与身份验证服务器进行加密通信(当涉及密码时,切勿执行未加密的操作,即使在同一气隙网络中也是如此)
- 将用户添加到 LDAP 数据库;域将是
dc
前缀的一部分。
配置客户端使用 LDAP 对用户进行身份验证
- 安装 sssd、sssd-ldap 和 ldap 客户端
- 使用 authselect 选择 SSD 作为授权提供程序软件
- 配置 /etc/openldap/ldap.conf 以使用 LDAP 服务器
- 配置 /etc/sssd/sssd.conf 以使用您的 LDAP 服务器和正确的前缀