网络管理员

网络管理员

我经常需要部署作为模板设置的 Linux rpm 风格的服务器,供世界各地远程站点的客户使用。

在使用 selinux 之前,我会让远程管理员创建一个与我的模板具有相同内核级别和类似分区的基本服务器。

然后我将通过完整模板服务器 tarfile scp 到远程。然后我只需从完整系统“tar 文件”还原中排除以下内容:fstab、网络、/hoot、grub 目录、passwd/shadow,我就可以启动并运行远程。

我相信我还需要确保我有相同类型的 selinux 模式(目标),并且我排除目标中的 /etc/selinux 被覆盖。

问题是遥控器将启动并显示 motd 并要求输入登录密码,它不会让任何帐户进入。我没有控制台访问遥控器的权限,也无法从救援 CD 启动它们。

我的问题是,我必须执行哪些 selinux 操作才能从 tarfile 将几乎整个源模板服务器恢复到远程服务器上?

答案1

我肯定会考虑使用像 ansible、salt、chef 或 puppet 这样的配置管理工具(或其他我现在想不起来的工具)。

如果您有网络访问权限,它不仅允许您模板化您关心的系统部分,还可以轻松地使一切保持最新。

如果您无权访问,它允许有权限的人下载您的配置管理代码和相关软件来理解它们,并在系统上本地运行它们。

您的实际问题听起来不像与 selinux 有关。

听起来密码/帐户可能已经改变,或者 SSH 服务器现在只允许基于密钥的登录 - 这在很大程度上取决于您的具体错误消息(也许您可以分享),以及系统可能发生的其他事情。

不过,听起来您的方法确实可能会出很多问题——在不知道之前有什么的情况下将完整的系统映像提取到服务器/在服务器上可能会导致各种问题。

您能否请某人在本地检查系统(并查看他们是否可以登录和/或在控制台上看到任何内容),或者从本地的另一个系统跳转到该系统?

答案2

我的问题是,我必须执行哪些 selinux 操作才能从 tarfile 将几乎整个源模板服务器恢复到远程服务器上?

  • 首先你需要确定 SELinux 是问题所在。

使用例如 ESXi 或 KVM 的免费层(其他虚拟机管理程序也可用)创建实验室,然后生成您可以“物理”访问的虚拟机,这应该相当简单。

您可以将 SELinux 置于 Permissive 模式,编辑 /etc/selinux/config 并确保

 SELINUX=permissive

但请注意,如果它已被禁用,则您的问题就出在其他地方。

如果将 SELinux 设置为宽容可以“解决”问题,那么可以在 /var/log/audit/audit.log 中找到原因,查找 AVC 拒绝消息。

您可以尝试的一个快捷方法是restorecon -r /重新标记文件系统。

除此之外,它还会深入研究日志并根据需要调整 SELinux 配置以满足您的需求。

开始研究适当的配置管理工具可能是一个好主意。

相关内容