NexNode
Все гайды
БезопасностьНовичок

Как защитить VPS от взлома: 7 шагов после аренды сервера

Базовая защита сервера за полчаса: SSH-ключи вместо пароля, смена порта, файрвол, fail2ban и автообновления. Без сложной теории.

12 мин чтенияобновлено 29 июля 2026 г.

Новый сервер начинают перебирать через несколько минут после включения. Не потому что вы кому-то интересны — по интернету круглосуточно ходят автоматические сканеры, которые пробуют стандартные пароли на всех адресах подряд.

Если посмотреть журнал свежего сервера через сутки, там будут тысячи неудачных попыток входа. Разберём, как закрыть основные дыры за полчаса.

Шаг 1. Смотрим, что уже происходит

Подключитесь к серверу и выполните:

терминал
root@vps:~#grep "Failed password" /var/log/auth.log | wc -l

Число — это количество попыток подобрать пароль. На сервере, который работает пару дней, обычно от нескольких сотен до десятков тысяч.

Посмотрите, какие логины пробуют:

терминал
root@vps:~#grep "Failed password" /var/log/auth.log | awk '{print $(NF-5)}' | sort | uniq -c | sort -rn | head

Почти всегда лидируют root, admin, test, user. Отсюда первый вывод: под этими именами заходить нельзя.

Шаг 2. Ключи вместо пароля

Пароль можно подобрать. SSH-ключ подобрать нельзя — на это уйдут миллиарды лет. Это самая важная мера из всех.

На своём компьютере (не на сервере) создайте ключ:

ваш компьютер
user@local:~#ssh-keygen -t ed25519 -C "мой ноутбук"

Нажмите Enter на всех вопросах. Пароль на ключ ставить не обязательно, но с ним безопаснее.

Скопируйте ключ на сервер:

ваш компьютер
user@local:~#ssh-copy-id root@ВАШ_IP

На Windows, если ssh-copy-id нет, откройте файл C:\Users\ВашеИмя\.ssh\id_ed25519.pub, скопируйте содержимое и вставьте на сервере:

терминал
root@vps:~#mkdir -p ~/.ssh && nano ~/.ssh/authorized_keys

Проверьте вход по ключу в новом окне терминала, не закрывая текущее:

ваш компьютер
user@local:~#ssh root@ВАШ_IP

Не закрывайте текущее подключение

Пока не убедились, что вход по ключу работает, держите открытой рабочую сессию. Иначе при ошибке в настройках вы потеряете доступ к серверу и придётся восстанавливать его через панель провайдера.

Шаг 3. Отключаем вход по паролю

Теперь, когда ключ работает, запретим вход паролем:

терминал
root@vps:~#nano /etc/ssh/sshd_config

Найдите и приведите к такому виду:

PermitRootLogin prohibit-password
PasswordAuthentication no
PubkeyAuthentication yes

Перезапустите SSH:

терминал
root@vps:~#systemctl restart ssh

С этого момента перебор паролей становится бессмысленным: сервер их просто не принимает.

Шаг 4. Меняем порт SSH

Стандартный порт 22 сканируют постоянно. Перевод на нестандартный не защищает сам по себе, но убирает 95% шума в логах и снимает нагрузку.

В том же файле найдите строку Port 22 и замените, например, на:

Port 2222

Сначала откройте порт в файрволе

Если сначала поменять порт, а потом настраивать файрвол, можно закрыть себе доступ. Порядок: разрешить новый порт → перезапустить SSH → проверить вход → закрыть старый.

Шаг 5. Файрвол

Файрвол закрывает всё, кроме того, что вы явно разрешили. Если на сервере случайно окажется служба, слушающая внешний порт, наружу она не выйдет.

терминал
root@vps:~#apt install -y ufwroot@vps:~#ufw allow 2222/tcproot@vps:~#ufw allow 80/tcproot@vps:~#ufw allow 443/tcproot@vps:~#ufw enable

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

терминал
root@vps:~#ufw status numbered

Порты 80 и 443 нужны сайту. Если сайта нет — не открывайте их вовсе.

Шаг 6. fail2ban

Эта программа читает журналы и банит адреса, с которых идут неудачные попытки. Даже с отключёнными паролями она полезна: срезает нагрузку от сканеров.

терминал
root@vps:~#apt install -y fail2ban

Создайте свой файл настроек (не правьте стандартный — его перезапишет обновление):

терминал
root@vps:~#nano /etc/fail2ban/jail.local
[DEFAULT]
bantime = 1h
findtime = 10m
maxretry = 5

[sshd]
enabled = true
port = 2222

Запускаем:

терминал
root@vps:~#systemctl enable --now fail2banroot@vps:~#fail2ban-client status sshd

Через сутки посмотрите ту же команду — увидите список забаненных адресов.

Шаг 7. Автоматические обновления безопасности

Большинство взломов происходит не через хитрые атаки, а через известные дыры в необновлённых программах. Пусть система латает их сама:

терминал
root@vps:~#apt install -y unattended-upgradesroot@vps:~#dpkg-reconfigure --priority=low unattended-upgrades

Выберите «Yes». Теперь обновления безопасности будут ставиться без вашего участия.

Чего делать не нужно

Не ставьте «антивирус для Linux» — на сервере без графики и почты он бесполезен и только ест ресурсы.

Не открывайте панели управления наружу. Если ставите что-то с веб-интерфейсом — базу данных, панель мониторинга, — привяжите её к 127.0.0.1 и ходите через SSH-туннель, а не публикуйте в интернет.

Не используйте один пароль везде. Пароль от панели провайдера, от сервера и от почты должны быть разными — иначе утечка в одном месте открывает всё сразу.

Проверка через неделю

Вернитесь к первой команде из этого гайда и сравните числа. После настройки количество неудачных попыток обычно падает в десятки раз, а те, что остаются, банятся автоматически.

Итог: что заняло полчаса

  • вход только по ключу — перебор паролей невозможен
  • нестандартный порт — сканеры проходят мимо
  • файрвол — наружу торчит только нужное
  • fail2ban — назойливые адреса блокируются сами
  • автообновления — известные дыры закрываются без вас

Этого достаточно, чтобы сервер перестал быть лёгкой мишенью. Дальше уже нужны специфичные меры под конкретные задачи.

Что дальше

Защита — половина дела. Вторая половина — бэкапы: если сервер всё-таки положат или вы сами сотрёте не тот файл, восстановиться можно только из копии.

Если только арендовали сервер и ещё не разобрались с базовыми вещами, начните с первой настройки VPS. А выбрать провайдера с защитой от DDoS поможет каталог хостингов — там есть фильтр по этому признаку.