3 сентября 20264 мин чтения
Основы безопасности сервера
Этот гайд — про настройку безопасности на твоём сервере (VPS или облачная машина с Linux)
Евгений Васёв
Автор гайда
Этот гайд — про настройку безопасности на твоём сервере (VPS или облачная машина с Linux). Чтобы что-то менять на сервере, к нему нужно сначала подключиться. Для этого используется SSH (Secure Shell) — способ безопасно подключиться к серверу по сети и управлять им с твоего компьютера через терминал: вводишь команды, они выполняются уже на сервере.
Сначала подключись к серверу — выбери свою систему: macOS или Windows. Дальше все шаги выполняются уже на сервере.
Подключение к серверу
macOS
1. Открой Терминал
Способ 1 — через поиск (самый быстрый):
Нажми Cmd + Пробел
Напиши Terminal
Нажми Enter
Способ 2 — через Finder:
Открой Finder
Меню Переход → Утилиты
Открой Terminal
2. Подключись к серверу по SSH
В терминале выполни (подставь IP своего сервера):
ssh root@IP_СЕРВЕРА
Введи пароль, когда система попросит. После входа ты окажешься на сервере — дальше выполняй шаги из раздела Шаги на сервере.
Windows
1. Открой терминал
Способ 1 — PowerShell:
Нажми Win + R
Введи powershell и нажми Enter
Способ 2 — через поиск:
Нажми Win
Напиши PowerShell или Терминал
Выбери Windows PowerShell или Терминал и нажми Enter
Если используешь WSL — открой Ubuntu (или другой дистрибутив) из меню Пуск.
2. Подключись к серверу по SSH
В терминале выполни (подставь IP своего сервера):
ssh root@IP_СЕРВЕРА
Введи пароль, когда система попросит. После входа ты на сервере — дальше выполняй шаги из раздела Шаги на сервере.
Шаги на сервере
Все команды ниже выполняются на сервере после подключения по SSH. Сначала ты под root — после шага 1 переключишься на пользователя user.
0. Обновить систему
Зачем: закрыть известные уязвимости до запуска приложения.
sudo apt update && sudo apt upgrade -y
Дождись окончания обновления.
1. Создать пользователя user для приложения
Зачем: приложение не должно работать под root.
adduser user
Введи пароль и при необходимости данные пользователя (остальное можно оставить по умолчанию — Enter).
Добавь пользователя в группу sudo и переключись на него:
usermod -aG sudo user su - user
С этого момента все действия — под пользователем user.
2. Запретить вход под root по SSH
Зачем: root — главная цель автоматических атак.
Открой конфиг SSH:
sudo nano /etc/ssh/sshd_config
Найди строку PermitRootLogin и измени на:
PermitRootLogin no
Если такой строки нет — добавь её. Сохрани файл: Ctrl + O, Enter, затем Ctrl + X.
Перезапусти SSH:
sudo systemctl restart ssh
Важно: перед этим убедись, что ты можешь войти под user (например, открой новое окно терминала и выполни ssh user@IP_СЕРВЕРА). Иначе можно потерять доступ к серверу.
3. Включить файрвол (SSH + приложение)
Зачем: сервер принимает только нужные подключения.
Минимум: SSH и HTTP/HTTPS (если есть сайт или API).
sudo ufw allow OpenSSH sudo ufw allow 80 sudo ufw allow 443 sudo ufw enable
На вопрос о прерывании текущих сессий ответь y и нажми Enter.
Проверка:
sudo ufw status
Должны быть разрешены OpenSSH, 80 и 443.
4. Запуск приложения под пользователем user
Зачем: ограничить доступ приложения к системе.
Пример структуры — папка приложения в домашнем каталоге:
mkdir ~/app cd ~/app
Запуск — от имени user, например:
node index.js
или
python bot.py
На этом этапе достаточно запускать вручную; автоматизация (systemd, cron) не обязательна.
5. Хранить секреты отдельно от кода
Зачем: токены и ключи не должны попадать в репозиторий.
Создай файл с переменными окружения:
nano ~/app/.env
Пример содержимого:
BOT_TOKEN=xxx API_KEY=yyy
Сохрани: Ctrl + O, Enter, Ctrl + X.
Ограничь доступ к файлу (только владелец может читать и писать):
chmod 600 ~/app/.env
6. Включить автоматические обновления безопасности
Зачем: система сама закрывает известные уязвимости.
sudo apt install unattended-upgrades sudo dpkg-reconfigure unattended-upgrades
В окне настройки выбери Yes и подтверди Enter.
Проверка, что служба работает:
systemctl status unattended-upgrades
Должен быть статус active (running).
Итог: базовая безопасная конфигурация
нет работы под root
пользователь user для приложения
закрыты лишние порты (файрвол)
секреты вне кода (.env, права 600)
автообновления безопасности включены
Готово!
Сервер настроен с базовым уровнем безопасности. Дальше можно разворачивать приложение в ~/app и подключаться по SSH уже под пользователем user.
Анонсы вебинаров и новых курсов в телеграм-боте
Смежное по задаче
Установка Cursor на macOS
Установка редактора кода Cursor со встроенным ИИ-помощником на macOS.
ЧитатьУстановка Cursor на Windows
Установка редактора кода Cursor со встроенным ИИ-помощником на Windows.
ЧитатьУстановка Claude Code на Windows
Пошаговая инструкция по установке Claude Code на Windows. PowerShell, Git, настройка PATH.
Читать