TGViewer
ServerAdmin.ru ServerAdmin.ru @srv_admin · 32.6K subscribers
Post #4413 10.6K
У меня в канале в разное время выходили разборы рекомендаций по безопасности от проекта CIS — Center for Internet Security. Кто не видел их, рекомендую. Я почерпнул оттуда некоторые настройки для своих установок. Сами документы объёмные. Постарался взять из них самую суть, которая пригодится в среднестатистическом применении:

▪️ Nginx
▪️ MySQL 5.7
▪️ Apache 2.4
▪️ Debian 11
▪️ Docker
▪️ Ubuntu 22.04 LTS
▪️ PostgreSQL 16

Софт с тех пор уже обновился, вышли новые рекомендации на основе старых, но я не прорабатывал обновления. Базовые настройки чаще всего остаются те же самые с минимальными изменениями.

Отдельно отмечу проект Docker Bench for Security, который автоматически проверяет образы Docker на соответствие рекомендациям CIS.

Сегодня хочу развить эту тему и познакомить вас с проектом CIS Debian 10/11/12 Hardening от известного международного хостера OVH, который когда-то сильно горел. Этот проект состоит из bash скриптов для проверки вашей системы на базе Debian на соответствие рекомендациям по безопасности.

Проект сделан для автоматизации и гибкой, выборочной проверки. Тесты настраиваются, есть возможность исключать какие-то проверки. Можно проводить только аудит, а можно сразу применять изменения для приведения системы в заданные соответствия.

Покажу кратко, как пользоваться этими скриптами. Клонируем репозиторий:

# git clone https://github.com/ovh/debian-cis.git && cd debian-cis

Создаём файл /etc/default/cis-hardening и добавляем туда информацию о директории, из которой мы будем запускать скрипты:

# cp debian/default /etc/default/cis-hardening
# sed -i "s#CIS_LIB_DIR=.*#CIS_LIB_DIR='$(pwd)'/lib#" /etc/default/cis-hardening
# sed -i "s#CIS_CHECKS_DIR=.*#CIS_CHECKS_DIR='$(pwd)'/bin/hardening#" /etc/default/cis-hardening
# sed -i "s#CIS_CONF_DIR=.*#CIS_CONF_DIR='$(pwd)'/etc#" /etc/default/cis-hardening
# sed -i "s#CIS_TMP_DIR=.*#CIS_TMP_DIR='$(pwd)'/tmp#" /etc/default/cis-hardening

Теперь можно запускать как по отдельности проверки, так и все разом. Проверки находятся в директории bin/hardening. На каждый тест – отдельный bash скрипт с осмысленным названием. Например, 1.1.11_var_log_partition.sh. Запускаем:

# ./1.1.11_var_log_partition.sh
1.1.11_var_log_partition [INFO] Working on 1.1.11_var_log_partition
1.1.11_var_log_partition [INFO] [DESCRIPTION] /var/log on separate partition.
1.1.11_var_log_partition [INFO] Checking Configuration
1.1.11_var_log_partition [INFO] Performing audit
1.1.11_var_log_partition [INFO] Verifying that /var/log is a partition
1.1.11_var_log_partition [ KO ] /var/log is not a partition
1.1.11_var_log_partition [ KO ] Check Failed

Я проверку провалил. У меня /var/log находится на корневом разделе. С точки зрения безопасности и стабильности работы системы это не очень хорошо. Во-первых, логи могут заполнить весь корневой раздел. Во-вторых, отдельный раздел под логи можно смонтировать для большей безопасности с некоторыми дополнительными настройками, типа noexec, nosuid, noatime и т.д. Я всё это понимаю, но мне чаще всего удобнее с одним общим разделом для всего.

Для того, чтобы запустить все тесты разом, можно использовать отдельный скрипт в папке bin:

# ./hardening.sh --audit

Будут выполнены все проверки, результат вывалится в консоль. Это неудобно, так как он может быть огромным. Лучше сразу направить вывод в текстовый файл:

# ./hardening.sh --audit > ~/cis.txt

Потом файл можно спокойно посмотреть, осмыслить. Смотреть удобно в less с подсветкой:

# less -R ~/cis.txt

В конце увидите итоговый результат:

Total Passed Checks : [ 102/243 ]
Total Failed Checks : [ 141/243 ]
Enabled Checks Percentage : 100.00 %
Conformity Percentage : 41.97 %

Его можно получить в json:

# ./hardening.sh --audit --summary-json

Для каждой проверки есть свой конфиг в etc/conf.d, где её можно настроить или отключить. По проверкам можно делать либо аудит, либо вносить изменения в систему.

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

#cis #security
  • 👍 132
  • 👎 2
More from @srv_admin
  1. Oct 10, 2026Когда я работал в одной небедной компании, там регулярно обновляли парк оборудования, а ст…
  2. Oct 9, 2026▶️ Очередная подборка авторских IT роликов, которые я лично посмотрел и посчитал интересны…
  3. Oct 9, 2026Астра Мониторинг впустил ИИ-агентов в системы мониторинга заказчика И приглашает вас увиде…
  4. Oct 9, 2026В пятницу расскажу про один сервис, который не имеет отношения к теме канала, но который м…
  5. Oct 7, 2026Рассказываю про одну простую, но очень полезную в хозяйстве штуку для передачи файлов межд…
  6. Oct 7, 2026❓Какие реальные возможности у 1С:Расширенная корпоративная лицензия (1С:РКЛ) и как компани…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →