Набор скриптов для настройки безопасности Ubuntu Server
Набор bash-скриптов для автоматической настройки и hardening системы Ubuntu Server в соответствии с лучшими практиками безопасности.
СТРУКТУРА ПРОЕКТА
Управляющий скрипт:
- security_hardening.sh - главный скрипт для управления всеми настройками
Основные скрипты настройки (выполняются последовательно):
№ Скрипт Назначение 00 00-Create.conf Требования к системе (CPU, RAM, разделы диска) 00 00-change-hostname.sh Настройка имени сервера 01 01-init_network.sh Настройка сетевого интерфейса 02 02-Mount.sh Настройка параметров монтирования файловых систем 03 03-update_a_time.sh Обновление системы и настройка времени (Chrony) 05 05-kernel-disable.sh Отключение неиспользуемых модулей ядра 06 06-grub-pass.sh Настройка безопасности GRUB с паролем 07 07-Service.sh Настройка системных служб 08 08-session.sh Настройка тайм-аута сессии 09 09-banner.sh Настройка баннеров входа и MOTD 10 10-network.sh Отключение беспроводных интерфейсов 11 11-sudo.sh Настройка журналирования sudo 12 12-rsyslog.sh Настройка rsyslog 13 13-logs.sh Настройка прав доступа к лог-файлам 14 14-SSH.sh Настройка SSH (проверка ключей + безопасность) 15 15-cron.sh Настройка прав доступа для cron 16 16-Network2.sh Дополнительная настройка сетевой безопасности 17 17-sudo_a_pass_a_root.sh Настройка PAM для безопасности системы
Скрипты аудита и мониторинга:
№ Скрипт Назначение 995 995-audit.sh Установка и настройка auditd 996 996-privileges.sh Настройка прав доступа к системным файлам 997 997-AIDE.sh Установка и настройка AIDE (IDS) 998 998-Wazuh.sh Установка Wazuh агента для мониторинга безопасности
БЫСТРЫЙ СТАРТ
Предварительные требования
- Ubuntu Server 20.04/22.04
- Права root
- Минимальные требования из 00-Create.conf:
- 1 vCPU
- 1GB RAM
- 100GB HDD
- Рекомендуемая схема разделов диска
Установка и запуск
- Клонируйте репозиторий: wget https://github.com/LeonArchie/Compliance-Linux/archive/refs/heads/main.zip
apt install unzip
unzip main.zip
cd Compliance-Linux-main/Compliance2.0
-
Добавуьте SSH ключ для вашего пользователя
-
В скрипте SSH изменить имя пользователя archie на свой
-
Задайте имя сервера в файле 00-change-hostname.sh
-
Установите необходимые настройки сети в файле 01-init_network.sh
-
Сделайте скрипты исполняемыми: chmod +x *.sh
-
Запустите главный управляющий скрипт: ./security_hardening.sh
Использование управляющего скрипта
При запуске security_hardening.sh доступны опции:
- Только настройка сети (01-init_network.sh)
- Только смена имени
- Все скрипты с 02 по последний
- Выбрать конкретный скрипт
- Все скрипты по порядку q) Выход
Рекомендуемый порядок:
- Опция 0 для установки имени
- Перезагрузка
- Сначала опция 1 для настройки сети
- Затем опция 2 для остальных скриптов
ВАЖНЫЕ ПРИМЕЧАНИЯ
Критически важные шаги:
- SSH настройка (14-SSH.sh) - требует предварительной настройки SSH-ключа для пользователя archie
- GRUB пароль (06-grub-pass.sh) - сохраните сгенерированный пароль в безопасном месте
- Wazuh агент (998-Wazuh.sh) - требует доступности Wazuh менеджера по адресу wazuh.school59.ru
- Резервные копии - скрипты создают бэкапы конфигурационных файлов
После выполнения:
- Обязательная перезагрузка для применения всех изменений
- Проверьте SSH подключение на порту 56314
- Сохраните пароль GRUB из файла /root/grub_password_*.txt
- Убедитесь в работе Wazuh агента: systemctl status wazuh-agent
ОСОБЕННОСТИ РЕАЛИЗАЦИИ
Безопасность:
- Отключение небезопасных служб и протоколов
- Настройка фаервола и сетевой безопасности
- Hardening PAM и аутентификации
- Настройка аудита и мониторинга
Мониторинг:
- Auditd для отслеживания системных событий
- AIDE для контроля целостности файлов
- Wazuh для комплексного мониторинга безопасности
- Расширенное логирование через rsyslog
Системные ограничения:
- Тайм-аут сессии 900 секунд
- Блокировка после 5 неудачных попыток входа
- Отключение беспроводных интерфейсов
- Ограничение привилегий пользователей
- Безопасные параметры монтирования ФС
ТЕСТИРОВАНИЕ
После выполнения всех скриптов рекомендуется:
- Проверить системные логи на наличие ошибок
- Убедиться в работоспособности SSH
- Проверить аудит: ausearch -m ALL
- Запустить проверку AIDE: aide --check
- Проверить Wazuh агент: /var/ossec/bin/agent_control -l
ЛОГИРОВАНИЕ
Скрипты создают логи в:
- /var/log/sudo.log - действия sudo
- /var/log/aide/ - отчеты AIDE
- /var/ossec/logs/ - логи Wazuh
- Системные журналы auditd и rsyslog
ФАЙЛЫ КОНФИГУРАЦИИ
Основные конфиги:
- /etc/ssh/sshd_config - настройки SSH
- /etc/audit/auditd.conf - конфигурация аудита
- /etc/aide/aide.conf - правила AIDE
- /etc/ossec-agent/ossec.conf - конфиг Wazuh агента
Системные настройки:
- /etc/sysctl.d/ - параметры ядра
- /etc/pam.d/ - настройки PAM
- /etc/security/ - ограничения безопасности
ВКЛАД
Приветствуются предложения и исправления. Пожалуйста, создавайте issue и pull requests.
ЛИЦЕНЗИЯ
Этот проект распространяется под лицензией MIT - смотрите файл LICENSE для деталей.
ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ
Сетевые настройки:
- IP адрес: 192.168.8.13/24
- Шлюз: 192.168.8.1
- DNS: 192.168.8.2, 192.168.8.3
- SSH порт: 56314
Мониторинг:
- Wazuh менеджер: wazuh.school59.ru
- AIDE проверки: ежедневно через systemd timer
Важно: Данные скрипты предназначены для использования в тестовых средах. Перед применением в production обязательно протестируйте и адаптируйте под ваши требования.