Будет ли простой способ удаленного выключения компьютера, как в отличие от Wake On LAN? Я могу легко использовать программу, такую как приложение для iOS, где я просто нажимаю кнопку, и она запускается. Могу ли я сделать то же самое в обратном порядке? Например, нажмите кнопку, и она выключится? Какой самый простой способ сделать это? Или это невозможно так, как я описал?
2 ответа
Это вопрос безопасности и реализации. Быстрый ответ - нет, нет ничего такого простого.
Wakeup On LAN
(WOL [1]) - это протокол, реализованный на аппаратном уровне, предназначенный для минимизации усилий, необходимых для включения машины в среде, требующей высокой доступности, но не обязательно работающей 24/7 (таким образом, машины могут быть выключены). Он реализован на уровне набора микросхем, поэтому, пока компьютер подключен к источнику питания, его сетевая интерфейсная карта (NIC) будет прослушивать пакеты WoL. Как только пакет прибудет, он запустит сигнал включения ACPI, который запустит процесс загрузки. Пожалуйста, поймите, что компьютер фактически включен, даже когда он выключен, но питание будет отключено для большинства внутренних устройств, включая вентиляторы и диски.
Проблема безопасности
Хотя WOL (согласно Википедии [2]) имеет последствия для безопасности и дополнительные механизмы аутентификации, они, как правило, менее важны, чем Shutdown On LAN
. Позвольте мне лучше объяснить. Если в центре обработки данных вредоносное приложение начинает отправлять множество случайных пакетов WOL на несколько серверов (рассмотрим среды облачного хостинга, где клиенты загружают свои приложения), худший ущерб, который они могут нанести, - это увеличение энергопотребления на объекте. Это может быть позже смягчено админами.
Если бы такой протокол Shutdown On LAN существовал, можно было бы отключить весь центр обработки данных, возможно, с использованием DoS-атаки старой школы.
Особенности реализации
Это относительно. Протокол выключения по локальной сети все еще может быть осуществим. Однако учтите, что событие включения питания может обрабатываться на аппаратном уровне (ACPI), а выключение - нет. Вы можете просто включить компьютер, чтобы запустить его в жизнь, но вы не можете просто отключить питание от OLTP-сервера без потери данных, поэтому он зависит от реализации ОС и запускает правильную процедуру завершения работы. Противоположность ОС независима.
Тем не менее, протокол может фактически послать ядру событие ACPI power, которое может выбрать, как правильно его обработать. К сожалению (и мы снова приходим к безопасности), ACPI не имеет механизма аутентификации, связанного с событиями питания. Другими словами, события ACPI отражают нажатие физической кнопки, что далеко от соображений компьютерной безопасности. Вы не можете позволить аппаратным средствам общаться с ОС через ACPI и обеспечивать аутентификацию.
Заключение
Самый простой способ реализовать завершение работы в локальной сети - использовать возможности удаленного доступа ОС. Как уже подчеркивалось @NoAngel, выдача аутентифицированной команды через SSH или Remote Powershell [3]. Я сейчас пытаюсь это дома на Windows Server 2012 Datacenter
- Linux host:
ssh root@remotehost 'init 0'
- Узел Windows:
Stop-Computer -ComputerName remotehost -Credential Administrator -Force
Нет такой вещи, как противоположность Wake On LAN. Просто запустите poweroff удаленно.
ssh root@host poweroff