Skip to main content
Зміст гайду
Початківець14 хв

Hetzner VPS Setup

Від порожнього сервера до захищеної production-ready машини. Оберіть, як ви бажаєте налаштувати свій сервер.

Опубліковано:
ДЛЯ АГЕНТАChatGPTClaude
GitHub Репозиторій

Автоматичне налаштування через AI

Надайте вашому AI-асистенту доступ до цього репозиторію. Він автоматично виконає всі перевірки, налаштує безпеку та згенерує файл з усіма доступами (credentials guide) на вашому комп'ютері.

Відкрити GitHub Репозиторій

1. Створення SSH-ключа (Локально)

Виконується на вашому комп'ютері (Mac або Linux) ДО того, як ви підключитесь до сервера.

bash
ssh-keygen -t ed25519 -C "{username}@{nickname}" -f ~/.ssh/{nickname}_key -N "" cat ~/.ssh/{nickname}_key.pub

Скопіюйте вивід другої команди (він починається на ssh-ed25519 ...). Це ваш публічний ключ.

2. Вхід як Root

Підключіться до сервера за допомогою пароля, який Hetzner надіслав на пошту.

Увага

Hetzner може попросити змінити пароль. Введіть поточний пароль, потім двічі новий тимчасовий. Якщо після цього з'єднання розірветься — просто підключіться знову за допомогою нового пароля.

bash
ssh root@{SERVER_IP}

3. Оновлення системи

Оновлення всіх пакетів у неінтерактивному режимі (без спливаючих вікон grub).

bash
apt update && DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt upgrade -y

4. Створення користувача з sudo

Працювати з-під root небезпечно. Створюємо звичайного користувача та даємо йому права адміністратора.

bash
useradd -m -s /bin/bash {username} echo "{username}:YOUR_SECURE_PASSWORD" | chpasswd usermod -aG sudo {username}

5. Розгортання SSH-ключа

Запишемо ваш публічний ключ, який ви скопіювали в Кроці 1, на сервер.

bash
mkdir -p /home/{username}/.ssh echo "{PUBLIC_KEY_CONTENT}" > /home/{username}/.ssh/authorized_keys chmod 700 /home/{username}/.ssh chmod 600 /home/{username}/.ssh/authorized_keys chown -R {username}:{username} /home/{username}/.ssh

6. Перевірка входу

Важливо

ОБОВ'ЯЗКОВИЙ ЧЕКПОІНТ Не закривайте сесію root! Відкрийте нове вікно терміналу на своєму ПК та спробуйте зайти по ключу. Тільки після успішного входу можна продовжувати.

Перевірте, чи працює sudo (система має попросити пароль, який ви задали в Кроці 4, і вивести "root"):

bash
ssh -i ~/.ssh/{nickname}_key {username}@{SERVER_IP} sudo whoami

7. Firewall (UFW)

Всі наступні команди виконуйте від імені вашого нового користувача (з sudo). Налаштовуємо політику "заборонити все вхідне, крім SSH, HTTP та HTTPS".

bash
sudo apt install -y ufw sudo ufw default deny incoming sudo ufw default allow outgoing sudo ufw allow ssh sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw --force enable sudo ufw status

8. Захист ядра (sysctl)

Застосовуємо параметри для захисту від мережевих атак.

bash
sudo tee /etc/sysctl.d/99-security.conf << 'EOF' net.ipv4.conf.all.rp_filter = 1 net.ipv4.conf.default.rp_filter = 1 net.ipv4.conf.all.accept_redirects = 0 net.ipv4.conf.default.accept_redirects = 0 net.ipv4.conf.all.send_redirects = 0 net.ipv4.conf.default.send_redirects = 0 net.ipv4.tcp_syncookies = 1 net.ipv4.conf.all.log_martians = 1 net.ipv4.conf.default.log_martians = 1 net.ipv4.icmp_echo_ignore_broadcasts = 1 net.ipv4.conf.all.accept_source_route = 0 net.ipv4.conf.default.accept_source_route = 0 EOF sudo sysctl -p /etc/sysctl.d/99-security.conf

9. Базові пакети та час

Точний час критичний для логів, SSL-сертифікатів та fail2ban.

bash
sudo apt install -y chrony curl wget git unzip net-tools sudo systemctl enable chrony

10. Локальний SSH-конфіг

Налаштування шорткату на вашому локальному ПК, щоб надалі підключатися короткою командою ssh {nickname}.

bash
mkdir -p ~/.ssh && touch ~/.ssh/config && chmod 600 ~/.ssh/config cat >> ~/.ssh/config << 'EOF' Host {nickname} HostName {SERVER_IP} User {username} IdentityFile ~/.ssh/{nickname}_key IdentitiesOnly yes EOF

11. Перевірка безпеки

Перевірте, чи працює коротка команда з локального ПК і чи увімкнені базові захисти.

bash
ssh {nickname} sudo ufw status sysctl net.ipv4.tcp_syncookies

12. Фінальне блокування

Встановлюємо захист від брутфорсу (fail2ban) та назавжди забороняємо вхід по паролю і вхід для root.

bash
sudo apt install -y fail2ban sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local sudo systemctl enable fail2ban sudo systemctl start fail2ban sudo tee /etc/ssh/sshd_config.d/99-hardening.conf << 'EOF' PermitRootLogin no PasswordAuthentication no PubkeyAuthentication yes AuthenticationMethods publickey EOF sudo sshd -t && sudo systemctl restart ssh
Порада

Готово! Сервер повністю налаштовано та захищено.

Пов'язані матеріали екосистеми

Дізнайтеся більше про практичну реалізацію, термінологію та інструменти

Практичний гайд

Production VPS Hardening Blueprint: Від нуля до фортеці (UFW, Fail2ban, SSH)

Комплексний захист Linux сервера від brute-force атак, закриття SSH паролів, налаштування UFW фаєрволу та Fail2ban.

Термін у глосарії

UFW & Fail2ban (Мережевий захист та блокування атак)

Системний тандем утиліти пакетної фільтрації UFW (Uncomplicated Firewall) та демона Fail2ban, що аналізує системні логи в реальному часі та динамічно блокує IP-адреси зловмисників.

Термін у глосарії

Hetzner Bare-Metal vs Cloud Hyperscalers

Фінансовий та технічний аналіз собівартості інфраструктури: чому оренда виділеного заліза в європейських дата-центрах (Hetzner, OVH) обходиться у 5–10 разів дешевше за віртуальні машини AWS/GCP для ШІ-навантажень.

Практичний гайд

Автономний AI-оператор у Telegram 24/7: архітектура, Telethon, безпека та 10 робочих сценаріїв

Вичерпне інженерне керівництво зі створення production-ready AI-оператора в Telegram на базі Telethon: ізоляція сесій, система підтверджень, захист від банів та запуск 24/7.

Новина

Binance оприлюднили розслідування крадіжки $6,3 млрд

Розслідування пов’язує масштабну крадіжку з модифікованим Homebrew, фальшивою співбесідою та використанням внутрішнього ШІ-інструменту Binance.

Новина

Сервіс для оцінки ризику блокування з боку Anthropic

Китайські розробники запустили сервіс, який аналізує IP-адресу, країну, провайдера, тип підключення, а також перевіряє витоки DNS і WebRTC, щоб оцінити ризик отримання блокування від Anthropic.

Цей гайд повністю безкоштовний. Якщо він зекономив вам вечір — ви можете підтримати розвиток проєкту.
Підтримати автора