2008-11-29 2 views
0

Я хочу создать веб-интерфейс для управления/администрирования своего Linux-бокса. Например. Я хочу иметь возможность добавлять пользователей, управлять файловой системой и всеми подобными вещами. Подумайте об этом как клон cPanel, но больше для системного администратора, а не для веб-администратора.Передовые методы передового интерфейса Linux для Linux

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

Думаю, еще один важный вопрос: как я буду иметь дело с безопасностью при создании чего-то подобного?

PS: Это как проект для домашних животных и опыт обучения, поэтому меня не интересуют существующие решения, которые делают аналогичную вещь.

ответ

1

Имейте специализированный сервисный демон, работающий как отдельный пользователь - назовем его «managerd». Настройте файл/etc/sudoers так, чтобы «managerd» мог выполнять различные команды, которые вы хотите, чтобы он мог запускаться, как root, без пароля.

Отключить «триггерные» файлы веб-сервера, содержащие команды для запуска в каталоге, который является режимом «770», с группой, в которую входят только пользователи веб-сервера и «менеджер». Убедитесь, что «managerd» проверяет, имеют ли файлы правильное право собственности перед выполнением команды.

Удостоверьтесь, что сторона веб-интерфейса заблокирована - запустите ее только через HTTPS, попросите аутентификацию и, если возможно, введите списки ACL для IP-адресов, чтобы вы могли получить доступ к ней только из известных мест, заранее ,

1

Ваше решение кажется очень разумным решением проблемы «root».

Пара предложений:

  1. Привязка «специализированной службы» к локальной машине, а также поможет гарантировать, что запросы не могут быть сделаны извне.
  2. Проверка функций вызова вызова, которые выполняют действия, а не напрямую предоставляют полный неограниченный доступ к сервису. Поэтому вызов функции «addToGroup (пользователь, группа)» вместо общего «performAction (command)».
Смежные вопросы