Початкове налаштування VPS

Час: ~20 хвилин
Рівень: Початківець
Потрібно: Новий VPS з SSH доступом

Що отримаємо

Захищений сервер з:
- Не-root користувачем
- SSH аутентифікацією по ключах
- Базовим firewall
- Fail2ban захистом
- Автоматичними оновленнями безпеки

Передумови

  • [ ] VPS з Ubuntu 22.04/24.04
  • [ ] SSH доступ до сервера
  • [ ] SSH ключ на вашому комп'ютері

Крок 1: Підключення по SSH

ssh root@<IP_ADDRESS>

Або якщо маєте ключ:

ssh -i ~/.ssh/your_key root@<IP_ADDRESS>

Крок 2: Оновлення системи

apt update && apt upgrade -y

Крок 3: Створення користувача

Ніколи не працюйте під root. Створіть звичайного користувача:

# Створити користувача
adduser admin

# Додати до групи sudo
usermod -aG sudo admin

При створенні введіть пароль та підтвердіть.

Крок 4: Налаштування SSH ключа для користувача

На вашому локальному комп'ютері:

Якщо немає SSH ключа, створіть:

ssh-keygen -t ed25519 -C "your@email.com"

Скопіюйте публічний ключ:

cat ~/.ssh/id_ed25519.pub

На сервері:

# Перейти до користувача admin
su - admin

# Створити директорію SSH
mkdir -p ~/.ssh
chmod 700 ~/.ssh

# Додати ключ
nano ~/.ssh/authorized_keys
# Вставте публічний ключ та збережіть (Ctrl+O, Enter, Ctrl+X)

chmod 600 ~/.ssh/authorized_keys

Крок 5: SSH Hardening

Відредагуйте конфігурацію SSH:

sudo nano /etc/ssh/sshd_config

Знайдіть та змініть (або додайте):

# Заборонити root логін
PermitRootLogin no

# Заборонити аутентифікацію паролем
PasswordAuthentication no

# Дозволити тільки SSH ключі
PubkeyAuthentication yes

# Змінити порт (опціонально)
#Port 2222

Важливо: Перед застосуванням переконайтесь що ваш ключ працює!

Перезапустіть SSH:

sudo systemctl restart sshd

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

ssh admin@<IP_ADDRESS>

Крок 6: Налаштування Firewall (UFW)

# Встановити UFW
sudo apt install ufw -y

# Налаштувати правила за замовчуванням
sudo ufw default deny incoming
sudo ufw default allow outgoing

# Дозволити SSH
sudo ufw allow ssh
# Якщо змінили порт: sudo ufw allow 2222/tcp

# Увімкнути firewall
sudo ufw enable

# Перевірити статус
sudo ufw status

Очікуваний результат:

Status: active

To                         Action      From
--                         ------      ----
22/tcp                     ALLOW       Anywhere

Крок 7: Встановлення Fail2ban

Fail2ban блокує IP після невдалих спроб логіну.

# Встановити
sudo apt install fail2ban -y

# Створити локальну конфігурацію
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local

Знайдіть секцію [sshd] та переконайтесь:

[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 3600

Перезапустіть:

sudo systemctl restart fail2ban
sudo systemctl enable fail2ban

Перевірка:

sudo fail2ban-client status sshd

Крок 8: Автоматичні оновлення безпеки

# Встановити unattended-upgrades
sudo apt install unattended-upgrades -y

# Увімкнути автооновлення
sudo dpkg-reconfigure -plow unattended-upgrades
# Виберіть "Yes"

Перевірка:

cat /etc/apt/apt.conf.d/20auto-upgrades

Має бути:

APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";

Крок 9: Налаштування hostname та timezone

# Встановити hostname
sudo hostnamectl set-hostname myserver

# Встановити timezone
sudo timedatectl set-timezone Europe/Kyiv

# Перевірити
hostnamectl
timedatectl

Крок 10: Корисні утиліти

sudo apt install -y \
    htop \
    curl \
    wget \
    git \
    vim \
    tmux \
    net-tools

Фінальна перевірка

# Перевірити SSH конфігурацію
sudo sshd -t

# Перевірити firewall
sudo ufw status verbose

# Перевірити fail2ban
sudo fail2ban-client status

# Перевірити автооновлення
sudo systemctl status unattended-upgrades

Типові проблеми

Заблокований після зміни SSH

Симптоми: Не можете підключитись по SSH

Рішення:
1. Використовуйте консоль хостера (VNC/Console)
2. Виправте /etc/ssh/sshd_config
3. Перезапустіть: sudo systemctl restart sshd

UFW заблокував підключення

Симптоми: Connection refused

Рішення:
1. Через консоль хостера виконайте:
bash sudo ufw allow ssh sudo ufw reload

Fail2ban заблокував ваш IP

Симптоми: Connection refused після кількох невдалих спроб

Рішення:

# Переглянути заблоковані IP
sudo fail2ban-client status sshd

# Розблокувати IP
sudo fail2ban-client set sshd unbanip <YOUR_IP>

Наступні кроки

Див. також

Шлях: step-by-step/vps-initial-setup.md

UMTC Wiki © 2026 | Ukrainian Military Tactical Communications