Sysrqd
Немного об удаленном System Request.
Есть , по сути, два (известных мне) способа. Первый - удаленная консоль (причем имеется ввиду отнюдь не SSH). Про него я “забуду”, поскольку терминальные серверы реализуются сейчас не так, как раньше, и такой реликт обнаружить… сложно. Я не видел.
Второй способ - sysrqd, о котором и пойдет речь.
Демон простенький, как в смысле управления, так и в смысле работы.
Установка.
Ставится он в debian и производных как обычно:
$ sudo apt-get install sysrqd
После этого нужно задать пароль (цитата из /usr/share/doc/sysrqd/README.Debian с моими поправками):
$ sudo bash -c "echo \"mypassword\" > /etc/sysrqd.secret" && sudo chmod 0600 /etc/sysrqd.secret
Эти команды запишут пароль mypassword и запретят его читать всем кроме рута.
После этого можно подключаться телнетом к порту 4094 по TCP.
Использование.
После ввода пароля, команды рекомендую вводить построчно (то есть буква - enter, и тд), хотя если ввести их подряд (например sub<enter>), они выполнятся последовательно. Беда в том, что обе команды S, U требуют около секунды на выполнение (по крайней мере у меня), а при выполнении таким образом у них не будет и полсекунды.
Особую осторожность следует соблюдать при использовании команд tErm и kIll, поскольку они убьют ВСЕ процессы, в том числе и SysRqD.
Так, например, если нужна перезагрузка, то лучше ввести команды в такой последовательности:
S, U, I, после чего нажать “reset”.
Следует быть ОЧЕНЬ внимательным, невнимательность приведет к необходимости “холодного” ребута, что, в свою очередь, может повлечь за собой потерю данных.
Безопасность.
Вообще, включать SysRq на работающем сервере может оказаться потенциально опасным. Помимо вреоятности гипотетических злоумышленников, которые могут набрать на клавиатуре хотя бы Alt+SysRq+O, есть еще вероятность уборщицы тети Маши, которая может эту самую клавиатуру уронить, а вместе с ней и все остальное (у меня сервера прикручены, а убираюсь я сам, но стоит учитывать вероятность).
Еще опаснее включать SysRq при возможности удаленного подключения. При сигнале с удаленной консоли <break>, сервер начинает слушать sysrq, что может привести к очень и очень плачевным последствиям, как уже говорилось выше (опять же, терминалы нынче все на XDMCP, а то и на чем покруче, никаких LPT-хабов уже нет, так что все не так страшно).
Что касается sysrqd, то аунтефикация у него - plaintext, что не может радовать. На всех внешних интерфейсах, поэтому, порт 4094/tcp стоит закрыть. Я бы сказал, что можно подключиться по SSH-туннелю, однако, может случиться так, что SSH не будет отвечать, и спасти вас сможет только sysrqd на локальном интерфейсе. Наиболее резонный способ - создать “админский” интерфейс, с которого может подключиться только компьютер администратора, и разрешить подключения по 4094 порту только на нем. У меня, по крайней мере, работает, с незначительными поправками, именно так. Таким образом вероятность перехвата пароля - минимальная.