У меня есть сервер Alice и сервер Bob. Alice заблокирована вниз довольно трудная и должна остаться тот путь. Bob подвергается общедоступному Интернету. Время от времени я должен сделать, чтобы Bob заставил сценарий работать на Alice. (причина сценария могла бы быть от внешнего пользователя или от задания крона на Bob.)
[У меня есть полный доступ к обеим машинам]
Это достаточно тривиально, чтобы сделать с SSH. Однако это означает, что ключ к Alice теперь хранится на Bob. Если Bob, где поставленный под угрозу это могло выставить ключ к Alice. (Паранойя работает достаточно глубоко, что они обеспокоены, что физический доступ к Bob мог выставить ключи к Alice. Т.е. вытаскивание диска из Bob и рассмотрение его. Alice заблокирована в отдельной комнате),
Я не надеюсь выполнять просто любую команду. Существует несколько определенных сценариев на Alice, которую я должен исчерпать. (Если там будут исчерпаны злонамеренно, то они ничего действительно не повредят),
Моя текущая стратегия состоит в том, чтобы установить Apache2 (или некоторый другой безопасный интерфейс CGI) на Alice и создать сценарии CGI, которые сделают то, что я хочу. Их назвал бы Bob по мере необходимости. (Я могу добавить безопасность к сценариям, чтобы проверить, что Bob отправил их),
Таким образом для исчерпывания сценария на Alice я просто сделал бы ПОЛУЧЕНИЕ от Bob к сценарию, что я, что работает.
Таким образом, все это сказало: это имеет смысл? Какую очевидную вещь я пропускаю здесь?
Я - вид ответа на мой собственный вопрос здесь. Но я хочу удостовериться, что я делаю его правильно прежде, чем сделать путаницу.
[немного больше детали: сами сценарии довольно безопасны, однако имение достаточного полномочия выполнить команды в сценариях могло быть проблемой. Думайте 'комната oldlog' по сравнению с 'комнатой *'. Сценарии также уезжают, немного больше журнала аудита позади этого могло быть обойдено путем выполнения команд непосредственно.]
«Apache2 (или какой-либо другой безопасный CGI-интерфейс) на Алисе» - это гораздо больше, чем нужно, добавит сложности и значительно расширит вашу «поверхность угрозы». Простой Perl-скрипт на Бобе, отслеживающий события триггера и прослушивающий соединения на каком-либо порту; плюс сценарий Perl на Алисе, который подключается к порту на Бобе и читает события, будет проще.
Я помню, что примеры из книги «Программирование на Perl» (О'Рейли) имеют схожую вещь.
«Если их уволят злонамеренно, они ничего не повредят»? В самом деле? Что делать, если их постоянно увольняют, настолько быстро, насколько это может сделать полная сила извращенной Алисы?