cis_ubuntu_20_04_ansible
Ansible CIS Ubuntu 20.04 LTS Укрепление V1.1.0 Последняя версия
CIS укреплённый Ubuntu: предотвращение кибератак и вредоносного ПО для критически важных систем. Рекомендации CIS помогают защитить ваши системы, удаляя:
- ненадёжные программы.
- отключая неиспользуемые файловые системы.
- отключая ненужные порты или сервисы.
- проверяя операции с привилегиями.
- ограничивая административные привилегии.
Рекомендации по стандартам CIS применяются в виртуальных машинах в публичных и частных облаках. Они также используются для защиты локальных развертываний. В некоторых отраслях разработка системы в соответствии с общепринятыми стандартами является критерием, на который обращают внимание аудиторы. Рекомендации CIS часто являются выбором для повышения безопасности систем, рекомендованным аудиторами для отраслей, требующих соблюдения стандартов PCI-DSS и HIPAA, таких как банковское дело, телекоммуникации и здравоохранение. Если вы хотите получить соответствие стандартам безопасности, принятым в вашей отрасли, таким как PCI DSS, APRA или ISO 27001, то вам необходимо продемонстрировать, что вы применили задокументированные стандарты укоренения ко всем системам в рамках оценки.
Бенчмарки CIS для Ubuntu организованы в разные профили, а именно «Уровень 1» и «Уровень 2», предназначенные для серверных и рабочий сред.
Профиль уровня 1 предназначен быть практичным и разумным способом защитить систему без значительного влияния на производительность.
- Отключение ненужных файловых систем,
- Ограничение прав пользователей на файлы и директории,
- Отключение ненужных сервисов,
- Настройка сетевых брандмауэров.
Профиль уровня 2 используется в ситуациях, когда безопасность считается очень важной, и это может негативно сказаться на производительности системы.
- Создание отдельных разделов,
- Аудит операций с привилегиями.
Инструмент укрепления для Ubuntu CIS позволяет выбирать желаемый уровень укоренения (Уровень 1 или Уровень 2) и рабочую среду (сервер или рабочая станция) для системы. Пример:
ansible-playbook -i inventory cis-ubuntu-20.yaml --tags="level_1_server"
Вы можете перечислить все теги, выполнив следующую команду:
ansible-playbook -i host run.yaml --list-tags
Я написал все роли, основываясь на
CIS Ubuntu Linux 20.04 LTS Benchmark
v1.1.0 - 21 июля 2020
Проверить пример директории
Требования
Вы должны внимательно ознакомиться с задачами, чтобы убедиться, что эти изменения не сломают ваши системы перед запуском этого плейбука.
Вы можете скачать бесплатную книгу по стандартам CIS по следующему адресу Бесплатный стандарт
Чтобы начать работать в этой роли, вам просто нужно установить Ansible. Установка Ansible
Переменные роли
Вам нужно просмотреть все значения по умолчанию перед запуском этого плейбука. Многочисленные переменные роли определены в defaults/main.yml.
- Если вы собираетесь применить эту роль к каким-либо серверам, у вас должно быть базовое понимание Стандарта CIS и понимание влияния, которое он может оказать на систему.
- Прочтите и измените настраиваемые значения по умолчанию.
Примеры конфигурации, которые следует немедленно рассмотреть для исключения:
5.1.8 Убедитесь, что cron ограничен авторизованными пользователями и 5.2.17 Убедитесь, что доступ по SSH ограничен, которые по умолчанию эффективно ограничивают доступ к хосту (включая доступ через ssh).
Например:
- CIS-Ubuntu-20.04-Ansible/defaults/main.yml
#Раздел 5
#5.1.8 Убедитесь, что cron ограничен авторизованными пользователями
allowed_hosts: "ALL: 0.0.0.0/0.0.0.0, 192.168.2.0/255.255.255.0"
# 5.2.17 Убедитесь, что доступ по SSH ограничен
allowed_users: ali saleh baker root # Укажите None или список пользователей, разделённых пробелом
Если вам нужно изменить шаблоны файлов, вы можете найти их в директории files/templates/*
Зависимости
- Версия Ansible > 2.9
Пример плейбука
Ниже приведён пример плейбука
---
- hosts: host1
become: yes
remote_user: root
gather_facts: no
roles:
- { role: "CIS-Ubuntu-20.04-Ansible", }
Запуск всех
Если вы хотите запустить все теги, используйте следующую команду:
ansible-playbook -i [inventoryfile] [playbook].yaml
Запуск определённого раздела
ansible-playbook -i host run.yaml -t section2
Запуск нескольких разделов
ansible-playbook -i host run.yaml -t section2 -t 6.1.1
Примечание: При запуске отдельной задачи убедитесь в зависимостях между задачами. Например, если вы запустите тег 4.1.1.2 Убедитесь, что служба auditd включена перед запуском 4.1.1.1 Убедитесь, что auditd установлен, вы получите ошибку во время выполнения.
Пункты с
Зачёркнутымеще не реализованы, в настоящее время я работаю над этим.Убедитесь, что вы выбрали один раз сервис, я использую ntp, но вы можете использовать другие сервисы, такие как [
systemd-timesyncd
,ntp
,chrony
] в настройках вdefaults/main.yaml
Тестирование 01.11.2020 протестировано на AWS EC2 Ubuntu 20.04 LTS [Успешно] 01.11.2020 протестировано на локальном сервере Ubuntu 20.04 LTS [Успешно]
Перед запуском убедитесь, что обновили список пользователей в
defaults/main.yaml
вlist_of_os_users
+allowed_users
Убедитесь
, что установили правильную подсеть вdefaults/main.yaml
вallowed_hosts
Таблица ролей:
1 Начальная настройка
- 1.1 Настройка системы
- 1.1.1 Отключить неиспользуемые файловые системы
- 1.1.1.1 Убедитесь, что монтирование файловых систем cramfs отключено (Автоматически)
- 1.1.1.2 Убедитесь, что монтирование файловых систем freevxfs отключено - (Автоматически)
- 1.1.1.3 Убедитесь, что монтирование файловых систем jffs2 отключено (Автоматически)
- 1.1.1.4 Убедитесь, что монтирование файловых систем hfs отключено (Автоматически)
- 1.1.1.5 Убедитесь, что монтирование файловых систем hfsplus отключено - (Автоматически)
- 1.1.1.6 Убедитесь, что монтирование файловых систем udf отключено (Автоматически)
- 1.1.1.7 Убедитесь, что монтирование файловых систем FAT ограничено (Вручную)
- 1.1.2 Убедитесь, что /tmp настроен (Автоматически)
- 1.1.3 Убедитесь, что установлен параметр nodev на разделе /tmp (Автоматически)
- 1.1.4 Убедитесь, что установлен параметр nosuid на разделе /tmp (Автоматически)
- 1.1.5 Убедитесь, что установлен параметр noexec на разделе /tmp (Автоматически)
- 1.1.6 Убедитесь, что /dev/shm настроен (Автоматически)
- 1.1.7 Убедитесь, что установлен параметр nodev на разделе /dev/shm (Автоматически)
- 1.1.8 Убедитесь, что установлен параметр nosuid на разделе /dev/shm (Автоматически)
- 1.1.9 Убедитесь, что установлен параметр noexec на разделе /dev/shm (Автоматически)
1.1.10 Убедитесь, что существует отдельный раздел для /var (Автоматически)1.1.11 Убедитесь, что существует отдельный раздел для /var/tmp (Автоматически)1.1.12 Убедитесь, что установлен параметр nodev на разделе /var/tmp (Автоматически)1.1.13 Убедитесь, что установлен параметр nosuid на разделе /var/tmp (Автоматически)1.1.14 Убедитесь, что установлен параметр noexec на разделе /var/tmp (Автоматически)1.1.15 Убедитесь, что существует отдельный раздел для /var/log (Автоматически)1.1.16 Убедитесь, что существует отдельный раздел для /var/log/audit - (Автоматически)1.1.17 Убедитесь, что существует отдельный раздел для /home (Автоматически)1.1.18 Убедитесь, что установлен параметр nodev на разделе /home (Автоматически)1.1.19 Убедитесь, что установлен параметр nodev на разделах съемных носителей (Вручную)1.1.20 Убедитесь, что установлен параметр nosuid на разделах съемных носителей - (Вручную)1.1.21 Убедитесь, что установлен параметр noexec на разделах съемных носителей - (Вручную)- 1.1.22 Убедитесь, что установлен бит sticky на всех директориях, доступных для записи в мир - (Автоматически)
- 1.1.23 Отключить автозапуск (Автоматически)
- 1.1.24 Отключить USB-накопители (Автоматически)
1.2 Настройка обновлений программного обеспечения
1.2.1 Убедитесь, что репозитории менеджера пакетов настроены (Вручную)1.2.2 Убедитесь, что настроены ключи GPG (Вручную)
1.3 Проверка целостности файловой системы
- 1.3.1 Убедитесь, что AIDE установлен (Автоматически)
- 1.3.2 Убедитесь, что целостность файловой системы регулярно проверяется (Автоматически)
1.4 Настройки безопасной загрузки
- 1.4.1 Убедитесь, что установлен пароль к загрузчику (Автоматически)
- 1.4.2 Убедитесь, что разрешения на конфигурацию загрузчика настроены (Автоматически)
- 1.4.3 Убедитесь, что аутентификация требуется для одно-пользовательского режима (Автоматически)
1.5 Дополнительное укрепление процессов
- 1.5.1 Убедитесь, что поддержка XD/NX включена (Автоматически)
- 1.5.2 Убедитесь, что включена рандомизация адресного пространства (ASLR) (Автоматически)
- 1.5.3 Убедитесь, что предзвязывание отключено (Автоматически)
- 1.5.4 Убедитесь, что дампы ядра ограничены (Автоматически)
1.6 Обязательный контроль доступа
- 1.6.1 Настройка AppArmor
- 1.6.1.1 Убедитесь, что AppArmor установлен (Автоматически)
- 1.6.1.2 Убедитесь, что AppArmor включен в конфигурации загрузчика (Автоматически)
- 1.6.1.3 Убедитесь, что все профили AppArmor находятся в режиме enforcing или complain (Автоматически)
- 1.6.1.4 Убедитесь, что все профили AppArmor находятся в режиме enforcing (Автоматически)
1.7 Предупредительные сообщения
- 1.7.1.1 Убедитесь, что сообщение дня настроено правильно (Автоматически)
- 1.7.1.2 Убедитесь, что предупредительное сообщение для локального входа настроено правильно (Автоматически)
- 1.7.1.3 Убедитесь, что предупредительное сообщение для удаленного входа настроено правильно (Автоматически)
- 1.7.1.4 Убедитесь, что разрешения на /etc/motd настроены (Автоматически)
- 1.7.1.5 Убедитесь, что разрешения на /etc/issue настроены (Автоматически)
- 1.7.1.6 Убедитесь, что разрешения на /etc/issue.net настроены (Автоматически)
1.8 Диспетчер GNOME
- 1.8.1 Убедитесь, что диспетчер GNOME удалён (Вручную)
- 1.8.2 Убедитесь, что настроено предупреждение о входе GDM (Вручную)
- 1.8.3 Убедитесь, что список отключенных пользователей включен (Вручную)
- 1.8.4 Убедитесь, что XDCMP не включен (Вручную)
1.9 Убедитесь, что установлены обновления, патчи и дополнительное программное обеспечение безопасности (Автоматически)
2 Услуги
- 2.1 Услуги inetd
- 2.1.1 Убедитесь, что xinetd не установлен (Автоматически)
- 2.1.2 Убедитесь, что openbsd-inetd не установлен (Автоматически)
- 2.2 Специальные службы
- 2.2.1 Синхронизация времени
- 2.2.1.1 Убедитесь, что синхронизация времени используется (Автоматически)
- 2.2.1.2 Убедитесь, что systemd-timesyncd настроен (Вручную)
- 2.2.1.3 Убедитесь, что chrony настроен (Автоматически)
- 2.2.1.4 Убедитесь, что ntp настроен (Автоматически)
- 2.2.2 Убедитесь, что X Window System не установлен (Автоматически)
- 2.2.3 Убедитесь, что сервер Avahi не установлен (Автоматически)
- 2.2.4 Убедитесь, что CUPS не установлен (Автоматически)
- 2.2.5 Убедитесь, что DHCP-сервер не установлен (Автоматически)
- 2.2.6 Убедитесь, что сервер LDAP не установлен (Автоматически)
- 2.2.7 Убедитесь, что NFS не установлен (Автоматически)
- 2.2.8 Убедитесь, что DNS-сервер не установлен (Автоматически)
- 2.2.9 Убедитесь, что FTP-сервер не установлен (Автоматически)
- 2.2.10 Убедитесь, что HTTP-сервер не установлен (Автоматически)
- 2.2.11 Убедитесь, что сервера IMAP и POP3 не установлены (Автоматически)
- 2.2.12 Убедитесь, что Samba не установлен (Автоматически)
- 2.2.13 Убедитесь, что HTTP-прокси-сервер не установлен (Автоматически)
- 2.2.14 Убедитесь, что SNMP-сервер не установлен (Автоматически)
- 2.2.15 Убедитесь, что агент передачи почты настроен в локальном режиме - (Автоматически)
- 2.2.16 Убедитесь, что служба rsync не установлена (Автоматически)
- 2.2.17 Убедитесь, что NIS-сервер не установлен (Автоматически)
2.3 Клиенты служб
- 2.3.1 Убедитесь, что NIS-клиент не установлен (Автоматически)
- 2.3.2 Убедитесь, что клиент rsh не установлен (Автоматически)
- 2.3.3 Убедитесь, что клиент talk не установлен (Автоматически)
- 2.3.4 Убедитесь, что клиент telnet не установлен (Автоматически)
- 2.3.5 Убедитесь, что клиент LDAP не установлен (Автоматически)
- 2.3.6 Убедитесь, что RPC не установлен (Автоматически)
2.4 Убедитесь, что несущественные службы удалены или замаскированы (Вручную)
3 Сетевая конфигурация
- 3.1 Отключить неиспользуемые сетевые протоколы и устройства
- 3.1.1 Отключить IPv6 (Вручную)
- 3.1.2 Убедитесь, что беспроводные интерфейсы отключены (Автоматически)
3.2 Параметры сети (только хост)
- 3.2.1 Убедитесь, что отправка перенаправленных пакетов отключена (Автоматически)
- 3.2.2 Убедитесь, что IP-перенаправление отключено (Автоматически)
3.3 Параметры сети (хост и маршрутизатор)
- 3.3.1 Убедитесь, что пакеты с маршрутизацией источника не принимаются (Автоматически)
- 3.3.2 Убедитесь, что ICMP-перенаправления не принимаются (Автоматически)
- 3.3.3 Убедитесь, что надежные ICMP-перенаправления не принимаются (Автоматически)
- 3.3.4 Убедитесь, что подозрительные пакеты регистрируются (Автоматически)
- 3.3.5 Убедитесь, что широковещательные ICMP-запросы игнорируются (Автоматически)
- 3.3.6 Убедитесь, что ложные ICMP-ответы игнорируются (Автоматически)
- 3.3.7 Убедитесь, что фильтрация обратного пути включена (Автоматически)
- 3.3.8 Убедитесь, что TCP SYN Cookies включены (Автоматически)
- 3.3.9 Убедитесь, что объявления маршрутизаторов IPv6 не принимаются (Автоматически)
3.4 Нестандартные сетевые протоколы
- 3.4.1 Убедитесь, что DCCP отключен (Автоматически)
- 3.4.2 Убедитесь, что SCTP отключен (Автоматически)
- 3.4.3 Убедитесь, что RDS отключен (Автоматически)
- 3.4.4 Убедитесь, что TIPC отключен (Автоматически)
3.5 Конфигурация брандмауэра
- 3.5.1 Настройка UncomplicatedFirewall
- 3.5.1.1 Убедитесь, что Uncomplicated Firewall установлен (Автоматически)
- 3.5.1.2 Убедитесь, что iptables-persistent не установлен (Автоматически)
- 3.5.1.3 Убедитесь, что служба ufw включена (Автоматически)
- 3.5.1.4 Убедитесь, что трафик обратной связи настроен (Автоматически)
- 3.5.1.5 Убедитесь, что исходящие соединения настроены (Вручную)
- 3.5.1.6 Убедитесь, что правила брандмауэра существуют для всех открытых портов (Вручную)
- 3.5.1.7 Убедитесь, что политика брандмауэра по умолчанию запрещает (Автоматически)
3.5.2 Настройка nftables3.5.2.1 Убедитесь, что nftables установлен (Автоматически)3.5.2.2 Убедитесь, что Uncomplicated Firewall не установлен или отключен - (Автоматически)3.5.2.3 Убедитесь, что iptables очищены (Вручную)3.5.2.4 Убедитесь, что таблица существует (Автоматически)3.5.2.5 Убедитесь, что базовые цепочки существуют (Автоматически)3.5.2.6 Убедитесь, что трафик обратной связи настроен (Автоматически)3.5.2.7 Убедитесь, что исходящие и установленные соединения настроены - (Вручную)3.5.2.8 Убедитесь, что политика брандмауэра по умолчанию запрещает (Автоматически)3.5.2.9 Убедитесь, что служба nftables включена (Автоматически)3.5.2.10 Убедитесь, что правила nftables постоянны (Автоматически)3.5.3 Настройка iptables3.5.3.1.1 Убедитесь, что пакеты iptables установлены (Автоматически)3.5.3.1.2 Убедитесь, что nftables не установлен (Автоматически)3.5.3.1.3 Убедитесь, что Uncomplicated Firewall не установлен или отключен - (Автоматически)3.5.3.2.1 Убедитесь, что политика брандмауэра по умолчанию запрещает (Автоматически)3.5.3.2.2 Убедитесь, что трафик обратной связи настроен (Автоматически)3.5.3.2.3 Убедитесь, что исходящие и установленные соединения настроены - (Вручную)3.5.3.2.4 Убедитесь, что правила брандмауэра существуют для всех открытых портов (Автоматически)3.5.3.3.1 Убедитесь, что политика брандмауэра IPv6 по умолчанию запрещает (Автоматически)3.5.3.3.2 Убедитесь, что трафик обратной связи IPv6 настроен (Автоматически)3.5.3.3.3 Убедитесь, что выходные соединения IPv6 и установленные соединения настроены - (Вручную)
4 Ведение журнала и аудит
- 4.1 Настройка системного учёта (auditd)
- 4.1.1 Убедитесь, что аудит включен
- 4.1.1.1 Убедитесь, что auditd установлен (Автоматически)
- 4.1.1.2 Убедитесь, что служба auditd включена (Автоматически)
- 4.1.1.3 Убедитесь, что аудит процессов, которые начинаются до auditd, включен (Автоматически)
- 4.1.1.4 Убедитесь, что audit_backlog_limit достаточно (Автоматически)
- 4.1.2 Настройка хранения данных
- 4.1.2.1 Убедитесь, что размер хранения журналов аудита настроен (Автоматически)
- 4.1.2.2 Убедитесь, что журналы аудита не удаляются автоматически (Автоматически)
- 4.1.2.3 Убедитесь, что система отключена, когда журналы аудита заполнены - (Автоматически)
- 4.1.3 Убедитесь, что события, изменяющие дату и время, собираются (Автоматически)
- 4.1.4 Убедитесь, что события, изменяющие информацию о пользователе/группе, собираются - (Автоматически)
- 4.1.5 Убедитесь, что собираются события, изменяющие сетевую среду системы - (Автоматически)
- 4.1.6 Убедитесь, что собираются события, изменяющие контроль обязательного доступа системы - (Автоматически)
- 4.1.7 Убедитесь, что собираются события входа и выхода (Автоматически)
- 4.1.8 Убедитесь, что собираются сведения о начале сеанса (Автоматически)
- 4.1.9 Убедитесь, что собираются события изменения разрешений контроля дискреционного доступа - (Автоматически)
- 4.1.10 Убедитесь, что собираются неудачные попытки несанкционированного доступа к файлам - (Автоматически)
- 4.1.11 Убедитесь, что собирается использование привилегированных команд (Автоматически)
- 4.1.12 Убедитесь, что собираются успешные монтирования файловой системы (Автоматически)
- 4.1.13 Убедитесь, что собираются события удаления файлов пользователями (Автоматически)
- 4.1.14 Убедитесь, что собираются изменения в объеме системного администрирования (sudoers) - (Автоматически)
- 4.1.15 Убедитесь, что собираются исполнения команд системного администратора (sudo) - (Автоматически)
- 4.1.16 Убедитесь, что собираются загрузка и выгрузка модулей ядра - (Автоматически)
- 4.1.17 Убедитесь, что конфигурация аудита неизменна (Автоматически)
4.2 Настройка ведения журнала
- 4.2.1 Настройка rsyslog
- 4.2.1.1 Убедитесь, что rsyslog установлен (Автоматически)
- 4.2.1.2 Убедитесь, что служба rsyslog включена (Автоматически)
- 4.2.1.3 Убедитесь, что ведение журнала настроено (Вручную)
- 4.2.1.4 Убедитесь, что установлены разрешения по умолчанию для файла rsyslog - (Автоматически)
- 4.2.1.5 Убедитесь, что rsyslog настроен для отправки журналов на удалённый лог-хост (Автоматически)
- 4.2.1.6 Убедитесь, что удалённые сообщения rsyslog принимаются только на назначенных лог-хостах. (Вручную)
- 4.2.2 Настройка journald
- 4.2.2.1 Убедитесь, что journald настроен для отправки журналов в rsyslog - (Автоматически)
- 4.2.2.2 Убедитесь, что journald настроен для сжатия больших файлов журналов - (Автоматически)
- 4.2.2.3 Убедитесь, что journald настроен для записи файлов журналов на постоянный диск (Автоматически)
- 4.2.3 Убедитесь, что разрешения на все файлы журналов настроены (Автоматически)
- 4.3 Убедитесь, что logrotate настроен (Вручную)
- 4.4 Убедитесь, что logrotate назначает соответствующие разрешения (Автоматически)
5 Доступ, аутентификация и авторизация
- 5.1 Настройка основанных на времени планировщиков заданий
- 5.1.1 Убедитесь, что демон cron включен и работает (Автоматически)
- 5.1.2 Убедитесь, что разрешения на /etc/crontab настроены (Автоматически)
- 5.1.3 Убедитесь, что разрешения на /etc/cron.hourly настроены - (Автоматически)
- 5.1.4 Убедитесь, что разрешения на /etc/cron.daily настроены - (Автоматически)
- 5.1.5 Убедитесь, что разрешения на /etc/cron.weekly настроены - (Автоматически)
- 5.1.6 Убедитесь, что разрешения на /etc/cron.monthly настроены - (Автоматически)
- 5.1.7 Убедитесь, что разрешения на /etc/cron.d настроены (Автоматически)
- 5.1.8 Убедитесь, что cron ограничен авторизованными пользователями (Автоматически)
- 5.1.9 Убедитесь, что at ограничен авторизованными пользователями (Автоматически)
5.2 Настройка SSH-сервера
- 5.2.1 Убедитесь, что разрешения на /etc/ssh/sshd_config настроены - (Автоматически)
- 5.2.2 Убедитесь, что разрешения на приватные ключи хоста SSH настроены - (Автоматически)
- 5.2.3 Убедитесь, что разрешения на публичные ключи хоста SSH настроены - (Автоматически)
- 5.2.4 Убедитесь, что уровень журнала SSH соответствует (Автоматически)
- 5.2.5 Убедитесь, что пересылка X11 SSH отключена (Автоматически)
- 5.2.6 Убедитесь, что SSH MaxAuthTries установлен на 4 или меньше (Автоматически)
- 5.2.7 Убедитесь, что SSH IgnoreRhosts включен (Автоматически)
- 5.2.8 Убедитесь, что SSH HostbasedAuthentication отключен (Автоматически)
- 5.2.9 Убедитесь, что вход под root отключен (Автоматически)
- 5.2.10 Убедитесь, что SSH PermitEmptyPasswords отключен (Автоматически)
- 5.2.11 Убедитесь, что SSH PermitUserEnvironment отключен (Автоматически)
- 5.2.12 Убедитесь, что используются только сильные шифры (Автоматически)
- 5.2.13 Убедитесь, что используются только сильные алгоритмы MAC (Автоматически)
- 5.2.14 Убедитесь, что используются только сильные алгоритмы обмена ключами - (Автоматически)
- 5.2.15 Убедитесь, что время ожидания неактивности SSH настроено (Автоматически)
- 5.2.16 Убедитесь, что время ожидания входа SSH установлено на одну минуту или меньше - (Автоматически)
- 5.2.17 Убедитесь, что доступ по SSH ограничен (Автоматически)
- 5.2.18 Убедитесь, что предупреждающий баннер SSH настроен (Автоматически)
- 5.2.19 Убедитесь, что SSH PAM включен (Автоматически)
- 5.2.20 Убедитесь, что SSH AllowTcpForwarding отключен (Автоматически)
- 5.2.21 Убедитесь, что SSH MaxStartups настроен (Автоматически)
- 5.2.22 Убедитесь, что количество сессий SSH ограничено (Автоматически)
5.3 Настройка PAM
- 5.3.1 Убедитесь, что требования к созданию паролей настроены - (Автоматически)
- 5.3.2 Убедитесь, что блокировка за неудачные попытки пароля настроена - (Автоматически)
- 5.3.3 Убедитесь, что повторное использование пароля ограничено (Автоматически)
- 5.3.4 Убедитесь, что алгоритм хеширования паролей - SHA-512 (Автоматически)
5.4 Учетные записи пользователей и окружение
- 5.4.1 Установить параметры набора паролей Shadow
- 5.4.1.1 Убедитесь, что срок действия пароля - 365 дней или меньше (Автоматически)
- 5.4.1.2 Убедитесь, что минимальные дни между изменениями пароля настроены - (Автоматически)
- 5.4.1.3 Убедитесь, что дни предупреждения о сроках действия пароля - 7 или более - (Автоматически)
- 5.4.1.4 Убедитесь, что блокировка пароля по неактивности - 30 дней или меньше (Автоматически)
- 5.4.1.5 Убедитесь, что даты последнего изменения пароля всех пользователей находятся в прошлом - (Автоматически)
- 5.4.2 Убедитесь, что системные учетные записи защищены (Автоматически)
- 5.4.3 Убедитесь, что группа по умолчанию для учетной записи root - GID 0 (Автоматически)
- 5.4.4 Убедитесь, что умаска пользователя по умолчанию - 027 или более ограничительная - (Автоматически)
- 5.4.5 Убедитесь, что время ожидания оболочки пользователя по умолчанию - 900 секунд или меньше - (Автоматически)
- 5.5 Убедитесь, что вход под root ограничен консолью системы (Вручную)
- 5.6 Убедитесь, что доступ к команде su ограничен (Автоматически)
6 Обслуживание системы
- 6.1 Разрешения файлов системы
6.1.1 Проверьте разрешения файлов системы (Вручную)- 6.1.2 Убедитесь, что разрешения на /etc/passwd настроены (Автоматически)
- 6.1.3 Убедитесь, что разрешения на /etc/gshadow настроены (Автоматически)
- 6.1.4 Убедитесь, что разрешения на /etc/shadow настроены (Автоматически)
- 6.1.5 Убедитесь, что разрешения на /etc/group настроены (Автоматически)
- 6.1.6 Убедитесь, что разрешения на /etc/passwd- настроены (Автоматически)
- 6.1.7 Убедитесь, что разрешения на /etc/shadow- настроены (Автоматически)
- 6.1.8 Убедитесь, что разрешения на /etc/group- настроены (Автоматически)
- 6.1.9 Убедитесь, что разрешения на /etc/gshadow настроены (Автоматически)
- 6.1.10 Убедитесь, что не существует файлов с разрешениями записи для всех (Автоматически)
- 6.1.11 Убедитесь, что не существует файлов или директорий, не принадлежащих никому (Автоматически)
- 6.1.12 Убедитесь, что не существует файлов или директорий, не сгруппированных (Автоматически)
6.1.13 Проверьте SUID-исполняемые файлы (Вручную)6.1.14 Проверьте SGID-исполняемые файлы (Вручную)
6.2 Настройки пользователей и групп
- 6.2.1 Убедитесь, что поля паролей не пусты (Автоматически)
6.2.2 Убедитесь, что root - единственная учетная запись UID 0 (Автоматически)6.2.3 Убедитесь, что целостность PATH root настроена (Автоматически)- 6.2.4 Убедитесь, что существуют домашние директории всех пользователей (Автоматически)
- 6.2.5 Убедитесь, что разрешения домашних директорий пользователей - 750 или более ограничительные (Автоматически)
- 6.2.6 Убедитесь, что пользователи владеют своими домашними директориями (Автоматически)
- 6.2.7 Убедитесь, что файлы пользователей не доступны для групп или записи всем - (Автоматически)
6.2.8 Убедитесь, что нет пользователей с файлами .forward (Автоматически)6.2.9 Убедитесь, что нет пользователей с файлами .netrc (Автоматически)6.2.10 Убедитесь, что файлы .netrc пользователей недоступны для групп или для записи всем - (Автоматически)6.2.11 Убедитесь, что нет пользователей с файлами .rhosts (Автоматически)6.2.12 Убедитесь, что все группы в /etc/passwd существуют в /etc/group - (Автоматически)6.2.13 Убедитесь, что нет дублирующихся UID (Автоматически)6.2.14 Убедитесь, что нет дублирующихся GID (Автоматически)6.2.15 Убедитесь, что нет дублирующих имен пользователей (Автоматически)6.2.16 Убедитесь, что нет дублирующих имен групп (Автоматически)6.2.17 Убедитесь, что группа shadow пуста (Автоматически)
Устранение неполадок
- Если вы хотите запустить плейбук на той же машине, убедитесь, что добавили это в задачу запуска:
- hosts: 127.0.0.1
connection: local
- Если вы столкнулись с проблемой выполнения, попробуйте запустить плейбук в другой директории, например,
/srv/
. - Для ошибки, подобной этой
stderr: chage: user 'ubuntu' does not exist in /etc/passwd
, убедитесь, что обновили конфигурацию вCIS-Ubuntu-20.04-Ansible/defaults/main.yml
.
TASK [CIS-Ubuntu-20.04-Ansible : 1.4.1 Ensure AIDE is installed] ***********************************************************************************************************************************************************************************************************fatal: [192.168.80.129]: FAILED! => {"cache_update_time": 1611229159, "cache_updated": false, "changed": false, "msg": "'/usr/bin/apt-get -y -o \"Dpkg::Options::=--force-confdef\" -o \"Dpkg::Options::=--force-confold\" install 'nullmailer' 'aide-common' 'aide' -o APT::Install-Recommends=no' failed: E: Could not get lock /var/lib/dpkg/lock-frontend. It is held by process 5194 (unattended-upgr)\nE: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?\n", "rc": 100, "stderr": "E: Could not get lock /var/lib/dpkg/lock-frontend. It is held by process 5194 (unattended-upgr)\nE: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?\n", "stderr_lines": ["E: Could not get lock /var/lib/dpkg/lock-frontend. It is held by process 5194 (unattended-upgr)", "E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?"], "stdout": "", "stdout_lines": []}
- Для вышеуказанной ошибки вам нужно убедиться, что в фоновом режиме не запущен процесс apt, или подождать, пока apt завершит выполнение.
TASK [CIS-Ubuntu-20.04-Ansible : 5.4.1.1 Ensure password expiration is 365 days or less | chage] ***************************************************************************************************************************************************************************failed: [192.168.80.129] (item=ubuntu) => {"ansible_loop_var": "item", "changed": true, "cmd": ["chage", "--maxdays", "300", "ubuntu"], "delta": "0:00:00.005478", "end": "2021-01-21 12:49:45.463615", "item": "ubuntu", "msg": "non-zero return code", "rc": 1, "start": "2021-01-21 12:49:45.458137", "stderr": "chage: user 'ubuntu' does not exist in /etc/passwd", "stderr_lines": ["chage: user 'ubuntu' does not exist in /etc/passwd"], "stdout": "", "stdout_lines": []}
- Убедитесь, что вы задали правильного пользователя в defaults/main.yaml.
TASK [CIS-Ubuntu-20.04-Ansible : Creating users without admin access] ***************************************************************************************************************
fatal: [golden]: FAILED! => {"msg": "crypt.crypt not supported on Mac OS X/Darwin, install passlib python module"}
Установите pip install passlib
.
Лицензия
GNU GENERAL PUBLIC LICENSE
Информация об авторе
Роль была первоначально разработана Ali Saleh Baker.
При внесении изменений в этот репозиторий, пожалуйста, сначала обсудите предполагаемое изменение через GitHub, по электронной почте или другими каналами общения со мной :)
ansible-galaxy install alivx/CIS-Ubuntu-20.04-Ansible