В настоящее время я владею маленьким VPS-сервером, размещенным в OVH. Он служит домом для нескольких экспериментов с Linux, некоторые файлы, которые мне нужно было поделиться, и клоун-фиеста по вопросам безопасности и запущенных веб-сервисов, которые я настроил несколько месяцев назад и в конечном итоге забыл.
Хотя я все еще учусь, как работать с Linux и как защитить сервер, я узнал на своих ошибках и разработал новый и улучшенный план.
Старый план
Два года назад я был поражен Sysadmins и как им удалось установить свои серверы. Вдохновленный им и надеясь, что смогу обеспечить некоторую безопасность, я написал несколько ключевых моментов:
- Только порты 80 (http), 443 (https) и 22 (ssh) открыты
- У каждого сервиса есть определенная учетная запись Linux
- Каждая служба слушает на localhost
- Nginx подвергает эти услуги через обратные прокси
- NGINX маршруты трафика к услугам с использованием субматочных доменов
- Давайте шифруем сертификаты для каждого поддона
Все выглядело великолепно, и я был взволнован, но с течением времени этот план быстро ударил меня в спину.
Старые недостатки плана
Разрешения стали болью в заднице
Несколько вещей не работали, потому что рабочий каталог сервиса не был создан с правильной учетной записью и
Sudo
необходимо использовать каждый раз, когда я хотел опубликовать временный файл; Излишне говорить, что есть некоторые файлы и каталоги с разрешениями, установленными на 777.Рабочий каталог услуг не был централизован
Общие файлы жили на
/var/www/статический
приложение Node.js побежало на~/dev/nodejs/приложение
, …Nginx Config файл имеет много повторных блоков
Поскольку у каждого сервиса/подделки имели два блока — HTTPS обратный прокси и HTTP для перенаправления в HTTPS — множество блоков были идентичны из-за логики одинаковой для всех услуг.
Сертификаты для каждого поддона
В то время, давайте шифрование не поддерживает сертификаты подстановки; Таким образом, сертификат должен был быть обновлен каждый раз, когда я хотел развернуть новый сервис. Это было не так уж плохо, просто то, что теперь можно избежать.
Неиспользованные/разбитые услуги
Услуги перестали использовать, все сломалось, утечки памяти произошли, и я даже не заметил. Это Определенно должен быть улучшен.
Генеральный план
- Используйте Docker, чтобы изолировать, контролировать и централизовать услуги; Это также позволяет мне проверить новый блестящий
JS FrameworksУслуги без загрязнения всей системы с нежелательными пакетами - Рисунок Как генерировать файл конфигурации NGINX из упрощенного файла конфигурации
- Обновите, чтобы позволить сертификаты подстановки зашифрования
- Переместите редко доступные файлы на некоторые внешние раствора холодного хранения
- Создайте хорошую личную страницу с деталями обо мне
- Gost MySQL/Mariadb база данных с полуавтоматическим созданием и удалением учетной записи
- Разработайте веб-приложение для управления общими файлами
Что вы думаете об этом новом плане? Вы бы сделали что-то по-другому? Предложения ценятся!
Оригинал: «https://dev.to/joaopms/plans-for-my-web-server-3fbm»