Настроить мошеннический DHCP при использовании загрузки PXE

Недавно я хочу настроить загрузочный сервер PXE (т. Е. DHCP-сервер + TFTP-сервер + программное обеспечение syslinux) для сети моей компании в локальной сети. Я прочитал подробности настройки здесь: http://www.linuxjournal.com/article/9963

Однако у меня нет прав администратора / доступа к существующему DHCP-серверу, и я не могу изменить настройки. (вам нужно поместить IP-адрес PXE-сервера в файл конфигурации DHCP-сервера, чтобы загрузка PXE работала).

Я хочу сделать загрузку PXE с хорошим намерением (сделать установку новой ОС проще). Могу ли я настроить свой собственный сервер DHCP (не "законный" сервер DHCP) и использовать его с моим сервером PXE для загрузки PXE? Является ли это возможным?

Если я не могу настроить свой собственный DHCP-сервер, как обходится эта проблема? Я действительно хочу, чтобы загрузка PXE упростила процесс пакетной установки. Благодарю.

8 ответов

Решение

То, что вам нужно, это именно то, что было задано и описано здесь: Как настроить Cobbler с PXE, если вы не можете изменить сервер dhcp?

Там вы видите, что очень хорошо можно настроить сервер ProxyDHCP в корпоративной среде. Это, по существу, ТОЛЬКО служит информацией о загрузке PXE, а НЕ информацией IP / подсети / шлюза / и т.д.

И для справки, если все сделано правильно, это не сервер DHCP.

Хотя вы можете настроить второй DHCP-сервер в сети, нет надежного способа заставить компьютер предпочитать его ответы.

Что еще более важно, однако, вы не должны пытаться обойти политику вашей компании. Это непрофессионально. Если вам нужен доступ к DHCP-серверу, сообщите об этом своему менеджеру.

Вы не должны создавать свою собственную службу DHCP вообще без разрешения сети и системных администраторов, на самом деле выполнение этого без их разрешения должно быть увольнением. Именно такое поведение подчеркивает, почему DHCP в любой среде, кроме клиентской среды, опасен.

Так что повторить - не делай этого, это неправильно.

Я сделал такую ​​настройку, используя внутреннюю сеть виртуальных машин.Внутренний VSwitch используется для DHCP / PXE

Таким образом, вы можете протестировать свою конфигурацию, не нарушая работу сети компании. Убедитесь, что сервер DHCP прослушивает только интерфейс, подключенный к внутреннему коммутатору VSwitch.

VM1 запускает стек PXE (DHCP, TFTP...). В этой конфигурации вы можете использовать эту виртуальную машину в качестве маршрутизатора, чтобы предоставить доступ для VM2 к сети вашей компании. VM2 - это виртуальная машина, которая будет загружаться из сети.

Если вы хотите сохранить данные, используйте только внутренний VSwitch и не подключайте VM1 к физической локальной сети.

Существует законный способ сделать это, не затрагивая существующую конфигурацию DHCP -сервера. На самом деле, вам даже не нужен DHCP.

Хотя это может показаться менее чем идеальным - против простого удара F8/F12/ и т.д. при загрузке и доступе к системе меню непосредственно по сети - вы можете использовать очень маленький (<1 МБ) образ компакт-диска iPXE ISO для загрузки с любого существующего DHCP -сервера. Если вы загружаете виртуальные машины, которые используют DHCP - например, VirtualBox, VMware Workstation, VMware ESXi и т. Д. - это еще проще, поскольку вы можете просто смонтировать iPXE ISO и изменить порядок загрузки для загрузки с ISO.

Шаги следующие:

  1. Из коробки Linux с установленными gcc и git возьмите исходный код iPXE:

    git clone 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 

Я считаю, что URI "chain tftp://" также будет работать, если на сервере, на котором у вас уже есть pxelinux.0, нет веб-сервера. Возможно, вы захотите использовать http, так как он обычно намного быстрее, чем tftp. Просто скопируйте cp -R * в вашей текущей папке tftpboot в DocumentRoot для вашего веб-сервера, и вы должны использовать http для загрузки по сети через iPXE вместо tftp.

Сохраните этот файл сценария где-нибудь, а затем создайте iPXE ISO со встроенным сценарием, который вы только что создали:

cd ~/ipxe/src
make clean
make bin/ipxe.iso EMBEDDED_IMAGE=yourscript.ipxe
  1. Теперь загрузитесь с ISO-файла - через виртуальную машину с подключенным файлом ipxe.iso или запишите его на пустой компакт-диск и загрузитесь с физического диска с этим компакт-диском.

Это работает удовольствие. В 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

Затем вы можете напрямую загрузить этот iPXE-файл через обычный процесс загрузки PXE - опять же, при условии, что ваш DHCP -администратор наконец-то включил сетевую загрузку - и это позволит вам выполнять все виды изящных сетевых загрузочных операций в вашей сети, файл ISO не требуется.

Не стесняйтесь, дайте мне знать, если у вас есть вопросы.

Я бы не рекомендовал настраивать DHCP-сервер "Rouge"... даже если бы мы все здесь не могли перечислить все вещи, которые могут пойти не так с этим.

Но есть два (возможно, даже больше) возможных обходных путей:

1.) Создайте портативный компьютер / ноутбук, отключенный от сети компании, с загрузочными образами, dhcp-сервером и всем необходимым. Когда вам необходимо выполнить установку ОС, физически отключите ПК от сети компаний, подключите его к "установочной коробке", выполните установку, а затем снова подключите ПК к сети компаний. Эту настройку легко выполнить даже на старом ноутбуке, она портативна и достаточно безопасна (только не подключайте интерфейс с запущенным dhcpcd к внутренней сети).

2.) Обратитесь к сетевым администраторам и настройте специальную VLAN для установки ОС, а затем запустите настройку там. Когда вам нужно установить ОС (возможно, не слишком часто), свяжитесь с ними, чтобы переключить нужный порт на вашу VLAN и запустить установку. После установки просто скажите им вернуть порт в правильную VLAN.

Запуск нескольких DHCP-серверов, на которых они не все знают о eachoter, я бы не хотел отлаживать:D

Вы можете настроить маршрутизатор с подключенным к его локальной сети интерфейсом WAN, а затем управлять другой подсетью под своим контролем, чтобы вы могли управлять DHCP для своих компьютеров, не влияя на остальную локальную сеть компании, и в то же время получать доступ к ресурсам компании.

Однако я бы не советовал делать это, если вы не можете получить разрешение от соответствующих лиц, так как это, вероятно, будет нарушением какой-либо политики или контракта, которые могут привести к неприятностям.

Полностью согласен с другими парнями, настройка собственного DHCP-сервера - почти всегда плохая идея.

Сказав это, почему вы хотите это сделать? Если это повторяющиеся установки программного обеспечения (а не бездисковых клиентов), вы можете настроить загрузочный диск (или по одному для каждого сервера) и смоделировать фазу DHCP/tftpboot.

Например, мы развернем Red Hat по всему предприятию и используем стандартный сценарий кикстарта, который запускается для настройки новых машин. Когда мы развертываем где-то удаленно от одного из наших DHCP-серверов, мы загружаемся с компакт-диска и просим anaconda извлечь соответствующий кикстарт и пакеты с http-сервера.

Конечно, это бесполезно, если вы ищете решение для тонкого клиента.

Другие вопросы по тегам