← К библиотеке
Основы Практика

Чеклист старта: что нужно перед первым сервером

Прежде чем ставить панель и ноды, надо привести сервер в порядок и убедиться, что фундамент не гнилой. Ниже — короткий маршрут проверок и базовой защиты хоста. Команды копируй по порядку, свои данные впиши в конструктор сверху.

Перед покупкой: короткий чек

Ещё до оплаты VPS прогони себя по списку — эти четыре пункта ловят 90% будущих проблем:

  1. Нода — за рубежом (NL/DE/FI/PL), панель и релей — можно РФ.
  2. Разные ASN у разных нод — блокируют пачкой по подсети.
  3. IP белый — не в чёрных списках, не в засвеченной прокси-подсети.
  4. Оплата — там, где можно, крипта или СБП без лишней привязки.

Механику каждого пункта разбирали в теории «Как выбрать сервер». Здесь — практика проверки уже купленного.

Проверяем DNS домена

Если ставишь панель или ноду с доменом — первым делом убедись, что A-запись реально смотрит на IP сервера. Пока DNS не резолвится, TLS-сертификат не выпустится, и дальше идти бессмысленно:

bash
# должен вернуть IP твоего сервера, и ничего больше
dig +short your-domain.com

Пусто или чужой адрес — правь A-запись у регистратора и жди распространения. Сначала DNS, потом всё остальное. Это правило сэкономит тебе час злости на этапе выпуска сертификата.

Приводим систему в порядок

Заходим на свежий сервер и ставим базу. Ubuntu 22.04 или 24.04 — рабочий выбор:

bash
# обновляем систему
apt update && apt -y upgrade

# базовый набор: файервол, защита от перебора, утилиты
apt -y install ufw fail2ban curl git nano

SSH только по ключу

Пароль на SSH — открытая дверь для перебора. Переводим вход на ключ. Сначала на своей машине, если ключа ещё нет:

bash
# генерим ключ и кладём его на сервер
ssh-keygen -t ed25519 -C "vpn-admin"
ssh-copy-id root@SERVER_IP

Теперь на сервере отключаем вход по паролю совсем:

bash
sed -i 's/^#\?PasswordAuthentication.*/PasswordAuthentication no/' /etc/ssh/sshd_config
sed -i 's/^#\?PermitRootLogin.*/PermitRootLogin prohibit-password/' /etc/ssh/sshd_config
systemctl restart ssh

Проверь, что новый вход работает, не закрывая текущую сессию — если что-то не так, ты успеешь откатить. Закрылся, а ключ не подхватился — останешься за дверью.

Файервол: закрываем всё лишнее

По умолчанию рубим весь входящий, открываем только нужное. Для панели и нод наружу смотрит 443, для управления — SSH:

bash
ufw default deny incoming
ufw default allow outgoing
ufw allow 22/tcp
ufw allow 443/tcp        # ноды/панель за 443
ufw --force enable

Дополнительные порты под транспорты (gRPC, XHTTP, node-агент) откроешь позже, когда будешь настраивать конкретную ноду. Пока — минимум.

Защита от перебора SSH

fail2ban банит IP, который долбится паролями. Настраиваем джейл под sshd:

bash
systemctl enable --now fail2ban
cat >/etc/fail2ban/jail.d/sshd.local <<'CFG'
[sshd]
enabled = true
maxretry = 4
bantime = 1h
findtime = 10m
CFG
systemctl restart fail2ban

Четыре промаха за десять минут — час бана. Для входа по ключу этого с запасом.

Подкрутка сети для нод

На нодах (не на панели) включи BBR — он заметно улучшает скорость на дальних маршрутах, а именно такие у зарубежного выхода до РФ:

bash
cat >>/etc/sysctl.conf <<'CFG'
net.core.default_qdisc=fq
net.ipv4.tcp_congestion_control=bbr
CFG
sysctl -p

Проверить, что применилось:

bash
# должно вывести: bbr
sysctl net.ipv4.tcp_congestion_control | awk '{print $NF}'

Финальная проверка перед панелью

Прогон по готовности хоста — если все пункты зелёные, можно ставить панель:

bash
# ключевой вход — по ключу, пароль отбит
grep -E '^(PasswordAuthentication|PermitRootLogin)' /etc/ssh/sshd_config

# файервол включён и правила на месте
ufw status verbose

# fail2ban живой
systemctl is-active fail2ban

Всё в порядке — фундамент готов. Дальше идёшь в раздел «Панель» и ставишь Remnawave на этот сервер. Помни правило разделения: панель и ноды — на разных машинах, так что эту базовую подготовку ты повторишь на каждом сервере отдельно. Механику, зачем каждый шаг нужен, разбирали в теории «Как выбрать сервер и локацию».

Следующий гайд Экономика VPN-сервиса: откуда маржа → Не понравилась статья или что-то непонятно? Напишите мне — помогу или поправлю. @notrealvpn →
Материал носит образовательный характер и посвящён инженерии сетевой инфраструктуры. Вы отвечаете за соблюдение законов своей юрисдикции.