Первый VPS за 30 минут: SSH, sudo, firewall и fail2ban без лишней теории
Первый Linux VPS чаще всего берут для обучения: попробовать SSH, поставить сайт, поднять Docker, настроить бота, панель управления, тестовый проект или личный сервер. Главная ошибка новичка — сразу устанавливать приложения на голый сервер и не настроить базовую защиту.
Эта инструкция поможет подготовить первый VPS на Ubuntu или Debian: подключиться по SSH, создать отдельного пользователя, включить sudo, настроить SSH-ключи, открыть firewall, установить fail2ban и проверить, что вы не потеряли доступ к серверу.
Материал рассчитан на человека, который впервые заказал VPS и хочет безопасно начать работу без лишней теории. Команды подходят для Ubuntu 22.04, Ubuntu 24.04 и Debian 12. На других Linux-дистрибутивах логика будет такой же, но названия пакетов и сервисов могут отличаться.
Что нужно перед началом
- IP-адрес VPS.
- Root-пароль или SSH-ключ, выданный после заказа сервера.
- Терминал на компьютере: Terminal на macOS/Linux или PowerShell/Windows Terminal на Windows.
- 10-30 минут без спешки, чтобы не заблокировать себе доступ из-за ошибки.
Если вы только учитесь, не нужен дорогой сервер. Для первых задач обычно достаточно VPS с 1-2 vCPU, 1-2 GB RAM и SSD/NVMe-диском. Если планируете ставить Docker, панель управления, несколько сайтов или базы данных, лучше брать VPS с запасом по RAM.
Шаг 1. Подключитесь к VPS по SSH
Откройте терминал на своем компьютере и выполните команду:
ssh root@SERVER_IP
Замените SERVER_IP на IP-адрес вашего VPS.
При первом подключении SSH может спросить, доверяете ли вы серверу. Это нормально. Введите:
yes
После входа обновите список пакетов и установите обновления:
apt update && apt upgrade -y
Это простой, но важный шаг. Даже на новом VPS в образе системы могут быть пакеты, для которых уже вышли обновления безопасности.
Шаг 2. Создайте обычного пользователя
Постоянно работать под root — плохая привычка. Root может без дополнительных предупреждений удалить системные файлы, сломать права, перезаписать конфиг или открыть лишний сервис наружу. Правильнее создать обычного пользователя и дать ему права sudo.
Создайте пользователя. В примере используется имя admin:
adduser admin
Добавьте пользователя в группу sudo:
usermod -aG sudo admin
Проверьте, что sudo работает:
su - admin
sudo whoami
Если команда вернула:
root
значит пользователь настроен правильно.
Шаг 3. Настройте SSH-ключ
SSH-ключ безопаснее обычного пароля. Пароль можно подобрать, украсть, случайно сохранить в истории или сделать слишком простым. SSH-ключ сложнее атаковать перебором, особенно если затем отключить парольный вход.
На своем компьютере проверьте, есть ли уже SSH-ключ:
ls ~/.ssh/id_ed25519.pub
Если файл найден, можно использовать существующий ключ. Если ключа нет, создайте новый:
ssh-keygen -t ed25519 -C "first-vps"
Скопируйте ключ на сервер для пользователя admin:
ssh-copy-id admin@SERVER_IP
Если команда ssh-copy-id недоступна, можно добавить ключ вручную. На своем компьютере покажите публичный ключ:
cat ~/.ssh/id_ed25519.pub
Скопируйте всю строку, которая начинается с ssh-ed25519.
На сервере под root выполните:
mkdir -p /home/admin/.ssh
nano /home/admin/.ssh/authorized_keys
Вставьте публичный ключ одной строкой, сохраните файл и задайте правильные права:
chown -R admin:admin /home/admin/.ssh
chmod 700 /home/admin/.ssh
chmod 600 /home/admin/.ssh/authorized_keys
Теперь откройте новое окно терминала и проверьте вход под новым пользователем:
ssh admin@SERVER_IP
Важно: не закрывайте старую root-сессию, пока не убедитесь, что новый пользователь точно входит по SSH.
Шаг 4. Отключите root-вход и парольную авторизацию
Это нужно делать только после проверки SSH-ключа. Нельзя сначала отключить парольный вход, а потом проверять ключ. Так новички часто сами блокируют себе доступ к VPS.
Откройте конфиг SSH:
sudo nano /etc/ssh/sshd_config
Найдите или добавьте параметры:
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
Перед перезапуском SSH проверьте синтаксис конфига:
sudo sshd -t
Если команда ничего не вывела, ошибок в конфиге нет.
Перезапустите SSH:
sudo systemctl restart ssh
Если система пишет, что сервиса ssh нет, попробуйте:
sudo systemctl restart sshd
После этого снова откройте новое окно терминала и проверьте вход:
ssh admin@SERVER_IP
Если вход работает, старую root-сессию можно закрывать.
Нужно ли менять SSH-порт с 22 на другой?
Менять SSH-порт необязательно. Это уменьшает количество мусорных попыток входа в логах, но не заменяет SSH-ключи, отключение пароля, firewall и fail2ban.
Если вы новичок, сначала оставьте порт 22. Настройте ключи, sudo, firewall и fail2ban. Когда поймете, как работает SSH, можно перенести SSH на другой порт.
Если вы меняете порт, сначала разрешите новый порт в firewall, затем проверьте вход по новому порту и только потом закрывайте старый доступ. Иначе можно заблокировать себе управление сервером.
Шаг 5. Включите firewall через UFW
Firewall нужен, чтобы VPS не принимал входящие подключения ко всем сервисам подряд. Для первого сервера на Ubuntu или Debian проще всего использовать UFW.
Установите UFW:
sudo apt install -y ufw
Разрешите SSH:
sudo ufw allow OpenSSH
Если вы используете нестандартный SSH-порт, например 2222, разрешите его явно:
sudo ufw allow 2222/tcp
Включите firewall:
sudo ufw enable
Проверьте статус:
sudo ufw status verbose
Для учебного VPS не открывайте порты “на всякий случай”. Открывайте только то, что реально используете. Например, если позже поставите сайт, откройте HTTP и HTTPS:
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
Шаг 6. Установите fail2ban
Fail2ban следит за неудачными попытками входа и временно блокирует IP-адреса, которые слишком часто ошибаются. Это не заменяет SSH-ключи, но хорошо снижает количество brute-force попыток по SSH.
Установите fail2ban:
sudo apt install -y fail2ban
Создайте локальный конфиг:
sudo nano /etc/fail2ban/jail.local
Добавьте базовую конфигурацию:
[DEFAULT]
bantime = 1h
findtime = 10m
maxretry = 5
[sshd]
enabled = true
port = ssh
Если SSH работает на нестандартном порту, например 2222, замените строку:
port = ssh
на:
port = 2222
Перезапустите fail2ban:
sudo systemctl enable --now fail2ban
sudo systemctl restart fail2ban
Проверьте статус защиты SSH:
sudo fail2ban-client status sshd
Если jail sshd активен, fail2ban работает.
Шаг 7. Проверьте, какие порты слушает сервер
После базовой настройки полезно посмотреть, какие сервисы слушают сеть:
sudo ss -tulpn
На свежем VPS обычно должен быть SSH. Если вы еще ничего не устанавливали, но видите много открытых портов, нужно разобраться, какие процессы их используют.
Проверить firewall можно так:
sudo ufw status numbered
Если случайно открыли лишний порт, его можно удалить по номеру правила:
sudo ufw delete RULE_NUMBER
Сначала посмотрите номер через sudo ufw status numbered, затем удаляйте. Не удаляйте правило SSH, пока не уверены, что у вас есть другой рабочий способ входа.
Шаг 8. Включите автоматические обновления безопасности
Для учебного сервера это не обязательно, но полезно. Многие взломы происходят не из-за сложных атак, а из-за старых пакетов и забытых сервисов.
Установите пакет:
sudo apt install -y unattended-upgrades
Включите автоматические обновления:
sudo dpkg-reconfigure unattended-upgrades
Выберите Yes.
Проверить статус можно так:
systemctl status unattended-upgrades
Шаг 9. Проверьте, что сервер готов к работе
Минимальная проверка после настройки:
- Вы можете войти по SSH под обычным пользователем.
- Пользователь имеет sudo-доступ.
- Root-вход по SSH отключен.
- Парольный вход по SSH отключен.
- Firewall включен.
- SSH разрешен в firewall.
- Fail2ban установлен и защищает sshd.
- Лишние порты не открыты.
- Система обновлена.
Команды для проверки:
whoami
sudo whoami
sudo systemctl status ssh
sudo ufw status verbose
sudo fail2ban-client status sshd
sudo ss -tulpn
Частые ошибки новичков
Ошибка 1. Закрыть root-доступ до проверки нового пользователя.
Так можно потерять доступ к VPS. Всегда сначала проверьте вход в новой SSH-сессии под новым пользователем, а уже потом отключайте root и парольную авторизацию.
Ошибка 2. Включить firewall до разрешения SSH.
Если сначала включить firewall, а потом вспомнить про SSH, сервер может перестать принимать подключение. Сначала выполните sudo ufw allow OpenSSH, затем sudo ufw enable.
Ошибка 3. Открывать все порты подряд.
Команды вроде sudo ufw allow 1:65535/tcp уничтожают смысл firewall. Открывайте только нужные порты.
Ошибка 4. Ставить панель управления до базовой защиты.
Панель управления, Docker, база данных или веб-сервер не должны быть первым действием на новом VPS. Сначала SSH, пользователь, firewall, обновления и fail2ban.
Ошибка 5. Держать простой пароль.
Если парольный вход включен, простой пароль быстро станет проблемой. Лучше использовать SSH-ключи и отключить парольную авторизацию.
Что делать, если потеряли доступ к VPS
Если после настройки SSH или firewall вы не можете зайти на сервер, не паникуйте. Обычно проблема решается через VNC/KVM/Rescue Mode в панели управления хостингом.
Проверьте такие варианты:
- Войти через VNC-консоль из панели управления VPS.
- Использовать Rescue Mode, если он доступен.
- Проверить, не изменили ли вы SSH-порт.
- Проверить, не заблокировал ли ваш IP fail2ban.
- Проверить правила UFW.
Если есть доступ через консоль, можно временно отключить UFW:
sudo ufw disable
Проверить SSH-конфиг:
sudo sshd -t
Посмотреть логи SSH:
sudo journalctl -u ssh --no-pager -n 100
или:
sudo journalctl -u sshd --no-pager -n 100
Если fail2ban заблокировал ваш IP, посмотрите статус:
sudo fail2ban-client status sshd
Разблокировать IP можно так:
sudo fail2ban-client set sshd unbanip YOUR_IP
Что можно делать после базовой настройки
Когда VPS защищен на базовом уровне, можно переходить к задачам:
- Установить nginx или Apache.
- Подключить домен.
- Выпустить SSL-сертификат.
- Поставить Docker и Docker Compose.
- Развернуть тестовый сайт.
- Настроить базу данных.
- Поставить панель управления, если она действительно нужна.
- Настроить резервные копии.
Не ставьте все сразу. Для обучения лучше идти по шагам: сначала SSH и безопасность, потом веб-сервер, потом домен и SSL, потом Docker или база данных.
Какой VPS выбрать для первого Linux-сервера
Для обучения важнее не максимальная мощность, а стабильность, нормальный диск и понятная панель управления. Первый VPS должен быстро выдаваться, иметь root-доступ, чистый Linux-образ и возможность переустановки системы, если вы ошиблись.
Минимальный вариант для обучения:
- 1 vCPU.
- 1 GB RAM.
- 20-30 GB SSD/NVMe.
- 1 IPv4.
- Ubuntu или Debian.
Более комфортный вариант:
- 2 vCPU.
- 2-4 GB RAM.
- 40+ GB SSD/NVMe.
- 1 IPv4.
- Возможность быстро переустановить ОС.
Если вы хотите не просто учиться, а держать сайты, ботов, Docker-контейнеры или тестовые проекты, лучше сразу брать VPS с запасом по памяти. Экономия на минимальном тарифе часто заканчивается тем, что сервер начинает тормозить уже после установки нескольких сервисов.
Почему VPS удобен для обучения Linux
VPS дает почти такой же опыт, как реальный сервер: у вас есть root-доступ, публичный IP, SSH, firewall, системные сервисы, логи и полная ответственность за настройки. Это лучше локальной виртуальной машины, если вы хотите понять, как Linux-сервер работает в интернете.
На первом VPS можно безопасно научиться базовым вещам: подключаться по SSH, работать с пользователями, читать логи, настраивать firewall, устанавливать пакеты, запускать сервисы и понимать, почему сервер может быть недоступен.
HSTQ предоставляет VPS/VDS для обучения, тестовых проектов и рабочих задач. Если нужен первый Linux-сервер, можно начать с простого VPS, настроить SSH, firewall и fail2ban по этой инструкции, а затем постепенно переходить к сайтам, Docker, базам данных и более сложной инфраструктуре.
Если проект вырастет, VPS можно заменить на более мощный тариф или выделенный сервер. Для обучения это нормальный путь: сначала понять базовую админку на небольшом VPS, потом масштабироваться без хаоса и случайных настроек.