🔐 Настройка общесистемных криптографических политик на RHEL/CentOS/Rocky Linux |

🔐 Настройка общесистемных криптографических политик на RHEL/CentOS/Rocky Linux

Мануал

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

Независимо от того, ошибочно это предположение или верно, очень важно, чтобы система и программное обеспечение работали в соответствии с правильными криптографическими политиками.

Общесистемная криптографическая политика – это пакет, который настраивает основные криптографические подсистемы путем включения набора протоколов.

Сюда входят протоколы IPSec, TLS, DNSSec, SSH и Kerberos.

Этот пакет предоставляет набор политик, которые может выбрать системный администратор.

Приложения и службы вынуждены использовать их и отвергать любые другие протоколы, которые не согласуются с установленной политикой.

Приложения, которые не соответствуют установленной политике, могут использовать ее только в том случае, если они явно настроены на это.

Ниже перечислены предопределенные криптографические политики:

  • DEFAULT: Это общесистемная криптографическая политика по умолчанию, которая предлагает безопасные настройки для всех существующих угроз. Эта политика разрешает протоколы TLS 1.2 и 1.3, IKEv2 и SSH2. Ключи RSA и параметры Diffie-Hellman также принимаются, если их длина составляет не менее 2048 бит.
  • LEGACY: Обеспечивает максимальную совместимость с Red Hat Enterprise Linux 6 и более ранними версиями. Это менее безопасно и создает повышенную поверхность атаки. Здесь SHA-1 может использоваться в качестве хэша, подписи и алгоритма TLS. Кроме того, приложения, использующие GnuTLS, позволяют использовать сертификаты, подписанные SHA-1.
  • FUTURE: Считается, что эта политика обеспечивает защиту от угроз ближайшего будущего. Она не позволяет использовать SHA-1 в DNSSec или в качестве HMAC. Здесь отключены хэши SHA2-224 и SHA3-224, а также 128-битные шифры. Ключи RSA и параметры Diffie-Hellman принимаются только в том случае, если их длина составляет не менее 3072 бит.
  • FIPS: Эта политика соответствует стандартам FIPS 140-2. Она используется внутри системы с помощью инструмента fips-mode-setup, который переключает систему в режим FIPS.

Это руководство предлагает глубокую иллюстрацию того, как настроить общесистемные криптографические политики на RHEL / CentOS / Rocky / AlmaLinux

#1. Проверка общесистемных криптографических политик

Команда update-crypto-policies используется для управления общесистемной криптографической политикой на RHEL / CentOS / Rocky / AlmaLinux.

Этот пакет предустановлен на многих системах на базе Rhel.

Если он недоступен, установите его с помощью команды:

sudo yum -y install crypto-policies-scripts

Дерево зависимостей:

Dependencies resolved.
=======================================
 Package         Arch   Version
                          Repo    Size
=======================================
Upgrading:
 crypto-policies noarch 20211116-1.gitae470d6.el8
                          baseos  63 k
 crypto-policies-scripts
                 noarch 20211116-1.gitae470d6.el8
                          baseos  82 k

Transaction Summary
=======================================
Upgrade  2 Packages

Total download size: 145 k
Downloading Packages:

После установки проверьте текущую общесистемную криптографическую политику на RHEL / CentOS / Rocky / AlmaLinux с помощью команды:

sudo update-crypto-policies --show DEFAULT

#2. Установка/изменение общесистемных криптографических политик

Общесистемная криптографическая политика может быть переключена на предпочтительную с помощью команды update-crypto-policies.

Синтаксис используемой команды следующий:

sudo update-crypto-policies --set <POLICY>

Например, при переходе к политике FUTURE команда будет следующей:

sudo update-crypto-policies --set FUTURE

После установки политики рекомендуется перезагрузить систему:

sudo reboot

#3. Тестирование общесистемной криптографической политики

Каждая политика имеет свой собственный набор правил.

Для этого теста я предполагаю, что вы переключились на политику FUTURE, в которой отключен SHA-1.

Во-первых, проверьте политику:

sudo update-crypto-policies --show
FUTURE

Мы проверим это с помощью команды cURL, приведенной ниже:

curl https://sha1-intermediate.badssl.com

Вывод покажет, что сертификат SHA-1 был запрещен.

Это доказывает, что политика FUTURE работает так, как нужно.

#4. Исключение приложения из общесистемных криптополитик

Как было сказано ранее, общесистемные криптополитики заставляют службу или приложение следовать установленным политикам.

Однако вы можете исключить приложение из общесистемных криптографических политик.

Это можно сделать, настроив наборы шифров и протоколы непосредственно в приложении.

Вы также можете удалить системную ссылку из /etc/crypto-policies/back-ends на ваше приложение и заменить ее настроенными политиками.

Чтобы продемонстрировать это, я буду использовать cURL с опцией –ciphersoption.

Например

curl https://example.com --ciphers ‘@SECLEVEL=0:DES-CBC3-SHA:RSA-DES-CBC3-SHA’

Вы также можете использовать wget и указать оба параметра –secure-protocol и –ciphers.

Например:

  wget --secure-protocol=TLSv1_1 --ciphers=”SECURE128″ https://example.com

#5. Настройка общесистемных криптографических политик с помощью подполитик

В основном это делается для настройки набора включенных криптографических алгоритмов или протоколов.

Это можно сделать двумя способами: применить пользовательские подполитики поверх существующей общесистемной криптографической политики или определить политику с нуля.

Во-первых, перейдите в каталог ниже:

cd /etc/crypto-policies/policies/modules/

Создайте нужные вам подполитики. Скажем,

sudo touch MYCRYPTO-1.pmod SCOPES-AND-WILDCARDS.pmod

Откройте созданную подполитику для редактирования:

  sudo vi SCOPES-AND-WILDCARDS.pmod

Добавьте параметры для изменения существующей общесистемной криптографической политики.

Например:

# Отключить шифр AES-128, все режимы
cipher = -AES-128-*

# Отключить CHACHA20-POLY1305 для протокола TLS (OpenSSL, GnuTLS, NSS и OpenJDK)
cipher@TLS = -CHACHA20-POLY1305

# Разрешить использование группы FFDHE-1024 для протокола SSH (libssh и OpenSSH)
group@SSH = FFDHE-1024+

# Отключить все шифры режима CBC для протокола SSH (libssh и OpenSSH)
cipher@SSH = -*-CBC

# Разрешить шифр AES-256-CBC в приложениях, использующих libssh
cipher@libssh = AES-256-CBC+

Вы также можете редактировать другой файл:

sudo vi MYCRYPTO-1.pmod
min_rsa_size = 3072
hash = SHA2-384 SHA2-512 SHA3-384 SHA3-512

После сохранения изменений примените модули:

sudo update-crypto-policies --set DEFAULT:MYCRYPTO-1:SCOPES-AND-WILDCARDS
Setting system policy to DEFAULT:MYCRYPTO-1:SCOPES-AND-WILDCARDS
Note: System-wide crypto policies are applied on application start-up.
It is recommended to restart the system for the change of policies
to fully take place.

Чтобы изменения были применены, перезагрузите систему.

sudo reboot

После загрузки системы проверьте новую политику и подполитику:

update-crypto-policies --show
DEFAULT:MYCRYPTO-1:SCOPES-AND-WILDCARDS

Повторное включение SHA-1

Обычно алгоритм SHA-1 отключен в политике DEFAULT.

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

Вы можете включить его, применив в качестве подполитики.

Эта политика предусмотрена в RHEL9 в политике DEFAULT.

Для системы, использующей политику DEFAULT, установите подполитику SHA1 с помощью команды:

sudo update-crypto-policies --set DEFAULT:SHA1
Setting system policy to DEFAULT:SHA1
Note: System-wide crypto policies are applied on application start-up.
It is recommended to restart the system for the change of policies
to fully take place.

Перезапустите систему:

sudo reboot

Проверьте набор подполитик:

update-crypto-policies --show
DEFAULT:SHA1

#6. Создание пользовательской общесистемной криптографической политики

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

Сначала создайте файл политики:

cd /etc/crypto-policies/policies/
sudo touch MYPOLICY.pol

Этот файл также может быть создан путем копирования предопределенной политики из 4 доступных уровней политики.

Например;

sudo cp /usr/share/crypto-policies/policies/DEFAULT.pol /etc/crypto-policies/policies/MYPOLICY.pol

Теперь отредактируйте файл в соответствии с вашими требованиями:

sudo vi /etc/crypto-policies/policies/MYPOLICY.pol

После редактирования примените политику с помощью команды:

sudo update-crypto-policies --set MYPOLICY

Перезагрузите систему, чтобы изменения вступили в силу.

  sudo reboot

Заключение

На этом заканчивается данное руководство по настройке общесистемных криптографических политик на RHEL / CentOS / Rocky / AlmaLinux.

см. также:

Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!
Добавить комментарий