opened image

Безопасность на облачном VPS: как защитить сервер от атак

Использование облачного VPS требует особого внимания к вопросам безопасности, поскольку серверы в облаке находятся под постоянной угрозой со стороны злоумышленников. Кибератаки на серверы могут привести к утечке данных, удалению информации, блокировке сервера и даже к использованию ресурсов вашего VPS для проведения атак на другие системы. Чтобы понять, насколько важна безопасность VPS, рассмотрим некоторые основные типы угроз:

  1. DDoS-атаки (Distributed Denial of Service): Сервер перегружается множеством запросов, что приводит к его недоступности для пользователей и финансовым потерям для бизнеса.

  2. Брутфорс-атаки: Злоумышленники подбирают логин и пароль для получения несанкционированного доступа, что может привести к полному захвату системы.

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

 

 

Избежать этих угроз можно с помощью грамотной настройки и комплексного подхода к безопасности. В статье мы рассмотрим, как правильно настроить SSH, брандмауэр, реализовать двухфакторную аутентификацию и использовать другие меры для защиты.

 

Основные меры безопасности для облачного VPS

 

1. Настройка сетевого протокола SSH

SSH — основной способ управления сервером и "Установка и использование протокола SSH на Ubuntu 24.04 LTS", но его стандартные настройки делают сервер уязвимым для атак. Защиту соединения с сервером можно обеспечить приняв определенные меры безопасности.

Изменение стандартного порта SSH
Стандартный для SSH Порт 22 часто подвергается сканированию со стороны злоумышленников. Для сокращения числа серверных атак, рекомендуется отказаться от использования SSH-порта и заменить его.

Внесите необходимые правки в файл sshd_config для изменения SSH-порта:
sudo nano /etc/ssh/sshd_config

В конфигурационном документе следует найти строку с #Port 22 и установите другое значение, к примеру, 2200. Сохраните изменения и совершите процесс перезагрузки SSH-службы:
sudo systemctl restart ssh

 

 

  • Отключение доступа через пароль
    Значительно улучшает рабочий процесс внедрение и применение SSH-ключей, заменяющие классические пароли, поскольку ключи трудно подобрать брутфорс-методом. Для настройки ознакомьтесь с действиями, описанным далее:
    Формирование ключа:
    ssh-keygen -t rsa -b 4096
    Создание на сервере дубликата ключа:
    ssh-copy-id user@server_ip
    Деактивация системы паролей:
    sudo nano /etc/ssh/sshd_config
    Установите PasswordAuthentication в значение no, после этого перезапустите сетевой протокол.

  • Использование IP-адресов для ограничения доступа
    Вам необходимо использовать настройки брандмауэра или файлов настроек /etc/hosts.allow и /etc/hosts.deny для применения конфигураций, которые разрешат доступ к SSH только для конкретных IP-адресов.

 

2. Задействование устойчивых паролей

 

Сложные пароли, содержащие как минимум 12 символов, специальные символы и буквы в разном регистре, повышают устойчивость, играя ключевую роль в защите от брутфорс-атак. Рекомендуется использовать менеджеры паролей, чтобы избежать запоминания сложных комбинаций.

 

3. Двухэтапная аутентификация

 

Чтобы обеспечить более высокий уровень безопасности, необходимо настроить двухэтапную аутентификацию (2FA). Это добавит ещё один уровень защиты, требуя не только пароль, но и одноразовый код, генерируемый приложением на вашем телефоне.

Установите библиотеку:
sudo apt install libpam-google-authenticator

 

 

Настройте аутентификацию с помощью Google Authenticator:
google-authenticator

 

 

Сканируйте QR-код приложением и следуйте инструкциям. Скриншот выше предназначен для того, чтобы показать как это будет выглядеть и делался в тестовой среде.

 

4. Другие меры безопасности

Ограничение прав доступа: Создавайте отдельных пользователей с ограниченными правами и используйте sudo только при необходимости.

Обновление ПО: Старые версии программного обеспечения могут содержать уязвимости, которые злоумышленники могут использовать для взлома сервера. Регулярное обновление всех пакетов уменьшает такие риски:
sudo apt update && sudo apt upgrade

Мониторинг логов: Логи содержат важную информацию о подозрительной активности на сервере. Используйте утилиты fail2ban и logwatch для автоматического мониторинга и уведомления о подозрительной активности.

 

Конфигурация межсетевого экрана

 

Брандмауэр, он же межсетевой экран, является первой линией защиты, предотвращающей неправомерное проникновение на ваш сервер. Можно воспользоваться утилитой ufw (Uncomplicated Firewall), которую возможно применять в качестве межсетевого экрана. Она отличается своей простотой в настройке и управлении.

 

1. Инсталляция и запуск утилиты

В случае отсутствия установленной версии, инсталлируйте и активируйте ufw:

sudo apt install ufw


 

sudo ufw enable

 

2. Открытие доступа через SSH

Предоставьте доступ для SSH к избранному порту, чтобы избежать утраты связи с сервером:

sudo ufw allow 2200/tcp  # Укажите ваш нестандартный порт

 

3. Настройка правил доступа

После настройки SSH можно разрешить доступ к другим службам, например, к HTTP и HTTPS:

sudo ufw allow 80/tcp

sudo ufw allow 443/tcp

 

4. Блокировка всех остальных подключений

Для усиления защиты, произведите полную блокировку входящих подключений, кроме тех, которым вы явно предоставили разрешение:

sudo ufw default deny incoming

sudo ufw default allow outgoing

 

5. Анализ и оценка норм

Возможность ознакомиться с действующими правилами фаервола и подтвердить, что все конфигурации функционируют корректно дает команда ufw status:

sudo ufw status


 

Наблюдение и оценка мер безопасности

Постоянное осуществление проверок и наблюдения за безопасностью помогает избежать инцидентов, предотвращая причинения вреда.

 

Как работать с fail2ban
Утилита fail2ban самостоятельно ограничивает доступ IP-адресов, осуществляющих сомнительные действия, такие как многократные неудачные входы в систему. Инсталлируйте утилиту:
sudo apt install fail2ban


 

Подготовьте файл конфигурации и задайте параметры блокировки:


sudo nano /etc/fail2ban/jail.local

Задайте необходимые настройки для SSH, HTTP и прочих служб.

 

Мониторинг логов с помощью logwatch


logwatch — утилита, позволяющая получать отчеты о подозрительной активности на сервере. Инсталлируйте logwatch:
sudo apt install logwatch


 

 

 

  1. Для наблюдения за активностью, происходящей на сервере вам стоит настроить ежедневные отчеты на email.

  2. Бэкап данных
    Чтобы защитить свои файлы от кибератак или ошибки администратора, крайне полезно проводить систематический бэкап всех необходимых данных. Для настройки автоматического бэкапа можно обратиться к rsync, cron, а также облачным сервисам хранения.

 

 

Заключение

Используя рассмотренные методы, можно заметно укрепить защиту VPS и снизить риски. Фундаментальными, но далеко не исчерпывающими мерами обеспечения безопасности будет установка двухфакторной аутентификации, применение усложненных паролей и конфигурация SSH. Конфигурация фаервола ограничивает доступ только к нужным портам, предотвращая несанкционированное подключение, а такие инструменты, как fail2ban и logwatch, помогут своевременно обнаружить сомнительные действия и предотвратить попытки вторжений.

Также стоит помнить о систематическом бэкапе данных. Независимо от того, насколько надежно ваша система защищена, всегда существует шанс, что сервер столкнется с нападением. В таких случаях бэкапы окажут неоценимую помощь в быстром восстановлении системы и снижении ущерба. Не забывайте периодически пересматривать и обновлять свои настройки безопасности в соответствии с текущими угрозами. Современные кибератаки становятся все более изощренными, и только постоянное внимание к безопасности позволит защитить ваш VPS и данные на нем.

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