使用 PXE 启动时设置恶意 DHCP

使用 PXE 启动时设置恶意 DHCP

最近我想为我公司局域网中的网络设置 PXE 启动服务器(即 DHCP 服务器 + TFTP 服务器 + syslinux 软件)。我已在此处阅读了设置详细信息:http://www.linuxjournal.com/article/9963

但是我没有现有 DHCP 服务器的管理员/访问权限,因此无法更改设置。(您需要将 PXE 服务器 IP 地址放入 DHCP 服务器配置文件中才能使 PXE 启动正常工作)。

我想出于好意进行 PXE 启动(使新操作系统的安装更容易)。我可以设置自己的 DHCP 服务器(不是“合法”的 DHCP 服务器)并将其与 PXE 服务器一起使用来进行 PXE 启动吗?可以吗?

如果我无法设置自己的 DHCP 服务器,该如何解决这个问题?我真的希望 PXE 启动能够简化我的批量安装过程。谢谢。

答案1

您所需要的正是这里所询问和描述的内容: 如果无法更改 dhcp 服务器,如何使用 PXE 设置 Cobbler?

由此可见,在公司环境中设置 ProxyDHCP 服务器是完全有可能的。这实际上仅提供 PXE 启动信息,而不提供 IP/子网/网关/等信息。

仅供参考,如果操作正确,这不是 DHCP 服务器。

答案2

虽然您可以在网络上设置第二个 DHCP 服务器,但没有可靠的方法让计算机优先选择其响应。

但更重要的是,你不应该试图规避公司的政策。这是不专业的。如果你需要访问 DHCP 服务器,请向你的经理说明情况。

答案3

未经网络和系统管理员的许可,您根本不应该创建自己的 DHCP 服务,事实上,未经他们许可这样做应该被解雇。正是这种行为强调了为什么在除客户端环境之外的任何环境中使用 DHCP 都是危险的。

所以重申一下——不要这样做,这是错误的。

答案4

有一种合法的方法可以做到这一点,而且不需要改变现有的 DHCP 服务器配置。事实上,你甚至不需要 DHCP。

虽然这看起来不太理想 - 与在启动时简单地按 F8/F12/等并直接通过网络进入菜单系统相比 - 您可以使用非常小的 (<1MB) iPXE ISO CD 映像通过任何现有的 DHCP 服务器进行启动。如果您正在启动使用 DHCP 的虚拟机 - 例如 VirtualBox、VMware Workstation、VMware ESXi 等 - 这甚至更简单,因为您只需安装 iPXE ISO 并更改启动顺序以从 ISO 启动即可。

步骤如下:

  1. 从安装了 gcc 和 git 的 Linux 机器中获取 iPXE 源代码:

    git 克隆 git://git.ipxe.org/ipxe.git

  2. 创建一个嵌入式 iPXE 脚本,指向您现有的 pxelinux.0:

以下是示例脚本:

#!ipxe
dhcp || goto enterip
goto bootit

:enterip
echo -n IP address: && read net0/ip
echo -n Subnet mask: && read net0/netmask
echo -n Gateway: && read net0/gateway
echo -n DNS server: && read net0/dns
goto bootit

:bootit
chain http://servernameoripaddress/pxelinux.0 

我相信,如果您已经安装了 pxelinux.0 的服务器上没有 Web 服务器,那么“chain tftp://”URI 也能够正常工作。您可能要考虑使用 http,因为它通常比 tftp 快得多。只需将当前 tftpboot 文件夹中的内容 cp -R * 放入 Web 服务器的 DocumentRoot 中,您就可以使用 http 通过 iPXE 而不是 tftp 进行网络引导。

将此脚本文件保存在某处,然后使用刚刚创建的嵌入式脚本构建 iPXE ISO:

cd ~/ipxe/src
make clean
make bin/ipxe.iso EMBEDDED_IMAGE=yourscript.ipxe
  1. 现在启动 ISO 文件 - 通过安装了 ipxe.iso 文件的 VM 或将其写入空白 CD 然后使用该 CD 启动物理盒。

这真是太棒了。iPXE 功能强大,我一直在围绕它开发服务。许多脚本和构建信息都代表了围绕这一开发过程来之不易的信息,希望它能对你有所帮助。你可以查看 netboot.me 或以前的 boot.kernel.org(我相信现在已经不存在了,因为 kernel.org 不久前被黑客入侵了),以了解它在互联网或本地网络上的工作原理。

如果您可以让 DHCP 服务器的管理员最终将其配置为支持网络引导(PXE 引导 - DHCP 选项 66 和 67),那么相同的 iPXE 构建过程可以生成一个引导文件,从而无需 pxelinux.0。它看起来像:

make bin/undionly.kpxe EMBEDDED_IMAGE=yourscript.ipxe 
cp ~/ipxe/src/bin/undionly.kpxe /webserverdocumentroot/ipxe.0

然后,您可以通过正常的 PXE 启动过程直接引导到此 iPXE 文件 - 再次假设您的 DHCP 管理员最终启用了网络启动 - 它将允许您在网络上执行各种漂亮的网络启动操作,无需 ISO 文件。

如果您有任何疑问,请随时告诉我。

相关内容