ansible_cis_ubuntu_2004
Ansible CIS Ubuntu 20.04 LTS Укрепление
CIS укреплённый Ubuntu: предотвращение кибератак и вредоносного ПО для критически важных систем. Рекомендации CIS блокируют ваши системы, устраняя:
- небезопасные программы;
- отключение неиспользуемых файловых систем;
- отключение ненужных портов или сервисов;
- аудит привилегированных операций;
- ограничение административных привилегий.
Рекомендации CIS применяются в виртуальных машинах в публичных и частных облаках. Они также используются для обеспечения безопасности локальных развертываний. Для некоторых отраслей укрепление системы в соответствии с общепринятой стандартной практикой является критерием, который ищут аудиторы. Рекомендации CIS часто являются выбором для укрепления системы, рекомендованным аудиторами для отраслей, требующих соблюдения PCI-DSS и HIPPA, таких как банковское дело, телекоммуникации и здравоохранение. Если вы пытаетесь достичь соответствия с общепринятым стандартом безопасности в отрасли, таким как PCI DSS, APRA или ISO 27001, вам необходимо продемонстрировать, что вы применили документированные стандарты укрепления ко всем системам в рамках оценки.
Бенчмарки Ubuntu CIS организованы в разные профили, а именно "Уровень 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.0.0 - 21-07-2020
Проверить пример директории
Требования
Вам следует внимательно ознакомиться с задачами, чтобы убедиться, что эти изменения не нарушат работу ваших систем, прежде чем запускать этот плейбук.
Вы можете бесплатно скачать книгу CIS Benchmark по следующему URL Бесплатный Бенчмарк
Чтобы начать работать с этой ролью, вам просто нужно установить Ansible. Установка Ansible
Переменные Роли
Вам нужно просмотреть все параметры конфигурации по умолчанию перед запуском этого плейбука. Многие переменные ролей определены в defaults/main.yml.
- Если вы планируете применять эту роль к серверам, вам следует иметь базовое знакомство с CIS Benchmark и понимать, какое влияние это может оказать на систему.
- Читайте и изменяйте настраиваемые значения по умолчанию.
Примеры конфигурации, которые следует немедленно рассмотреть для исключения:
5.1.8 Убедитесь, что cron ограничен для авторизованных пользователей и 5.2.17 Убедитесь, что доступ по SSH ограничен, что по умолчанию эффективно ограничивает доступ к хосту (включая доступ по ssh).
Например:
- CIS-Ubuntu-20.04-Ansible/defaults/main.yml
#Раздел 5
#5.1.8 Убедитесь, что cron ограничен для авторизованных пользователей
allowd_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
наallowd_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 Настройка sudo
- 1.3.1 Убедитесь, что sudo установлен (Автоматизировано)
- 1.3.2 Убедитесь, что команды sudo используют pty (Автоматизировано)
- 1.3.3 Убедитесь, что файл журнала sudo существует (Автоматизировано)
1.4 Проверка целостности файловой системы
- 1.4.1 Убедитесь, что AIDE установлен (Автоматизировано)
- 1.4.2 Убедитесь, что целостность файловой системы проверяется регулярно (Автоматизировано)
1.5 Настройки безопасной загрузки
- 1.5.1 Убедитесь, что установлен пароль для загрузчика (Автоматизировано)
- 1.5.2 Убедитесь, что разрешения на конфигурацию загрузчика настроены (Автоматизировано)
- 1.5.3 Убедитесь, что требуется аутентификация для режима одиночного пользователя (Автоматизировано)
1.6 Дополнительное усиление процессов
- 1.6.1 Убедитесь, что поддержка XD/NX включена (Автоматизировано)
- 1.6.2 Убедитесь, что рандомизация адресного пространства включена (ASLR) (Автоматизировано)
- 1.6.3 Убедитесь, что предзагрузка отключена (Автоматизировано)
- 1.6.4 Убедитесь, что дампы памяти ограничены (Автоматизировано)
1.7 Обязательный контроль доступа
- 1.7.1 Настройка AppArmor
- 1.7.1.1 Убедитесь, что AppArmor установлен (Автоматизировано)
- 1.7.1.2 Убедитесь, что AppArmor включен в конфигурации загрузчика (Автоматизировано)
- 1.7.1.3 Убедитесь, что все профили AppArmor находятся в режиме строгого контроля или режима жалоб (Автоматизировано)
- 1.7.1.4 Убедитесь, что все профили AppArmor строго применяются (Автоматизировано)
1.8 Предупреждающие баннеры
- 1.8.1 Предупреждающие баннеры командной строки
- 1.8.1.1 Убедитесь, что сообщение дня настроено правильно (Автоматизировано)
- 1.8.1.2 Убедитесь, что баннер предупреждения для локального входа настроен правильно (Автоматизировано)
- 1.8.1.3 Убедитесь, что баннер предупреждения для удаленного входа настроен правильно (Автоматизировано)
- 1.8.1.4 Убедитесь, что разрешения на /etc/motd настроены (Автоматизировано)
- 1.8.1.5 Убедитесь, что разрешения на /etc/issue настроены (Автоматизировано)
- 1.8.1.6 Убедитесь, что разрешения на /etc/issue.net настроены (Автоматизировано)
- 1.9 Убедитесь, что обновления, патчи и дополнительное программное обеспечение безопасности установлены (Вручную)
- 1.10 Убедитесь, что GDM удален или вход настроен (Автоматизировано)
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 Proxy Server не установлен (Автоматизировано)
- 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 Убедитесь, что MaxAuthTries для SSH установлен на 4 или меньше (Автоматизировано)
- 5.2.7 Убедитесь, что SSH IgnoreRhosts включен (Автоматизировано)
- 5.2.8 Убедитесь, что SSH HostbasedAuthentication отключен (Автоматизировано)
- 5.2.9 Убедитесь, что вход root отключен (Автоматизировано)
- 5.2.10 Убедитесь, что разрешение пустых паролей SSH отключено (Автоматизировано)
- 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 Убедитесь, что разрешение TCP-пересылки SSH отключено (Автоматизировано)
- 5.2.21 Убедитесь, что MaxStartups для SSH настроен (Автоматизировано)
- 5.2.22 Убедитесь, что MaxSessions ограничен (Автоматизировано)
5.3 Настройка PAM
- 5.3.1 Убедитесь, что требования по созданию паролей настроены (Автоматизировано)
- 5.3.2 Убедитесь, что установлены ограничения на неудачные попытки входа по паролю (Автоматизировано)
- 5.3.3 Убедитесь, что повторное использование пароля ограничено (Автоматизировано)
- 5.3.4 Убедитесь, что алгоритм хеширования паролей - SHA-512 (Автоматизировано)
5.4 Учетные записи пользователей и окружение
- 5.4.1 Установите параметры Shadow Password Suite
- 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 установлен групповой ID 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 Убедитесь, что целостность пути 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/passed
, убедитесь, что обновили конфигурацию вCIS-Ubuntu-20.04-Ansible/defaults/main.yml
Лицензия
GNU GENERAL PUBLIC LICENSE
Информация об авторе
Роль была изначально разработана Ali Saleh Baker.
При внесении изменений в этот репозиторий сначала обсудите изменения, которые вы хотите внести, через GitHub issue, по электронной почте или другими каналами со мной :)
ansible-galaxy install ryezone-labs/ansible_CIS_Ubuntu_2004