Лучшие практики веб-интерфейса Linux
-
11-07-2019 - |
Вопрос
Я хочу создать веб-интерфейс для управления / администрирования моей системы Linux. Например. Я хочу иметь возможность добавлять пользователей, управлять файловой системой и тому подобными вещами. Думайте об этом как клон cPanel, но скорее для системного администратора, а не для веб-администратора.
Я думал о создании службы, работающей на моем компьютере и выполняющей все задачи системного уровня. Таким образом, у меня может быть четкое разделение между моим веб-интерфейсом и реальной логикой. Страницы сервера могут затем вызывать мой специализированный сервер или ставить задачи в очередь. Однако я не уверен, что это будет наилучшим способом решения этой проблемы.
Думаю, еще один важный вопрос: как мне поступить с безопасностью при создании чего-то подобного?
PS: Это как проект для домашних животных и опыт обучения, поэтому меня не интересуют существующие решения, которые делают подобное.
Решение
Демон специализированной службы работает как отдельный пользователь - назовем его 'managerd'. Настройте файл / etc / sudoers так, чтобы 'managerd' мог выполнять различные команды, которые вы хотите, чтобы он мог запускать от имени пользователя root без пароля.
Пропустите на веб-сервере " триггер " файлы, содержащие команды для запуска в каталоге, который находится в режиме «770» с группой, членами которой являются только пользователь веб-сервера и «managerd». Убедитесь, что 'managerd' проверяет правильность владения файлами перед выполнением команды.
Убедитесь, что сторона веб-интерфейса заблокирована - запустите ее только по протоколу HTTPS, потребуйте аутентификацию и, если это возможно, добавьте списки ACL для конкретного IP-адреса, чтобы вы могли получить к нему доступ только из известных мест. Р>
Другие советы
Ваше решение кажется очень разумным решением корневой проблемы. Р>
Пара предложений:
<Ол>