Поиск по сайту:

Настройте общесистемные политики шифрования в RHEL/CentOS/Rocky |


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

Общесистемная криптографическая политика – это пакет, который настраивает основные криптографические подсистемы путем включения набора протоколов. Сюда входят протоколы IPSec, TLS, DNSSec, SSH и Kerberos. Этот пакет предоставляет набор политик, которые может выбирать системный администратор. Приложения и службы вынуждены использовать их и отвергать любые другие протоколы, не соответствующие установленной политике. Приложения, которые не соответствуют установленной политике, могут использовать ее только в том случае, если они явно настроены на это.

Ниже приведены предопределенные политики шифрования:

  • DEFAULT: это общесистемная политика шифрования по умолчанию, которая предлагает безопасные настройки для всех текущих угроз. Эта политика разрешает протоколы TLS 1.2 и 1.3, протоколы IKEv2 и SSH2. Ключи RSA и параметры Диффи-Хеллмана также принимаются, если их длина не менее 2048 бит.
  • LEGACY: это обеспечивает максимальную совместимость с Red Hat Enterprise Linux 6 и более ранними версиями. Это менее безопасно и увеличивает поверхность атаки. Здесь SHA-1 можно использовать в качестве хеша, подписи и алгоритма TLS. Кроме того, приложения, использующие GnuTLS, допускают использование сертификатов, подписанных с помощью SHA-1.
  • БУДУЩЕЕ. Считается, что эта политика обеспечивает защиту от угроз ближайшего будущего. Он не позволяет использовать SHA-1 в DNSSec или в качестве HMAC. Здесь отключены хэши SHA2-224 и SHA3-224, а также 128-битные шифры. Ключи RSA и параметры Диффи-Хеллмана принимаются только в том случае, если их длина не менее 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>

Например, при переключении на политику БУДУЩЕЕ команда будет такой:

sudo update-crypto-policies --set FUTURE

Пример вывода:

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

sudo reboot

№3. Проверьте общесистемную криптографическую политику.

Каждая политика имеет свой собственный набор правил. Для этого теста я предполагаю, что вы переключились на политику БУДУЩЕГО, в которой отключен 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 с опцией --ciphers. Например

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

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

# Disable the AES-128 cipher, all modes
cipher = -AES-128-*

# Disable CHACHA20-POLY1305 for the TLS protocol (OpenSSL, GnuTLS, NSS, and OpenJDK)
cipher@TLS = -CHACHA20-POLY1305

# Allow using the FFDHE-1024 group with the SSH protocol (libssh and OpenSSH)
group@SSH = FFDHE-1024+

# Disable all CBC mode ciphers for the SSH protocol (libssh and OpenSSH)
cipher@SSH = -*-CBC

# Allow the AES-256-CBC cipher in applications using 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. Надеюсь, это было важно для вас.

Узнать больше:

RHEL 8 против RHEL 9 – Сравнительная таблица

Как сбросить пароль администратора oVirt/RHEV

Как настроить системный прокси в Debian

Статьи по данной тематике: