Rukovodstvo PepperTools
Технологии и серверы

Настройка и защита vServer на Debian: пошагово для новичков (Часть 1 из 3)

Часть 1 серии „Собственный сервер — от 0 до безопасности": вы арендовали vServer — и что дальше? Это руководство для новичков приводит ваш сервер Debian 12 к безопасной основе: обновление системы, пользователь sudo, защита SSH ключом, брандмауэр, Fail2ban и автообновления. Каждый шаг можно скопировать.

Настройка и защита vServer на Debian: пошагово для новичков (Часть 1 из 3)

Настройка и защита vServer на Debian: пошагово для новичков (Часть 1 из 3)

Серия „Собственный сервер — от 0 до безопасности" · 3 части:

  1. Настройка и защита vServer на DebianВы здесь
  2. Установка и настройка Froxlor
  3. Правильная настройка эл. почты: SPF, DKIM и DMARC

Это Часть 1. Она приводит только что арендованный сервер в безопасное базовое состояние. На этот сервер в Части 2 мы установим панель управления Froxlor, а в Части 3 настроим отправку почты.

Debian vServer einrichten & absichern

Содержание


Вы только что арендовали vServer (VPS) и спрашиваете себя: „И что дальше?" Именно здесь мы начинаем. Это руководство написано для абсолютных новичков. Мы простыми словами объясняем, что мы делаем и почему — и каждую команду можно просто скопировать и вставить. В итоге у вас будет актуальный сервер, защищённый от самых распространённых атак.

Мы используем Debian 12 (Bookworm) — одну из самых популярных и стабильных серверных систем. Если вы используете Ubuntu, почти все команды идентичны.

Важно: Во всех командах замените заполнители своими реальными значениями — SERVER-IP на IP-адрес вашего сервера (в письме-подтверждении от провайдера) и imya-polzovatelya на имя по вашему выбору.

Предварительные требования

  • Арендованный vServer/VPS с Debian 12. Ещё нет? Провайдеры: например IONOS, Hetzner или webtropia.
  • IP-адрес и пароль root вашего сервера (получены по эл. почте от провайдера).
  • Терминал на вашем компьютере: на macOS и Linux предустановлен („Терминал"), в Windows используйте PowerShell (предустановлен) или PuTTY.

Больше ничего не нужно. Начнём.

Шаг 1: Подключение к серверу по SSH

„SSH" — это шифрованное удалённое подключение к вашему серверу — вы вводите команды на своём компьютере, а они выполняются на сервере. Откройте терминал и подключитесь как пользователь root:

ssh root@SERVER-IP

При первом подключении спрашивается, доверяете ли вы серверу — введите yes и нажмите Enter. Затем введите пароль root (ввод не виден, это нормально). После подключения строка выглядит примерно так:

root@vash-server:~#

Поздравляем — вы внутри. (Подробное введение в SSH есть в вики Debian.)

Шаг 2: Обновление системы

Только что установленный сервер часто содержит устаревшие пакеты с известными уязвимостями. Поэтому первый шаг всегда: обновить всё. Этой командой сервер загружает список обновлений, устанавливает их, удаляет ненужные пакеты и проводит очистку:

apt update && apt full-upgrade -y && apt autoremove -y && apt clean

Это может занять несколько минут. Если появится сообщение о необходимости перезагрузки, перезагрузите сервер:

reboot

После перезагрузки соединение на мгновение прерывается. Подождите ~30 секунд и подключитесь снова через ssh root@SERVER-IP.

Шаг 3: Имя хоста, часовой пояс и язык

Чтобы журналы имели правильные метки времени, а сервер носил аккуратное имя, настроим три мелочи.

Имя хоста (имя для вашего сервера, например web01):

hostnamectl set-hostname web01

Настройка часового пояса (здесь: Europe/Moscow; измените):

timedatectl set-timezone Europe/Moscow

Установка языковых пакетов (locales) и генерация UTF-8:

apt install -y locales
sed -i 's/# ru_RU.UTF-8/ru_RU.UTF-8/' /etc/locale.gen
locale-gen

Проверьте результат:

timedatectl

Там должно быть „Time zone: Europe/Moscow".

Шаг 4: Создание пользователя с правами sudo

Постоянно работать как root опасно — одна опечатка может повредить всю систему. Лучше: обычный пользователь, который получает права администратора только при необходимости через предшествующее слово sudo.

Создайте пользователя (замените imya-polzovatelya) и задайте надёжный пароль, когда будет запрошено:

adduser imya-polzovatelya

Остальные вопросы (имя, телефон…) можно пропустить клавишей Enter. Теперь дайте пользователю права sudo:

usermod -aG sudo imya-polzovatelya

Проверьте это, прежде чем продолжать. Откройте второе окно терминала и войдите под новым пользователем:

ssh imya-polzovatelya@SERVER-IP

Проверьте, что sudo работает:

sudo whoami

Если после ввода пароля появляется root, всё в порядке. Оставьте это второе окно открытым — оно понадобится как страховка на следующем шаге.

Шаг 5: Защита SSH (отключение входа root, вход по ключу)

Теперь сделаем удалённый доступ гораздо безопаснее. Две меры: вход по SSH-ключу вместо пароля и больше никакого прямого входа root.

Внимание — риск блокировки: На этом шаге мы меняем доступ SSH. Обязательно оставьте открытым рабочее окно из Шага 4. Так вы сможете вернуться, если что-то пойдёт не так.

Совет для Windows — нужны ли PuTTY и Pageant? Не обязательно. Windows 10/11 уже содержит OpenSSH, и команды ниже (ssh-keygen, ssh) работают прямо в PowerShell — как на macOS/Linux. Если вы предпочитаете инструменты PuTTY (или у вас более старый Windows), действуйте так:

>

1. Создайте ключ в PuTTYgen: установите „Type of key" на EdDSA → Ed25519, нажмите Generate, подвигайте мышью. Сохраните приватный ключ как .ppk; скопируйте показанный публичный ключ (поле „Public key for pasting…") в буфер обмена. 2. Поместите публичный ключ на сервере в файл ~/.ssh/authorized_keys вашего пользователя (одна строка). 3. Загрузите приватный ключ в Pageant (агент ключей PuTTY) — так не придётся выбирать его при каждом подключении. 4. Подключитесь через PuTTY (хост: imya-polzovatelya@SERVER-IP).

>

PuTTYgen и Pageant входят в пакет PuTTY: putty.org. Оба пути равноценны — ниже мы остаёмся на встроенном OpenSSH, так как это требует меньше шагов.

5.1 Создайте ключ на своём компьютере. Выполните эту команду в терминале на вашем ПК (не на сервере) и подтвердите вопросы клавишей Enter:

ssh-keygen -t ed25519 -C "moy-server"

5.2 Скопируйте публичный ключ на сервер (также с вашего ПК):

ssh-copy-id imya-polzovatelya@SERVER-IP

В Windows без ssh-copy-id используйте вместо этого:

type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh imya-polzovatelya@SERVER-IP "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

5.3 Проверка: Войдите снова — теперь пароль не должен больше запрашиваться:

ssh imya-polzovatelya@SERVER-IP

5.4 Отключите вход по паролю и вход root. На сервере отредактируйте конфигурацию SSH редактором nano:

sudo nano /etc/ssh/sshd_config

Найдите следующие строки (или добавьте их) и установите именно так:

PermitRootLogin no
PasswordAuthentication no

Сохраните Ctrl+O, Enter, закройте Ctrl+X. Затем перезапустите службу SSH:

sudo systemctl restart ssh

Важно: Пока не закрывайте текущее окно. Откройте новое и проверьте, что вход как imya-polzovatelya всё ещё работает — и что ssh root@SERVER-IP теперь отклоняется. Только тогда шаг успешен. Подробности в вики Debian о SSH.

Шаг 6: Настройка брандмауэра (ufw)

Брандмауэр блокирует все сетевые порты, кроме немногих, которые действительно нужны. Мы используем ufw („Uncomplicated Firewall") — простой и удобный для новичков.

Установите и задайте базовые правила (блокировать весь входящий трафик, разрешить исходящий):

sudo apt install -y ufw
sudo ufw default deny incoming
sudo ufw default allow outgoing

Разрешите доступ SSH до активации — иначе вы заблокируете себя:

sudo ufw allow OpenSSH

Для будущего веб-сервера (Froxlor в Части 2) откроем также веб-порты:

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

Теперь включите брандмауэр и проверьте статус:

sudo ufw enable
sudo ufw status verbose

Подтвердите вопрос клавишей y. В списке статуса разрешёнными должны быть только SSH (22), 80 и 443. Подробности о ufw в Ubuntu Server Guide.

Шаг 7: Защита от подбора паролей с Fail2ban

Злоумышленники автоматически перебирают тысячи паролей. Fail2ban распознаёт слишком много неудачных попыток и временно блокирует атакующий IP-адрес. Установите и активируйте:

sudo apt install -y fail2ban
sudo systemctl enable --now fail2ban

Создаём собственную конфигурацию, чтобы обновления её не перезаписывали:

sudo nano /etc/fail2ban/jail.local

Вставьте следующее содержимое (блокирует IP после 5 неудачных попыток на 1 час):

[sshd]
enabled = true
maxretry = 5
bantime = 1h
findtime = 10m

Сохраните (Ctrl+O, Enter, Ctrl+X) и перезапустите службу:

sudo systemctl restart fail2ban

Статус можно проверить в любое время:

sudo fail2ban-client status sshd

Шаг 8: Автоматические обновления безопасности

Уязвимости обнаруживаются постоянно. Чтобы сервер автоматически устанавливал важные патчи, настроим unattended-upgrades:

sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades

В вопросе выберите „Yes". Это всё — теперь сервер сам устанавливает обновления безопасности. Подробнее в вики Debian о UnattendedUpgrades.

Контрольный список: ваш сервер защищён?

Перед продолжением коротко пройдитесь по пунктам:

  • [ ] Система актуальна (apt update && apt full-upgrade)
  • [ ] Имя хоста, часовой пояс и locale настроены
  • [ ] Собственный пользователь с правами sudo работает
  • [ ] Вход по SSH-ключу работает, вход по паролю отключён
  • [ ] ssh root@SERVER-IP отклоняется
  • [ ] Брандмауэр (ufw) активен, открыты только 22/80/443
  • [ ] Fail2ban работает
  • [ ] Автоматические обновления безопасности активны

Частые вопросы (FAQ)

Я заблокировал себя — что делать? Почти каждый провайдер предлагает в личном кабинете функцию „VNC" или „консоль", с которой можно войти напрямую без SSH и отменить настройки.

Использовать SSH-ключи или достаточно пароля? Ключи гораздо безопаснее и настоятельно рекомендуются. Если вы обязательно хотите остаться на пароле, оставьте PasswordAuthentication в yes — но используйте очень длинный пароль и обязательно Fail2ban.

Это работает и на Ubuntu? Да, почти идентично. Только в очень старых версиях некоторые имена пакетов могут отличаться.

Нужны ли знания Linux? Нет. Если вы копируете команды и заменяете заполнители, вы справитесь. Немного терпения поможет в первый раз.

Что дальше?

Ваш сервер теперь защищён. В следующей части мы установим Froxlor — бесплатную панель управления, с которой вы легко управляете доменами, сайтами, SSL-сертификатами и базами данных через интерфейс — без консоли:

👉 Часть 2: Установка и настройка Froxlor

А в Части 3: Правильная настройка эл. почты: SPF, DKIM и DMARC мы позаботимся о том, чтобы ваши письма доставлялись безопасно.

Кстати: если вы предпочитаете заказать разработку ПО или вам нужны индивидуальные серверные/веб-решения, PepperTools с радостью поможет.

Источники

Состояние: июнь 2026. Команды и имена пакетов могут меняться с новыми версиями — определяющей является официальная документация.

Prosche rabotat so schetami

Easy Invoice obiedinyaet predlozheniya, scheta i rabotu s klientami v oblake.

Poprobovat Easy Invoice

Yazykovye versii