Введение
Proxmox VE (Virtual Environment) — это мощная и гибкая платформа для виртуализации, широко используемая для управления виртуальными машинами и контейнерами. Несмотря на высокий уровень безопасности, в случае ошибки настройки или эксплуатации уязвимости в системе злоумышленники могут получить доступ к серверу через SSH. Если атака приводит к компрометации root-доступа, необходимо немедленно предпринять шаги для предотвращения дальнейшего ущерба и усилить безопасность системы.
В этой статье мы рассмотрим основные меры, которые помогут защитить root-аккаунт после взлома SSH на сервере Proxmox.
1. Отключение прямого входа root через SSH
Один из самых простых, но важных шагов для защиты root-пользователя — это запретить прямой доступ к root через SSH. Даже если злоумышленник смог пройти аутентификацию, доступ к root будет заблокирован.
Шаги:
-
Откройте конфигурационный файл SSH:
nano /etc/ssh/sshd_config
-
Найдите строку:
PermitRootLogin yes
-
Замените её на:
PermitRootLogin no
-
Перезапустите службу SSH:
systemctl restart sshd
Эта настройка предотвратит прямой вход в систему как root, однако пользователи с правами sudo смогут выполнять административные задачи.
2. Запрет выполнения su обычными пользователями
Если злоумышленник получил доступ к обычному пользователю с правами sudo, он может попытаться перейти в root через команду su
. Для защиты можно ограничить использование этой команды, разрешив её только для определенных пользователей.
Шаги:
-
Откройте файл конфигурации для
su
:nano /etc/pam.d/su
-
Найдите строку:
-
Раскомментируйте её, удалив символ
#
:auth required pam_wheel.so use_uid
-
Добавьте пользователя в группу
wheel
(группа, имеющая право на использованиеsu
):usermod -aG wheel username
Теперь только пользователи из группы wheel
смогут использовать команду su
для перехода в root.
3. Ограничение прав sudo
Злоумышленники могут использовать команду sudo
для выполнения привилегированных команд. Чтобы уменьшить риски, можно ограничить доступ к критичным командам, таким как смена пароля root или запуск su
.
Шаги:
-
Откройте файл sudoers с помощью безопасного редактора
visudo
:visudo
-
Добавьте правило для ограничения команд:
username ALL=(ALL) ALL, !/bin/su, !/usr/bin/passwd root
Этот код запрещает пользователю username
выполнять команду su
и изменять пароль root, даже если у него есть права sudo
.
4. Настройка Fail2Ban для блокировки попыток su и sudo
Fail2Ban — это полезный инструмент для защиты от атак подбора паролей. Он анализирует журналы и блокирует IP-адреса, с которых происходит большое количество неудачных попыток аутентификации.
Шаги:
-
Установите Fail2Ban:
apt install fail2ban -y
-
Отредактируйте файл конфигурации
/etc/fail2ban/jail.local
:Добавьте следующие разделы для защиты от атак на команды
su
иsudo
:[sudo] enabled = true filter = sudo logpath = /var/log/auth.log maxretry = 3 bantime = 600 [su] enabled = true filter = su logpath = /var/log/auth.log maxretry = 3 bantime = 600
-
Создайте фильтры для отслеживания неудачных попыток выполнения команд
sudo
иsu
:Для фильтра sudo:
nano /etc/fail2ban/filter.d/sudo.conf
Добавьте следующее правило:
[Definition] failregex = .*sudo:.*authentication failure;.* user=.*$
Для фильтра su:
nano /etc/fail2ban/filter.d/su.conf
Добавьте правило для
su
:[Definition] failregex = .*pam_unix(su:auth): authentication failure;.*$
-
Перезапустите Fail2Ban для применения изменений:
systemctl restart fail2ban
Теперь система будет блокировать IP-адреса, с которых происходят многочисленные неудачные попытки входа через SSH, su
или sudo
.
5. Мониторинг команд пользователей
Важно отслеживать все действия, которые выполняются пользователями после входа в систему через SSH. Логирование всех команд поможет выявить подозрительную активность.
Шаги:
- Добавьте следующую строку в файл
/etc/profile
, чтобы записывать команды в журнал:echo 'export PROMPT_COMMAND="history -a; logger -t bash -p user.info \"$(history 1)\""' >> /etc/profile
Теперь каждое выполнение команды будет записываться в системный лог, что позволит отслеживать действия пользователей и выявлять возможные попытки эксплуатации системы.
6. Усиленная аутентификация для sudo (2FA)
Для повышения безопасности можно добавить двухфакторную аутентификацию (2FA) для команд, выполняемых с правами sudo
. Для этого используем Google Authenticator.
Шаги:
-
Установите пакет для поддержки 2FA:
apt install libpam-google-authenticator -y
-
Запустите настройку для пользователя:
google-authenticator
-
Добавьте следующую строку в файл
/etc/pam.d/sudo
:auth required pam_google_authenticator.so
Теперь для выполнения команд с правами sudo
потребуется ввести одноразовый код из приложения Google Authenticator, что значительно повышает безопасность.
7. Дополнительная защита через AppArmor
AppArmor (Application Armor) — это система контроля доступа, которая ограничивает действия процессов, запущенных на сервере, в зависимости от заранее заданных политик безопасности. Это своего рода "песочница" для процессов, предотвращающая их доступ к чувствительным файлам или выполнение опасных операций, даже если эти процессы были скомпрометированы.
AppArmor, в отличие от SELinux (еще одного популярного средства контроля доступа), использует проще настраиваемые профили безопасности, что делает его удобным для администраторов.
AppArmor работает, блокируя процессы в рамках "профилей безопасности", которые описывают, какие действия процесс может выполнять и к каким ресурсам может обращаться. Эти профили включают список разрешенных или запрещенных файловых путей, сетевых портов, а также системных вызовов.
Применение AppArmor на сервере Proxmox после взлома SSH может значительно снизить последствия компрометации, так как это поможет изолировать и ограничить доступ нарушителя к важным системным ресурсам.
Как работает AppArmor?
AppArmor применяет "профили" для каждого приложения или процесса, ограничивая его действия на основе описанных правил. Профили могут разрешать или запрещать различные действия, такие как доступ к определенным файлам, запуск сетевых соединений, доступ к устройствам и другим системным ресурсам.
Когда процесс запускается, система проверяет, какой профиль безопасности применяется к этому процессу. Если профиль для процесса ограничивает доступ к системным ресурсам, то процесс не сможет получить доступ к этим ресурсам, даже если он был скомпрометирован. Это делает невозможным использование таких процессов для дальнейших атак, например, для передачи данных на удаленные серверы или модификации конфиденциальных файлов.
Как установить и настроить AppArmor на Proxmox
Шаг 1. Установка AppArmor
AppArmor должен быть установлен в системе. На Proxmox, основанном на Debian, его можно установить с помощью команды:
apt install apparmor apparmor-utils -y
Шаг 2. Активация и запуск AppArmor
После установки необходимо включить AppArmor и убедиться, что он работает:
systemctl enable apparmor --now
Чтобы проверить состояние AppArmor, используйте команду:
systemctl status apparmor
Если все настроено корректно, в выводе будет указано, что AppArmor активно.
Шаг 3. Настройка профилей
AppArmor использует профили для каждой программы, которые описывают, что может и что не может делать эта программа. Например, профиль может разрешить процессу доступ только к определенным файлам и блокировать его доступ к другим системным данным.
Если вы хотите настроить или создать профиль для приложения (например, для вашего виртуализатора или другой критически важной программы), используйте следующую команду для создания профиля:
aa-genprof /path/to/your/application
Это будет запускать программу в интерактивном режиме, где вы можете задать необходимые разрешения и ограничения для конкретных действий.
Шаг 4. Применение профилей
После того как профили настроены, вы можете применить их с помощью команды:
aa-enforce /path/to/your/application
Если вы хотите временно отключить профиль для отладки, используйте:
aa-disable /path/to/your/application
Преимущества использования AppArmor на Proxmox
- Минимизация последствий взлома: Даже если злоумышленник получает доступ к приложению, его действия будут ограничены профилем, что снижает риск дальнейших атак и утечек данных.
- Простота настройки: AppArmor проще в настройке по сравнению с SELinux, и администратор может легко управлять и настраивать профили для различных приложений.
- Дополнительный слой защиты: Использование AppArmor добавляет дополнительный уровень безопасности, который работает независимо от других механизмов защиты.
Заключение
Защита root-доступа на сервере Proxmox после взлома SSH — это комплекс мер, направленных на ограничение прав, мониторинг действий пользователей и дополнительную аутентификацию. Применение описанных рекомендаций значительно повысит безопасность системы и усложнит злоумышленнику задачу по эскалации привилегий и захвату контроля над сервером.
Соблюдение этих практик — это не только уменьшение рисков, но и гарантированное повышение уровня защиты вашего сервера и виртуальной среды.
Реклама Google |
|
Внимание! Данная статья не является официальной документацией.Использование информации необходимо выполнять с осторожностью, используя для этого тестовую среду.
Если у вас есть вопросы о построении современных систем резервного копирования, репликации, синхронизации данных и защиты от программ вымогателей обратитесь в нашу компанию для получения консультации о современных технологиях резервного копирования и восстановления данных. Наша компания имеет более чем 20-летний опыт в этой области. |
Десять лучших практик резервного копирования в Казахстане
- Защита гипервизора oVirt — глубокое погружение
- Перенос виртуальной машины из oVirt в Proxmox
- Как перенести виртуальную машину из Proxmox в oVirt
- Защита контейнеров Kubernetes — глубокое погружение
- Как защитить гипервизор Proxmox от взлома - Глубокое погружение
- Использование Fail2Ban для защиты oVirt - Глубокое погружение
- Организация резервного копирования гипервизора oVirt — Глубокое погружение
- Перенос виртуальной машины между гипервизорами Proxmox
- Конфигурация гипервизора Proxmox для оптимальной работы виртуальных машин
- Защита root после взлома SSH на Proxmox - глубокое погружение