Настройка и защита vServer на Debian: пошагово для новичков (Часть 1 из 3)
Серия „Собственный сервер — от 0 до безопасности" · 3 части:
- Настройка и защита vServer на Debian ← Вы здесь
- Установка и настройка Froxlor
- Правильная настройка эл. почты: SPF, DKIM и DMARC
Это Часть 1. Она приводит только что арендованный сервер в безопасное базовое состояние. На этот сервер в Части 2 мы установим панель управления Froxlor, а в Части 3 настроим отправку почты.

Содержание
- Предварительные требования
- Шаг 1: Подключение к серверу по SSH
- Шаг 2: Обновление системы
- Шаг 3: Имя хоста, часовой пояс и язык
- Шаг 4: Создание пользователя с правами sudo
- Шаг 5: Защита SSH (отключение входа root, вход по ключу)
- Шаг 6: Настройка брандмауэра (ufw)
- Шаг 7: Защита от подбора паролей с Fail2ban
- Шаг 8: Автоматические обновления безопасности
- Контрольный список: ваш сервер защищён?
- Частые вопросы (FAQ)
- Что дальше?
- Источники
Вы только что арендовали 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 с радостью поможет.
Источники
- Debian 12 (Bookworm) — официальная страница
- Вики Debian: SSH
- Вики Debian: UnattendedUpgrades
- Ubuntu Server Guide: Firewalls (ufw)
- Fail2ban (официальный проект)
Состояние: июнь 2026. Команды и имена пакетов могут меняться с новыми версиями — определяющей является официальная документация.
Prosche rabotat so schetami
Easy Invoice obiedinyaet predlozheniya, scheta i rabotu s klientami v oblake.
Poprobovat Easy Invoice