Укрепление нового Debian VPS за десять минут
Свежий VPS получает первую попытку SSH-брутфорса в течение нескольких минут после запуска. Это краткий, конкретный контрольный список, закрывающий лёгкие двери — ключи, брандмауэр, fail2ban, автообновления — до установки чего-либо ещё.
Обновлено 2026-06-12

Посмотрите в журнал авторизации любого нового сервера, и фоновое излучение интернета появится немедленно: боты для подбора учётных данных, перебирающие словари против root, сканеры, зондирующие прошлогодние уязвимости, краулеры, снимающие отпечатки всего, что отвечает на порту 80. Ничего личного, и почти всё автоматизировано — а это хорошая новость: автоматизированные атаки побеждаются базовой гигиеной, применённой до развёртывания реальной нагрузки. Это руководство и есть та самая гигиена, сжатая до десяти минут на Debian 12/13 (всё переносится на Ubuntu с небольшими правками). Намеренно не четырёхтысячная фреймворк-инструкция: это именно те двери, которые реально пробуют боты, закрытые в порядке важности. Запустите на каждом сервере, который развернёте здесь, — а затем переходите к VPN, ноде или почтовому серверу, ради которых пришли.
Что намеренно пропускает этот контрольный список
Стук в порты, стены sysctl для усиления ядра, настройка SELinux/AppArmor, наборы обнаружения вторжений — все это реальные инструменты, ни один из которых не является первоочередным для VPS единственного назначения в первый день, и некоторые легко привести к блокировке. Принцип Парето здесь честен: ключи + без паролей + default-deny + автопатчи останавливают практически всю нецелевую компрометацию. Добавляйте тяжёлую артиллерию, когда ваша модель угроз называет конкретного противника, способного преодолеть основы, — и если конфиденциальность на уровне диска важна для вашей модели, помните, что слой KVM позволяет запустить полнодисковое шифрование внутри гостевой ОС.
Резервные копии — часть безопасности
Укрепление снижает вероятность; резервные копии ограничивают ущерб. Еженедельные снапшоты включены в каждый план, но снапшоты живут вместе с сервером — для всего, что нельзя потерять, также отправляйте зашифрованные офлайн-копии: restic или borg на второй сервер (Pup за $3.50 по ссылке в другом регионе отлично подходит как цель резервного копирования) займёт минуты на настройку. Протестируйте восстановление хотя бы один раз; непроверенная резервная копия — это надежда, а не план.
- Войти один раз, обновить всё
apt update && apt full-upgrade -y && rebootШаблоны — это снапшоты; разрыв между датой снапшота и сегодняшним днём — именно то окно, которое зондируют сканеры. Сначала применяйте патчи, перезагружайтесь в новое ядро, затем настраивайте.
- Создать пользователя и установить SSH-ключ
adduser ops && usermod -aG sudo ops mkdir -p /home/ops/.ssh && nano /home/ops/.ssh/authorized_keys # paste your ed25519 public key chmod 700 /home/ops/.ssh && chmod 600 /home/ops/.ssh/authorized_keys && chown -R ops:ops /home/ops/.sshСгенерируйте ключ на локальной машине, если у вас его нет:
ssh-keygen -t ed25519. Протестируйтеssh ops@your-ipво втором терминале перед продолжением. - Заблокировать sshd
Отредактируйте
/etc/ssh/sshd_config.d/hardening.conf:PermitRootLogin no PasswordAuthentication no KbdInteractiveAuthentication no MaxAuthTries 3 AllowUsers opsЗатем
systemctl restart ssh— сначала убедившись, что сессия на основе ключа работает. Подбор пароля заканчивается здесь: угадывать нечего. Перевод порта на нестандартный снижает шум в журналах, но косметически, а не с точки зрения безопасности; делайте это для порядка, если хотите. - Поднять брандмауэр с default-deny (nftables)
Встроенный брандмауэр Debian, минимальный набор правил в
/etc/nftables.conf:table inet filter { chain input { type filter hook input priority 0; policy drop; ct state established,related accept iif lo accept tcp dport 22 accept icmp type echo-request limit rate 5/second accept icmpv6 type { echo-request, nd-neighbor-solicit, nd-neighbor-advert, nd-router-advert } accept } }systemctl enable --now nftables. Открывайте дополнительные порты только при развёртывании сервисов, которым они нужны — руководство по VPN открывает 51820/udp, руководство по почте 25/465/993 и т. д. Default-deny означает, что забытый тестовый демон становится недоступным, а не источником взлома. - Добавить fail2ban для оставшегося шума
apt install -y fail2ban printf "[sshd] enabled = true maxretry = 4 bantime = 1h " > /etc/fail2ban/jail.d/ssh.local systemctl enable --now fail2banПри уже отключённых паролях это глубокая защита плюс гигиена журналов — повторные нарушители сбрасываются брандмауэром вместо того, чтобы засорять журнал авторизации.
- Включить автоматические обновления безопасности
apt install -y unattended-upgrades dpkg-reconfigure -plow unattended-upgradesКоманда безопасности Debian теперь патчит ваш сервер, пока вы спите. Самая эффективная строка на этой странице по числу нажатий клавиш: большинство реальных компрометаций эксплуатируют патчи, которые существовали месяцами.
- Двухминутная проверка
Убедитесь в защищённости извне:
ssh root@your-ip # must be refused nmap -p- your-ip # only 22 (and your service ports) open last -a; journalctl -u ssh -n 50 # familiarise yourself with normalПри желании добавьте TOTP двухфакторную аутентификацию на вашем аккаунте VPSCrypto — панель может пересобрать или переустановить сервер, поэтому заслуживает той же заботы, что и root.
Часто задаваемые вопросы
Стоит ли менять порт SSH?
Это контроль шума в журналах, а не безопасность — сканеры находят нестандартные порты за секунды с помощью masscan. Делайте это, если тихие журналы помогают замечать реальные аномалии; никогда не считайте это слоем защиты. Настоящая защита — аутентификация только по ключам и MaxAuthTries.
Нужен ли fail2ban, если пароли отключены?
Строго говоря, для SSH — нет: брутфорсить нечего. Он остаётся в списке, потому что также покрывает другие сервисы, которые вы можете добавить позже (почта, панели), и делает журналы читаемыми. Пропустите на минималистичном сервере, если предпочитаете.
Нужен ли брандмауэр VPS, если у хостинга есть защита от DDoS?
Они решают разные проблемы. Защита от DDoS upstream поглощает флуд; ваша политика nftables контролирует, какие сервисы вообще доступны. Default-deny — о забытом демоне, а не о гигабитах.
А что насчёт Ubuntu вместо Debian?
Всё применимо; Ubuntu поставляется с ufw как более удобным интерфейсом (ufw default deny incoming; ufw allow 22/tcp; ufw enable) и включает unattended-upgrades по умолчанию в последних релизах. Усиление sshd идентично.
Как восстановить доступ, если я заблокировал себя?
Используйте консольный доступ в вашей личной панели — он независим от sshd, поэтому вы можете исправить неверную конфигурацию или восстановить снапшот. Именно поэтому вы тестируете новую конфигурацию SSH во втором сеансе, не закрывая первый.
Продолжайте изучать.
Разверните офшорный VPS примерно за минуту
Без KYC, оплата криптовалютой, только NVMe. Выберите тариф, оплатите в Monero или любой крупной монете — root-доступ примерно через 60 секунд.
