VPS (Virtual Private Server) — это универсальный инструмент, применяемый для веб-хостинга, разработки, организации личного облачного хранилища, тестирования на проникновение (пентестинга), анализа безопасности и развёртывания VPN-сервера. Без грамотной настройки VPS становится уязвимой точкой входа для атакующих. Ниже приведено пошаговое руководство по созданию защищённого VPS-сервера на базе актуального дистрибутива Ubuntu 24.04 LTS.
Примечание редакции (2026): Руководство актуализировано с учётом Ubuntu 24.04 LTS (Noble Numbat) — текущей LTS-версии с поддержкой до апреля 2029 года. Рекомендации по SSH и UFW соответствуют современным стандартам NIST SP 800-123.
Выбор провайдера и операционной системы
Первым важным шагом является выбор надёжного провайдера VPS. При оценке провайдера обращайте внимание на следующие факторы:
- Репутация компании и отзывы клиентов
- Расположение серверов и качество сети
- Доступные варианты операционных систем
- Производительность и масштабируемость тарифных планов
- Уровень технической поддержки и документации
Для операционной системы рекомендуется Ubuntu 24.04 LTS или Debian 12 — они имеют широкую поддержку сообщества, регулярные обновления безопасности и хорошо подходят для серверных задач. Ubuntu 24.04 LTS получает обновления безопасности до апреля 2029 года.
Если ваша цель — пентестинг и анализ безопасности, стоит рассмотреть специализированные дистрибутивы: Kali Linux, ParrotOS или BlackArch. Они содержат предустановленный набор инструментов для тестирования на проникновение, анализа уязвимостей и реверс-инжиниринга.
Первоначальная настройка сервера
После создания VPS подключитесь по SSH с учётными данными провайдера и выполните следующие шаги:
- Обновите все установленные пакеты:
sudo apt update && sudo apt upgrade -y
- Создайте нового пользователя с правами sudo и настройте аутентификацию по SSH-ключу:
adduser johndoe usermod -aG sudo johndoe mkdir -p /home/johndoe/.ssh chmod 700 /home/johndoe/.ssh nano /home/johndoe/.ssh/authorized_keys # Вставьте ваш публичный SSH-ключ chmod 600 /home/johndoe/.ssh/authorized_keys chown -R johndoe:johndoe /home/johndoe/.ssh
- Отключите вход для root и вход по паролю, отредактировав
/etc/ssh/sshd_config:PermitRootLogin no PasswordAuthentication no
- Перезапустите службу SSH:
sudo systemctl restart sshd
Укрепление безопасности SSH
SSH — основной канал удалённого доступа к VPS. Рекомендуется несколько уровней защиты:
- Установите fail2ban для блокировки брутфорс-атак:
sudo apt install fail2ban -y sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Логи хранятся в
/var/log/fail2ban.log. Файлjail.localимеет приоритет надjail.conf. - Используйте только аутентификацию по SSH-ключам (настроено на предыдущем шаге).
- Смените стандартный порт SSH (например, на 2222) в
/etc/ssh/sshd_config:Port 2222
- Ограничьте доступ к SSH определёнными пользователями:
AllowUsers johndoe
- Включите 2FA с помощью Google Authenticator или аналогичного решения.
После внесения изменений перезапустите SSH:
sudo systemctl restart sshd
Настройка двухфакторной аутентификации (2FA)
Двухфакторная аутентификация существенно повышает безопасность, требуя одноразовый код при каждом входе по SSH.
- Установите модуль Google Authenticator PAM:
sudo apt install libpam-google-authenticator -y
- Запустите настройку от имени пользователя:
su - johndoe google-authenticator
Сохраните резервные коды в безопасном месте.
- Добавьте в конец файла
/etc/pam.d/sshd:auth required pam_google_authenticator.so
- В
/etc/ssh/sshd_configустановите:KbdInteractiveAuthentication yes AuthenticationMethods publickey,keyboard-interactive
Примечание: параметр ChallengeResponseAuthentication устарел в Ubuntu 22.04+; используйте KbdInteractiveAuthentication.
- Перезапустите SSH:
sudo systemctl restart sshd
Настройка брандмауэра UFW
UFW (Uncomplicated Firewall) — стандартный инструмент управления брандмауэром в Ubuntu. Важно: разрешите нужные порты до включения UFW, иначе вы потеряете доступ к серверу.
Установка и базовая настройка UFW:
sudo apt install ufw -y sudo ufw allow 2222/tcp # SSH на нестандартном порту sudo ufw allow 80/tcp # HTTP sudo ufw allow 443/tcp # HTTPS sudo ufw enable
Проверьте статус правил:
sudo ufw status verbose
Автоматическое применение обновлений безопасности
Настройте автоматическую установку обновлений безопасности для снижения риска эксплуатации известных уязвимостей:
sudo apt install unattended-upgrades -y sudo dpkg-reconfigure --priority=low unattended-upgrades
Это обеспечивает своевременное применение патчей без ручного вмешательства — критически важный элемент защиты согласно NIST SP 800-40 по управлению патчами.
Мониторинг сервера
Регулярный мониторинг позволяет своевременно обнаруживать потенциальные угрозы:
- Используйте Prometheus и Grafana для сбора и визуализации метрик сервера.
- Настройте централизованный сбор логов с помощью ELK-стека (Elasticsearch, Logstash, Kibana).
- Применяйте инструменты обнаружения вторжений: OSSEC или Suricata.
- Регулярно просматривайте системные логи командой
journalctl -xeи файл/var/log/auth.log.
Безопасная передача файлов на VPS
Для передачи файлов между локальной машиной и VPS используйте SCP или SFTP. Пример передачи каталога project:
scp -P 2222 -i ~/.ssh/vps_key -r ~/project johndoe@vps_ip:~/
Данные передаются по шифрованному SSH-соединению. Более удобный интерактивный вариант — SFTP-клиент, например FileZilla или встроенный sftp.
Что делать после настройки
После выполнения базовой настройки выполните финальный контрольный список:
- Убедитесь, что вход по root отключён:
ssh root@vps_ipдолжен возвращать ошибку. - Проверьте правила UFW:
sudo ufw status. - Убедитесь, что fail2ban активен:
sudo fail2ban-client status sshd. - Запустите сканер уязвимостей
lynis audit systemдля оценки состояния безопасности. - Настройте регулярное резервное копирование данных сервера.
Подробные рекомендации по защите Linux-серверов публикует CIS Benchmarks для Ubuntu Linux.