Первый VPS за 30 минут: SSH, sudo, firewall и fail2ban 列印

  • vps, ssh, firewall
  • 0

Первый 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, потом масштабироваться без хаоса и случайных настроек.


這篇文章有幫助嗎?

相關文章

Какие есть боты/сервисы, которые стоит добавить в исключения? Практический гайд для защиты сайта и бизнеса В современных условиях кибербезопасности настройка блокировок и фильтров — обязательная мера для... Что делать, если сертификаты Let’s Encrypt не обновляются? Простое решение за 5 минут Сертификаты от Let’s Encrypt стали стандартом для бесплатной автоматической защиты сайтов по... Какие сервисы и решения реально помогают? Топ-10 инструментов Почему взламывают сайты и что самое опасное? Современный сайт на WordPress, Битрикс, Joomla,... Лучшие версии PHP и MySQL сейчас для WordPress: что выбрать для максимальной стабильности и скорости? WordPress — самая популярная CMS в мире, и именно поэтому вопрос о правильной версии PHP и... Где сейчас захостить видео, чтобы его просто вставлять на свой сайт без рекламы? Лучшие альтернативы YouTube В 2025 году все чаще сталкиваемся с ситуацией: YouTube работает с перебоями, вставки грузятся...
« 返回

知識庫