Введение / Зачем это нужно
По умолчанию Ubuntu работает с многими отключёнными функциями безопасности, что делает систему уязвимой для атак. hardening — это процесс добавления слоёв защиты: брандмауэра, строгих правил sudo, регулярных обновлений, отключения лишних служб и включения систем предотвращения несанкционированного доступа. После выполнения этих шагов ваша Ubuntu станет гораздо менее привлекательной для злоумышленников и лучше защитит ваши данные.
Требования / Подготовка
- Ubuntu 20.04 LTS, 22.04 LTS или 23.10.
- Права администратора (
sudo). - Доступ в интернет для обновления пакетов.
- Базовый набор инструментов (
curl,gitи т.д.) может потребоваться для дальнейшего администрирования.
Пошаговая инструкция
Шаг 1: Включение брандмауэра Ubuntu
Брандмауэр UFW (Uncomplicated Firewall) позволяет быстро контролировать входящие и исходящие соединения.
- Установите
ufw, если он ещё не установлен:sudo apt install ufw - Включите брандмауэр:
Подтвердите запрос.sudo ufw enable - Разрешите необходимые порты (например, SSH):
sudo ufw allow 22/tcp - Проверьте статус брандмауэра:
sudo ufw status verbose
💡 Совет: Если вам нужен веб-доступ, разрешите порт 80 и 443 перед включением брандмауэра.
Шаг 2: Настройка sudo для ограниченных привилегий
Сильные права sudo предотвращают злоупотребления даже в случае компрометации пользователя.
- Откройте файл
/etc/sudoersв безопасном редакторе:sudo visudo - Найдите строку
%admin ALL=(ALL) ALLи убедитесь, что она соответствует вашим группам администраторов. Если группа не существует, создайте её:sudo usermod -aG admin your_username - Удалите или закомментируйте строки, которые granting все привилегии всем пользователям (
ALL=(ALL) ALL). Сохраните изменения.
⚠️ Важно: Неправильное редактирование
/etc/sudoersможет заблокировать доступ к системе. Создайте резервную копию перед изменением (sudo cp /etc/sudoers /etc/sudoers.bak).
Шаг 3: Обновление системы и установленных пакетов
Регулярные обновления устраняют известные уязвимости.
- Обновите индекс пакетов:
sudo apt update - Примените обновления и установите обновления:
sudo apt upgrade -y - Перезагрузите систему для применения kritisых обновлений ядра:
sudo reboot
Шаг 4: Отключение ненужных служб
Службы, которые не используются, создают ненужные векторы атаки.
- Составьте список всех служб:
sudo systemctl list-unit-files --type=service - Отключите неиспользуемые службы (пример для принтера и Bluetooth):
sudo systemctl disable cups.service sudo systemctl mask bluetooth.service - Проверьте статус:
sudo systemctl status cups.service bluetooth.service
Шаг 5: Настройка SSH для безопасного доступа
SSH — это часто используемый вектор атаки; укрепление его конфигурации значительно повышает безопасность.
- Откройте конфигурационный файл
/etc/ssh/sshd_configдля редактирования:sudo nano /etc/ssh/sshd_config - Установите следующие параметры (если они отсутствуют):
PasswordAuthentication no PermitRootLogin no PubkeyAuthentication yes PermitEmptyPasswords no MaxAuthTries 3 - Сохраните изменения и перезапустите SSH:
sudo systemctl restart sshd
Шаг 6: Включение AppArmor/системы предотвращения несанкционированного доступа
AppArmor ограничивает действия программ в соответствии с профилями, что предотвращает эксплуатацию уязвимостей.
- Проверьте активные профили:
sudo aa-status - Включите AppArmor для всех режимов (если ещё не включён):
sudo systemctl enable apparmor sudo systemctl start apparmor - Перезагрузите систему, чтобы профили применились:
sudo reboot
Проверка результата
После выполнения всех шагов убедитесь, что hardening выполнено правильно:
- Брандмауэр:
sudo ufw status verboseдолжен показатьStatus: activeс разрешёнными правилами. - Sudo:
sudo -lдля текущего пользователя должен показать разрешённые команды. - Обновления:
sudo apt list --upgradableдолжно показать пустой список или только необязательные обновления. - Службы:
systemctl list-unit-files --type=service | grep enabledдолжен показать только необходимые службы. - SSH:
sshd -tдолжен подтвердить корректность конфигурации. - AppArmor:
aa-statusдолжен показатьAppArmor status: enabled.
Возможные проблемы
- Брандмауэр блокирует доступ: Если после включения
UFWвы не можете подключиться по SSH, временно отключите его (sudo ufw disable), добавьте правило для нужного порта, затем включите обратно (sudo ufw enable). - Sudo не работает после изменений: Если вы заблокировали себя, загрузитесь в режиме восстановления и отредактируйте
/etc/sudoers(sudo nano /etc/sudoers), восстановите резервную копию или вручную добавьте свою учетную запись в группуadmin. - Приложение не запускается после включения AppArmor: Проверьте журналы в
/var/log/apparmor/*.log, отключите профиль для данного приложения (sudo aa-disable /path/to/profile), отредактируйте или создайте новый профиль.
Соблюдая эти рекомендации, вы значительно повысите безопасность Ubuntu и защитите систему от распространённых угроз.