9.1 릴리스 노트

Red Hat Enterprise Linux 9.1

Red Hat Enterprise Linux 9.1 릴리스 정보

Red Hat Customer Content Services

초록

릴리스 노트는 Red Hat Enterprise Linux 9.1에서 구현된 개선 사항 및 추가 사항에 대해 자세히 설명하고 이 릴리스에서 알려진 문제, 주요 버그 수정, 기술 프리뷰, 더 이상 사용되지 않는 기능 및 기타 세부 사항을 설명합니다.
Red Hat Enterprise Linux 설치 방법에 대한 자세한 내용은 3.1절. “설치” 으로 이동하십시오.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 용어를 교체하기 위해 최선을 다하고 있습니다. 먼저 마스터(master), 슬레이브(slave), 블랙리스트(blacklist), 화이트리스트(whitelist) 등 네 가지 용어를 교체하고 있습니다. 이러한 변경 작업은 작업 범위가 크므로 향후 여러 릴리스에 걸쳐 점차 구현할 예정입니다. 자세한 내용은 CTO Chris Wright의 메시지를 참조하십시오.

Red Hat 문서에 관한 피드백 제공

문서 개선을 위한 의견에 감사드립니다. 어떻게 개선할 수 있는지 알려주십시오.

Jira를 통해 피드백 제출 (등록 필요)

  1. Jira 웹 사이트에 로그인합니다.
  2. 상단 탐색 모음에서 생성 을 클릭합니다.
  3. 요약 필드에 설명 제목을 입력합니다.
  4. 설명 필드에 개선을 위한 제안을 입력합니다. 문서의 관련 부분에 대한 링크를 포함합니다.
  5. 대화 상자 하단에서 생성 을 클릭합니다.

1장. 개요

1.1. RHEL 9.1의 주요 변경 사항

설치 프로그램 및 이미지 생성

다음은 RHEL 9.1 GA의 이미지 빌더 주요 사항입니다.

  • 온프레미스에서 지원하는 이미지 빌더는 다음과 같습니다.

    • GCP에 이미지 업로드
    • /boot 파티션 사용자 지정
    • 컨테이너 이미지를 레지스트리로 직접 푸시
    • 이제 이미지 생성 프로세스 중에 사용자가 사용자 지정할 수 있습니다.

자세한 내용은 4.1절. “설치 프로그램 및 이미지 생성”의 내용을 참조하십시오.

Edge용 RHEL

다음은 RHEL 9.1-GA의 Edge 주요 주요 사항입니다.

  • RHEL for Edge는 이제 fdo-admin CLI 유틸리티를 사용하여 서비스 설치를 지원하고 기본 구성으로 실행하도록 지원

자세한 내용은 4.2절. “Edge용 RHEL”의 내용을 참조하십시오.

보안

RHEL 9.1에서는 신뢰할 수 있는 플랫폼 모듈(TPM) 기술을 사용하는 원격 머신 증명 툴인 Keylime 을 도입합니다. Keylime을 사용하면 원격 머신의 무결성을 확인하고 지속적으로 모니터링할 수 있습니다.

SELinux 사용자 공간 패키지가 버전 3.4로 업그레이드되었습니다. 주요 변경 사항은 다음과 같습니다.

  • 병렬 재레이블링을 통해 성능 재지정 개선
  • semodule 툴에서 SHA-256 지원
  • libsepol-utils 패키지의 새 정책 유틸리티

시스템 구성 및 clevis-luks-systemd 하위 패키지를 변경하면 Clevis 암호화 클라이언트가 배포 프로세스 중에 systemctl enable clevis-luks-askpass.path 명령을 사용하지 않고 부팅 프로세스에서 늦게 마운트되는 LUKS 암호화 볼륨도 잠금 해제할 수 있습니다.

자세한 내용은 새로운 기능 - 보안을 참조하십시오.

쉘 및 명령행 툴

RHEL 9.1에서는 새 패키지 xml-2020:let을 도입합니다. XMLStarlet 을 사용하면 XML 파일을 구문 분석, 변환, 쿼리, 검증 및 편집할 수 있습니다.

RHEL 9.1에서 다음 명령줄 도구가 업데이트되었습니다.

  • Opencryptoki to version 3.18.0
  • PowerPC-utils to version 1.3.10
  • libvpd 버전 2.2.9로
  • lsvpd 버전 1.7.14
  • ppc64diag 버전 2.7.8

자세한 내용은 새로운 기능 - 쉘 및 명령줄 도구를참조하십시오.

인프라 서비스

RHEL 9.1에서 다음 인프라 서비스 도구가 업데이트되었습니다.

  • chrony to version 4.2
  • 버전 1.16.2에 바인딩되지 않음
  • FR R 버전 8.2.2

자세한 내용은 새로운 기능 - 인프라 서비스를 참조하십시오.

네트워킹

NetworkManager는 더 이상 사용되지 않는 ifcfg 형식에서 키 파일 형식으로 연결 프로필을 마이그레이션하는 기능을 지원합니다.

NetworkManager는 이제 RHEL 9에서 WEP 지원을 사용할 수 없음을 명확하게 나타냅니다.

커널의 MultiPath TCP(MPTCP) 코드가 업스트림 Linux 5.19에서 업데이트되었습니다.

자세한 내용은 새로운 기능 - 네트워킹 을 참조하십시오.

동적 프로그래밍 언어, 웹 서버 및 데이터베이스 서버

다음 구성 요소의 최신 버전을 이제 새 모듈 스트림으로 사용할 수 있습니다.

  • PHP 8.1
  • Ruby 3.1
  • Node.js 18

또한 Apache HTTP Server 가 버전 2.4.53으로 업데이트되었습니다.

자세한 내용은 동적 프로그래밍 언어, 웹 서버 및 데이터베이스 서버 새로운 기능을 참조하십시오.

컴파일러 및 개발 도구

업데이트된 시스템 툴체인

RHEL 9.1에서 다음 시스템 툴체인 구성 요소가 업데이트되었습니다.

  • GCC 11.2.1
  • glibc 2.34
  • binutils 2.35.2
업데이트된 성능 도구 및 디버거

RHEL 9.1에서 다음과 같은 성능 도구 및 디버거가 업데이트되었습니다.

  • GDB 10.2
  • Valgrind 3.19
  • SystemTap 4.7
  • Dyninst 12.1.0
  • elfutils 0.187
업데이트된 성능 모니터링 툴

RHEL 9.1에서 다음 성능 모니터링 도구가 업데이트되었습니다.

  • PCP 5.3.7
  • Grafana 7.5.13
업데이트된 컴파일러 툴셋

RHEL 9.1에서 다음 컴파일러 툴셋이 업데이트되었습니다.

  • GCC Toolset 12
  • LLVM Toolset 14.0.6
  • Rust 1.62
  • Go Toolset 1.18

자세한 내용은 4.14절. “컴파일러 및 개발 도구” 에서 참조하십시오.

RHEL 9의 Java 구현

RHEL 9 AppStream 리포지터리에는 다음이 포함됩니다.

  • OpenJDK 17 Java Runtime Environment 및 OpenJDK 17 Java 소프트웨어 개발 키트를 제공하는 java-17-openjdk 패키지
  • OpenJDK 11 Java Runtime Environment 및 OpenJDK 11 Java 소프트웨어 개발 키트를 제공하는 java-11-openjdk 패키지
  • OpenJDK 8 Java Runtime Environment 및 OpenJDK 8 Java 소프트웨어 개발 키트를 제공하는 java-1.8.0-openjdk 패키지

자세한 내용은 OpenJDK 설명서를 참조하십시오.

Java 툴

RHEL 9.1에서는 Maven 3.8 을 새 모듈 스트림으로 도입합니다.

자세한 내용은 4.14절. “컴파일러 및 개발 도구”를 참조하십시오.

IdM (Identity Management)

RHEL 9.1의 IdM(Identity Management)은 OAuth 2 장치 인증 부여 흐름을 지원하는 외부 ID 공급자(IdP)에 사용자 인증을 위임할 수 있는 기술 프리뷰를 도입합니다. 이러한 사용자가 SSSD로 인증하고 외부 IdP에서 인증 및 권한 부여를 완료한 후 Kerberos 티켓을 사용하여 RHEL IdM SSO(Single Sign-On) 기능을 수신합니다.

자세한 내용은 기술 프리뷰 - ID 관리를참조하십시오.

Red Hat Enterprise Linux System Roles

9.1 RHEL 시스템 역할에서 주목할 만한 새로운 기능:

  • 이제 RHEL 시스템 역할을 팩트 수집이 비활성화된 플레이북에서도 사용할 수 있습니다.
  • ha_cluster 역할은 이제 SBD 펜싱, Corosync 설정, 번들 리소스 구성을 지원합니다.
  • 네트워크 역할은 이제 라우팅 규칙에 대한 네트워크 설정을 구성하고 nmstate API 를 사용하여 네트워크 구성을 지원하며 사용자는 IPoIB 기능을 사용하여 연결을 생성할 수 있습니다.
  • DestinationRule .sql.server 역할에는 고가용성 클러스터 구성을 제어하는 변수, 방화벽 포트를 자동으로 관리하기 위한 변수 또는 관리 노드에서 mssql_tls_certmssql_tls_private_key 값을 검색하는 변수와 같은 새로운 변수가 있습니다.
  • 로깅 역할은 파일 입력의 startmsg.regexendmsg.regex 와 같은 다양한 새로운 옵션을 지원합니다.
  • 이제 스토리지 역할에는 씬 프로비저닝된 볼륨에 대한 지원이 포함되며, 이제 역할도 기본적으로 세부 정보 표시가 줄어듭니다.
  • sshd 역할은 드롭인 디렉터리에 대한 include 지시문을 확인하고 이제 /etc/ssh/sshd_config를 통해 역할을 관리할 수 있습니다.
  • metrics 역할은 이제 postfix 성능 데이터를 내보낼 수 있습니다.
  • 이제 postfix 역할에 이전 구성을 덮어쓸 수 있는 새로운 옵션이 있습니다.
  • firewall 역할에는 masquerade 또는 icmp_block_inversion을 구성할 때 state 매개변수가 필요하지 않습니다. firewall 역할에서 absent 및 present 상태를 사용하여 서비스를 추가, 업데이트 또는 제거할 수 있습니다. 이 역할은 Ansible 팩트를 제공하고 PCI 장치 ID를 사용하여 영역에 인터페이스를 추가하거나 제거할 수도 있습니다. firewall 역할에는 이전 구성을 덮어쓸 수 있는 새로운 옵션이 있습니다.
  • 이제 selinux 역할에 seuserselevel 매개변수 설정이 포함됩니다.

1.2. 인플레이스 업그레이드

RHEL 8에서 RHEL 9로 인플레이스 업그레이드

현재 지원되는 인플레이스 업그레이드 경로는 다음과 같습니다.

  • 다음 아키텍처의 RHEL 8.6에서 RHEL 9.0로 전환하십시오.

    • 64비트 Intel
    • 64비트 AMD
    • 64비트 ARM
    • IBM POWER 9 (little endian)
    • IBM Z 아키텍처, z13 제외
  • SAP HANA가 있는 시스템에서 RHEL 8.6에서 RHEL 9.0로

RHEL 9.0로 업그레이드한 후 시스템을 계속 지원하려면 최신 RHEL 9.1 버전으로 업데이트하거나 RHEL 9.0 Extended Update Support (EUS) 리포지토리를 활성화하십시오.

인플레이스 업그레이드 수행에 대한 자세한 내용은 RHEL 8에서 RHEL 9로 업그레이드 를 참조하십시오.

SAP 환경에서 시스템에서 인플레이스 업그레이드를 수행하는 방법은 RHEL 8에서 RHEL 9로 SAP 환경을 인플레이스 업그레이드하는 방법을 참조하십시오.

주요 개선 사항은 다음과 같습니다.

  • 이제 Microsoft Azure 및 RHUI(Red Hat Update Infrastructure)를 통한 Google Cloud Platform에서 인플레이스 업그레이드가 가능합니다.
  • 이제 OpenSSH 및 OpenSSL 구성이 인플레이스 업그레이드 중에 마이그레이션됩니다.

RHEL 7에서 RHEL 9로 인플레이스 업그레이드

RHEL 7에서 RHEL 9로 직접 인플레이스 업그레이드를 수행할 수 없습니다. 그러나 RHEL 7에서 RHEL 8로 인플레이스 업그레이드를 수행한 다음 RHEL 9로 두 번째 인플레이스 업그레이드를 수행할 수 있습니다. 자세한 내용은 RHEL 7에서 RHEL 8로 업그레이드 를 참조하십시오.

1.3. Red Hat Customer Portal 랩

Red Hat Customer Portal Labshttps://access.redhat.com/labs/ 에서 제공되는 고객 포털 섹션의 툴 세트입니다. Red Hat Customer Portal Labs의 애플리케이션은 성능 향상, 신속한 문제 해결, 보안 문제 확인, 복잡한 애플리케이션을 빠르게 배포 및 구성할 수 있도록 지원합니다. 가장 인기있는 애플리케이션 중 일부는 다음과 같습니다.

1.4. 추가 리소스

Red Hat Enterprise Linux 9의 기능 및 제한 사항은 지식베이스 문서 Red Hat Enterprise Linux 기술 기능 및 제한 에서 확인할 수 있습니다.

Red Hat Enterprise Linux 라이프 사이클에 대한 정보는 Red Hat Enterprise Linux 라이프 사이클 문서를 참조하십시오.

패키지 매니페스트 문서는 라이센스 및 애플리케이션 호환성 수준을 포함하여 RHEL 9의 패키지 목록을 제공합니다.

애플리케이션 호환성 수준은 Red Hat Enterprise Linux 9: 애플리케이션 호환성 가이드 문서에 설명되어 있습니다.

제거된 기능을 포함한 RHEL 8과 RHEL 9의 주요 차이점은 RHEL 9 채택의 고려 사항에 설명되어 있습니다.

RHEL 8 에서 RHEL 9로 인플레이스 업그레이드를 수행하는 방법에 대한 지침은 RHEL 8 에서 RHEL 9 로 업그레이드라는 문서를 통해 제공됩니다.

알려진 기술 문제를 사전에 식별하고 검토 및 해결할 수 있는 Red Hat Insights 서비스는 모든 RHEL 서브스크립션에서 사용할 수 있습니다. Red Hat Insights 클라이언트를 설치하고 시스템을 서비스에 등록하는 방법에 대한 자세한 내용은 Red Hat Insights 시작 페이지를 참조하십시오.

2장. 아키텍처

Red Hat Enterprise Linux 9.1은 커널 버전 5.14.0-162와 함께 배포되며 최소 필수 버전으로 다음과 같은 아키텍처를 지원합니다.

  • AMD 및 Intel 64비트 아키텍처(x86-64-v2)
  • 64비트 ARM 아키텍처(ARMv8.0-A)
  • IBM Power Systems, Little Endian (POWER9)
  • 64비트 IBM Z(z14)

각 아키텍처에 적합한 서브스크립션을 구매해야 합니다. 자세한 내용은 Get Started with Red Hat Enterprise Linux - 추가 아키텍처 를 참조하십시오.

3장. RHEL 9의 콘텐츠 배포

3.1. 설치

Red Hat Enterprise Linux 9는 ISO 이미지를 사용하여 설치합니다. AMD64, Intel 64비트, 64비트 ARM, IBM Power Systems, IBM Z 아키텍처에서는 두 가지 유형의 ISO 이미지를 사용할 수 있습니다.

  • 설치 ISO: BaseOS 및 AppStream 리포지토리가 포함된 전체 설치 이미지로, 추가 리포지토리 없이 설치를 완료할 수 있습니다. 제품 다운로드 페이지에서 설치 ISO바이너리 DVD 라고 합니다.

    참고

    설치 ISO 이미지는 여러 GB 크기로 되어 있으므로 미디어 형식에 적합하지 않을 수 있습니다. 설치 ISO 이미지를 사용하여 부팅 가능한 설치 미디어를 만들 때 USB 키 또는 USB 하드 드라이브를 사용하는 것이 좋습니다. 이미지 빌더 툴을 사용하여 사용자 지정된 RHEL 이미지를 생성할 수도 있습니다. 이미지 빌더에 대한 자세한 내용은 사용자 지정된 RHEL 시스템 이미지 Composing a customized RHEL 시스템 이미지 문서를 참조하십시오.

  • 부트 ISO: 설치 프로그램으로 부팅하는 데 사용하는 최소 부트 ISO 이미지입니다. 리포지토리는 설치 ISO 이미지의 일부입니다. 설치 중에 Red Hat CDN 또는 Satellite에 등록하여 Red Hat CDN 또는 Satellite의 최신 BaseOS 및 AppStream 콘텐츠를 사용할 수도 있습니다.

ISO 이미지 다운로드, 설치 미디어 생성 및 RHEL 설치 완료 방법은 표준 RHEL 9 설치 문서를 참조하십시오. 자동화된 Kickstart 설치 및 기타 고급 주제는 고급 RHEL 9 설치 문서를 참조하십시오.

기본 RHEL 설치의 RPM에 의해 생성된 사용자 및 그룹 목록 과 이 목록을 가져오는 단계는 기본 RHEL 설치의 모든 사용자와 그룹모두를 참조하십시오. 지식 베이스 문서.

3.2. 리포지토리

Red Hat Enterprise Linux 9는 두 가지 주요 리포지토리를 통해 배포됩니다.

  • BaseOS
  • AppStream

두 리포지토리 모두 기본 RHEL 설치에 필요하며 모든 RHEL 서브스크립션을 통해 사용할 수 있습니다.

BaseOS 리포지토리의 콘텐츠는 모든 설치의 기반이 되는 기본 OS 기능의 코어 세트를 제공하는 데 사용됩니다. 이 콘텐츠는 RPM 형식으로 사용 가능하며 이전 RHEL 릴리스와 비슷한 지원 조건이 적용됩니다. 자세한 내용은 지원 범위 세부 정보 문서를 참조하십시오.

AppStream 리포지토리의 콘텐츠에는 다양한 워크로드 및 사용 사례를 지원하는 추가 사용자 공간 애플리케이션, 런타임 언어 및 데이터베이스가 포함되어 있습니다.

또한 CodeReady Linux Builder 리포지토리는 모든 RHEL 서브스크립션을 통해 사용할 수 있습니다. 이는 개발자가 사용할 수 있는 추가 패키지를 제공합니다. CodeReady Linux Builder 리포지토리에 포함된 패키지는 지원되지 않습니다.

RHEL 9 리포지토리 및 제공하는 패키지에 대한 자세한 내용은 패키지 매니페스트 를 참조하십시오.

3.3. Application Streams

여러 버전의 사용자 공간 구성 요소가 Application Streams로 제공되며 코어 운영 체제 패키지보다 더 자주 업데이트됩니다. 따라서 플랫폼 또는 특정 배포의 기본 안정성에 영향을 주지 않고 RHEL을 사용자 지정할 수 있는 유연성이 향상됩니다.

애플리케이션 스트림은 친숙한 RPM 형식으로, 모듈이라는 RPM 형식 확장으로, Software Collections 또는 asECDHEpaks로 사용할 수 있습니다.

각 Application Stream 구성 요소에는 RHEL 9와 동일하거나 더 짧은 라이프 사이클이 있습니다. RHEL 라이프 사이클 정보는 Red Hat Enterprise Linux 라이프 사이클을 참조하십시오.

RHEL 9는 기존 dnf install 명령을 사용하여 RPM 패키지로 설치할 수 있는 초기 Application Stream 버전을 제공하여 Application Streams 환경을 개선합니다.

참고

RPM 형식의 특정 초기 Application Streams에는 Red Hat Enterprise Linux 9보다 라이프 사이클이 짧습니다.

일부 추가 Application Stream 버전은 향후 마이너 RHEL 9 릴리스에서 라이프 사이클이 짧은 모듈로 배포됩니다. 모듈은 논리 단위, 애플리케이션, 언어 스택, 데이터베이스 또는 툴 세트를 나타내는 패키지 컬렉션입니다. 이러한 패키지는 함께 빌드, 테스트, 릴리스됩니다.

항상 설치하려는 Application Stream 버전을 결정하고 Red Hat Enterprise Linux Application Stream 라이프 사이클을 먼저 검토하십시오.

대체 컴파일러 및 컨테이너 툴과 같은 빠른 업데이트가 필요한 콘텐츠는 다른 버전을 병렬로 제공하지 않는 롤링 스트림에서 사용할 수 있습니다. 롤링 스트림은 RPM 또는 모듈로 패키징될 수 있습니다.

RHEL 9에서 사용할 수 있는 Application Streams 및 애플리케이션 호환성 수준에 대한 자세한 내용은 패키지 매니페스트 를 참조하십시오. 애플리케이션 호환성 수준은 Red Hat Enterprise Linux 9: 애플리케이션 호환성 가이드 문서에 설명되어 있습니다.

3.4. YUM/DNF를 통한 패키지 관리

Red Hat Enterprise Linux 9에서는 DNF 에서 소프트웨어 설치를 보장합니다. Red Hat은 이전 주요 RHEL 버전과의 일관성을 위해 yum 용어 사용을 계속 지원합니다. yum 대신 dnf 를 입력하면 두 명령이 모두 호환성의 별칭이므로 명령이 예상대로 작동합니다.

RHEL 8 및 RHEL 9는 DNF 를 기반으로 하지만 RHEL 7에서 사용되는 YUM 과 호환됩니다.

자세한 내용은 DNF 툴을 사용한 소프트웨어 관리를 참조하십시오.

4장. 새로운 기능

이 부분에서는 Red Hat Enterprise Linux 9.1에 도입된 새로운 기능 및 주요 개선 사항에 대해 설명합니다.

4.1. 설치 프로그램 및 이미지 생성

설치 프로그램에서의 자동 FCP SCSI LUN 스캔 지원

이제 설치 프로그램에서 IBM Z 시스템에서 FCP SCSI LUN을 연결할 때 자동 LUN 스캔을 사용할 수 있습니다. 자동 LUN 스캔은 zfcp.allow_lun_scan 커널 모듈 매개변수를 통해 비활성화되지 않는 경우 NPIV 모드에서 작동하는 FCP 장치에 사용할 수 있습니다. 이는 기본적으로 활성화되어 있습니다. 지정된 장치 버스 ID를 사용하여 FCP 장치에 연결된 스토리지 영역 네트워크에서 발견된 모든 SCSI 장치에 대한 액세스를 제공합니다. WWPN 및 FCP LUN을 더 이상 지정할 필요는 없으며 FCP 장치 버스 ID만 제공할 수 있습니다.

(BZ#1937031)

온프레미스 이미지 빌더에서 /boot 파티션 사용자 정의 지원

이제 이미지 빌더 온프레미스 버전에서는 사용자 지정 /boot 마운트 지점 파티션 크기가 있는 이미지 빌드를 지원합니다. 기본 부팅 파티션 크기가 너무 작으면 /boot 파티션의 크기를 사용자 지정으로 지정하여 /boot 파티션의 크기를 늘릴 수 있습니다. 예를 들어 다음과 같습니다.

[[customizations.filesystem]]
mountpoint = "/boot"
size = "20 GiB"

(JIRA:RHELPLAN-130379)

암호 기반 SSH 루트 로그인을 활성화하려면 --allow-ssh kickstart 옵션을 추가했습니다.

그래픽 설치 중에 암호 기반 SSH 루트 로그인을 활성화하는 옵션이 있습니다. 이 기능은 Kickstart 설치에서는 사용할 수 없었습니다. 이번 업데이트를 통해 rootpw kickstart 명령에 --allow-ssh 옵션이 추가되었습니다. 이 옵션을 사용하면 루트 사용자가 암호와 SSH를 사용하여 시스템에 로그인할 수 있습니다.

(BZ#2083269)

기본적으로 숨겨진 부트 로더 메뉴

이제 GRUB 부트 로더가 기본적으로 부팅 메뉴를 숨기도록 구성되어 있습니다. 이로 인해 부팅 환경이 더 원활해집니다. 부팅 메뉴는 다음 모든 경우에 숨겨집니다.

  • 데스크탑 환경 또는 로그인 화면에서 시스템을 다시 시작하면 됩니다.
  • 설치 후 첫 번째 시스템이 부팅됩니다.
  • greenboot 패키지가 설치 및 활성화된 경우

이전 시스템 부팅이 실패한 경우 GRUB은 항상 다음 부팅 중에 부팅 메뉴를 표시합니다.

부팅 메뉴에 수동으로 액세스하려면 다음 옵션 중 하나를 사용합니다.

  • 부팅 중에 Esc 를 반복적으로 누릅니다.
  • 부팅 중에 F8 을 반복해서 누릅니다.
  • 부팅 중 Shift 키를 누릅니다.

이 기능을 비활성화하고 기본적으로 부트 로더 메뉴를 구성하려면 다음 명령을 사용합니다.

# grub2-editenv - unset menu_auto_hide

(BZ#2059414)

이제 최소 RHEL 설치는 s390utils-core 패키지만 설치합니다.

RHEL 8.4 이상에서는 s390utils-base 패키지는 s390utils-core 패키지와 s390utils-base 패키지로 나뉩니다. 결과적으로 RHEL 설치를 minimal-environment 로 설정하면 s390utils-base 패키지가 아닌 필요한 s390utils-core 패키지만 설치됩니다. 최소한의 RHEL 설치로 s390utils-base 패키지를 사용하려면 RHEL 설치를 완료한 후 패키지를 수동으로 설치하거나 kickstart 파일을 사용하여 s390utils-base 를 명시적으로 설치해야 합니다.

(BZ#1932480)

온프레미스 이미지 빌더에서 GCP에 이미지 업로드 지원

이번 개선된 기능을 통해 이미지 빌더 CLI를 사용하여 gce 이미지를 빌드하고 이미지를 업로드하는 데 사용할 사용자 또는 서비스 계정에 대한 자격 증명을 제공할 수 있습니다. 결과적으로 이미지 빌더에서 이미지를 생성한 다음 지정한 GCP 환경에 gce 이미지를 직접 업로드합니다.

(BZ#2049492)

이미지 빌더 온프레미스 CLI에서는 컨테이너 이미지를 레지스트리로 직접 푸시할 수 있습니다.

이번 개선된 기능을 통해 이미지 빌더 CLI를 사용하여 컨테이너 레지스트리를 빌드한 후 에지 컨테이너 이미지의 RHEL을 컨테이너 레지스트리로 직접 푸시할 수 있습니다. 컨테이너 이미지를 빌드하려면 다음을 수행합니다.

  1. 업로드 공급자를 설정하고 선택적으로 자격 증명을 추가합니다.
  2. 컨테이너 레지스트리와 리포지토리를 composer-cli 에 인수로 전달하여 컨테이너 이미지를 빌드합니다.

    이미지가 준비되면 설정한 컨테이너 레지스트리에서 사용할 수 있습니다.

(JIRA:RHELPLAN-130376)

온프레미스 사용자가 이미지 생성 프로세스 중 사용자 정의

이번 업데이트를 통해 이미지 빌더 서비스의 사용자 환경 및 cockpit-composer 의 이미지 빌더 앱에서 Edit ECDHE 페이지가 제거되었습니다. 이제 사용자가 이미지 생성 프로세스 중에 패키지 추가 및 사용자 정의와 같은 사용자 지정을 생성할 수 있습니다. 또한, 현재 버전 중 하나만 사용할 수 있도록 하는 버전 관리도 제거되었습니다. 사용자는 이미 생성된 이미지를 통해 이전 version에 액세스할 수 있습니다.

(JIRA:RHELPLAN-122735)

4.2. Edge용 RHEL

Edge용 RHEL에서 fdo-admin cli 유틸리티 지원

이번 업데이트를 통해 CLI를 사용하여 모든 배포 시나리오에서 직접 FDO 서비스를 구성할 수 있습니다.

다음 명령을 실행하여 서비스에 대한 인증서 및 키를 생성합니다.

참고

이 예제에서는 fdo-admin-cli RPM 패키지를 이미 설치했습니다. 소스 코드를 사용하여 컴파일한 경우 올바른 경로는 빌드 옵션에 따라 ./target/debug/fdo-admin-tool 또는 ./target/debug/fdo-admin-tool 입니다.

$ mkdir keys
$ for i in "diun" "manufacturer" "device_ca" "owner"; do fdo-admin-tool generate-key-and-cert $i; done
$ ls keys
device_ca_cert.pem  device_ca_key.der  diun_cert.pem  diun_key.der  manufacturer_cert.pem  manufacturer_key.der  owner_cert.pem  owner_key.der

결과적으로 서비스를 설치하고 시작한 후 기본 설정으로 실행됩니다.

(JIRA:RHELPLAN-122776)

4.3. 서브스크립션 관리

subscription-manager 유틸리티는 현재 작업 상태를 표시합니다.

이제 subscription-manager 유틸리티에 현재 작업을 처리하는 동안 진행 정보가 표시됩니다. 이는 subscription-manager 가 서버 통신과 관련된 작업을 완료하는 데 일반적인 시간(예: 등록)이 필요한 경우에 유용합니다.

이전 동작으로 되돌리려면 다음을 입력합니다.

 # subscription-manager config --rhsm.progress_messages=0

(BZ#2092014)

4.4. 소프트웨어 관리

RHEL 9에서 특정 워크플로우를 교체하는 modulesync 명령을 사용할 수 있습니다.

RHEL 9에서는 모듈식 메타데이터 없이 모듈식 패키지를 설치할 수 없습니다. 이전에는 dnf 명령을 사용하여 패키지를 다운로드한 다음 createrepo_c 명령을 사용하여 해당 패키지를 재배포할 수 있었습니다.

이번 개선된 기능에는 모듈 동기화 명령이 도입되어 패키지 설치 가능성을 보장할 수 있습니다. 이 명령은 모듈에서 RPM 패키지를 다운로드하고 작업 디렉터리에 모듈식 메타데이터가 있는 리포지토리를 생성합니다.

(BZ#2066646)

4.5. 쉘 및 명령행 툴

cronie 는 선택한 범위 내에서 임의의 시간에 대한 지원을 추가합니다.

이제 Cronie 유틸리티에서 cronjob 실행을 위해 ~ (임의 범위 내) Operator를 지원합니다. 결과적으로 선택한 범위 내의 무작위 시간에 cronjob을 시작할 수 있습니다.

(BZ#2090691)

복구 전과 후에 명령을 실행하기 위한 새로운 변수 추가

이번 개선된 기능을 통해 ReaR은 복구 전과 후에 실행할 명령의 자동화에 필요한 두 가지 새로운 변수를 도입합니다.

  • PRE_RECOVERY_COMMANDS 는 일련의 명령을 허용합니다. 이러한 명령은 복구를 시작하기 전에 실행됩니다.
  • POST_RECOVERY_COMMANDS 는 일련의 명령을 허용합니다. 이러한 명령은 복구가 완료된 후 실행됩니다.

이러한 변수는 다음과 같은 차이점이 있는 PRE_RECOVERY_SCRIPTPOST_RECOVERY_SCRIPT 의 대안입니다.

  • 이전의 PRE_RECOVERY_SCRIPTPOST_RECOVERY_SCRIPT 변수는 단일 쉘 명령을 허용합니다. 이러한 변수에 여러 명령을 전달하려면 instructions을 통해 명령을 분리해야 합니다.
  • 새로운 PRE_RECOVERY_COMMANDSPOST_RECOVERY_COMMANDS 변수는 명령 배열을 허용하며 배열의 각 요소는 별도의 명령으로 실행됩니다.

결과적으로 복구 전과 후 오류 발생 시 복구 시스템에서 실행할 여러 명령을 제공합니다.

자세한 내용은 default.conf 파일을 참조하십시오.

(BZ#2111059)

새 패키지: xmlECDHElet

XMLStarlet은 XML 파일의 구문 분석, 변환, 쿼리, 검증 및 편집에 사용되는 명령줄 유틸리티 집합입니다. 새로운 xmlECDHElet 패키지는 grep,sed,awk,patch,join 등과 같은 일반 텍스트 파일에 UNIX 명령을 사용하는 것과 유사한 방식으로 사용할 수 있는 간단한 쉘 명령 세트를 제공합니다.

(BZ#2069689)

Opencryptoki 버전 3.18.0에 재기반

Public-Key Cryptography Standard (PKCS) #11을 구현한 opencryptoki 패키지는 3.18.0 버전으로 업데이트되었습니다. 주요 개선사항은 다음과 같습니다.

  • FPS(Federal Information Processing Standards) 호환 토큰 데이터 형식(tokversion = 3.12)입니다.
  • 글로벌 정책을 사용하여 메커니즘 및 키 사용 제한에 대한 지원이 추가되었습니다.
  • 메커니즘 사용량 통계 계산에 대한 지원이 추가되었습니다.
  • ICA/EP11 토큰은 이제 libica 라이브러리 버전 4를 지원합니다.
  • p11sak 도구를 사용하면 공개 및 개인 키에 대해 다양한 속성을 설정할 수 있습니다.
  • C_GetMechanismList 는 EP11 토큰에서 CKR_BUFFER_TOO_SMALL 을 반환하지 않습니다.

OpenCryptoki 는 두 가지 토큰 데이터 형식을 지원합니다.

  • 비FIPS 승인 알고리즘 (예: DES 및 SHA1)을 사용하는 이전 데이터 형식
  • FIPS 승인 알고리즘만 사용하는 새로운 데이터 형식입니다.

FIPS 공급자는 FIPS가 승인한 알고리즘만 사용할 수 있기 때문에 이전 데이터 형식이 더 이상 작동하지 않습니다.

중요

openCryptoki가 RHEL 9에서 작동하도록 하려면 시스템에서 FIPS 모드를 활성화하기 전에 새 데이터 형식을 사용하도록 토큰을 마이그레이션합니다. 이는 이전 데이터 형식이 여전히 openCryptoki 3.17 의 기본값이기 때문에 필요합니다. 이전 토큰 데이터 형식을 사용하는 기존 openCryptoki 설치는 시스템이 FIPS 지원으로 변경될 때 더 이상 작동하지 않습니다.

openCryptoki 와 함께 제공되는 pkcstok_migrate 유틸리티를 사용하여 토큰을 새 데이터 형식으로 마이그레이션할 수 있습니다. pkcstok_migrate 는 마이그레이션 중에 비FIPS 승인 알고리즘을 사용합니다. 따라서 시스템에서 FIPS 모드를 활성화하기 전에 이 도구를 사용하십시오. 자세한 내용은 FIPS 컴플라이언스로 마이그레이션 - pkcstok_migrate 유틸리티를 참조하십시오.

(BZ#2044179)

PowerPC-utils 가 버전 1.3.10으로 다시 기반

PowerPC 플랫폼에 대한 다양한 유틸리티를 제공하는 powerpc-utils 패키지가 버전 1.3.10으로 업데이트되었습니다. 주요 개선사항은 다음과 같습니다.

  • ppc64_cpu 툴의 에너지 및 빈도에 대한 Power 아키텍처 플랫폼 참조(PAPR) 정보를 구문 분석하는 기능이 추가되었습니다.
  • max config 시스템에서 lparstat -E 명령이 실패하는 경우 향상된 오류 메시지를 표시하도록 lparstat 유틸리티가 개선되었습니다. lparstat 명령은 논리 파티션 관련 정보를 보고합니다.
  • lparstat 명령의 레거시 형식으로 보고된 온라인 메모리 수정
  • NX GZIP 가속기를 위해 QoS(서비스 품질)를 동적으로 변경하기 위한 acc 명령에 대한 지원이 추가되었습니다.
  • printf()sprintf() 호출에서ECDHEs 형식 개선 사항이 추가되었습니다.
  • 하이브리드 가상 네트워크에 HMC 툴을 제공하는 hcnmgr 유틸리티에는 다음과 같은 향상된 기능이 포함되어 있습니다.

    • 하이브리드 네트워크 가상화 HNV FEATURE 목록에 잘못된 기능을 추가했습니다. hcnmgr 유틸리티는 잘못된 하이브리드 네트워크 가상화(HNV)를 지원하여 결합 기능을 사용합니다.
    • hcnmgr 은 이후 정리를 위해 hcnid 상태를 유지합니다.
    • hcnmgr 은 NetworkManager (NM) nmcli 코드를 제외합니다.
    • NM HNV 기본 슬레이브 설정이 수정되었습니다.
    • hcnmgr 은 vNIC(가상 네트워크 인터페이스 컨트롤러)를 백업 장치로 지원합니다.
  • bootlist 에서 잘못된 16진수 번호 지정 시스템 메시지가 수정되었습니다.
  • kpartx 유틸리티에 bootlist 명령에서 -p 구분 기호 값으로 포함된 -l 플래그입니다.
  • IO 슬롯을 나열할 때 메모리 누수를 방지하기 위해 sslot 유틸리티에 수정 사항이 추가되었습니다.
  • lsslot 유틸리티에서 최신 제반 구성 요소 상호 연결 표현(PCIe) 슬롯 유형에 대한 DRC 유형 설명 문자열을 추가했습니다.
  • errinjct 툴의 RTAS에 잘못된 구성 주소를 수정했습니다.
  • ofpathname 유틸리티에서 NVMe(Non-volatile memory over fabrics) 장치에 대한 지원이 추가되었습니다. 이 유틸리티는 논리 장치 이름을 열린 펌웨어 장치 경로 및 기타 라운드로 변환하는 메커니즘을 제공합니다.
  • ofpathname 유틸리티에서 ANA(Non-volatile memory) 지원에 대한 수정 사항이 추가되었습니다.
  • smt.state 파일을 구성 파일로 설치합니다.

(BZ#1920964)

Redfish 모듈이 redhat.rhel_mgmt Ansible 컬렉션의 일부입니다.

redhat.rhel_mgmt Ansible 컬렉션에 다음 모듈이 포함됩니다.

  • redfish_info
  • redfish_command
  • redfish_config

이를 통해 사용자는 Redfish 모듈을 사용하여 서버 상태 검색, 하드웨어 및 펌웨어 인벤토리에 대한 정보를 가져오고, 전원 관리, BIOS 설정을 변경, OOB(Out-Of-Band) 컨트롤러를 구성하고 하드웨어 RAID를 구성하고 펌웨어 업데이트를 수행하여 관리 자동화의 이점을 누릴 수 있습니다.

(BZ#2112434)

libvpd 가 2.2.9 버전으로 업데이트됨

Velerotal Product Data (VPD)에 액세스하는 클래스가 포함된 libvpd 패키지가 2.2.9 버전으로 업데이트되었습니다. 주요 개선사항은 다음과 같습니다.

  • 고정 데이터베이스 잠금
  • 업데이트된 libtool 유틸리티 버전 정보

(BZ#2051288)

lsvpd 가 1.7.14 버전에 기반

하드웨어 인벤토리 시스템을 구성하는 명령을 제공하는 lsvpd 패키지가 버전 1.7.14로 업데이트되었습니다. 이번 업데이트를 통해 vpdupdate 명령을 실행할 때 lsvpd 유틸리티가 데이터베이스 파일의 손상을 방지합니다.

(BZ#2051289)

ppc64diag 버전 2.7.8로 업데이트

플랫폼 진단용 ppc64-diag 패키지가 2.7.8 버전으로 업데이트되었습니다. 주요 개선사항은 다음과 같습니다.

  • libvpd 유틸리티 버전 2.2.9 이상을 사용하도록 업데이트된 빌드 종속성
  • 지원되지 않는 플랫폼에서의 고정된 extract_opal_dump 오류 메시지
  • GCC-8.5GCC-11 컴파일러로 수정된 빌드 경고

(BZ#2051286)

sysctlsystemd-sysctl인수에 대한 식별 구문을 도입

런타임 시 커널 매개변수를 수정하는 데 사용할 수 있는 procps-ng 패키지의 sysctl 유틸리티는 이제 systemd-sysctl 유틸리티와 인수에 동일한 구문을 사용합니다. 이번 업데이트를 통해 sysctl 은 구성 라인에서 하이픈(-) 또는 globs(*)가 포함된 구성 파일을 구문 분석합니다. systemd-sysctl 구문에 대한 자세한 내용은 sysctl.d(5) 매뉴얼 페이지를 참조하십시오.

(BZ#2052536)

업데이트된 systemd-udevd 는 InfiniBand 인터페이스에 일관된 네트워크 장치 이름을 할당합니다.

RHEL 9에 도입된 systemd 패키지의 새 버전에는 업데이트된 systemd-udevd 장치 관리자가 포함되어 있습니다. 장치 관리자는 InfiniBand 인터페이스의 기본 이름을 systemd-udevd 에서 선택한 일관된 이름으로 변경합니다.

IPoIB 장치 Renaming IPoIB 장치 절차에 따라 InfiniBand 인터페이스 이름에 대한 사용자 정의 이름 지정 규칙을 정의할 수 있습니다.

이름 지정 체계에 대한 자세한 내용은 systemd.net-naming-scheme(7) 매뉴얼 페이지를 참조하십시오.

(BZ#2136937)

4.6. 인프라 서비스

Chrony 에서 DHCPv6 NTP 서버 사용

chrony 의 NetworkManager 디스패치 스크립트는 DHCP(Dynamic Host Configuration Protocol) 옵션에서 전달된 NTP(Network Time Protocol) 소스를 업데이트합니다. RHEL 9.1 이후 스크립트는 DHCPv4 외에도 DHCPv6에서 제공하는 NTP 서버를 사용합니다. DHCP 옵션ECDHE은 DHCPv6의 사용을 지정하며, DHCP 옵션(42)은 DHCPv4에 따라 다릅니다.

(BZ#2047415)

Chrony 가 버전 4.2로 업데이트됨

chrony 제품군이 버전 4.2로 업데이트되었습니다. 버전 4.1에 대한 주요 개선 사항은 다음과 같습니다.

  • 서버 간 모드가 보다 안정적으로 향상되었으며 단일 주소 번역기(Network Address Translation - NAT) 뒤에 있는 여러 클라이언트를 지원합니다.
  • 시간 동기화 안정성과 예상 오류의 정확성을 높이기 위해 NTPv4 (Network Time Protocol Version 4) 확장 필드에 대한 실험적 지원이 추가되었습니다. extfield F323 옵션을 사용하여 프로토콜 NTPv4의 기능을 확장하는 이 필드를 활성화할 수 있습니다.
  • PTP(Precision Time Protocol)를 통한 NTP 전달에 대한 실험적 지원이 추가되어 PTP 패킷으로 타임스탬프가 제한된 NIC(Network Interface Cards)에서 전체 하드웨어 타임스탬프를 설정할 수 있습니다. ptpport 319 지시문을 사용하여 PTP를 통해 NTP를 활성화할 수 있습니다.

(BZ#2051441)

버전 1.16.2로 바인딩되지 않음

바인딩되지 않은 구성 요소가 버전 1.16.2로 업데이트되었습니다. unbound 는 검증, 재귀 및 캐싱 DNS 확인자입니다. 주요 개선사항은 다음과 같습니다.

  • ZONEMD 영역 검증 ( RFC 8976) 을 통해 제너는 이제 데이터 무결성 및 출처 진위 여부를 확인할 수 있습니다.
  • 이제 unbound 를 사용하여 영구 TCP 연결을 구성할 수 있습니다.
  • DNS draft-ietf-dnsop-svcb-https 문서를 통해 서비스 바인딩 및 매개 변수 사양에 따라 SVCB 및 HTTPS 유형 및 처리가 추가되었습니다.
  • unbound 는 암호화 정책에서 기본 TLS 암호를 가져옵니다.
  • RFC8375 에 따라 Special-Use Domain .arpa 를 사용할 수 있습니다. 이 도메인은 주거용 홈 네트워크에서 고유하지 않은 용도로 지정됩니다.
  • 바인딩되지 않은 에서는 스텁 또는 전달 영역에 대한 tcp-upstream 쿼리 선택 활성화를 지원합니다.
  • 이제 aggressive-nsec 옵션의 기본값은 yes 입니다.
  • ratelimit 논리가 업데이트되었습니다.
  • 바인딩되지 않은 응답 정책 영역(RPZ) nxdomain 응답에 의해 쿼리가 차단될 때 RA 플래그를 설정 해제하는 경우 새 rpz-signal-nxdomain-ra 옵션을 사용할 수 있습니다.
  • RFC8914 에 따른ED(Extended DNS Errors)에 대한 기본 지원을 통해 추가 오류 정보를 활용할 수 있습니다.

(BZ#2087120)

이제 whois에서 암호 암호화 기능을 사용할 수 있습니다.

이제 whois 패키지에는 crypt C 라이브러리 인터페이스로 암호를 암호화하는 데 사용할 수 있는 /usr/bin/mkpasswd 바이너리가 제공됩니다.

(BZ#2054043)

FR R 버전 8.2.2로 업데이트

동적 라우팅 스택을 관리하기 위한 frr 패키지가 버전 8.2.2로 업데이트되었습니다. 버전 8.0의 주요 변경 사항 및 개선 사항은 다음과 같습니다.

  • 이더넷 VPN(EECDHE) 경로 유형-5 게이트웨이 IP 오버레이 인덱스를 추가했습니다.
  • Open-shortest-path-first(OSPFv3) 프로토콜에서 Autonomous 시스템 경계 라우터(ASBR) 합계를 추가했습니다.
  • OSPFv3에서 stub 및 not-so-stubby-areas(NSSA) 사용 개선
  • OSPFv2 및 OSPFv3에 정상 재시작 기능을 추가했습니다.
  • 이제 BGP(Border Gateway Protocol)의 링크 대역폭이 IEEE 754 표준에 따라 인코딩됩니다. 이전 인코딩 방법을 사용하려면 기존 구성에서 오존하는 PEER disable-link-bw-encoding-ieee 명령을 실행합니다.
  • BGP에 수명이 긴 정상 재시작 기능을 추가했습니다.
  • BGP에서 확장된 관리 종료 통신 rfc9003 및 확장된 선택적 매개변수 길이 rfc9072 를 구현했습니다.

(BZ#2069563)

이제 조정된 실시간 프로필이 초기 CPU 격리 설정을 자동으로 결정합니다.

tuned는 시스템을 모니터링하고 성능 프로필을 최적화하는 서비스입니다. tuned-profiles-realtime 패키지를 사용하여 CPU(중앙 처리 장치)를 격리하여 애플리케이션 스레드를 최대한 실행할 수 있습니다.

이전에는 isolated_cores 매개변수에서 격리할 CPU 목록을 지정하지 않은 경우 실시간 커널을 실행하는 시스템의 실시간 프로필이 로드되지 않았습니다.

이 향상된 기능을 통해 TuneD는 하우스키핑 및 분리된 코어 목록을 자동으로 계산하고 isolated_cores 매개변수에 계산을 적용하는 calc_isolated_cores 기본 제공 함수를 도입했습니다. 자동 사전 설정을 사용하면 각 소켓의 하나의 코어가 하우스키핑용으로 예약되어 있으며 추가 단계없이 실시간 프로필을 사용할 수 있습니다. 사전 설정을 변경하려면 격리할 CPU 목록을 지정하여 isolated_cores 매개변수를 사용자 지정합니다.

(BZ#2093847)

4.7. 보안

새 패키지: keylime

RHEL 9.1에서는 신뢰할 수 있는 플랫폼 모듈(TPM) 기술을 사용하는 원격 시스템을 검증하기 위한 툴인 Keylime을 도입했습니다. Keylime을 사용하면 원격 시스템의 무결성을 확인하고 지속적으로 모니터링할 수 있습니다. Keylime이 모니터링된 머신에 제공하는 암호화된 페이로드를 지정하고 시스템이 무결성 테스트에 실패할 때마다 트리거하는 자동화된 작업을 정의할 수도 있습니다.

자세한 내용은 RHEL 9 보안 강화 문서에서 Keylime을 사용하여 시스템 무결성 보안을 참조하십시오.

(JIRA:RHELPLAN-92522)

OpenSSH의 새로운 옵션은 최소 RSA 키 길이 설정 지원

실수로 짧은 RSA 키를 사용하면 시스템이 공격에 더 취약합니다. 이번 업데이트를 통해 OpenSSH 서버 및 클라이언트에 대해 최소 RSA 키 길이를 설정할 수 있습니다. 최소 RSA 키 길이를 정의하려면 OpenSSH 서버의 /etc/ssh/sshd_config 파일과 OpenSSH 클라이언트의 /etc/ssh/ssh_config 파일에서 새 RequiredRSASize 옵션을 사용합니다.

(BZ#2066882)

crypto-policies 는 기본적으로 OpenSSH에 2048비트 RSA 키 길이를 적용합니다.

짧은 RSA 키를 사용하면 시스템이 공격에 더 취약해질 수 있습니다. OpenSSH는 이제 최소 RSA 키 길이를 제한하도록 지원하므로 시스템 전체 암호화 정책에서는 기본적으로 RSA에 2048비트 최소 키 길이를 적용합니다.

OpenSSH가 잘못된 키 길이 오류 메시지와 함께 연결이 실패하는 경우 더 긴 RSA 키를 사용하기 시작합니다.

또는 보안을 유지하면서 사용자 정의 하위 정책을 사용하여 제한을 완화할 수 있습니다. 예를 들어 update-crypto-policies --show 명령이 현재 정책이 DEFAULT 임을 보고하는 경우 :

  1. min_rsa_size@openssh = 1024 매개변수를 /etc/crypto-policies/modules/modules/RSA-OPENSSH-1024.pmod 파일에 삽입하여 사용자 정의 하위 정책을 정의합니다.
  2. update-crypto-policies --set DEFAULT:RSA-OPENSSH-1024 명령을 사용하여 사용자 지정 하위 정책을 적용합니다.

(BZ#2102774)

OpenSSL의 새로운 옵션은 서명에 대한 SHA-1을 지원합니다.

RHEL 9의 OpenSSL 3.0.0은 서명 생성 및 검증을 위해 SHA-1을 지원하지 않습니다(SHA-1 키 파생 함수(KDF) 및 해시 기반 메시지 인증 코드(HMAC)는 여전히 지원됩니다. 그러나 서명을 위해 SHA-1을 계속 사용하는 RHEL 8 시스템과의 이전 호환성을 지원하기 위해 RHEL 9에 새로운 설정 옵션 rh-allow-sha1-signatures 가 도입되었습니다. 이 옵션은 openssl.cnfalg_section 에서 활성화된 경우 SHA-1 서명의 생성 및 확인을 허용합니다.

이 옵션은 LEGACY 시스템 전체 암호화 정책 (기존 공급자가 아님)을 설정하면 자동으로 활성화됩니다.

이는 SHA-1 서명이 포함된 RPM 패키지 설치에도 영향을 미칩니다. 이 서명에는 LEGACY 시스템 전체 암호화 정책으로 전환해야 할 수 있습니다.

(BZ#2060510, BZ#2055796)

암호화 정책 지원 sntrup761x25519-sha512@openssh.com

시스템 전체의 암호화 정책 업데이트에서는 sntrup761x25519-sha512@openssh.com 키 교환(KEX) 방법에 대한 지원이 추가되었습니다. Post-quantum sntrup761 알고리즘은 OpenSSH 제품군에서 이미 사용할 수 있으며, 이 방법은ECDHE 컴퓨터의 공격에 대해 더 나은 보안을 제공합니다. sntrup761x25519-sha512@openssh.com 를 활성화하려면 하위 정책을 생성하고 적용합니다. 예를 들면 다음과 같습니다.

# echo 'key_exchange = +SNTRUP' > /etc/crypto-policies/policies/modules/SNTRUP.pmod
# update-crypto-policies --set DEFAULT:SNTRUP

자세한 내용은 RHEL 9 보안 강화 문서의 하위 정책을 사용하여 시스템 전체 암호화 정책 사용자 지정 섹션을 참조하십시오.

(BZ#2070604)

NSS는 더 이상 1023 비트보다 짧은 RSA 키를 지원하지 않습니다.

NSS(Network Security Services) 라이브러리 업데이트에서는 모든 RSA 작업의 최소 키 크기를 128에서 1023비트로 변경합니다. 즉 NSS는 더 이상 다음 기능을 수행하지 않습니다.

  • 1023비트보다 짧은 RSA 키를 생성합니다.
  • RSA 키를 1023비트 미만으로 사용하여 RSA 서명을 서명하거나 확인합니다.
  • RSA 키가 1023비트보다 짧으면 값을 암호화하거나 암호를 해독합니다.

(BZ#2091905)

SELinux 정책으로 추가 서비스 제한

selinux-policy 패키지가 업데이트되어 이제 SELinux에 의해 다음 서비스가 제한됩니다.

  • ksm
  • nm-priv-helper
  • rhcd
  • stalld
  • systemd-network-generator
  • targetclid
  • wg-quick

(BZ#1965013, BZ#1964862, BZ#2020169, BZ#2021131, BZ#2042614, BZ#2053639,BZ#2111069)

SELinux는 유형 전환에서 self 키워드 지원

SELinux 툴링에서는 정책 소스에서 self 키워드를 사용하여 유형 전환 규칙을 지원합니다. self 키워드를 사용한 유형 전환을 지원하여 익명 inode의 레이블을 지정하기 위한 SELinux 정책을 준비합니다.

(BZ#2069718)

SELinux 사용자 공간 패키지 업데이트

SELinux 사용자 공간 패키지 libsepol,libselinux,libsemanage,policycoreutils,checkpolicy, mcstrans 가 최신 업스트림 릴리스 3.4로 업데이트되었습니다. 주요 변경 사항은 다음과 같습니다.

  • setfiles,restoreconfixfiles 툴의 -T 옵션을 통해 병렬 재지정에 대한 지원이 추가되었습니다.

    • 이 옵션의 프로세스 스레드 수를 지정하거나 사용 가능한 최대 프로세서 코어를 사용하려면 -T 0 을 사용할 수 있습니다. 이렇게 하면 레이블을 다시 지정하는 데 필요한 시간이 크게 단축됩니다.
  • 모듈의 SHA-256 해시를 출력하는 새로운 --checksum 옵션을 추가했습니다.
  • libsepol-utils 패키지에 새 정책 유틸리티를 추가했습니다.

(BZ#2079276)

SELinux 자동 레이블 재지정이 기본적으로 병렬로 적용됨

새로 도입된 병렬 재지정 옵션은 다중 코어 시스템에서 SELinux 재레이블링 프로세스에 필요한 시간을 크게 줄이므로 이제 자동 레이블 다시 지정 스크립트에 수정 파일 명령줄에 -T 0 옵션이 포함되어 있습니다. -T 0 옵션을 사용하면 setfiles 프로그램이 기본적으로 레이블을 다시 지정하기 위해 최대 사용 가능한 프로세서 코어를 사용합니다.

이전 버전의 RHEL에서와 같이 레이블을 다시 지정하는 데 하나의 프로세스 스레드만 사용하려면 boot 파일 또는 echo "-T 1" > /.autorelabel 대신 fixfiles -T 1 onboot 명령을 입력하여 이 설정을 재정의합니다.

(BZ#2115242)

SCAP 보안 가이드는 0.1.63으로 재구축됩니다.

SCAP Security Guide (SSG) 패키지는 업스트림 버전 0.1.63으로 다시 설계되었습니다. 이 버전은 다음과 같은 다양한 개선 사항 및 버그 수정을 제공합니다.

  • sysctl,grub2,ECDHE_pwquality, 빌드 시간 커널 구성에 대한 새로운 규정 준수 규칙이 추가되었습니다.
  • 이제 PAM 스택을 강화하는 규칙은 구성 도구로 authselect 를 사용합니다. 참고: 이 변경으로 PAM 스택을 다른 방법으로 편집한 경우 PAM 스택을 강화하는 규칙이 적용되지 않습니다.

(BZ#2070563)

Rsyslog 오류 파일의 최대 크기 옵션 추가

새로운 action.errorfile.maxsize 옵션을 사용하여 Rsyslog 로그 처리 시스템에 대한 오류 파일의 최대 바이트 수를 지정할 수 있습니다. 오류 파일이 지정된 크기에 도달하면 Rsyslog는 추가 오류 또는 기타 데이터를 쓸 수 없습니다. 이렇게 하면 오류 파일이 파일 시스템을 채우고 호스트를 사용할 수 없게 됩니다.

(BZ#2064318)

Clevis-luks-askpass 가 기본적으로 활성화됨

/lib/systemd/system-preset/90-default.preset 파일에는 enable clevis-luks-askpass.path 설정 옵션과 clevis-systemd 하위 패키지를 설치하면 clevis-luks-askpass.path 단위 파일이 활성화됩니다. 이를 통해 Clevis 암호화 클라이언트는 부팅 프로세스 후반부에 마운트되는 LUKS 암호화 볼륨도 잠금 해제할 수 있습니다. 이번 업데이트 이전에는 관리자가 systemctl enable clevis-luks-askpass.path 명령을 사용하여 이러한 볼륨의 잠금을 해제할 수 있어야 합니다.

(BZ#2107078)

fapolicyd rebased to 1.1.3

fapolicyd 패키지가 버전 1.1.3으로 업그레이드되었습니다. 주요 개선 사항 및 버그 수정 사항은 다음과 같습니다.

  • 이제 규칙에 주체의 상위 PID(프로세스 ID)와 일치하는 새로운 subject PPID 속성이 포함될 수 있습니다.
  • OpenSSL 라이브러리는 해시 계산을 위한 암호화 엔진으로 Libgcrypt 라이브러리를 교체했습니다.
  • 이제 fagenrules --load 명령이 올바르게 작동합니다.

(BZ#2100041)

4.8. 네트워킹

act_ctinfo 커널 모듈이 추가되었습니다.

이번 개선된 기능에는 act_ctinfo 커널 모듈이 RHEL에 추가되었습니다. 관리자는 tc 유틸리티의 ctinfo 작업을 사용하여 conntrack 표시 또는 네트워크 패킷의 차별화된 서비스 코드 포인트(DSCP) 값을 소켓 버퍼의 마크 메타데이터 필드에 복사할 수 있습니다. 결과적으로 conntrack 표시 또는 DestinationRuleP 값을 기반으로 조건을 사용하여 트래픽을 필터링할 수 있습니다. 자세한 내용은 tc-ctinfo(8) 매뉴얼 페이지를 참조하십시오.

(BZ#2027894)

Cloud-init 은 Microsoft Azure의 모든 부팅 시 네트워크 구성을 업데이트합니다.

Microsoft Azure는 관리자가 VM이 오프라인 상태인 동안 네트워크 인터페이스 구성을 업데이트할 때 인스턴스 ID를 변경하지 않습니다. 이번 개선된 기능을 통해 cloud-init 서비스는 VM을 부팅할 때 항상 네트워크 구성을 업데이트하여 Microsoft Azure의 RHEL이 최신 네트워크 설정을 사용하도록 합니다.

결과적으로 추가 검색 도메인과 같은 인터페이스에서 설정을 수동으로 구성하는 경우 VM을 재부팅할 때 cloud-init 가 이를 재정의할 수 있습니다. 자세한 내용 및 해결 방법은 모든 부팅 솔루션의 cloud-init-22.1-5 업데이트 네트워크 구성을 참조하십시오.

(BZ#2144898)

PTP 드라이버에서 가상 클럭 및 타임스탬프 지원

이번 개선된 기능을 통해 PTP(Precision Time Protocol) 드라이버는 /sys/class/ptp*/n_vclocks 에 작성하여 자유 실행ECDHEC 위에 가상 PTP 하드웨어 잠금(PHC)을 생성할 수 있습니다. 결과적으로 사용자는 한 인터페이스에서 하드웨어 타임 스탬프와 여러 도메인 동기화를 실행할 수 있습니다.

(BZ#2066451)

firewalld 가 버전 1.1.1로 업데이트됨

firewalld 패키지가 버전 1.1.1로 업그레이드되었습니다. 이 버전은 이전 버전에 비해 여러 버그 수정 및 개선 사항을 제공합니다.

새로운 기능:

  • 리치 규칙은 사용자 공간 로깅에 대해 NetFilter-log(NFLOG) 대상을 지원합니다. RHEL에는 NFLOG 가능 로깅 데몬이 없습니다. 그러나 tcpdump -i nflog 명령을 사용하여 필요한 로그를 수집할 수 있습니다.
  • ingress-zones=HOSTegress-zones={ANY, 소스 기반 영역}를 사용하여 정책에서 포트 전달을 지원합니다.

기타 주요 변경 사항은 다음과 같습니다.

  • afp,http3,jellyfin,netbios-ns, ws-discovery -client 서비스에 대한 지원
  • 정책 옵션에 대해 Z 쉘의 탭 완료 및 하위 옵션

(BZ#2040689)

NetworkManager에서 advms,rto_min, quickack 경로 속성 지원

이 향상된 기능을 통해 관리자는 다음 속성을 사용하여 ipv4.routes 설정을 구성할 수 있습니다.

  • rto_min (TIME) - 경로 대상과 통신할 때 최소 TCP 재전송 시간 시간(밀리초) 구성
  • quickack (BOOL) - TCP 빠른 ACK를 활성화하거나 비활성화하는 경로별 설정
  • NUMBER( Advms ) - TCP 연결을 설정할 때 최대 세그먼트 크기(MSS)를 경로 대상에 알립니다. 지정되지 않은 경우 Linux는 첫 번째 홉 장치의 최대 전송 단위(MTU)에서 계산된 기본값을 사용합니다.

언급된 속성으로 ipv4.routes 의 새로운 기능을 구현할 때의 이점은 디스패치 스크립트를 실행할 필요가 없다는 것입니다.

언급된 경로 속성으로 연결을 활성화하면 이러한 변경 사항이 커널에 설정됩니다.

(BZ#2068525)

nmstate의 802.ad vlan-protocol 옵션 지원

nmstate API는 이제 802.ad vlan-protocol 옵션을 사용하여 linux-bridge 인터페이스 생성을 지원합니다. 이 기능을 사용하면 Service-Tag VLAN을 구성할 수 있습니다. 다음 예제에서는 yaml 구성 파일에서 이 기능을 사용하는 방법을 보여줍니다.

---
interfaces:
  - name: br0
    type: linux-bridge
    state: up
    bridge:
      options:
        vlan-protocol: 802.1ad
      port:
        - name: eth1
          vlan:
            mode: trunk
            trunk-tags:
            - id: 500

(BZ#2084474)

firewalld 서비스는 로컬 호스트에서 다른 호스트 및 포트로 시작된 NAT 패킷을 전달할 수 있습니다.

firewalld 서비스를 실행하는 localhost에서 전송된 패킷을 다른 대상 포트 및 IP 주소로 전달할 수 있습니다. 이 기능은 예를 들어 루프백 장치의 포트를 컨테이너 또는 가상 시스템으로 전달하는 데 유용합니다. 이러한 변경을 수행하기 전에 firewalld 는 다른 호스트에서 시작된 패킷을 받은 경우에만 포트를 전달할 수 있었습니다. 자세한 내용 및 구성의 경우 DNAT를 사용하여 HTTPS 트래픽을 다른 호스트로 전달합니다.

(BZ#2039542)

NetworkManager에서 ifcfg-rh 에서 키 파일로 마이그레이션 지원

사용자는 ifcfg-rh 형식에서 키 파일 형식으로 기존 연결 프로필 파일을 마이그레이션할 수 있습니다. 이렇게 하면 모든 연결 프로파일이 하나의 위치와 기본 형식으로 되어 있습니다. 주요 파일 형식에는 다음과 같은 이점이 있습니다.

  • NetworkManager가 네트워크 구성을 표시하는 방식과 밀접한 유사
  • 향후 RHEL 릴리스와의 호환성 보장
  • 더 읽기 쉽음
  • 모든 연결 프로필 지원

연결을 마이그레이션하려면 다음을 실행합니다.

# nmcli connection migrate

RHEL 9 수명 동안 ifcfg-rh 파일이 올바르게 작동합니다. 그러나 구성을 주요 파일 형식으로 마이그레이션하면 RHEL 9 이후의 호환성이 보장됩니다.

자세한 내용은 nmcli(1), nm-settings-keyfile(5) 및 nm-settings-ifcfg-rh(5) 매뉴얼 페이지를 참조하십시오.

(BZ#2059608)

nmstate API에 추가 DHCP 및 IPv6 자동 구성 속성이 추가

이번 개선된 기능에는 nmstate API에 다음 속성에 대한 지원이 추가되었습니다.

  • RFC 2132 및 4361에 설명된 대로 DHCPv4 연결에 대한 DHCP -client-id 입니다.
  • RFC 8415에 설명된 대로 DHCPv6 연결에 대한 DHCP -duid.
  • IPv6 자동 구성용 addr-gen-mode 이 특성을 다음과 같이 설정할 수 있습니다.

    • RFC 4862에 설명된 eui64
    • RFC 7217에 설명된 대로 stable-privacy

(BZ#2082043)

NetworkManager는 RHEL 9에서 WEP 지원을 사용할 수 없음을 명확하게 나타냅니다.

RHEL 9.0 이상의 wpa_supplicant 패키지에는 더 이상 사용되지 않거나 안전하지 않은 WEP(Equivalent privacy) 보안 알고리즘이 포함되어 있지 않습니다. 이번 개선된 기능은 이러한 변경 사항을 반영하도록 NetworkManager를 업데이트합니다. 예를 들어 nmcli 장치ECDHE list 명령은 이제 회색 색상의 목록 끝에 WEP 액세스 포인트를 반환하고 WEP 보호 네트워크에 연결하면 의미 있는 오류 메시지가 반환됩니다.

암호화의 경우 ovs-Fi Protected Access 2(WPA2) 및ECDHE3 인증의ECDHE 네트워크만 사용하십시오.

(BZ#2030997)

MPTCP 코드가 업데이트되었습니다.

커널의 MPTCP(MultiPath TCP) 코드가 업데이트되고 업스트림 Linux 5.19가 업데이트되었습니다. 이번 업데이트에서는 이전 버전에 비해 여러 버그 수정 및 개선 사항을 제공합니다.

  • full three-way handhake 없이 MPTCP 연결을 종료하기 위해 virshST CLOSE 옵션이 추가되었습니다.
  • MP_FAIL 옵션이 추가되어 초기 핸드셰이크 후에도 TCP로 대체될 수 있습니다.
  • 추가MIB(Management Information Base) 카운터를 추가하여 모니터링 기능이 향상되었습니다.
  • MPTCP 리스너 소켓에 대한 모니터링 지원이 추가되었습니다. ss 유틸리티를 사용하여 소켓을 모니터링합니다.

(BZ#2079368)

4.9. 커널

RHEL 9.1의 커널 버전

Red Hat Enterprise Linux 9.1은 커널 버전 5.14.0-162와 함께 배포됩니다.

(BZ#2125549)

list_lru 의 메모리 사용량이 최적화되었습니다.

내부 커널 데이터 구조인 list_lru 는 커널 inodes 및 파일의 디렉터리 항목의 "최근에 사용됨" 상태를 추적합니다. 이전 버전에서는 list_lru 할당된 구조의 수는 마운트 지점 수와 현재 메모리 cgroup 수에 직접적으로 비례했습니다. 이 두 수 모두 실행 중인 컨테이너 수로 증가하여 O(n^2) 의 메모리 사용량입니다. 여기서 n 은 실행 중인 컨테이너 수입니다. 이번 업데이트에서는 시스템의 list_lru 의 메모리 사용을 O(n) 로 최적화합니다. 결과적으로 이제 사용자 애플리케이션에 충분한 메모리를 사용할 수 있으며 특히 컨테이너가 많은 시스템에서 사용할 수 있습니다.

(BZ#2013413)

BPF가 Linux 커널 버전 5.16으로 변경

BPF(Berkeley Packet Filter) 기능은 여러 버그 수정 및 개선 사항이 포함된 Linux 커널 버전 5.16로 변경되었습니다. 주요 변경 사항은 다음과 같습니다.

  • lib bpf 사용자 공간 라이브러리의 간소화된 내부 BPF 프로그램 섹션 처리 및 bpf_ programs_set_attach_target() API

    bpf_ program__set_attach_target() API는 BPF 기반 프로그램의 BTF 기반 연결 대상을 설정합니다.

  • 선언 태그를 지정할 수 있는 BTF_KIND_TAG 유형에 대한 지원이 추가되었습니다.
  • 추적 프로그램에서 하드웨어의 마지막 브랜치 레코드(LBR)를 캡처할 수 있는 bpf_get_branch_snapshot() 도우미에 대한 지원이 추가되었습니다.
  • 레거시 인터페이스를 통해 kprobe 이벤트 생성을 가능하게 하는 libbpf 사용자 공간 라이브러리에서 레거시 kprobe 이벤트 지원을 추가했습니다.
  • __sk_buff 도우미 기능을 사용하여 BPF 특정 구조를 통해 하드웨어 타임스탬프에 액세스하는 기능이 추가되었습니다.
  • AF_XDP 버퍼 풀에서 RX 버퍼 할당을 위한 배치된 인터페이스에 대한 지원이 추가되어 i40e빙하에 대한 드라이버 지원이 추가되었습니다.
  • 최근 병합된 레거시 kprobe 를 보완하기 위해 libbpf 사용자 공간 라이브러리에 기존 uprobe 지원이 추가되었습니다.
  • bpf_trace_vprintk() 를 variadic printk 도우미로 추가했습니다.
  • libbpf 옵트인을 libbpf 1.0 노력의 일부로 더 엄격한 BPF 프로그램 섹션 이름 처리를 위해 추가했습니다.
  • libbpf 지원을 추가하여 perf RB 와 같은 특수 맵을 찾고 이를 생성하는 동안 BTF 유형 식별자를 내부적으로 삭제합니다.
  • bloomfilter BPF 맵 유형을 추가하여 세트에 요소가 있는지 테스트합니다.
  • BPF의 커널 모듈 함수 호출에 대한 지원이 추가되었습니다.
  • 경량화에 typeless 및 약한 ksym 에 대한 지원이 추가되었습니다.
  • BTF_KIND_DECL_TAG 유형에 대한 지원이 추가되었습니다.

실행 중인 커널에서 사용할 수 있는 BPF 기능의 전체 목록에 대한 자세한 내용은 bpftool feature 명령을 사용하십시오.

(BZ#2069045)

BTF 데이터가 커널 모듈에 있습니다.

BPF 유형 형식(BTF)은 BPF 프로그램 및 맵과 관련된 디버그 정보를 인코딩하는 메타데이터 형식입니다. 이전에는 커널 모듈의 BTF 데이터가 kernel-debuginfo 패키지에 저장되었습니다. 결과적으로 커널 모듈에 BTF를 사용하기 위해 해당 kernel-debuginfo 패키지를 설치해야 했습니다. 이번 업데이트를 통해 이제 BTF 데이터가 커널 모듈에 직접 있습니다. 따라서 BTF에 대한 추가 패키지를 설치할 필요가 없습니다.

(BZ#2097188)

kernel-rt 소스 트리가 RHEL 9.1 트리로 업데이트됨

최신 Red Hat Enterprise Linux 커널 소스 트리를 사용하도록 kernel-rt 소스가 업데이트되었습니다. 실시간 패치 세트도 최신 업스트림 버전 v5.15-rt 로 업데이트되었습니다. 이러한 업데이트는 여러 버그 수정 및 향상된 기능을 제공합니다.

(BZ#2061574)

ARM 및 AMD 및 Intel 64비트 아키텍처에서 동적 선점 스케줄링 활성화

RHEL 9는 ARM 및 AMD 및 Intel 64비트 아키텍처에서 동적 스케줄링 기능을 제공합니다. 이번 개선된 기능을 통해 컴파일 시간 대신 부팅 또는 런타임에 커널의 선점 모드를 변경할 수 있습니다. /sys/kernel/debug/sched/preempt 파일에는 현재 설정이 포함되어 있으며 런타임 수정을 허용합니다.

DYNAMIC_PREEMPT 옵션을 사용하면 부팅 시 preempt= 변수를 none,자발적 또는 자발적인 선점으로 완전히 설정할 수 있습니다. 동적 선점 처리를 사용하여 기본 선점 모델을 재정의하여 스케줄링 대기 시간을 개선할 수 있습니다.

(BZ#2065226)

stalld 가 버전 1.17로 업데이트됨

stall 데몬을 제공하는 stalld 프로그램은 Linux 시스템에서 운영 체제 스레드의 종료 상태를 방지하기 위한 메커니즘입니다. 이 버전은 starvation 상태의 스레드를 모니터링합니다. 새로 고침은 스레드가 CPU 실행 대기열에 있는 경우 starvation 임계값보다 더 오래 발생합니다.

stalld 버전에는 이전 버전보다 많은 개선 사항 및 버그 수정이 포함되어 있습니다. 주목할 만한 변경에는 실행 가능한 종료 작업을 감지할 수 있는 기능이 포함되어 있습니다.

stalld 가 별점 스레드를 감지하면 프로그램은 스레드의 스케줄링 클래스를ECDHE _DEADLINE 정책으로 변경하여 스레드를 실행할 지정된 CPU에 대한 약간의 시간을 스레드에 부여합니다. timeslice 를 사용하면 스레드는 원래 스케줄링 정책으로 돌아가고 stalld 는 스레드 상태를 계속 모니터링합니다.

(BZ#2107275)

tpm2-tools 패키지가 tpm2-tools-5.2-1 버전으로 변경되었습니다.

tpm2-tools 패키지는 tpm2-tools-5.2-1 버전으로 변경되었습니다. 이 업그레이드는 많은 중요한 개선 사항 및 버그 수정을 제공합니다. 주요 변경 사항은 다음과 같습니다.

  • tpm2_createprimarytpm2_create 툴을 사용하여 기본 오브젝트 생성 시 공개 키 출력에 대한 지원을 추가합니다.
  • tpm2_print 툴에 대한 지원을 추가하여 공개 키 출력 형식을 출력합니다. tpm2_print 는 신뢰할 수 있는 플랫폼 모듈(TPM) 데이터 구조를 디코딩하고 첨부된 요소를 출력합니다.
  • 64KB보다 큰 로그를 읽기 위해 tpm2_eventlog 툴에 지원을 추가합니다.
  • 세션 속성 표시 및 구성을 지원하기 위해 tpm2_sessionconfig 툴을 추가합니다.

주요 변경 사항에 대한 자세한 내용은 /usr/share/doc/tpm2-tools/Changelog.md 파일을 참조하십시오.

(BZ#2090748)

Intel E800 장치가 iWARP 및 RoCE 프로토콜을 지원

이 향상된 기능을 통해 enable_iwarpenable_roce devlink 매개변수를 사용하여 iWARP 또는 RoCE 프로토콜 지원을 해제할 수 있습니다. 이 필수 기능을 사용하면 프로토콜 중 하나로 장치를 구성할 수 있습니다. Intel E800 장치는 동일한 포트에서 두 프로토콜을 동시에 지원하지 않습니다.

특정 E800 장치에 대한 iWARP 프로토콜을 활성화 또는 비활성화하려면 먼저 카드의 PCI 위치를 가져옵니다.

$ lspci | awk '/E810/ {print $1}'
44:00.0
44:00.1
$

그런 다음 프로토콜을 활성화하거나 비활성화합니다. 첫 번째 포트에 pci/0000:44:00.0 을 사용하고 카드의 두 번째 포트에 pci/0000:44:00.1 을 devlink 명령의 인수로 사용할 수 있습니다.

$ devlink dev param set pci/0000:44:00.0 name enable_iwarp value true cmode runtime
$ devlink dev param set pci/0000:44:00.0 name enable_iwarp value false cmode runtime

특정 E800 장치에 대한 RoCE 프로토콜을 활성화 또는 비활성화하려면 위에 표시된 대로 카드의 PCI 위치를 가져옵니다. 다음 명령 중 하나를 사용합니다.

$ devlink dev param set pci/0000:44:00.0 name enable_roce value true cmode runtime
$ devlink dev param set pci/0000:44:00.0 name enable_roce value false cmode runtime

(BZ#2096127)

4.10. 부트 로더

GRUB은 새 키로 서명

보안상의 이유로 GRUB은 이제 새 키로 서명됩니다. 따라서 Secure Boot 기능을 사용하여 IBM Power Systems의 little-endian 변형을 부팅하려면 RHEL 펌웨어를 FW10.30 버전(또는 이후) 또는 FW1020 버전으로 업데이트해야 합니다.

(BZ#2074761)

IBM POWER에서 VM을 부팅할 때 구성 가능한 디스크 액세스 재시도

IBM POWER 아키텍처에서 논리 파티션(lpar) 가상 머신(VM)이 부팅될 때 GRUB 부트 로더가 원격 디스크 액세스를 재시도하는 횟수를 구성할 수 있습니다. 재시도 횟수를 줄이면 특정 상황에서 부팅 속도가 느려질 수 있습니다.

이전에는 부팅 시 디스크 액세스가 실패한 경우 GRUB이 디스크에 20번 다시 시도했습니다. 이로 인해 속도가 느린 SAN(Storage Area Network) 디스크에 연결된 lpar 시스템에서 LPM(Live Partition Cryostat) 마이그레이션을 수행한 경우 문제가 발생했습니다. 결과적으로 20번 재시도가 완료될 때까지 시스템에서 부팅이 매우 오래 걸릴 수 있었습니다.

이번 업데이트를 통해 ofdisk_retries GRUB 옵션을 사용하여 디스크 액세스 재시도 횟수를 구성하고 줄일 수 있습니다. 자세한 내용은 IBM POWER에서 VM을 부팅할 때 디스크 액세스 재시도 구성을 참조하십시오.

결과적으로 POWER에서 LPM 이후 lpar 부팅이 더 이상 느려지지 않으며, 로드파 시스템이 실패한 디스크 없이 부팅됩니다.

(BZ#2070725)

4.11. 파일 시스템 및 스토리지

이제 Stratis를 사용하면 생성 시 파일 시스템 크기를 설정할 수 있습니다.

이제 파일 시스템을 생성할 때 필요한 크기를 설정할 수 있습니다. 이전에는 자동 기본 크기가 1TiB였습니다. 이번 개선된 기능을 통해 사용자는 임의의 파일 시스템 크기를 설정할 수 있습니다. 하한 제한은 512MiB 미만으로 이동해서는 안 됩니다.

(BZ#1990905)

Stratis 풀의 프로비저닝 관리 개선

씬 프로비저닝 관리가 개선되어 이제 씬 풀 관리의 경고, 풀 메타데이터의 공간 정확한 할당, 개선된 예측성, 전반적인 안전 및 신뢰성을 개선할 수 있습니다. 새로운 별도의 모드에서는 오버프로비저닝이 비활성화됩니다. 이번 개선된 기능을 통해 사용자는 오버프로비저닝을 비활성화하여 풀에 모든 파일 시스템을 완전히 지원할 수 있는 충분한 공간이 포함되어 있는지 확인할 수 있습니다.

(BZ#2040352)

Stratis에서 개선된 개별 풀 관리 제공

이제 개별 Stratis 풀을 중지하고 시작할 수 있습니다. 이전에는 stratisd 에서 탐지한 모든 장치에 사용 가능한 모든 풀을 시작하려고 했습니다. 이번 개선된 기능을 통해 Stratis 내에서 개별 풀을 보다 유연하게 관리할 수 있으며 디버깅 및 복구 기능을 개선할 수 있습니다. 단일 풀의 복구 및 유지 관리 작업을 수행하기 위해 더 이상 시스템을 재부팅할 필요가 없습니다.

(BZ#2039960)

다중 경로 장치 경로의 활성화된 프로토콜별 구성

이전에는 다른 프로토콜의 최적 구성으로 인해 각 개별 프로토콜에 대한 옵션을 설정하지 않고 구성을 올바르게 설정할 수 없었습니다. 이 향상된 기능을 통해 사용자는 경로 전송 프로토콜을 기반으로 다중 경로 장치 경로를 구성할 수 있습니다. /etc/multipath.conf 파일의 overrides 섹션의 protocol 하위 섹션을 사용하여 프로토콜에 따라 다중 경로 장치 경로를 올바르게 구성합니다.

(BZ#2084365)

새로운 libnvme 기능 라이브러리

이전 버전에서는 NVMe 스토리지 명령줄 인터페이스 유틸리티(nvme-cli)에 모든 도우미 함수 및 정의가 포함되었습니다. 이번 개선된 기능을 통해 RHEL 9.1에 새로운 libnvme 라이브러리가 추가되었습니다. 라이브러리에는 다음이 포함됩니다.

  • NVMe 사양 구조의 유형 정의
  • DestinationRules 및 비트 필드
  • Helper functions to construct, dispatch, and decode commands and payloads
  • NVMe 장치를 연결, 검사 및 관리하는 유틸리티

이번 업데이트를 통해 nvme-stas 와 같은 코드와 여러 프로젝트 및 패키지를 복제할 필요가 없으며 이 공통 라이브러리를 사용할 수 있습니다.

(BZ#2099619)

새 라이브러리 libnvme 를 사용할 수 있습니다.

이번 업데이트를 통해 nvme-cli는 두 가지 프로젝트로 나뉩니다. * nvme-cli 에는 이제 nvme 툴 * libnvme 라이브러리에 대한 코드만 포함되어 있습니다. * libnvme 라이브러리에는 NVMe 사양 구조, Restics, 비트 필드, 도우미 함수의 모든 유형 정의와 NVMe 장치를 연결, 디스패치, 디코딩 명령 및 페이로드를 구성하는 유틸리티가 포함됩니다.

(BZ#2090121)

4.12. 고가용성 및 클러스터

Red Hat OpenStack 플랫폼에서 고가용성 지원

이제 Red Hat OpenStack 플랫폼에서 고가용성 클러스터를 구성할 수 있습니다. Red Hat은 이 기능을 지원하기 위해 다음과 같은 새로운 클러스터 에이전트를 제공합니다.

  • fence_openstack: OpenStack의 HA 클러스터용 펜싱 에이전트
  • openstack-info: OpenStack의 HA 클러스터에 필요한 openstack-info 복제 리소스를 구성하는 리소스 에이전트
  • openstack-virtual-ip: 리소스 에이전트에서 가상 IP 주소 리소스를 구성
  • openstack-floating-ip: 리소스 에이전트에서 유동 IP 주소 리소스를 구성합니다.
  • openstack-cinder-volume: 리소스 에이전트에서 블록 스토리지 리소스를 구성

(BZ#2121838)

pcs 는 시스템을 재시작할 필요 없이 멀티패스 SCSI 장치 업데이트를 지원합니다.

pcs stonith update-scsi-devices 명령을 사용하여 다중 경로 SCSI 장치를 업데이트할 수 있습니다. 이 명령은 동일한 노드에서 다른 클러스터 리소스를 다시 시작하지 않고 SCSI 장치를 업데이트합니다.

(BZ#2024522)

클러스터 UUID 지원

클러스터 설정 중에 pcs 명령으로 모든 클러스터에 대한 UUID가 생성됩니다. 클러스터 이름은 고유한 클러스터 식별자가 아니므로 클러스터 UUID를 사용하여 여러 클러스터를 관리할 때 동일한 이름의 클러스터를 식별할 수 있습니다.

pcs cluster config [show] 명령을 사용하여 현재 클러스터 UUID를 표시할 수 있습니다. 기존 클러스터에 UUID를 추가하거나 pcs 클러스터 config uuid generate 명령을 사용하여 이미 존재하는 경우 UUID를 다시 생성할 수 있습니다.

(BZ#2054671)

구성된 리소스를 다시 만드는 pcs 명령을 표시하는 새로운 pcs resource config 명령 옵션

pcs resource config 명령에서 --output-format=cmd 옵션을 허용합니다. 이 옵션을 지정하면 다른 시스템에서 구성된 리소스를 다시 만드는 데 사용할 수 있는 pcs 명령이 표시됩니다.

(BZ#2058251)

구성된 펜싱 장치를 다시 만드는 pcs 명령을 표시하는 새로운 pcs stonith config 명령 옵션

pcs stonith config 명령에서 --output-format=cmd 옵션을 허용합니다. 이 옵션을 지정하면 다른 시스템에서 구성된 펜싱 장치를 다시 만드는 데 사용할 수 있는 pcs 명령이 표시됩니다.

(BZ#2058252)

Pacemaker 버전 2.1.4로 업데이트

Pacemaker 패키지가 Pacemaker 2.1.4의 업스트림 버전으로 업그레이드되었습니다. 주요 변경 사항은 다음과 같습니다.

  • 이제 multi -active resource 매개변수에서 stop_unexpected 값을 허용합니다. 다중 활성 리소스 매개변수는 둘 이상의 노드에서 리소스가 활성 상태일 때 복구 동작을 결정합니다. 기본적으로 이 경우 리소스가 있어야 하는 위치에 성공적으로 실행되어도 리소스를 완전히 다시 시작해야 합니다. 이 매개변수에 대한 stop_unexpected 값은 어차순-활성 리소스의 예기치 않은 인스턴스만 중지되도록 지정합니다. 서비스 및 해당 리소스 에이전트가 전체 재시작 없이 추가 활성 인스턴스와 함께 작동할 수 있는지 확인하는 것은 사용자의 책임입니다.
  • Pacemaker에서 allow-unhealthy-node 리소스 meta-attribute를 지원합니다. 이 meta-attribute를 true 로 설정하면 노드 상태가 성능 저하로 인해 리소스가 노드를 강제 해제하지 않습니다. 상태 리소스에 이 속성이 설정된 경우 노드의 상태가 복구되는지 자동으로 탐지하여 리소스를 다시 이동할 수 있습니다.
  • 사용자가 pcs acl group 명령을 사용하여 시스템 그룹에 대해 ACL(액세스 제어 목록)을 지정할 수 있습니다. 이전에 Pacemaker를 통해 개별 사용자에 대해 ACL을 지정할 수 있었지만, 더 간단하며 로컬 정책을 준수하여 시스템 그룹에 대한 ACL을 지정하고 해당 그룹의 모든 사용자에게 적용됩니다. 이 명령은 이전 릴리스에서 사용되었지만 적용되지 않았습니다.

(BZ#2072108)

클러스터 패키지와 함께 Samba가 더 이상 자동으로 설치되지 않음

이번 릴리스에서는 RHEL 고가용성 애드온용 패키지를 설치하면 더 이상 Samba 패키지가 자동으로 설치되지 않습니다. 이렇게 하면 HA 패키지를 자동으로 제거하지 않고 Samba 패키지를 제거할 수도 있습니다. 클러스터에서 Samba 리소스를 사용하는 경우 이제 수동으로 설치해야 합니다.

(BZ#1826455)

4.13. 동적 프로그래밍 언어, 웹 서버 및 데이터베이스 서버

nodejs:18 모듈 스트림이 완전히 지원됩니다.

nodejs:18 모듈 스트림은 이전에 기술 프리뷰로 사용 가능하며 RHSA-2022:8832 권고의 릴리스에서 완전히 지원됩니다. nodejs:18 모듈 스트림은 이제 LTS(Long Term Support) 버전인 Node.js 18.12 를 제공합니다.

RHEL 9.1에 포함된 Node.js 18Node.js 16 을 통한 버그 및 보안 수정 사항과 함께 수많은 새로운 기능을 제공합니다.

주요 변경 사항은 다음과 같습니다.

  • V8 엔진은 버전 10.2로 업그레이드되었습니다.
  • npm 패키지 관리자가 버전 8.19.2로 업그레이드되었습니다.
  • Node.js 에서 새로운 실험적 가져오기 API를 제공합니다.
  • 이제 Node.js 에서 새로운 실험적인 node:test 모듈을 제공하여 보고되는 테스트 생성을 통해TAP( Test Anything Protocol) 형식으로 이어집니다.
  • Node.js 는 이제 IPv4를 통해 IPv6 주소를 선호합니다.

nodejs:18 모듈 스트림을 설치하려면 다음을 사용합니다.

# dnf module install nodejs:18

(BZ#2083072)

새로운 모듈 스트림: php:8.1

RHEL 9.1에서는 PHP 8.1 을 새로운 php:8.1 모듈 스트림으로 추가합니다.

PHP 8.1 을 사용하면 다음을 수행할 수 있습니다.

  • Enumerations (Enumerations) 기능을 사용하여 가능한 값의 개별 수 중 하나로 제한되는 사용자 지정 유형을 정의합니다.
  • 초기화 후 속성을 수정하지 않도록 readonly 한정자를 사용하여 속성을 선언합니다.
  • 파이버, 풀 스택, 인터럽트 기능 사용

php:8.1 모듈 스트림을 설치하려면 다음을 사용합니다.

# dnf module install php:8.1

RHEL 9의 PHP 사용법에 대한 자세한 내용은 PHP 스크립팅 언어 사용을 참조하십시오.

(BZ#2070040)

새 모듈 스트림: ruby:3.1

RHEL 9.1에서는 새로운 ruby:3.1 모듈 스트림에 Ruby 3.1.2 가 도입되었습니다. 이 버전은 RHEL 9.0에서 배포된 Ruby 3.0 에 비해 다양한 성능 향상, 버그 및 보안 수정, 새로운 기능을 제공합니다.

주요 개선 사항은 다음과 같습니다.

  • 이제 대화형 Ruby (IRB) 유틸리티에서 자동 완성 기능과 문서 대화 상자를 제공합니다.
  • lib/ debug.rb 를 대체하고 성능이 향상되고 원격 디버깅 및 다중 프로세스/다중 스레드 디버깅을 지원하는 새로운 디버그 gem
  • error_highlight gem에서 이제 backtrace에서 세분화된 오류 위치를 제공합니다.
  • 해시 리터럴 데이터 유형 및 키워드 인수의 값을 생략할 수 있습니다.
  • 이제 pin 연산자(^)에서 패턴 일치에서 표현식 허용
  • 이제 한 줄 패턴 일치에서 생략할 수 있습니다.
  • 새로운 실험적인 프로세스의JIT(Just-in-Time) 컴파일러인 YJIT가 AMD 및 Intel 64비트 아키텍처에서 사용 가능
  • TypeProf For IDE 유틸리티가 도입되었으며 IDE의 Ruby 코드에 대한 실험적 정적 유형 분석 도구입니다.

MJIT(메서드 기반 Just-in-Time Compiler)에서 다음과 같은 성능 개선 사항이 구현되었습니다.

  • Rails 와 같은 워크로드의 경우 기본 최대ECDHE 캐시 값이 100에서 10000으로 증가했습니다.
  • 클래스 이벤트에 대한 TraceECDHE가 활성화된 경우ECDHE을 사용하여 컴파일된 코드가 더 이상 취소되지 않습니다.

기타 주요 변경 사항은 다음과 같습니다.

  • tracer.rb 파일이 제거됨
  • 버전 4.0부터 Psych YAML 구문 분석기는 기본적으로 safe_load 메서드를 사용합니다.

ruby:3.1 모듈 스트림을 설치하려면 다음을 사용합니다.

# dnf module install ruby:3.1

(BZ#2063773)

httpd 가 버전 2.4.53으로 업데이트됨

Apache HTTP Server가 RHEL 9.0을 통해 배포된 버전 2.4.51에 대한 버그 수정, 개선 사항 및 보안 수정 사항을 제공하는 버전 2.4.53으로 업데이트되었습니다.

mod_proxymod_proxy_connect 모듈의 주요 변경 사항은 다음과 같습니다.

  • mod_proxy: 컨트롤러 이름의 길이 제한이 증가
  • mod_proxy: 이제 backend 및 frontend에 대한 제한 시간을 선택적으로 구성할 수 있습니다.
  • mod_proxy: SetEnv proxy-nohalfclose 매개변수를 설정하여 TCP 연결 리디렉션을 비활성화할 수 있습니다.
  • mod_proxymod_proxy_connect: 클라이언트로 보낸 후 상태 코드를 변경할 수 없습니다.

또한 새로운 ldap 함수가 표현식 API에 추가되어 LDAP 주입 취약점을 방지할 수 있습니다.

(BZ#2079939)

httpd 구성의 LimitRequestBody 지시문의 새 기본값

CVE-2022-29404 를 수정하기 위해 Apache HTTP Server의 LimitRequestBody 지시문의 기본값은 0 (제한 없음)에서 1GiB로 변경되었습니다.

httpd 구성 파일에 LimitRequestBody 의 값이 명시적으로 지정되지 않은 시스템에서 httpd 패키지를 LimitRequestBody 를 기본값으로 1GiB로 업데이트합니다. 결과적으로 HTTP 요청 본문의 총 크기가 이 1GiB 기본 제한을 초과하면 httpd 에서 413 Request entity Too Large 오류 코드를 반환합니다.

HTTP 요청 메시지 본문의 새 기본 허용 크기가 사용 사례에 충분하지 않으면 해당 컨텍스트 내에서 httpd 구성 파일(서버, 디렉터리별, 파일 또는 위치별)을 업데이트하고 기본 제한을 바이트 단위로 설정합니다. 예를 들어 새 2GiB 제한을 설정하려면 다음을 사용합니다.

LimitRequestBody 2147483648

LimitRequestBody 지시문에 명시적 값을 사용하도록 이미 구성된 시스템은 이러한 변경의 영향을 받지 않습니다.

(BZ#2128016)

새 패키지: httpd-core

RHEL 9.1부터 모든 필수 파일이 포함된 httpd 바이너리 파일이 새 httpd-core 패키지로 이동되어 기본 httpd 기능만 필요한 시나리오에서 Apache HTTP Server의 종속성만 제한합니다.

httpd 패키지는 이제 mod_ systemd,mod_brotli 및 문서를 포함한 systemd-related 파일을 제공합니다.

이러한 변경으로 인해 httpd 패키지에서 더 이상 httpd 모듈knative 번호(MMN) 값을 제공하지 않습니다. 대신 httpd-core 패키지에서는 이제 httpd-mmn 값을 제공합니다. 결과적으로 httpd 패키지에서 httpd -mmn 을 가져올 수 없습니다.

설치된 httpd 바이너리의 httpd-mmn 값을 얻으려면 httpd -devel 패키지의 일부인 apxs 바이너리를 사용할 수 있습니다. httpd-mmn 값을 얻으려면 다음 명령을 사용합니다.

# apxs -q HTTPD_MMN
20120211

(BZ#2065677)

ECDHEre2 버전 10.40으로 변경

Perl Compatible Regular Expressions 라이브러리 v 2를 제공하는ECDHEre 2 패키지가 버전 10.40으로 업데이트되었습니다.

이번 업데이트를 통해 Perl 5.32 의 각 변경 사항에 따라 문제 해결 어설션에서 \K 이스케이프 시퀀스를 사용하는 것은 금지되어 있습니다. 이전 동작을 사용하는 경우 PCRE2_EXTRA_ALLOW_LOOKAROUND_BSK 옵션을 사용할 수 있습니다. 이 옵션이 설정되면 \K 는 긍정적인 어설션 내에서만 허용되지만 음수 어설션에서는 무시됩니다.

(BZ#2086494)

4.14. 컴파일러 및 개발 도구

업데이트된 GCC 컴파일러가 RHEL 9.1에서 사용 가능

시스템 GCC 컴파일러 버전 11.2.1은 업스트림 GCC에서 사용 가능한 수많은 버그 수정 및 개선 사항을 포함하도록 업데이트되었습니다.

GNU 컴파일러 컬렉션(GCC)은 C, C++ 및 Fortran 프로그래밍 언어를 사용하여 애플리케이션을 개발하기 위한 툴을 제공합니다.

사용법 정보는 RHEL 9에서 C 및 C++ 애플리케이션 개발을 참조하십시오.

(BZ#2063255)

새로운 GCC Toolset 12

GCC Toolset 12는 최신 버전의 개발 툴을 제공하는 컴파일러 툴셋입니다. AppStream 리포지토리에서 소프트웨어 컬렉션 형식으로 Application Stream으로 사용할 수 있습니다.

GCC 컴파일러는 업스트림 GCC에서 제공되는 많은 버그 수정 및 개선 사항을 제공하는 12.1.1 버전으로 업데이트되었습니다.

GCC Toolset 12에서 다음 도구 및 버전을 제공합니다.

버전

GCC

12.1.1

GDB

11.2

binutils

2.35

dwz

0.14

annobin

10.76

GCC Toolset 12를 설치하려면 root로 다음 명령을 실행합니다.

# dnf install gcc-toolset-12

GCC Toolset 12에서 툴을 실행하려면 다음을 수행합니다.

$ scl enable gcc-toolset-12 tool

GCC Toolset 12의 툴 버전이 다음 툴의 시스템 버전을 덮어쓰는 쉘 세션을 실행하려면 다음을 수행합니다.

$ scl enable gcc-toolset-12 bash

자세한 내용은 GCC Toolset 12 를 참조하십시오.

(BZ#2077465)

GCC Toolset 12: Annobin이 버전 10.76에 다시 기반

GCC Toolset 12에서 Annobin 패키지가 버전 10.76로 업데이트되었습니다.

주요 버그 수정 및 개선 사항은 다음과 같습니다.

  • nocheck에 대한 새로운 명령줄 옵션은 debuginfod 서비스를 사용하지 않도록 지시합니다. 디버그 정보를 찾을 수 없는 경우 다른 방식으로 디버그 정보를 찾을 수 없습니다. debuginfod 를 사용하면 추가 정보가 포함된 annocheck를 제공하지만 debuginfod 서버를 사용할 수 없는 경우nocheck의 성능이 저하될 수도 있습니다.
  • 이제 Annobin 소스를 구성하는 대신 mesonninja 를 사용하여 구축할 수 있습니다.
  • Annocheck는 이제 Rust 1.18 컴파일러에서 빌드한 바이너리를 지원합니다.

또한 다음 알려진 문제는 GCC Toolset 12 버전의 Annobin에서 보고되었습니다.

경우에 따라 다음과 유사한 오류 메시지와 함께 컴파일이 실패할 수 있습니다.

cc1: fatal error: inaccessible plugin file
opt/rh/gcc-toolset-12/root/usr/lib/gcc/architecture-linux-gnu/12/plugin/gcc-annobin.so
expanded from short plugin name gcc-annobin: No such file or directory

이 문제를 해결하려면 annobin.so 에서 gcc-annobin.so 로 플러그인 디렉토리에 심볼릭 링크를 만듭니다.

# cd /opt/rh/gcc-toolset-12/root/usr/lib/gcc/architecture-linux-gnu/12/plugin
# ln -s annobin.so gcc-annobin.so

아키텍처 가 사용되는 아키텍처로 교체되는 경우:

  • aarch64
  • i686
  • ppc64le
  • s390x
  • x86_64

(BZ#2077438)

GCC Toolset 12: binutils 버전 2.38으로 다시 기반

GCC Toolset 12에서 binutils 패키지가 2.38 버전으로 업데이트되었습니다.

주요 버그 수정 및 개선 사항은 다음과 같습니다.

  • binutils 패키지의 모든 도구는 이제 다중 바이트 문자를 표시하거나 경고하는 옵션을 지원합니다.
  • readelfobjdump 툴은 기본적으로 별도의 debuginfo 파일에 대한 링크를 자동으로 따릅니다. readelf--debug-dump=no-follow-links 옵션을 사용하거나 objdump--dwarf=no-follow-links 옵션을 사용하여 이 동작을 비활성화할 수 있습니다.

(BZ#2077445)

GCC 12 이상에서는 _FORTIFY_SOURCE 수준 3을 지원합니다.

이 향상된 기능을 통해 사용자는 GCC 버전 12 이상으로 빌드할 때 컴파일러 명령줄에서 -D_FORTIFY_SOURCE=3 을 사용하여 애플리케이션을 빌드할 수 있습니다. _FORTIFY_SOURCE 수준 3은 소스 코드 강화 범위를 개선하여 컴파일러 명령줄에서 -D_FORTIFY_SOURCE=3 으로 빌드된 애플리케이션의 보안을 개선합니다. 이는 GCC 버전 12 이상 및 RHEL 9의 모든 Clang에서 지원되며 __builtin_dynamic_object_size 가 내장된 것입니다.

(BZ#2033683)

DNS stub resolver 옵션에서 no-aaa 옵션을 지원

이번 개선된 기능을 통해 glibc 는 이제 /etc/resolv.confRES_OPTIONS 환경 변수에서 no-aaaa stub resolver 옵션을 인식합니다. 이 옵션이 활성화되면 네트워크를 통해 AAAA 쿼리가 전송되지 않습니다. 시스템 관리자는 IPv4 전용 네트워크의 상위 조회가 DNS 문제에 기여하지 않는 등 진단 목적으로 AAAA DNS 조회를 비활성화할 수 있습니다.

(BZ#2096191)

IBM Z Series z16에 대한 지원 추가

IBM z16 플랫폼과 함께 s390 명령어 세트에 대한 지원이 제공됩니다. IBM z16HWCAP_S390_VXRS_PDE2HWCAP_S390_NNPAglibc 에서 두 가지 추가 하드웨어 기능을 제공합니다. 그 결과 애플리케이션에서 이러한 기능을 사용하여 최적화된 라이브러리 및 기능을 제공할 수 있습니다.

(BZ#2077838)

애플리케이션은 새로운 glibc 인터페이스를 통해 재시작 가능한 시퀀스 기능을 사용할 수 있습니다.

sched_getcpu 함수(특히 aarch64에서) 가속화하려면 glibc 에서 기본적으로 재시작 가능한 시퀀스(rseq) 커널 기능을 사용해야 합니다. 애플리케이션이 공유 rseq 영역을 지속적으로 사용할 수 있도록 glibc는 이제 glibc 2.35 업스트림 버전에서 처음 추가된 __rseq_offset,__rseq_size__rseq_flags 기호를 제공합니다. 이번 개선된 기능을 통해 sched_getcpu 함수의 성능이 향상되고 애플리케이션에서 새 glibc 인터페이스를 통해 재시작 가능한 시퀀스 기능을 사용할 수 있습니다.

(BZ#2085529)

GCC Toolset 12: GDB 기반 버전 11.2

GCC Toolset 12에서는 GDB 패키지가 버전 11.2로 업데이트되었습니다.

주요 버그 수정 및 개선 사항은 다음과 같습니다.

  • 64비트 ARM 아키텍처 메모리 태그 확장(MTE)에 대한 새로운 지원 memory-tag 접두사가 있는 새 명령을 참조하십시오.
  • -break-insert-dprintf-insert 에 대한 --qualified 옵션입니다. 이 옵션은 모든 범위에서 검색하는 대신 사용자의 이벤트 위치와 정확히 일치합니다.

    예를 들어 break --qualified foo 는 전역 범위에서 foo 라는 기호를 찾습니다. GDB는 --qualified 을 사용하지 않으면 해당 이름의 모든 범위에 대한 기호를 검색합니다.

  • --force-condition: 현재 유효하지 않은 경우에도 제공된 모든 조건이 정의됩니다.
  • -break-condition --force: Like command.
  • -file-list-exec-source-files 는 선택적 REGEXP 를 사용하여 출력을 제한할 수 있습니다.
  • .gdbinit 검색 경로에는 구성 디렉터리가 포함됩니다. 순서는 다음과 같습니다.

    1. $XDG_CONFIG_HOME/gdb/gdbinit
    2. $HOME/.config/gdb/gdbinit
    3. $HOME/.gdbinit
  • ~/.config/gdb/gdb/gdbearlyinit 또는 ~/.gdbearlyinit 에 대한 지원
  • -eix-eiex 초기 초기화 파일 옵션

터미널 사용자 인터페이스(TUI):

  • 터미널 사용자 인터페이스(TUI) 창 내에서 마우스 작업을 지원합니다.
  • 이제 집중된 창에서 작동하지 않는 키 조합이 GDB로 전달됩니다.

새 명령:

  • print memory-tag-violations 표시
  • print memory-tag-violations 설정
  • memory-tag show-logical-tag
  • memory-tag with-logical-tag
  • memory-tag show-allocation-tag
  • memory-tag 검사
  • start-quietlyset startup-quietly: GDB 스크립트에서 -q 또는 -quiet 을 지정하는 방법입니다. 초기 초기화 파일에서만 유효합니다.
  • 인쇄 유형 16진수를 표시하고 인쇄 유형 16진수 : 10진수 대신 16진수로 구조 멤버의 크기 또는 오프셋을 Tells GDB로 설정합니다.
  • python ignore-environment를 표시하고 python ignore-environment를 설정하면 GDB의 Python 인터프리터는 Python 환경 변수를 무시하고 Python 실행 파일에 -E 를 전달합니다. 초기 초기화 파일에서만 유효합니다.
  • python dont-write-bytecode를 표시하고 python dont-write-bytecode를 설정합니다: 이 명령은 GDB의 Python 인터프리터가 가져온 모듈의 바이트 코드 컴파일된 객체를 작성하지 못하도록 합니다. 초기 초기화 파일에서만 유효합니다.

변경된 명령:

  • CONDITION 경우 중단 : CONDITION 이 유효하지 않은 경우 GDB에서 DestinationRule을 설정하지 않습니다. -force-condition 옵션은 이를 덮어씁니다.
  • CONDITION -force N COND: 이전 명령과 동일합니다.
  • Inferior [ID]: ID가 생략되면 이 명령은 현재 유추에 대한 정보를 출력합니다. 그렇지 않으면 변경되지 않습니다.
  • ptype[/FLAGS] TYPE | EXPRESSION: /x 플래그를 사용하여 struct 멤버의 크기 및 오프셋을 출력할 때 16진수 표기법을 사용합니다. /d 플래그를 사용하여 10진수를 사용하여 동일한 작업을 수행합니다.
  • 정보 소스: 출력이 재구성되었습니다.

Python API:

  • Inferior 오브젝트에는 읽기 전용 connection_num 특성이 포함되어 있습니다.
  • 새로운 gdb.ECDHE.level() 메서드.
  • 새로운 gdb.PendingECDHE.level() 메서드.
  • gdb.Stop 대신 출력되는 GDB.BreakpoiontEvent.

(BZ#2077494)

GDB에서 Power 10 PLT 명령을 지원

GDB는 이제 Power 10 PLT 명령을 지원합니다. 이번 업데이트를 통해 사용자는 공유 라이브러리 함수로 들어가서 GDB 버전 10.2-10 이상을 사용하여 스택 백트레이스를 검사할 수 있습니다.

(BZ#1870017)

버전 12.1에 따라 패키지된 dyninst

dyninst 패키지는 버전 12.1로 업데이트되었습니다. 주요 버그 수정 및 개선 사항은 다음과 같습니다.

  • glibc-2.35 여러 네임스페이스에 대한 초기 지원
  • DWARF 병렬 구문 분석에 대한 동시성 수정
  • CUDACDNA2 GPU 바이너리 지원 개선
  • IBM POWER Systems(little endian) 레지스터 액세스 개선
  • PIE 바이너리 지원 개선
  • catch 블록에 대한 수정된 구문 분석
  • 64비트ECDHE(arch64) 부동 소수점 레지스터에 대한 액세스 수정

(BZ#2057675)

새로운 파일 세트 /etc/profile.d/debuginfod.*

조직 debuginfod 서비스를 활성화하기 위한 새로운 파일 세트 추가 시스템 전체의 debuginfod 클라이언트 활성화를 가져오려면 URL을 /etc/debuginfod/FOO.urls 파일에 추가해야 합니다.

(BZ#2088774)

Rrust Toolset 버전 1.62.1에 따라 업데이트

Rust가 1.62.1 버전으로 업데이트되었습니다. 주요 변경 사항은 다음과 같습니다.

  • 할당 종료를 사용하면 패턴이 할당 왼쪽의 기존 변수에 할당할 수 있습니다. 예를 들어 DestinationRule 할당은 (a, b) = (b, a)변수로 스왑할 수 있습니다.
  • 이제 core::arch::asm! 매크로를 사용하는 64비트 x86 및 64비트 ARM에서 인라인 어셈블리가 지원됩니다. 참조의 "인라인 어셈블리" 장에서 자세한 내용은 /usr/share/doc/rust/html/reference/inline-assembly.html ( https://doc.rust-lang.org/reference/inline-assembly.html)에서 참조하십시오.
  • 이제 dotnets는 명시적으로 주석이 있는 #[default] 변형을 사용하여 Default 특성을 도출할 수 있습니다.
  • 이제CondVar , CondVar , RwLock 은 pthreads가 아닌 사용자 정의 futex기반 구현을 사용하며 Rust 언어를 통해 새로운 최적화를 가능하게 합니다.
  • Rust는 이제 새로 설정된 종료 특성을 구현하는 사용자 정의 유형을 포함하여 기본 종료 코드의 사용자 정의 코드를 지원합니다.
  • dependency 기능에 대한 더 많은 제어 기능을 지원합니다. dep: 접두사는 기능을 노출하지 않고 선택적 종속성을 참조할 수 있으며, ?패키지 이름?/feature-name 과 같이 해당 종속성이 다른 위치에서 활성화된 경우에만 종속성 기능을 활성화합니다.
  • 3.3.2 ml에 종속 항목을 추가하는 새로운 기능 추가 하위 명령이 있습니다.
  • 자세한 내용은 업스트림 릴리스 시리즈를 참조하십시오.

(BZ#2075337)

LLVM Toolset 버전 14.0.6

LLVM Toolset은 14.0.6 버전으로 업데이트되었습니다. 주요 변경 사항은 다음과 같습니다.

  • 64비트 x86에서는 AVX512-FP16 명령에 대한 지원이 추가되었습니다.
  • ECDHEv9-A,ECDHEv9.1-A 및ECDHEv9.2-A 아키텍처가 추가되었습니다.
  • PowerPC에서 __ibm128 유형을 추가하여 IBM 이중 실행 형식을 나타내며 __attribute__(mode(IF)) 로도 사용할 수 있습니다.

Clang 변경:

  • C++2b 에 대한 Const eval이 이제 구현되어 있는 경우
  • 64비트 x86에서는 AVX512-FP16 명령에 대한 지원이 추가되었습니다.
  • 실험 상태의 OpenCL C 3.0 및 C++ for OpenCL 2021에 대한 지원이 완료되었습니다.
  • -E -P 사전 프로세서 출력은 이제 항상 GCC 동작과 일치하는 빈 행을 생략합니다. 이전에는 최대 8개의 연속 빈 줄이 출력에 표시될 수 있었습니다.
  • 지원 - C99 및 이후 표준을 사용한 후 C89뿐만 아니라 GCC의 동작과 일치합니다. 주목할 만한 사용 사례는 선언 및 코드를 혼합하는 것을 금지하지만 최신 C 표준으로 이동하려는 스타일 가이드를 지원하는 것입니다.

자세한 내용은 LLVM ToolsetClang 업스트림 릴리스 노트를 참조하십시오.

(BZ#2061041)

Toolset 다시 기반 버전 1.18.2

Go Toolset이 버전 1.18.2로 업데이트되었습니다.

주요 변경 사항은 다음과 같습니다.

  • 이전 버전의 Go와 이전 버전과의 호환성을 유지하면서 일반 일반이 도입되었습니다.
  • 새로운 퍼지셔닝 라이브러리입니다.
  • 새로운 debug/buildinfonet/netip 패키지.
  • go get 툴은 더 이상 패키지를 빌드하거나 설치하지 않습니다. 이제 go.mod 에서만 종속성을 처리합니다.
  • 기본 모듈의 go.mod 파일이 1.17 이상을 지정하는 경우 추가 인수 없이 사용된 go mod download 명령은 기본 모듈의 go.mod 파일에 명시적으로 필요한 모듈에 대한 소스 코드만 다운로드합니다. 또한 전송 종속 항목에 대한 소스 코드를 다운로드하려면 go mod download all 명령을 사용합니다.
  • go mod vendor 하위 명령은 이제 출력 디렉터리를 설정하는 -o 옵션을 지원합니다.
  • 이제 go mod tidy 명령으로 빌드 목록의 하나의 모듈만 가져온 각 패키지를 제공하는지 확인하는 데 소스 코드가 필요한 모듈에 대해 go.sum 파일에 추가 체크섬이 유지됩니다. 이 변경 사항은 기본 모듈의 go.mod 파일의 Go 버전에서 조건이 지정되지 않습니다.

(BZ#2075169)

새 모듈 스트림: maven:3.8

RHEL 9.1에서는 Maven 3.8 을 새 모듈 스트림으로 도입합니다.

maven:3.8 모듈 스트림을 설치하려면 다음을 사용합니다.

# dnf module install maven:3.8

(BZ#2083112)

.NET 버전 7.0 사용 가능

Red Hat Enterprise Linux 9.1은 .NET 버전 7.0과 함께 배포됩니다. 주요 개선사항은 다음과 같습니다.

  • IBM Power 지원 (ppc64le)

자세한 내용은 .NET 7.0 RPM 패키지용 릴리스 정보 및 . NET 7.0 컨테이너용 릴리스 노트 를 참조하십시오.

(BZ#2112027)

4.15. IdM (Identity Management)

SSSD에서 SID 요청에 대한 메모리 캐싱 지원

이 향상된 기능을 통해 SSSD는 SID의 GID 및 UID 조회인 SID 요청에 대한 메모리 캐싱을 지원하며 그 반대의 경우도 마찬가지입니다. 메모리 캐싱은 예를 들어 Samba 서버에 대량의 파일을 복사하거나 복사하는 경우 성능이 향상됩니다.

(JIRA:RHELPLAN-123369)

ipaservicedelegationtargetipaservicedelegationrule Ansible 모듈을 사용할 수 있습니다.

이제 ipaservicedelegationtargetipaservicedelegationrule ansible-freeipa 모듈을 사용하여 다음과 같이 스마트 카드로 인증된 IdM(Identity Management) 사용자를 허용하도록 웹 콘솔 클라이언트를 구성할 수 있습니다.

  • 다시 인증하지 않고 웹 콘솔 서비스가 실행 중인 RHEL 호스트에서 sudo 를 사용합니다.
  • SSH 를 사용하여 원격 호스트에 액세스하고 다시 인증하지 않고 호스트의 액세스 서비스에 액세스합니다.

ipaservicedelegationtargetipaservicedelegationrule 모듈은 제한된 위임이라고도 하는 Kerberos S4U2proxy 기능을 사용합니다. IdM은 일반적으로 이 기능을 사용하여 웹 서버 프레임워크가 사용자를 대신하여 LDAP 서비스 티켓을 받을 수 있도록 합니다. IdM-AD 신뢰 시스템은 기능을 사용하여 cifs 주체를 가져옵니다.

(JIRA:RHELPLAN-117109)

익명 PKINIT에 대한 SSSD 지원

이 향상된 기능을 통해 SSSD는 이제 Active Directory의 Kerberos 무장이라고 합니다. 지금까지는 필요한 인증 정보를 요청하기 위해 Kerberos 키탭이 필요했습니다. 이제 익명 PKINIT를 사용하여 이 인증 정보 캐시를 생성하여ECDHEST 세션을 설정할 수 있습니다.

익명 PKINIT를 활성화하려면 다음 단계를 수행합니다.

  1. sssd.conf 파일의 [domain] 섹션에서ECDHE 5_fast_use_anonymous_pkinittrue 로 설정합니다.
  2. SSSD를 다시 시작합니다.
  3. IdM 환경에서는 IdM 사용자로 로그인하여 익명 PKINIT가 사용되었는지 확인할 수 있습니다. ECDHEST 티켓이 있는 캐시 파일이 생성되고 기본 주체: WELLKNOWN/ANONYMOUS@WELLKNOWN:ANONYMOUS 는 익명 PKINIT가 사용되었음을 나타냅니다.

    klist /var/lib/sss/db/fast_ccache_IPA.VM
    Ticket cache: FILE:/var/lib/sss/db/fast_ccache_IPA.VM
    Default principal: WELLKNOWN/ANONYMOUS@WELLKNOWN:ANONYMOUS
    Valid starting Expires Service principal
    03/10/2022 10:33:45 03/10/2022 10:43:45 krbtgt/IPA.VM@IPA.VM

(JIRA:RHELPLAN-123368)

IdM에서 Random 일련 번호 지원

이번 업데이트를 통해 이제 IdM(Identity Management)에 redundancytag pki 11.2.0 이 포함되어 있어 Random 직렬 번호 버전 3(RSNv3)을 사용할 수 있습니다. ipa-server-install 또는 ipa-ca-install 을 실행할 때 --random-serial-numbers 옵션을 사용하여 RSNv3를 활성화할 수 있습니다. RSNv3가 활성화된 경우 IdM은 범위 관리 없이 PKI에서 인증서 및 요청에 대한 완전 임의의 일련 번호를 생성합니다. RSNv3를 사용하면 대규모 IdM 설치에서 범위 관리를 방지하고 IdM을 다시 설치할 때 일반적인 충돌을 방지할 수 있습니다.

중요

RSNv3는 새로운 IdM 설치에서만 지원됩니다. 활성화된 경우 모든 PKI 서비스에서 RSNv3를 사용해야 합니다.

(BZ#747959)

이제 IdM에서 사용자 암호가 만료된 후 허용되는 LDAP 바인딩 수 제한 지원

이번 개선된 기능을 통해 IdM(Identity Management) 사용자의 암호가 만료될 때 허용되는 LDAP 바인딩 수를 설정할 수 있습니다.

-1
IdM은 사용자가 암호를 재설정하기 전에 사용자에게 무제한 LDAP 바인딩을 부여합니다. 이는 이전 동작과 일치하는 기본값입니다.
0
이 값은 암호가 만료되면 모든 LDAP 바인딩을 비활성화합니다. 사용자는 실제로 암호를 즉시 재설정해야 합니다.
1-MAXINT
입력한 값은 만료 후 많은 바인딩을 허용합니다.

이 값은 글로벌 암호 정책 및 그룹 정책에서 설정할 수 있습니다.

개수는 서버별로 저장됩니다.

사용자가 자신의 암호를 재설정하려면 현재 만료된 암호로 바인딩해야 합니다. 사용자가 모든 만료 후 바인드된 경우 암호는 관리적으로 재설정해야 합니다.

(BZ#2091988)

새로운 ipasmartcard_serveripasmartcard_client 역할

이번 업데이트를 통해 ansible-freeipa 패키지에서는 스마트 카드 인증을 위해 IdM(Identity Management) 서버 및 클라이언트를 구성하는 Ansible 역할을 제공합니다. ipasmartcard_serveripasmartcard_client 역할은 ipa-advise 스크립트를 교체하여 통합을 자동화하고 단순화합니다. 동일한 인벤토리 및 이름 지정 스키마가 다른 ansible-freeipa 역할에서와 같이 사용됩니다.

(BZ#2076567)

IdM은 Windows Server 2022를 사용한 AD 트러스트 구성을 지원

이번 개선된 기능을 통해 IdM(Identity Management) 도메인과 Windows Server 2022를 실행하는 도메인 컨트롤러를 사용하는 Active Directory 프레스타일 간 트러스트를 설정할 수 있습니다.

(BZ#2122716)

ipa-dnskeysyncdipa-ods-exporter 디버그 메시지는 기본적으로 /var/log/ECDHE에 더 이상 기록되지 않습니다.

이전에는 LDAP-to-OpenDNSSEC 동기화를 담당하는 서비스인 ipa-dnskeysyncdipa-ods-exporter, IdM(Identity Management) OpenDNSSEC 내보내기er 서비스인 ipa-ods-exporter는 기본적으로 모든 디버그 메시지를 /var/log/ ECDHE에 기록했습니다. 그 결과 로그 파일이 크게 증가했습니다. 이번 개선된 기능을 통해 /etc/ipa/dns.conf 파일에서 debug=True 를 설정하여 로그 수준을 구성할 수 있습니다. 자세한 내용은 IdM 구성 파일의 man 페이지 default.conf(5) 를 참조하십시오.

(BZ#2083218)

Samba 버전 4.16.1으로 업데이트

samba 패키지가 업스트림 버전 4.16.1으로 업그레이드되어 이전 버전에 대한 버그 수정 및 개선 사항을 제공합니다.

  • 기본적으로, d 프로세스는 필요에 따라 새로운 samba-dcerpcd 프로세스를 자동으로 시작하여 분산 컴퓨팅 환경 / 원격 프로시저 functions (DCERPC)를 제공합니다. Samba 4.16 이상에서는 항상 DCERPC를 사용하려면 samba-dcerpcd 가 필요합니다. /etc/ECDHE/smb.conf 파일의 [global] 섹션에서 rpc start on demand helpers 설정을 비활성화하는 경우 독립 실행형 모드에서 samba-dcerpcd 를 실행할 systemd 서비스 장치를 생성해야 합니다.
  • CTDB(Cluster Trivial Database) 복구 마스터 역할의 이름이 리더로 변경되었습니다. 그 결과 다음과 같은 ctdb 하위 명령 이름이 변경되었습니다.

    • 리더소개
    • setrecmasterrole to setleaderrole
  • DestinationRule 복구 잠금 구성의 이름이 클러스터 잠금 으로 변경되었습니다.
  • now now uses leader broadcasts and an associated timeout to determine if an selection is required.

서버 메시지 블록 버전 1(SMB1) 프로토콜은 Samba 4.11 이후 더 이상 사용되지 않으며 향후 릴리스에서 제거됩니다.

Samba를 시작하기 전에 데이터베이스 파일을 백업합니다. samba d,nmbd, 또는 winbind 서비스가 시작되면 Samba가 tdb 데이터베이스 파일을 자동으로 업데이트합니다. Red Hat은 tdb 데이터베이스 파일 다운그레이드를 지원하지 않습니다.

Samba를 업데이트한 후 testparm 유틸리티를 사용하여 /etc/ECDHE/smb.conf 파일을 확인합니다.

주요 변경 사항에 대한 자세한 내용은 업데이트하기 전에 업스트림 릴리스 노트를 참조하십시오.

(BZ#2077487)

SSSD는 이제 Windows Server 2022와 직접 통합을 지원

이 향상된 기능을 통해 SSSD를 사용하여 Windows Server 2022를 실행하는 도메인 컨트롤러를 사용하는 Active Directory 마운더와 RHEL 시스템을 직접 통합할 수 있습니다.

(BZ#2070793)

SSSD 다중 스레드 성능 개선

이전에는 Red Hat Directory Server 및 Identity Management와 같은 다중 스레드 애플리케이션에서의 SSSD 직렬화 병렬 요청입니다. 이번 업데이트에서는 nss 및ECDHE와 같은 모든 SSSD 클라이언트 라이브러리가 수정되어 요청을 직렬화하지 않으므로 여러 스레드의 요청을 병렬로 실행하여 성능을 향상시킬 수 있습니다. 직렬화의 이전 동작을 활성화하려면 환경 변수 SSS_LOCKFREENO 로 설정합니다.

(BZ#1978119)

Directory Server에서 Auto membership 플러그인 작업을 취소하는 기능을 지원합니다.

이전 버전에서는 Directory Server에 복잡한 구성(가장 큰 그룹, 복잡한 규칙 및 다른 플러그인과의 상호 작용)이 있는 경우 서버에서 Auto membership 플러그인의 CPU 사용량을 생성할 수 있었습니다. 이번 개선된 기능을 통해 자동 멤버십 플러그인 작업을 취소할 수 있습니다. 결과적으로 성능 문제가 더 이상 발생하지 않습니다.

(BZ#2052527)

Directory Server에서 ldapdelete를 사용할 때 재귀 삭제 작업 지원

이 향상된 기능으로 Directory Server는 이제 Tree Delete Control [1.2.840.113556.1.4.805] OpenLDAP 컨트롤을 지원합니다. 결과적으로 ldapdelete 유틸리티를 사용하여 상위 항목의 하위 항목을 반복적으로 삭제할 수 있습니다.

(BZ#2057063)

Directory Server 설치 중에 기본 복제 옵션을 설정할 수 있습니다.

이번 개선된 기능을 통해 .inf 파일을 사용하여 인스턴스 설치 중에 인증 자격 증명 및 변경 로그 트리밍과 같은 기본 복제 옵션을 구성할 수 있습니다.

(BZ#2057066)

Directory Server에서 루트가 아닌 사용자가 인스턴스 생성 지원

이전에는 루트가 아닌 사용자가 Directory Server 인스턴스를 만들 수 없었습니다. 이번 개선된 기능을 통해 루트가 아닌 사용자는 dscreate ds-root 하위 명령을 사용하여 dscreate,dsctl,dsconf 명령을 사용하여 Directory Server 인스턴스를 생성하고 관리하는 환경을 구성할 수 있습니다.

(BZ#1872451)

PKI 패키지의 이름이 idm-pki으로 변경

이제 IDM 패키지와 Red Hat Certificate System 항목을 더 잘 구분하기 위해 다음 pki 패키지의 이름이 idm-pki 으로 변경되었습니다.

  • idm-pki-tools
  • idm-pki-acme
  • IdM-pki-base
  • idm-pki-java
  • idm-pki-ca
  • idm-pki-kra
  • idm-pki-server
  • python3-idm-pki

(BZ#2139877)

4.16. 그래픽 인프라

Matrox GPU를 사용하여 Wayland가 활성화됨

이제 데스크탑 세션에서 Matrox GPU를 사용하여 Wayland 백엔드를 활성화합니다.

이전 릴리스에서는 성능 및 기타 제한으로 인해 Matrox GPU를 사용하여 Wayland가 비활성화되었습니다. 이러한 문제가 해결되었습니다.

데스크탑 세션을 Wayland에서 Xorg로 다시 전환할 수 있습니다. 자세한 내용은 GNOME 환경 개요를 참조하십시오.

(BZ#2097308)

12세대 Intel Core GPU 지원

이번 릴리스에서는 12thECDHE Intel Core CPU에 대한 여러 통합 GPU에 대한 지원이 추가되었습니다. 여기에는 다음 CPU 모델과 함께 제공되는 Intel UHD 그래픽 및 Intel Xe 통합 GPU가 포함됩니다.

  • Intel Core i9 12900KS를 통한 Intel Core i3 12100T
  • Intel Pentium Gold G7400 및 G7400T
  • Intel Celeron G6900 및 G6900T
  • Intel Core i9-12950HX를 통한 Intel Core i5-12450HX
  • Intel Core i3-1220P - Intel Core i7-1280P

(JIRA:RHELPLAN-135601)

새로운 AMD GPU 지원

이 릴리스에서는 여러 AMD Radeon RX 6000 시리즈 GPU 및 AMD Ryzen 6000 시리즈 CPU의 통합 그래픽에 대한 지원이 추가되었습니다.

다음의 AMD Radeon RX 6000 시리즈 GPU 모델이 지원됩니다.

  • AMD Radeon RX 6400
  • AMD Radeon RX 6500 XT
  • AMD Radeon RX 6300M
  • AMD Radeon RX 6500M

AMD Ryzen 6000 시리즈에는 다음과 같은 CPU 모델과 함께 제공되는 통합 GPU가 포함되어 있습니다.

  • AMD Ryzen 5 6600U
  • AMD Ryzen 5 6600H
  • AMD Ryzen 5 6600HS
  • AMD Ryzen 7 6800U
  • AMD Ryzen 7 6800H
  • AMD Ryzen 7 6800HS
  • AMD Ryzen 9 6900HS
  • AMD Ryzen 9 6900HX
  • AMD Ryzen 9 6980HS
  • AMD Ryzen 9 6980HX

(JIRA:RHELPLAN-135602)

4.17. 웹 콘솔

웹 콘솔의 업데이트 진행 페이지 자동 재시작 옵션 지원

이제 업데이트 진행 상황 페이지에 완료 후 Reboot 가 있습니다. 이렇게 하면 업데이트를 설치한 후 시스템이 자동으로 재부팅됩니다.

(BZ#2056786)

4.18. Red Hat Enterprise Linux System Roles

네트워크 RHEL 시스템 역할은 nmstate API를 사용하여 네트워크 구성을 지원합니다.

이번 업데이트를 통해 네트워크 RHEL 시스템 역할은 nmstate API를 통해 네트워크 구성을 지원합니다. 이제 연결 프로필을 생성하는 대신 필요한 네트워크 상태 구성을 네트워크 인터페이스에 직접 적용할 수 있습니다. 이 기능을 사용하면 네트워크의 부분 설정도 허용합니다. 따라서 다음과 같은 이점이 있습니다.

  • 네트워크 구성 복잡성 감소
  • 네트워크 상태 변경 사항을 적용하는 안정적인 방법
  • 전체 네트워크 구성을 추적할 필요가 없습니다.

(BZ#2072385)

사용자는 네트워크 RHEL 시스템 역할을 사용하여 IPoIB 기능과의 연결을 생성할 수 있습니다.

이제 네트워크 RHEL 시스템 역할의 infiniband 연결 유형에서 IPoIB(Internet Protocol over Infiniband) 기능을 지원합니다. 이 기능을 사용하려면 infinibandp_key 옵션에 값을 정의합니다. p_key 를 지정하는 경우 network_connections 변수의 interface_name 옵션을 설정되지 않은 상태로 유지해야 합니다. 이전 네트워크 RHEL 시스템 역할 구현에서 infiniband 연결 유형의 p_key 값과 interface_name 옵션을 올바르게 검증하지 못했습니다. 따라서 IPoIB 기능은 이전에 작동하지 않았습니다. 자세한 내용은 /usr/share/doc/rhel-system-roles/network/ 디렉터리의 README 파일을 참조하십시오.

(BZ#2086965)

HA Cluster RHEL System Role이 SBD 펜싱 및 Corosync 설정 설정 지원

HA 클러스터 시스템 역할은 다음과 같은 기능을 지원합니다.

SBD 펜싱
펜싱은 HA 클러스터 구성에서 중요한 부분입니다. SBD는 펜싱이 필요할 때 노드가 안정적으로 자체 종료될 수 있는 수단을 제공합니다. SBD 펜싱은 기존 펜싱 메커니즘을 사용할 수 없는 환경에서 특히 유용할 수 있습니다. 이제 HA 클러스터 시스템 역할을 사용하여 SBD 펜싱을 구성할 수 있습니다.
Corosync 설정
HA 클러스터 시스템 역할은 이제 전송, 압축, 암호화, 링크, totem 및 쿼럼과 같은 Corosync 설정 구성을 지원합니다. 기본 설정이 적합하지 않은 경우 이러한 설정은 클러스터 구성과 고객의 요구 및 환경과 일치하도록 설정해야 합니다.

(BZ#2065337,BZ#2070452,BZ#2079626,BZ#2098212,BZ#2120709,BZ#2120712)

이제 네트워크 RHEL 역할 라우팅 규칙에 대한 네트워크 설정을 구성

이전에는 패킷의 대상 주소 필드를 기반으로 패킷을 라우팅할 수 있었지만 소스 라우팅 및 기타 정책 라우팅 규칙을 정의할 수 없었습니다. 이번 개선된 기능을 통해 네트워크 RHEL 역할은 라우팅 규칙을 지원하므로 사용자가 패킷 전송 또는 경로 선택을 제어할 수 있습니다.

(BZ#2079622)

이전의 새로운:replaced 구성을 사용하면 방화벽 시스템 역할이 방화벽 설정을 기본값으로 재설정할 수 있습니다.

각 머신에 기존 방화벽 설정이 다른 다른 시스템 세트를 관리하는 시스템 관리자는 방화벽 역할의 이전: 대체 구성을 사용하여 모든 시스템에 동일한 방화벽 구성 설정이 있는지 확인할 수 있습니다. 이전: 교체된 구성은 기존 방화벽 설정을 모두 제거하고 일관된 설정으로 교체할 수 있습니다.

(BZ#2043010)

이전 설정을 덮어쓰는 postfix RHEL System Role의 새로운 옵션

일관되지 않은 postfix 구성이 있는 시스템 그룹을 관리하는 경우 구성이 모두 일관되게 유지되도록 할 수 있습니다. 이번 개선된 기능을 통해 postfix_conf 사전 내의 이전: 교체 옵션을 지정하여 기존 구성을 제거하고 clean postfix 설치 상단에 원하는 구성을 적용할 수 있습니다. 결과적으로 기존 postfix 구성을 제거하고 관리 중인 모든 시스템에서 일관성을 유지할 수 있습니다.

(BZ#2065383)

향상된 ECDHE.sql.server RHEL 시스템 역할

이제 다음 새 변수를ECDHE .sql.server RHEL 시스템 역할에 사용할 수 있습니다.

  • mssql_ha_ 접두사가 있는 변수는 고가용성 클러스터 구성을 제어합니다.
  • 관리 노드에서 mssql_tls_remote_src 변수에서 mssql_tls_certmssql_tls_private_key 값을 검색합니다. 기본값인 false 설정을 유지하면 역할이 제어 노드에서 이러한 파일을 검색합니다.
  • 방화벽 포트를 자동으로 관리하는 mssql_manage_firewall 변수입니다. 이 변수가 false 로 설정된 경우 방화벽 포트를 수동으로 활성화해야 합니다.
  • mssql_pre_input_sql_filemssql_post_input_sql_file 변수를 사용하여 역할 실행 전 또는 이후에 SQL 스크립트를 실행할지 여부를 제어합니다. 이러한 새 변수는 SQL 스크립트 실행 시간에 영향을 미치지 않는 이전 mssql_input_sql_file 변수를 대체합니다.

(BZ#2066337)

로깅 RHEL 시스템 역할에서는 파일 입력에서 startmsg.regexendmsg.regex 옵션을 지원합니다.

이번 개선된 기능을 통해 정규식을 사용하여 파일에서 들어오는 로그 메시지를 필터링할 수 있습니다. 옵션 startmsg_regexendmsg_regex 가 이제 파일의 입력에 포함됩니다. startmsg_regex 는 메시지의 시작 부분과 일치하는 정규식을 나타내며 endmsg_regex 는 메시지의 마지막 부분과 일치하는 정규식을 나타냅니다. 결과적으로 날짜 시간, 우선 순위 및 심각도와 같은 속성을 기반으로 메시지를 필터링할 수 있습니다.

(BZ#2112145)

sshd RHEL System Role은 드롭인 디렉터리에 대한 include 지시문 확인

RHEL 9의 sshd RHEL System Role은 드롭인 디렉터리에서 파일만 관리하지만 이전에 기본 sshd_config 파일의 디렉터리가 포함되어 있는지 확인하지 않았습니다. 이번 업데이트를 통해 이 역할은 sshd_config 에 드롭인 디렉터리에 대한 include 지시문이 포함되어 있는지 확인합니다. 결과적으로 이 역할은 제공된 구성을 보다 안정적으로 적용합니다.

(BZ#2052081)

sshd RHEL 시스템 역할은 /etc/ssh/sshd_config를 통해 관리할 수 있습니다.

RHEL 9 관리 노드에 적용되는 sshd RHEL 시스템 역할은 SSHD 구성을 드롭인 디렉터리(기본값/etc/ssh/sshd_config.d/00-ansible_system_role.conf )에 배치합니다. 이전 버전에서는 /etc/ssh/sshd_config 파일을 변경하면 00-ansible_system_role.conf 의 기본값을 덮어씁니다. 이번 업데이트를 통해 00-ansible_system_role.conf 에서 시스템 기본값을 유지하면서 /etc/ssh/sshd_config 대신 00-ansible_system_role.conf 를 사용하여 SSHD를 관리할 수 있습니다.

(BZ#2052086)

metrics 역할은 관리 구성 파일에서 "Ansible_managed" 댓글을 일관되게 사용합니다.

이번 업데이트를 통해 metrics 역할은 Ansible 표준 ansible_managed 변수를 사용하여 구성 파일에 "Ansible managed" 주석을 삽입합니다. 주석은 metrics 역할이 파일을 덮어쓸 수 있기 때문에 구성 파일을 직접 편집하지 않아야 함을 나타냅니다. 결과적으로 구성 파일에 Ansible에서 구성 파일을 관리한다는 선언이 포함됩니다.

(BZ#2065392)

스토리지 RHEL 시스템 역할에서 풀 멤버 관리 지원

스토리지 RHEL 시스템 역할은 풀을 먼저 제거하지 않고 기존 LVM 풀에서 디스크를 추가하거나 제거할 수 있습니다. 풀 용량을 늘리기 위해 스토리지 RHEL 시스템 역할은 풀에 새 디스크를 추가하고 다른 용도로 풀에 현재 할당된 디스크를 해제할 수 있습니다.

(BZ#2072742)

스토리지 RHEL 시스템 역할에서 씬 프로비저닝된 볼륨에 대한 지원을 사용할 수 있습니다.

스토리지 RHEL 시스템 역할을 통해 씬 프로비저닝된 LVM 논리 볼륨(LV)을 생성하고 관리할 수 있습니다. 씬 프로비저닝된 LV는 작성 시 할당되므로 씬 프로비저닝된 LV에 대해 제공된 물리 스토리지를 생성할 때 유연성이 향상될 수 있습니다. LVM 씬 프로비저닝을 사용하면 thin LV 및 모든 스냅샷에 공통된 데이터 블록이 공유되므로 스냅샷을 보다 효율적으로 생성할 수 있습니다.

(BZ#2072745)

스토리지 RHEL 시스템 역할에서 캐시된 볼륨에 대한 지원 개선

스토리지 RHEL 시스템 역할을 통해 기존 LVM 논리 볼륨에 캐시를 연결할 수 있습니다. LVM 캐시를 사용하면 더 작고 빠른 장치에 LV 데이터의 하위 집합을 임시로 저장(예: SSD)하여 느린 논리 볼륨의 성능을 개선할 수 있습니다. 이렇게 하면 이전에 캐시되지 않은 기존 볼륨에 캐시를 추가(연결)할 수 있으므로 이전에 캐시된 볼륨 생성에 대한 지원이 추가되었습니다.

(BZ#2072746)

로깅 RHEL 시스템 역할에서 템플릿,심각도기능 옵션 지원

로깅 RHEL 시스템 역할에는 이제 새로운 유용한 심각도 및 기능 옵션이 포함되어 새로운 파일 입력 옵션뿐만 아니라 파일에 새로운 템플릿 옵션을 제공하고 출력을 전달합니다. template 옵션을 사용하여 기존 매개 변수를 사용하여 기존 시간 형식을 지정합니다. 매개 변수를 사용하여 syslog 프로토콜 23 형식, 최신 매개 변수를 사용하여 최신 스타일 형식을 사용합니다. 결과적으로 logging 역할을 사용하여 심각도 및 기능에 따라 필터링하고 템플릿별로 출력 형식을 지정할 수 있습니다.

(BZ#2075119)

이제 RHEL 시스템 역할을 팩트 수집이 비활성화된 플레이북에서도 사용할 수 있습니다.

성능 또는 기타 이유로 사용자 환경에서 Ansible 팩트 수집을 비활성화할 수 있습니다. 이전에는 이러한 구성에서 RHEL 시스템 역할을 사용할 수 없었습니다. 이번 업데이트를 통해 시스템에서 구성에서 ANSIBLE_GATHERING=explicit 매개변수를 감지하고 플레이북에서 gather_facts: false 매개변수를 감지하고, 팩트 캐시에서 사용할 수 없는 경우 setup: 모듈을 사용하여 지정된 역할에 필요한 팩트만 수집합니다.

참고

성능으로 인해 Ansible 팩트 수집을 비활성화한 경우 대신 Ansible 팩트 캐싱을 활성화할 수 있으므로 소스에서 해당 정보를 검색하는 데 성능이 저하되지 않습니다.

(BZ#2078989)

이제 스토리지 역할이 기본적으로 세부 정보 표시가 감소합니다.

이제 스토리지 역할 출력이 기본적으로 덜 상세합니다. 이번 업데이트를 통해 사용자는 스토리지 역할 출력의 상세도를 높여 Ansible 상세 수준 1 이상을 사용하는 경우에만 디버깅 출력을 생성할 수 있습니다.

(BZ#2079627)

방화벽 RHEL 시스템 역할에는 masquerade 또는 icmp_block_inversion을 구성할 때 state 매개변수가 필요하지 않습니다.

사용자 지정 방화벽 영역을 구성할 때 변수 masqueradeicmp_block_inversion 은 부울 설정입니다. true 값은 state: present 를 나타내며 false 값은 state: absent 를 의미합니다. 따라서 masquerade 또는 icmp_block_inversion 을 구성할 때 state 매개변수가 필요하지 않습니다.

(BZ#2093423)

방화벽 RHEL 시스템 역할에 absentpresent 상태를 사용하여 서비스를 추가, 업데이트 또는 제거할 수 있습니다.

이번 개선된 기능을 통해 현재 상태를 사용하여 포트, 모듈, 프로토콜, 서비스 및 대상 주소를 추가하거나 absent 상태를 사용하여 제거할 수 있습니다. 방화벽 RHEL 시스템 역할에 absentpresent 상태를 사용하려면 permanent 옵션을 true 로 설정합니다. permanent 옵션을 true 로 설정하면 상태 설정이 변경될 때까지 적용되며 역할 재로드의 영향을 받지 않습니다.

(BZ#2100292)

방화벽 시스템 역할은 PCI 장치 ID를 사용하여 영역에 인터페이스를 추가하거나 제거할 수 있습니다.

PCI 장치 ID를 사용하여 방화벽 시스템 역할을 영역에서 또는 영역에 네트워크 인터페이스를 할당하거나 제거할 수 있습니다. 이전에는 인터페이스 이름 대신 PCI 장치 ID만 알고 있는 경우 사용자는 방화벽 시스템 역할을 사용하기 위해 해당 인터페이스 이름을 먼저 식별해야 했습니다. 이번 업데이트를 통해 방화벽 시스템 역할에서 PCI 장치 ID를 사용하여 영역의 네트워크 인터페이스를 관리할 수 있습니다.

(BZ#2100942)

방화벽 RHEL 시스템 역할은 Ansible 팩트를 제공할 수 있습니다.

이번 개선된 기능을 통해 인수 없이 플레이북에 firewall: 변수를 포함하여 모든 시스템에서 RHEL System Role의 Ansible 팩트를 수집할 수 있습니다. Ansible 팩트의 자세한 버전을 수집하려면 detailed: true 인수를 사용합니다. 예를 들면 다음과 같습니다.

vars:
  firewall:
    detailed: true

(BZ#2115154)

selinux RHEL 시스템 역할에 seuserselevel 설정 추가

경우에 따라 SELinux 컨텍스트 파일 시스템 매핑을 설정할 때 seuserselevel 매개변수를 설정해야 하는 경우가 있습니다. 이번 업데이트를 통해 selinux_fcontext 에서 seuserselevel 선택적 인수를 사용하여 SELinux 컨텍스트 파일 시스템 매핑에서 SELinux 사용자 및 수준을 지정할 수 있습니다.

(BZ#2115157)

사용자 정의 수신 포트 설정의 새로운 cockpit System Role 변수

cockpit System Role에서는 기본 9090 포트 이외의 사용자 지정 청취 포트를 설정할 수 있는 cockpit_port 변수가 도입되었습니다. 사용자 지정 청취 포트를 설정하려면 웹 콘솔에서 해당 포트에서 수신 대기할 수 있도록 SELinux 정책을 조정해야 합니다.

(BZ#2115152)

metrics 역할은 postfix 성능 데이터를 내보낼 수 있습니다.

이제 기록 및 세부 성능 분석을 위해 메트릭 역할에서 새 metrics _from_ ECDHE 부울 변수를 사용할 수 있습니다. 이번 개선된 기능을 통해 변수를 설정하면 시스템에서 pmdaECDHE 지표 에이전트가 활성화되어 postfix 에 대한 통계를 사용할 수 있습니다.

(BZ#2051737)

postfix 역할은 관리 구성 파일에서 "Ansible_managed" 댓글을 일관되게 사용합니다.

postfix 역할은 /etc/ECDHE/main.cf 구성 파일을 생성합니다. 이번 업데이트를 통해 postfix 역할은 Ansible 표준 ansible_managed 변수를 사용하여 구성 파일에 "Ansible managed" 주석을 삽입합니다. 주석은 postfix 역할이 파일을 덮어쓸 수 있기 때문에 구성 파일을 직접 편집하지 않아야 함을 나타냅니다. 결과적으로 구성 파일에 Ansible에서 구성 파일을 관리한다는 선언이 포함됩니다.

(BZ#2065393)

nbde-client RHEL 시스템 역할에서 고정 IP 주소 지원

이전 버전의 RHEL에서 고정 IP 주소로 시스템을 다시 시작하고 nbde_client RHEL 시스템 역할로 구성된 시스템을 다시 시작하면 시스템의 IP 주소가 변경되었습니다. 이번 업데이트를 통해 고정 IP 주소가 있는 시스템은 nbde_client 역할에서 지원되며 재부팅 후에는 해당 IP 주소가 변경되지 않습니다.

기본적으로 nbde_client 역할은 부팅 시 DHCP를 사용하고, 시스템을 부팅한 후 구성된 고정 IP로 전환합니다.

(BZ#2070462)

4.19. 가상화

RHEL 웹 콘솔은 OS VM 워크플로 다운로드 의 옵션으로 RHEL 기능을 제공합니다.

이번 개선된 기능을 통해 RHEL 웹 콘솔에서 기본 OS 워크플로를 사용하여 RHEL 가상 머신(VM) 설치를 지원합니다. 결과적으로 웹 콘솔에서 RHEL OS를 VM으로 직접 다운로드하여 설치할 수 있습니다.

(JIRA:RHELPLAN-121982)

KVM 아키텍처 규정 준수 개선

이번 업데이트를 통해 KVM 하이퍼바이저의 아키텍처 컴플라이언스 기능이 향상되어 보다 엄격하게 향상되었습니다. 결과적으로 하이퍼바이저는 Linux 기반 및 기타 운영 체제의 향후 변경 사항을 해결할 준비가 되었습니다.

(JIRA:RHELPLAN-117713)

RHEL 9에서 AP -check 사용 가능

mdevctl 툴에서 새로운 ap-check 지원 유틸리티를 제공합니다. mdevctl 을 사용하여 가상 머신에 패스쓰루(pass-through) 사용을 허용하는 암호화 어댑터와 matrixvfio-ap 장치를 영구적으로 구성할 수 있습니다. mdevctl 을 사용하면 모든 IPL 후에 이러한 어댑터, 도메인 및 장치를 재구성할 필요가 없습니다. 또한 mdevctl 에서는 배포자가 재구성할 수 있는 다른 방법을 제공하는 것을 방지합니다.

vfio-ap 장치에 대해 mdevctl 명령을 호출할 때 새로운 ap-check 지원 유틸리티는 mdevctl 명령의 일부로 호출되어 vfio-ap 장치 구성에 대한 추가 유효성 검사를 수행합니다.

또한 chzdev 툴에서는 이제 vfio-ap 장치에서 사용할 수 있는 AP 리소스를 결정하는 시스템 전체 Adjunct Processor (AP) mask 설정을 관리할 수 있습니다. chzdev 를 사용하면 관련 udev 규칙을 생성하여 이러한 설정을 유지할 수 있습니다. lszdev 를 사용하여 이제 시스템 전체 AP 마스크 설정을 쿼리할 수도 있습니다.

(BZ#1870699)

open-vm-tools 가 12.0.5로 다시 기반

open-vm-tools 패키지가 버전 12.0.5로 업그레이드되어 여러 버그 수정 및 새 기능이 도입되었습니다. 특히 Salt Minion 툴은 게스트 OS 변수를 통해 관리할 수 있도록 지원이 추가되었습니다.

(BZ#2061193)

IBM Z에서 선택한 VM은 이제 896바이트보다 긴 커널 명령 라인을 사용하여 부팅할 수 있습니다.

이전 버전에서는 VM의 커널 명령줄이 896바이트를 초과하면 RHEL 9 IBM Z 호스트에서 VM(가상 머신)을 부팅하지 못했습니다. 이번 업데이트를 통해 QEMU 에뮬레이터는 896바이트보다 긴 커널 명령 행을 처리할 수 있습니다. 결과적으로 VM 커널이 지원하는 경우 매우 긴 커널 명령줄을 사용하여 VM에 QEMU 직접 커널 부팅을 사용할 수 있습니다. 특히 896바이트보다 긴 명령행을 사용하려면 VM에서 Linux 커널 버전 5.16-rc1 이상을 사용해야 합니다.

(BZ#2044218)

IBM Z의 보안 실행 기능에서 원격 인증 지원

IBM Z 아키텍처의 보안 실행 기능은 이제 원격 검증 기능을 지원합니다. pvattest 유틸리티는 원격 attestation 요청을 생성하여 Secure Execution가 활성화된 게스트의 무결성을 확인할 수 있습니다.

또한 GISA를 사용하여 보안 실행을 통해 게스트에게 인터럽트를 삽입할 수 있습니다.

(BZ#2001936, BZ#2044300)

여러 스레드를 사용하여 VM 메모리 사전 할당

다음과 같이 도메인 XML 구성에서 VM(가상 머신) 메모리 할당에 대해 여러 CPU 스레드를 정의할 수 있습니다.

<memoryBacking>
  <allocation threads='8'/>
</memoryBacking>

이렇게 하면 VM을 시작할 때 메모리 페이지를 할당하는 데 둘 이상의 스레드가 사용됩니다. 결과적으로 여러 할당 스레드가 구성된 VM이 훨씬 빨라집니다. 특히 VM에 대량의 RAM이 할당되어 hugepages에서 지원하는 경우 특히 더 빠르게 시작됩니다.

(BZ#2064194)

RHEL 9 게스트에서 SEV-SNP 지원

RHEL 9를 게스트 운영 체제로 사용하는 VM(가상 머신)에서 이제 SNP(Secure Nested Paging) 기능과 함께 AMD SEV(Secure Secure Encrypted Virtualization)를 사용할 수 있습니다. SNP는 메모리 무결성 보호를 개선하여 SEV를 개선하여 데이터 재생 또는 메모리 재 매핑과 같은 하이퍼 바이저 기반 공격을 방지하는 데 도움이 됩니다. SEV-SNP가 RHEL 9 VM에서 작동하려면 VM을 실행하는 호스트도 SEV-SNP를 지원해야 합니다.

(BZ#2169738)

4.20. 클라우드 환경의 RHEL

cloud-init에 대한 새 SSH 모듈

이번 업데이트를 통해 인스턴스 생성 중에 호스트 키를 자동으로 생성하는 cloud-init 유틸리티에 SSH 모듈이 추가되었습니다.

이 변경으로 기본 cloud-init 구성이 업데이트되었습니다. 따라서 로컬 수정이 있는 경우 /etc/cloud/cloud.cfg에 "ssh_genkeytypes: ['rsa', 'ecdsa', 'ed25519'] 행이 포함되어 있는지 확인합니다.

그렇지 않으면 cloud-initsshd 서비스를 시작하지 못하는 이미지를 생성합니다. 이 경우 다음을 수행하여 문제를 해결합니다.

  1. /etc/cloud/cloud.cfg 파일에 다음 행이 포함되어 있는지 확인합니다.

    ssh_genkeytypes:  ['rsa', 'ecdsa', 'ed25519']
  2. /etc/ssh/ssh_host_* 파일이 인스턴스에 있는지 확인합니다.
  3. /etc/ssh/ssh_host_* 파일이 없는 경우 다음 명령을 사용하여 호스트 키를 생성합니다.

    cloud-init single --name cc_ssh
  4. sshd 서비스를 다시 시작합니다.

    systemctl restart sshd

(BZ#2115791)

4.21. 컨테이너

컨테이너 도구 패키지가 업데이트되었습니다.

Podman, Buildah, Skopeo, crun 및 runc 툴이 포함된 컨테이너 도구 패키지를 사용할 수 있습니다. 이번 업데이트에서는 이전 버전에 대한 버그 수정 및 개선 사항 목록을 제공합니다.

주요 변경 사항은 다음과 같습니다.

  • podman pod create 명령에서는 이제 CPU 및 메모리 제한 설정을 지원합니다. Pod의 모든 컨테이너에 대한 제한을 설정할 수 있지만 Pod 내의 개별 컨테이너에는 자체 제한이 있을 수 있습니다.
  • podman pod clone 명령은 기존 Pod의 사본을 생성합니다.
  • podman play kube 명령에서는 BlockDevice 및ECDHE Device 볼륨을 사용하여 보안 컨텍스트 설정을 지원합니다.
  • podman Play kube로 생성한 Pod는 podman-kube @<service>.service 를 사용하여 systemd 장치 파일로 관리할 수 있습니다(예: systemctl --user start podman-play-kube@$(systemd-escape my.yaml).service).
  • podman pushpodman push manifest 명령에서 sigstore 서명을 지원합니다.
  • 이제 podman network --opt isolate 명령을 사용하여 Podman 네트워크를 격리할 수 있습니다.

Podman이 버전 4.2로 업그레이드되었습니다. 주요 변경 사항에 대한 자세한 내용은 업스트림 릴리스 노트 를 참조하십시오.

(JIRA:RHELPLAN-118462)

Podman을 사용하여 RHEL에서 GitLab Runner를 사용할 수 있습니다.

GitLab Runner 15.1부터 GitLab Runner Docker Executor에서 Podman을 컨테이너 런타임으로 사용할 수 있습니다. 자세한 내용은 GitLab의 릴리스 노트 를 참조하십시오.

(JIRA:RHELPLAN-101140)

podman에서 --health-on-failure 옵션 지원

podman runpodman create 명령은 이제 --health-on-failure 옵션을 지원하여 컨테이너 상태가 비정상이 될 때 수행할 작업을 결정합니다.

--health-on-failure 옵션은 다음 4가지 작업을 지원합니다.

  • None: 아무 작업도 수행하지 않습니다.이 작업은 기본 동작입니다.
  • kill: 컨테이너를 종료합니다.
  • restart: 컨테이너를 재시작합니다.
  • stop: 컨테이너를 중지합니다.
참고

재시작 작업과 -- restart 옵션을 결합하지 마십시오. systemd 장치 내에서 실행할 때 systemd의 재시작 정책을 사용하는 대신 kill 또는 stop 작업을 사용하는 것이 좋습니다.

(BZ#2097708)

Netavark 네트워크 스택 사용 가능

Netavark 스택은 컨테이너의 네트워크 구성 툴입니다. RHEL 9에서는 Netavark 스택이 완전히 지원되고 활성화됩니다.

이 네트워크 스택에는 다음과 같은 기능이 있습니다.

  • JSON 구성 파일을 사용하는 컨테이너 네트워크 구성
  • 브리지 및 MACVLAN 인터페이스를 포함한 네트워크 인터페이스 생성, 관리 및 제거
  • NAT(네트워크 주소 변환) 및 포트 매핑 규칙과 같은 방화벽 설정 구성
  • IPv4 및 IPv6
  • 여러 네트워크에서 컨테이너의 기능 개선
  • aardvark-dns 프로젝트를사용한 컨테이너 DNS 확인
참고

동일한 버전의 Netavark 스택과 aardvark-dns 권한 있는 DNS 서버를 사용해야 합니다.

(JIRA:RHELPLAN-132023)

새 패키지: CRB 저장소의 catatonit

이제 CRB(CodeReady Linux Builder) 리포지토리에서 새로운 catatonit 패키지를 사용할 수 있습니다. catatonit 패키지는 컨테이너의 최소 init 프로그램으로 사용되며 애플리케이션 컨테이너 이미지에 포함할 수 있습니다. CodeReady Linux Builder 리포지토리에 포함된 패키지는 지원되지 않습니다.

RHEL 9.0부터 podman-catonit 패키지는 AppStream 리포지토리에서 사용할 수 있습니다. podman-catatonit 패키지는 Podman 툴에서만 사용됩니다.

(BZ#2074193)

5장. 외부 커널 매개변수에 대한 중요한 변경 사항

이 장에서는 시스템 관리자에게 Red Hat Enterprise Linux 9.1와 함께 배포된 커널의 중요한 변경 사항에 대한 요약을 제공합니다. 이러한 변경에는 예를 들어 추가 또는 업데이트된 proc 항목, sysctl, sysfs 기본값, 부팅 매개변수, 커널 구성 옵션 또는 눈에 띄는 동작 변경 사항이 포함될 수 있습니다.

새 커널 매개변수

allow_mismatched_32bit_el0 = [ARM64]

이 매개변수를 사용하면 EL0 수준에서 일치하지 않는 32비트 지원이 있는 시스템을 32비트 애플리케이션을 실행할 수 있습니다. 32비트 EL0을 지원하는 CPU 세트는 /sys/devices/system/cpu/aarch32_el0 파일로 표시됩니다. 또한 핫 플러그 해제 작업을 제한할 수 있습니다.

자세한 내용은 Documentation/arm64/asymmetric-32bit.rst 를 참조하십시오.

arm64.nomte = [ARM64]
이 매개변수를 사용하면 MTE(메모리 태그 확장) 지원을 무조건 비활성화할 수 있습니다.
i8042.probe_defer = [HW]
이 매개변수를 사용하면 i8042 프로브 오류에서 지연된 프로브를 허용할 수 있습니다.
idxd.tc_override = [HW]

< bool&gt; 형식에서 이 매개변수를 사용하면 장치에 대한 기본 트래픽 클래스 구성을 덮어쓸 수 있습니다.

기본값은 false (0)로 설정됩니다.

kvm.eager_page_split = [KVM,X86]

이 매개변수를 사용하면 KVM에서 모든 대규모 페이지를 로깅하는 동안 사전에 분할할지 여부를 제어할 수 있습니다. 페이지 분할은 대규모 페이지를 지연시키는 데 필요한 쓰기 보호 오류 및 MMU(Memory Management Unit) 잠금 경합을 제거하여 vCPU 실행에 대한 중단을 줄입니다.

쓰기를 거의 수행하지 않거나 작은 VM 메모리 영역에만 쓰는 VM 워크로드는 페이지 분할을 비활성화하여 대규모 페이지를 계속 읽기에 사용할 수 있도록 하는 이점을 누릴 수 있습니다.

페이지 분할의 동작은 KVM_DIRTY_LOG_INITIALLY_SET 옵션이 활성화되었는지 여부에 따라 달라집니다.

  • 비활성화된 경우 memslot의 모든 대규모 페이지는 해당 memslot 에서 더티 로깅이 활성화될 때 신속하게 분할됩니다.
  • 활성화된 경우 KVM_CLEAR_DIRTY ioctl() 시스템 호출 중에만 페이지 분할이 수행되고 페이지 정리가 제거됩니다.

    현재 페이지 분할은 2차원 페이징(TDP) MMU에 매핑된 대규모 페이지 분할만 지원합니다.

    기본값은 Y (에서)로 설정됩니다.

kvm.nx_huge_pages_recovery_period_ms = [KVM]

이 매개변수를 사용하면 KVM zaps 4 KiB 페이지를 Huge Page로 돌아가는 기간을 제어할 수 있습니다.

  • 값이 0이 아닌 N 이면 KVM은 N 밀리초마다 페이지의 일부를 조정합니다.
  • 값이 0 인 경우 KVM은 비율을 기준으로 기간을 선택하므로 페이지가 평균 1시간 후에 zapped됩니다.

    기본값은 0 으로 설정됩니다.

l1d_flush = [X86,INTEL]

이 매개변수를 사용하면 L1D 기반 스누핑 취약점의 완화 조치를 제어할 수 있습니다.

특정 CPU는 CPU 내부 버퍼에 대한 악용에 취약하며 특정 조건에서 공개 가젯으로 정보를 전달할 수 있습니다. 취약한 프로세서에서 사양으로 전달된 데이터는 캐시 측 채널 공격에서 사용하여 공격자가 직접 액세스할 수 없는 데이터에 액세스할 수 있습니다.

사용 가능한 옵션은 on 이므로 완화를 위한 인터페이스를 활성화합니다.

mmio_stale_data = [X86,INTEL]

이 매개변수를 사용하여 Processor Memory-mapped I/O (MMIO)usrle Data 취약점의 완화 조치를 제어할 수 있습니다.

프로세서 MMIOusrle Data는 MMIO 작업 후에 데이터를 노출할 수 있는 취약점의 클래스입니다. 노출된 데이터는 메타데이터 서버(MDS) 및 TAM(Transactional Asynchronous Abort)의 영향을 받는 것과 동일한 CPU 버퍼에서 시작되거나 종료될 수 있습니다. 따라서 MDS 및 TAA와 유사하게 완화 조치는 영향을 받는 CPU 버퍼를 지우는 것입니다.

사용 가능한 옵션은 다음과 같습니다.

  • full: 취약한 CPU에서 완화 기능을 활성화
  • full,nosmt: 완화 기능을 활성화하고 취약한 CPU에서 SMT를 비활성화합니다.
  • off: 무조건 완화를 비활성화합니다.

    MDS 또는 TAA 영향을 받는 시스템에서 mmio_stale_data=off 는 동일한 메커니즘으로 이러한 취약점이 완화되므로 활성 MDS 또는 TAA 완화 방법으로 방지할 수 있습니다. 따라서 이 완화 기능을 비활성화하려면 mds=offtsx_async_abort=off 를 지정해야 합니다.

    이 옵션을 지정하지 않으면 mmio_stale_data=full 과 동일합니다.

    자세한 내용은 Documentation/admin-guide/hw-vuln/processor_mmio_stale_data.rst 를 참조하십시오.

random.trust_bootloader={on,off} = [KNL]
이 매개변수를 사용하면 부트 로더가 전달하는 줄기 사용을 활성화하거나 비활성화하여 커널의 CRNG를 완전히 강화할 수 있습니다. 기본 동작은 CONFIG_RANDOM_TRUST_BOOTLOADER 옵션에 의해 제어됩니다.
rcupdate.rcu_task_collapse_lim = [KNL]
이 매개변수를 사용하면 RECDHE Tasks 플레이버가 단일 콜백 큐를 사용하여 축소할 수 있는 유예 기간에 존재하는 최대 콜백 수를 설정할 수 있습니다. 이 전환은 rcupdate.rcu_task_enqueue_lim 옵션이 기본값인 -1 값으로 설정된 경우에만 발생합니다.
rcupdate.rcu_task_contend_lim = [KNL]
이 매개변수를 사용하면 RECDHE Tasks 플레이버가 CPU당 per-CPU 콜백 대기열로 전환되는 데 필요한 jiffy당 callback-queuing-time lock-contention 이벤트의 최소 수를 설정할 수 있습니다. 이 전환은 rcupdate.rcu_task_enqueue_lim 옵션이 기본값인 -1 값으로 설정된 경우에만 발생합니다.
rcupdate.rcu_task_enqueue_lim = [KNL]

이 매개변수를 사용하면 RECDHE 플레이버의 RECDHE Tasks 제품군에 사용할 콜백 대기열 수를 설정할 수 있습니다. 콜백 대기열의 수를 자동으로 조정하고 기본값 -1 을 사용하여 동적으로 조정할 수 있습니다.

이 매개변수는 테스트에 사용하기 위한 것입니다.

retbleed = [X86]

이 매개변수를 사용하면 반환 지침(RETBleed) 취약점을 사용하여 Arbitrary Speculative Code Execution의 완화 기능을 제어할 수 있습니다. 사용 가능한 옵션은 다음과 같습니다.

  • Off: no mitigation
  • auto: 완화 기능을 자동으로 선택합니다.
  • auto,nosmt: 전체 완화 (STIBP없이 1 이상 만)에 필요한 경우 완화 기능을 자동으로 선택합니다.
  • ibpb: 기본 블록 경계에 대한 짧은 추측 창도 완화합니다. 안전성, 가장 높은 성능 영향
  • unret: 강제로 교육되지 않은 반환 thunks를 활성화하며 AMD f15h-f17h 기반 시스템에서만 유효합니다.
  • unret,nosmt:ret 옵션과 마찬가지로 STIBP를 사용할 수 없을 때 SMT를 비활성화합니다.

    auto 옵션을 선택하면 런타임에 CPU에 따라 완화 방법이 선택됩니다.

    이 옵션을 지정하지 않으면 retbleed=auto 와 동일합니다.

sev=option[,option…​] = [X86-64]
자세한 내용은 Documentation/x86/x86_64/boot-options.rst 를 참조하십시오.

업데이트된 커널 매개변수

acpi_sleep = [HW,ACPI]

형식: { s3_bios, s3_mode, s3_beep, s4_hwsig, s4_nohwsig, old_ordering, nonvs, sci_force_enable, nobl }

  • s3_bioss3_mode 에 대한 자세한 내용은 Documentation/power/video.rst 를 참조하십시오.
  • s3_beep 은 디버깅을 위한 것입니다. 커널의 실제 모드 진입점이 호출되는 즉시 PC의 발표자입니다.
  • s4_hwsig 를 사용하면 커널이 하이버네이션에서 재개하는 동안 ACPI 하드웨어 서명을 확인하고 변경된 경우 정상적으로 재시작을 거부합니다. 기본 동작은 s4_hwsig 옵션을 사용하지 않는 한 재개를 허용하고 서명이 변경될 때 경고하는 것입니다.
  • s4_nohwsig 는 ACPI 하드웨어 서명을 사용하거나 재개하는 동안 경고하지 않습니다. old_ordering 은 장치를 저전력 상태로 두는 것과 관련하여 _PTS 제어 방법의 ACPI 1.0 순서가 적용됩니다. _PTS 의 ACPI 2.0 순서는 기본적으로 사용됩니다.
  • 비v 는 일시 중단, 하이버링 및 재개 중에 커널이 ACPI NVS 메모리를 저장 및 복원하는 것을 방지합니다.
  • sci_force_enable 을 사용하면 커널이 S1/S3에서 resume로 SCI_EN 을 직접 설정합니다. 이러한 동작은 ACPI 사양에 적합하지만 일부 손상된 시스템은 이 사양 없이 작동하지 않습니다.
  • nobl 는 시스템 일시 중단 및 재개와 관련하여 일부 방식에서 잘못 작동하는 것으로 알려진 시스템의 내부 거부 목록이 무시됩니다. 이 옵션을 사용하는 것이 좋습니다.

    자세한 내용은 문서/전원/비디오.rst 를 참조하십시오.

crashkernel=size[KMG],high = [KNL, X86-64, ARM64]

이 매개변수를 사용하면 다음과 같이 top에서 물리적 메모리 리전을 할당할 수 있습니다.

  • 시스템에 4GB 이상의 RAM이 설치되어 있으면 물리적 메모리 영역이 4GB를 초과할 수 있습니다.
  • 시스템에 4GB 미만의 RAM이 설치되어 있으면 사용 가능한 경우 물리적 메모리 영역이 4GB 미만으로 할당됩니다.

    crashkernel=X 매개변수가 지정된 경우 이 매개변수는 무시됩니다.

crashkernel=size[KMG],low = [KNL, X86-64]

crashkernel=X 를 전달하면 커널이 4GB 이상의 물리적 메모리 영역을 할당할 수 있습니다. 이로 인해 약간의 낮은 메모리가 필요한 시스템에서 두 번째 커널이 충돌합니다(예: swiotlb 에는 최소 64M+32K 낮은 메모리 필요) 및 32비트 장치의ECDHE 버퍼가 소진되지 않도록 하는 추가 메모리가 필요합니다. 커널은 최소 256M을 4GB 미만으로 자동으로 할당하려고 합니다. 이 매개변수를 사용하면 두 번째 커널에 대해 Low range를 4GB 미만으로 지정할 수 있습니다.

  • 0: 낮은 할당을 비활성화합니다. crashkernel=X,high 가 사용되지 않거나 예약된 메모리가 4GB 미만인 경우 무시됩니다.
crashkernel=size[KMG],low = [KNL, ARM64]
이 매개변수를 사용하면 크래시 덤프 커널의ECDHE 영역에 낮은 범위를 지정할 수 있습니다. crashkernel=X,high 가 사용되지 않거나 예약된 메모리가ECDHE 영역에 있는 경우 무시됩니다.
kvm.nx_huge_pages_recovery_ratio = [KVM]

이 매개변수를 사용하면 주기적으로 대규모 페이지로 다시 zapped 4 KiB 페이지 수를 제어할 수 있습니다.

  • 0 복구 비활성화
  • N KVM은 기간마다 4KiB 페이지의 1/N 입니다.

    기본값은 60 입니다.

kvm-arm.mode = [KVM,ARM]

이 매개변수를 사용하여 작업 KVM 모드 중 하나를 선택할 수 있습니다.

  • 없음: KVM을 강제로 비활성화합니다.
  • nvhe: 보호된 게스트를 지원하지 않는 표준 nVHE 기반 모드
  • protected:NVHE- 상태가 호스트에서 비공개로 유지되는 게스트를 지원하는 기반 모드입니다. EL2 수준에서 커널이 실행 중인 경우에는 유효하지 않습니다.

    기본값은 하드웨어 지원을 기반으로 VHE/nVHE 로 설정됩니다.

mitigations = [X86,PPC,S390,ARM64]

이 매개변수를 사용하면 CPU 취약점에 대한 선택적 완화 기능을 제어할 수 있습니다. 이는 각각 기존 아키텍처별 옵션 집계입니다.

  • off: 모든 선택적 CPU 완화를 비활성화합니다. 이로 인해 시스템 성능이 향상되지만 사용자를 여러 CPU 취약점에 노출할 수도 있습니다.

    • 다음과 같습니다. nopti [X86,PPC], kpti=0 [ARM64], nospectre_v1 [X86,PPC], nobp=0 [S390], nospectre_v2 [X86,PPC,S390,ARM64],, spectre_v2_user=off [X86], spec_store_bypass_disable=off [X86,PPC], ssbd=force-off [ARM64], l1tf=off [X86], mds=off [X86], tsx_async_abort=off [X86], kvm.nx_huge_pages=off [X86], no_entry_flush [PPC], no_uaccess_flush [PPC], mmio_stale_data=off [X86].
    • 예외: kvm.nx_huge_pages =force 옵션이 지정된 경우 kvm.nx_huge_pages에는 적용되지 않습니다.
  • auto (기본값): 모든 CPU 취약점을 완화하지만 보안 취약점이 있는 경우에도 SMT를 활성화합니다.

    • 같음: (기본 동작)
  • Auto,nosmt: 모든 CPU 취약점을 완화하여 필요한 경우 SMT를 비활성화합니다.

    • l1tf=flush,nosmt [X86], mds=full,nosmt [X86], tsx_async_abort=full,nosmt [X86], mmio_stale_data=full,nosmt [X86]
rcu_nocbs[=cpu-list] = [KNL]

선택적 인수는 CPU 목록입니다.

CONFIG_RCU_NOCB_CPU=y 로 빌드된 커널에서 no-callback CPU 모드를 활성화할 수 있으므로 이러한 CPU 콜백이 softirq 컨텍스트에서 호출되지 않습니다. 이러한 CPU의 RECDHE 콜백 호출은 대신 해당 목적으로 생성된 rcuo x / N kthreads 로 오프로드됩니다. 여기서 여기서 RECDHE-preempt의 경우 s 이고, RECDHE-sched인 kthread의 경우 g 는 CPU 번호입니다. n은 CPU 번호입니다. 이를 통해 오프로드된 CPU의 OS 지터가 줄어들어 HPC 및 실시간 워크로드에 유용할 수 있습니다. 또한 DestinationRule 다중 프로세서의 에너지 효율성을 개선할 수 있습니다.

  • cpulist 가 인수로 전달되면 지정된 CPU 목록이 부팅에서 no-callback 모드로 설정됩니다.
  • = 기호와 cpulist 인수를 생략하면 부팅에서 CPU가 no-callback 모드로 설정되지 않지만 cpusets 를 사용하여 런타임 시 모드를 전환할 수 있습니다.
rcutree.kthread_prio = [KNL,BOOT]

이 매개변수를 사용하여 RECDHE per-CPU kthreads (rcuc/N)의ECDHE _FIFO 우선순위를 설정할 수 있습니다. 이 값은 RECDHE boost 스레드 (rcub/N)의 우선 순위와 RECDHE grace-period kthreads (rcu_bh,rcu_preempt, rcu_sched)에도 사용됩니다.

  • R ECDHE_BOOST 가 설정되면 유효한 값은 1-99이며 기본값은 1 이며 최소 우선 순위입니다.
  • R ECDHE_BOOST 가 설정되지 않은 경우 유효한 값은 0-99이고 기본값은 0 이고 비실시간 작업입니다.

    R ECDHE_NOCB_CPU 가 설정된 경우 NOCB 콜백 kthreads 의 우선 순위를 조정해야 합니다.

rcutorture.fwd_progress = [KNL]

이 매개변수를 사용하면 이 개념을 지원하는 RECDHE 유형에 대한 RECDHE grace-period forward-progress 테스트에 사용할 kthreads 수를 지정할 수 있습니다.

기본값은 1 kthread 로 설정됩니다. CPU 수보다 0개 이상 작으면 CPU 수가 사용됩니다.

spectre_v2 = [X86]

이 매개변수를 사용하면 Spectre variant 2 (indirect branch speculation) 취약점의 완화 조치를 제어할 수 있습니다. 기본 작업은 사용자 공간 공격으로부터 커널을 보호합니다.

  • On: 무조건적으로 활성화되어 있으며, spectre_v2_user=on을 의미합니다.
  • off: 무조건 비활성화, spectre_v2_user=off를 의미합니다.
  • auto: kernel은 CPU 모델의 보안 취약점을 탐지합니다.
  • 그리고 auto 선택하면 CPU, 사용 가능한 마이크로 코드, CONFIG_RETPOLINE 설정 옵션, 커널이 빌드된 컴파일러에 따라 런타임 시 완화 방법을 선택할 수 있습니다.
  • 또한 사용자 공간을 선택하여 사용자 공간 작업 공격을 완화할 수 있습니다.
  • 해제 를 선택하면 커널 및 사용자 공간 보호가 모두 비활성화됩니다.
  • 특정 완화 조치를 수동으로 선택할 수도 있습니다.

    • Retpoline: 간접 브랜치 교체
    • Ret poline,generic: Retpolines
    • Retpoline,l timing: LFENCE; 간접 브랜치
    • retpoline,amd: retpoline의 별칭,l cri
    • eibrs: 향상된 IBRS
    • eibrs,retpoline: 향상된 IBRS + Retpolines
    • IBRS + LFENCE 개선
    • IBRS: IBRS를 사용하여 커널을 보호

      이 옵션을 지정하지 않으면 spectre_v2=auto 와 동일합니다.

새로운 sysctl 매개변수

max_rcu_stall_to_panic
panic_on_rcu_stall1 로 설정하면 panic() 이 호출되기 전에 RECDHE가 중단될 수 있는 횟수를 확인할 수 있습니다. panic_on_rcu_stall0 으로 설정하면 이 값이 적용되지 않습니다.
perf_user_access = [ARM64]

이 매개 변수를 사용하면 이벤트 카운터를 읽기 위해 사용자 공간 액세스를 제어할 수 있습니다.

  • 1 로 설정하면 사용자 공간은 성능 모니터 카운터 레지스터를 직접 읽을 수 있습니다.
  • 기본값은 0 으로 설정되어 있으며 이는 액세스를 비활성화했음을 의미합니다.

    자세한 내용은 Documentation/arm64/perf.rst 를 참조하십시오.

gro_normal_batch
이 매개변수를 사용하여 GRO 출력에서 최대 세그먼트 수를 일괄 업로 설정할 수 있습니다. 패킷이 병합된 수퍼 프레임으로 또는 GRO가 병합하지 않기로 결정한 원래 패킷으로 GRO가 GRO가 종료하면NAPI별 목록에 배치됩니다. 그런 다음 세그먼트 수가 gro_normal_ECDHEch 제한에 도달하면 이 목록이 스택으로 전달됩니다.
high_order_alloc_disable

이 매개변수를 사용하여 order-0 할당을 선택할 수 있습니다. 기본적으로 페이지 조각의 할당자는 X86 시스템에서 높은 순서 페이지를 사용하려고 합니다. 기본 동작은 좋은 결과를 반환하지만 특정 상황에서는 페이지 할당 및 해제의 경합이 발생합니다. 이는 상위 페이지가 CPU별 목록에 저장되지 않은 이전 커널(버전 5.14 이상)에서 특히 그러했습니다. 이 매개변수는 이제 대부분 과거의 중요도가 있습니다.

기본값은 0입니다.

page_lock_unfairness

이 매개변수의 값을 지정하면 대기자 아래에서 페이지 잠금이 차단될 수 있는 횟수를 확인할 수 있습니다. 잠금이 이 파일에 지정된 횟수로 분류된 후 실정 잠금 핸드오프 의미가 적용되며, 잠금을 취할 수 있는 경우에만 대기자가 조정됩니다.

기본값은 5 입니다.

sysctl 매개변수 변경

urandom_min_reseed_secs
이 매개변수를 사용하여 urandom 풀 후의 최소 시간(초)을 결정할 수 있습니다. 이 파일은 호환성을 위해 쓸 수 있지만 RNG 동작에는 영향을 미치지 않습니다.
write_wakeup_threshold
엔트로피 수가 여러 비트에서 이 임계값 아래로 싱크되면 /dev/random 파일에 쓰기 대기 중인 프로세스를 시작할 수 있습니다. 이 파일은 호환성을 위해 쓸 수 있지만 RNG 동작에는 영향을 미치지 않습니다.

6장. 장치 드라이버

6.1. 새 드라이버

네트워크 드라이버

  • 플랫폼 펌웨어 런타임 업데이트 Telemetry 드라이버 (pfr_telemetry)
  • 플랫폼 펌웨어 런타임 업데이트 장치 드라이버 (pfr_update)
  • MediaTek 장치에 대한 Bluetooth 지원 ver 0.1 (btmtk)
  • MHI 호스트 인터페이스 (mhi)
  • mhi_pci_generic(MHI) PCI 컨트롤러 드라이버
  • IDXD 드라이버 dsa_bus_type 드라이버 (idxd_bus)
  • AMD PassThruECDHE 드라이버 (ptdmaptdma)
  • MellanoxECDHEN 드라이버 (mlxreg-fan)
  • Mellanox NSX regmap 드라이버 (leds-mlxreg)
  • Intel® LPSS ACPI 드라이버 (인텔-lpss-acpi)
  • Intel® LPSS PCI 드라이버 (intel-lpss-pci)
  • Intel® LPSS 코어 드라이버 (인텔-lps)
  • Maxlinear Ethernet NSXY Driver (mxl-gpy)
  • RealtekECDHEax 무선ECDHE52A 드라이버 (rtw89_8852a)
  • RealtekECDHEax wirelessECDHE52AE 드라이버 (rtw89_8852ae)
  • Intel® PMT 클래스 드라이버(pmt_class)
  • Intel® PMT Crashlog 드라이버 (pmt_crashlog)
  • Intel® PMT Telemetry 드라이버(pmt_telemetry)
  • Intel® speed select interfaceknative driver (isst_if_mbox_msr)
  • Intel® speed select interface pciknative driver (isst_if_mbox_pci)
  • Intel® speed select interface mmio driver (isst_if_mmio)
  • Intel® Software Defined Silicon driver (intel_sdsi)
  • Intel® Extended Capabilities bus driver (intel_vsec)
  • ISHTP ISHTP eclite client opregion 드라이버 (ishtp_eclite)
  • acer-wireless(Acer-wireless)
  • AMD HSMP 플랫폼 인터페이스 드라이버 (amd_hsmp)
  • DESIGNWARE HS OTG Core (dwc2)
  • Synopsys HAPS PCI Glue Layer (dwc3-haps)
  • DesignWare USB3 PCI Glue Layer (dwc3-pci)
  • DesignWare USB3 DRD 컨트롤러 드라이버 (dwc3)
  • XHCI Platform 호스트 컨트롤러 드라이버 (xhci-plat-hcd)
  • Semiconductor FSA4480 드라이버(fsa4480)
  • Richtek RT1719 Sink Only USBPD 컨트롤러 드라이버 (rt1719)
  • Willsemi WECDHE3801 Type-C 포트 컨트롤러 드라이버 (wusb3801)
  • VFIO 기반 PCI 장치의 코어 드라이버(vfio-pci-core)
  • AMD SEV 게스트 드라이버 (sev-guest)
  • Mellanox watchdog 드라이버 (mlx_wdt)

그래픽 드라이버 및 기타 드라이버

  • Cirrus Logic DSP 지원 (cs_dsp)
  • 4.6.1 DisplayPort Helper (drm_dp_helper)
  • DestinationRule Buddy Allocator (drm_buddy)
  • ECDHE SHMEM 메모리 관리 도우미 (drm_shmem_helper)
  • bochs dispi 인터페이스 사용 (Bochs)
  • Letsketch trim driver (hid-letsketch)
  • Intel® 속도 선택 인터페이스 드라이버 (isst_if_common)
  • ECDHE Micro HID 드라이버(하이그마이크로)
  • ECDHE Mi Si Si Mouse (hid-xiaomi)의 사이드 버튼 수정
  • DEC VSXXX-AAA 및 -GA 마우스 및 VSXXX-AB 사용자 이름용 드라이버 (vsxxxaa)
  • NVIDIA 라인 카드 플랫폼 드라이버 (mlxreg-lc)
  • Intel PCH 열 드라이버 (intel_pch_thermal)
  • Intel LPSS UART 드라이버 (8250_lps)

6.2. 업데이트된 드라이버

네트워크 드라이버 업데이트

  • VMwarevmxnet3가상 NIC 드라이버( vmxnet3)가 버전 1.7.0.0-k로 업데이트되었습니다.

스토리지 드라이버 업데이트

  • Emulex LightPulse Fibre Channel SCSI 드라이버 (lpfc)가 버전 14.2.0.5로 업데이트되었습니다.
  • MPI3 Storage Controller Device Driver (ECDHEi3mr)가 8.0.0.69.0 버전으로 업데이트되었습니다.
  • LSI MPT Fusion SAS 3.0 Device Driver (ECDHEt3sas)가 40.100.00.00 버전으로 업데이트되었습니다.
  • MicroECDHE Smart Family Controller (smartpqi)의 드라이버가 2.1.18-045 버전으로 업데이트되었습니다.

그래픽 및 기타 드라이버 업데이트

  • VMware SVGA 장치(vmwgfx)의 독립 실행형 드레이머 드라이버가 2.20.0.0 버전으로 업데이트되었습니다.

7장. 사용 가능한 BPF 기능

이 장에서는 Red Hat Enterprise Linux 9 마이너 버전의 커널에서 사용할 수 있는BPF(Berley Packet Filter ) 기능의 전체 목록을 제공합니다. 표에는 다음이 포함됩니다.

이 장에서는 bpftool 기능 명령의 출력이 자동으로 생성됩니다.

표 7.1. 시스템 구성 및 기타 옵션

옵션

unprivileged_bpf_disabled

2 (BPF() syscall은 권한 있는 사용자로 제한, 관리자가 변경할 수 있음)

ECDHE 컴파일러

1 (사용 가능)

ECDHE 컴파일러 강화

1 (권한 없는 사용자에게 사용)

ECDHE 컴파일러 kallsyms 내보내기

1 (루트 지원)

권한이 없는 사용자의 메모리 제한

264241152

CONFIG_BPF

y

CONFIG_BPF_SYSCALL

y

CONFIG_HAVE_EBPF_JIT

y

CONFIG_BPF_JIT

y

CONFIG_BPF_JIT_ALWAYS_ON

y

CONFIG_DEBUG_INFO_BTF

y

CONFIG_DEBUG_INFO_BTF_MODULES

y

CONFIG_CGROUPS

y

CONFIG_CGROUP_BPF

y

CONFIG_CGROUP_NET_CLASSID

y

CONFIG_SOCK_CGROUP_DATA

y

CONFIG_BPF_EVENTS

y

CONFIG_KPROBE_EVENTS

y

CONFIG_UPROBE_EVENTS

y

CONFIG_TRACING

y

CONFIG_FTRACE_SYSCALLS

y

CONFIG_FUNCTION_ERROR_INJECTION

y

CONFIG_BPF_KPROBE_OVERRIDE

n

CONFIG_NET

y

CONFIG_XDP_SOCKETS

y

CONFIG_LWTUNNEL_BPF

y

CONFIG_NET_ACT_BPF

m

CONFIG_NET_CLS_BPF

m

CONFIG_NET_CLS_ACT

y

CONFIG_NET_SCH_INGRESS

m

CONFIG_XFRM

y

CONFIG_IP_ROUTE_CLASSID

y

CONFIG_IPV6_SEG6_BPF

n

CONFIG_BPF_LIRC_MODE2

n

CONFIG_BPF_STREAM_PARSER

y

CONFIG_NETFILTER_XT_MATCH_BPF

m

CONFIG_BPFILTER

n

CONFIG_BPFILTER_UMH

n

CONFIG_TEST_BPF

m

CONFIG_HZ

1000

bpf() syscall

Available

대규모 프로그램 크기 제한

Available

표 7.2. 사용 가능한 프로그램 유형 및 지원되는 도우미

프로그램 유형사용 가능한 도우미

socket_filter

bpf_map_lookup_elem, bpf_map_update_elem, bpf_map_delete_elem, bpf_ktime_get_get_prandom_u32, bpf_get_smp_processor_id, bpf_map_update_call, bpf_map_update_elem bpf_perf_event_output, bpf_skb_load_bytes, bpf_get_current_task, bpf_get_numa_node_id, bpf_get_socket_cookie, bpf_get_socket_uid, bpf_skb_load_bytes_relative, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_unlock, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_kernel, bpf_map_peek_elem, bpf_spin_unlock bpf_probe_read_user_str, bpf_read_kernel_str, bpf_jiffies64, bpf_ktime_get_boot_ns, bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_submit bpf_ringbuf_discard, bpf_ringbuf_to_query, bpf_skc_to_tcp6_sock, bpf_skc_to_tcp_to_tcp_sock, bpf_skc_to_tcp_timewait_sock, bpf_skc_to_tcp_request_sock bpf_skc_to_udp6_sock, bpf_snprintf_btf, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_get_task_btf, bpf_ktime_get_btf, bpf_ktime_get_coarse_ns, bpf_for_each_map_elem, bpf_snprintf_timer_init, bpf_timer_set_callback, bpf_timer_start, bpf_timer_cancel, bpf_task_pt_regs, bpf_task_pt_to_unix_ocks

kprobe

bpf_map_lookup_elem, bpf_map_update_elem, bpf_map_delete_elem, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call, bpf_get_current_tgid, bpf_get_current_uid_gid, bpf_get_current_comm, bpf_perf_event_read, bpf_perf_event_output, bpf_get_get_stackid, bpf_get_tgid bpf_get_current_task, bpf_current_task_under_cgroup, bpf_get_numa_node_id, bpf_probe_read_str, bpf_perf_event_read_value, bpf_get_stack, bpf_get_current_cgroup_id, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_unlock, bpf_send_signal, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_send_signal_thread, bpf_jiffies64, bpf_get_ns_current_pid_tgid, bpf_get_current_current_cgroup_id bpf_ktime_get_boot_ns, bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_discard, bpf_ringbuf_discard, bpf_get_task_stack, bpf_snprint_bf bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_task_storage_get, bpf_get_current_task_btf, bpf_for_each_map_elem, bpf_snprintf, bpf_timer_init, bpf_timer_set_callback, bpf_timer_cancel, bpf_get_func_ip, bpf_get_get_attach_cookie, bpf_task_pt_regs, bpf_task_pt_regs, bpf_get_branch_snapshot

sched_cls

bpf_map_lookup_elem, bpf_map_update_elem, bpf_map_delete_elem, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_skb_store_bytes, bpf_l3_csum_replace, bpf_l4_csum_replace, bpf_tail_call, bpf_get_cgroup_classid, bpf_skb_vlan_push, bpf_skb_vlan_pop, bpf_skb_get_tunnel_key, bpf_skb_set_tunnel_key, bpf_get_route_realm, bpf_perf_event_output, bpf_skb_load_bytes, bpf_csum_diff, bpf_skb_load_diff, bpf_skb_load_diff bpf_skb_get_tunnel_opt, bpf_skb_set_tunnel_opt, bpf_skb_change_proto, bpf_skb_change_type, bpf_skb_under_cgroup, bpf_get_hash_recalc, bpf_skb_change_type bpf_get_current_task, bpf_skb_change_tail, bpf_skb_data, bpf_csum_update, bpf_set_hash_invalid, bpf_get_numa_node_id, bpf_skb_change_head, bpf_get_socket_cookie, bpf_get_socket_uid, bpf_set_hash, bpf_skb_adjust_room, bpf_skb_get_xffrm_state, bpf_skb_load_bytes_relative, bpf_fib_lookup bpf_skb_cgroup_id, bpf_sk_cgroup_id, bpf_sk_lookup_tcp, bpf_sk_lookup_udp, bpf_sk_release, bpf_map_push_elem, bpf_map_push_elem, bpf_sk_elem bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, bpf_tcp_sock, bpf_skb_ecn_set_ce, bpf_get_listener_sock, bpf_skc_lookup_tcp, bpf_tcp_check_syncookie, bpf_sk_storage_get, bpf_sk_storage_delete, bpf_tcp_gen_syncookie, bpf_probe_read_user, bpf_probe_probe_read_kernel bpf_probe_read_user_str, bpf_read_kernel_str, bpf_jiffies64, bpf_ktime_get_boot_ns, bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_query, bpf_csum_level, bpf_skc_to_tcp6_sock, bpf_skc_to_tcp_sock, bpf_skc_to_tcp_time_wait_ock bpf_skc_to_tcp_request_sock, bpf_skc_to_udp6_sock, bpf_snprintf_btf, bpf_skb_cgroup_classid, bpf_redirect_neigh, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_redirect_peer, bpf_get_task_btf, bpf_ktime_get_coarse_ns, bpf_check_mtu, bpf_for_each_map_elem, bpf_snprintf bpf_timer_init, bpf_timer_callback, bpf_timer_start, bpf_timer_cancel, bpf_task_pt_regs, bpf_skc_to_unix_sock

sched_act

bpf_map_lookup_elem, bpf_map_update_elem, bpf_map_delete_elem, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_skb_store_bytes, bpf_l3_csum_replace, bpf_l4_csum_replace, bpf_tail_call, bpf_get_cgroup_classid, bpf_skb_vlan_push, bpf_skb_vlan_pop, bpf_skb_get_tunnel_key, bpf_skb_set_tunnel_key, bpf_get_route_realm, bpf_perf_event_output, bpf_skb_load_bytes, bpf_csum_diff, bpf_skb_load_diff, bpf_skb_load_diff bpf_skb_get_tunnel_opt, bpf_skb_set_tunnel_opt, bpf_skb_change_proto, bpf_skb_change_type, bpf_skb_under_cgroup, bpf_get_hash_recalc, bpf_skb_change_type bpf_get_current_task, bpf_skb_change_tail, bpf_skb_data, bpf_csum_update, bpf_set_hash_invalid, bpf_get_numa_node_id, bpf_skb_change_head, bpf_get_socket_cookie, bpf_get_socket_uid, bpf_set_hash, bpf_skb_adjust_room, bpf_skb_get_xffrm_state, bpf_skb_load_bytes_relative, bpf_fib_lookup bpf_skb_cgroup_id, bpf_sk_cgroup_id, bpf_sk_lookup_tcp, bpf_sk_lookup_udp, bpf_sk_release, bpf_map_push_elem, bpf_map_push_elem, bpf_sk_elem bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, bpf_tcp_sock, bpf_skb_ecn_set_ce, bpf_get_listener_sock, bpf_skc_lookup_tcp, bpf_tcp_check_syncookie, bpf_sk_storage_get, bpf_sk_storage_delete, bpf_tcp_gen_syncookie, bpf_probe_read_user, bpf_probe_probe_read_kernel bpf_probe_read_user_str, bpf_read_kernel_str, bpf_jiffies64, bpf_ktime_get_boot_ns, bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_query, bpf_csum_level, bpf_skc_to_tcp6_sock, bpf_skc_to_tcp_sock, bpf_skc_to_tcp_time_wait_ock bpf_skc_to_tcp_request_sock, bpf_skc_to_udp6_sock, bpf_snprintf_btf, bpf_skb_cgroup_classid, bpf_redirect_neigh, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_redirect_peer, bpf_get_task_btf, bpf_ktime_get_coarse_ns, bpf_check_mtu, bpf_for_each_map_elem, bpf_snprintf bpf_timer_init, bpf_timer_callback, bpf_timer_start, bpf_timer_cancel, bpf_task_pt_regs, bpf_skc_to_unix_sock

tracepoint

bpf_map_lookup_elem, bpf_map_update_elem, bpf_map_delete_elem, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call, bpf_get_current_tgid, bpf_get_current_uid_gid, bpf_get_current_comm, bpf_perf_event_read, bpf_perf_event_output, bpf_get_get_stackid, bpf_get_tgid bpf_get_current_task, bpf_current_task_under_cgroup, bpf_get_numa_node_id, bpf_probe_read_str, bpf_perf_event_read_value, bpf_get_stack, bpf_get_current_cgroup_id, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_unlock, bpf_send_signal, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_send_signal_thread, bpf_jiffies64, bpf_get_ns_current_pid_tgid, bpf_get_current_current_cgroup_id bpf_ktime_get_boot_ns, bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_discard, bpf_ringbuf_discard, bpf_get_task_stack, bpf_snprint_bf bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_task_storage_get, bpf_get_current_task_btf, bpf_for_each_map_elem, bpf_snprintf, bpf_timer_init, bpf_timer_set_callback, bpf_timer_cancel, bpf_get_func_ip, bpf_get_get_attach_cookie, bpf_task_pt_regs, bpf_task_pt_regs, bpf_get_branch_snapshot

xdp

bpf_map_lookup_elem, bpf_map_update_elem, bpf_map_delete_elem, bpf_ktime_get_get_prandom_u32, bpf_get_smp_processor_id, bpf_map_update_call, bpf_map_update_elem bpf_redirect, bpf_perf_event_output, bpf_csum_diff, bpf_get_current_task, bpf_get_numa_node_id, bpf_xdp_adjust_head, bpf_redirect_map, bpf_xdp_adp_just_meta, bpf_xdp_adjust_meta, bpf_get_current_task bpf_xdp_adjust_tail, bpf_fib_lookup_tcp, bpf_sk_lookup_udp, bpf_sk_release, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_pop_elem bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, bpf_skc_lookup_tcp, bpf_tcp_check_syncookie, bpf_probe_syncookie, bpf_probe_read_user bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_kernel_str, bpf_jiffies64, bpf_ktime_get_boot_ns, bpf_ringbuf_output, bpf_ringbuf_ringbuf_reserve, bpf_probe_user_str, bpf_jiffies64 bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_skc_to_tcp6_sock, bpf_skc_to_tcp_sock, bpf_skc_to_tcp_timewait_sock, bpf_skc_to_tcp_timewait_sock, bpf_skc_to_tcp_sock bpf_skc_to_tcp_request_sock, bpf_skc_to_udp6_sock, bpf_snprintf_btf, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_get_get_task_btf, bpf_get_task_btf, bpf_snprintf bpf_ktime_get_coarse_ns, bpf_check_mtu, bpf_for_each_map_elem, bpf_snprintf, bpf_timer_init, bpf_timer_set_callback, bpf_timer_start bpf_timer_cancel, bpf_task_pt_regs, bpf_skc_to_unix_sock

perf_event

bpf_map_lookup_elem, bpf_map_update_elem, bpf_map_delete_elem, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call, bpf_get_current_tgid, bpf_get_current_uid_gid, bpf_get_current_comm, bpf_perf_event_read, bpf_perf_event_output, bpf_get_get_stackid, bpf_get_tgid bpf_get_current_task, bpf_current_task_under_cgroup, bpf_get_numa_node_id, bpf_probe_read_str, bpf_perf_event_read_value, bpf_perf_prog_read_value, bpf_perf_prog_read_stack bpf_get_current_cgroup_id, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, bpf_send_signal, bpf_send_signal, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_user_str, bpf_probe_read_str, bpf_send_signal_thread, bpf_jiffies64, bpf_read_branch_ recordss, bpf_get_ns_current_tgid, bpf_get_current_ancestor_cgroup_id, bpf_ktime_get_boot_ns, bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_submit, bpf_ringbuf_submit, bpf_ringbuf_submit bpf_ringbuf_discard, bpf_ringbuf_task_query, bpf_get_task_stack, bpf_snprintf_btf, bpf_per_cpu_ptr, bpf_cpu_ptr, bpf_task_storage_get, bpf_task_storage_delete, bpf_task_storage_delete bpf_get_current_task_btf, bpf_for_each_map_elem, bpf_snprintf_timer_init, bpf_timer_set_callback, bpf_timer_start, bpf_timer_cancel, bpf_timer_cancel bpf_get_func_ip, bpf_get_attach_cookie, bpf_task_pt_regs, bpf_get_branch_snapshot

cgroup_skb

bpf_map_lookup_elem, bpf_map_update_elem, bpf_map_delete_elem, bpf_ktime_get_get_prandom_u32, bpf_get_smp_processor_id, bpf_map_update_call, bpf_map_update_elem bpf_perf_event_output, bpf_skb_load_bytes, bpf_get_current_task, bpf_get_numa_node_id, bpf_get_socket_cookie, bpf_get_socket_uid, bpf_skb_load_bytes_relative, bpf_skb_cgroup_id, bpf_get_local_storage, bpf_skb_cgroup_id, bpf_sk_lookup_tcp, bpf_sk_lookup_udp, bpf_sk_release, bpf_map_push_elem, bpf_sk_release bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, bpf_sk_fullsock, bpf_skb_ecn_set_ce, bpf_get_listener_sock, bpf_sk_lookup_tcp, bpf_sk_storage_get, bpf_sk_storage_delete, bpf_probe_read_user, bpf_probe_read_user, bpf_probe_read_user, bpf_probe_read_str, bpf_probe_user bpf_probe_read_kernel_str, bpf_ktime_get_boot_ns, bpf_sk_cgroup_id, bpf_sk_cgroup_id, bpf_ringf_output, bpf_ringf_buf_reserve, bpf_ringf_buf_reserve, bpf_k_cgroup_id bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_skc_to_tcp6_sock, bpf_skc_to_tcp_sock, bpf_skc_to_tcp_timewait_sock, bpf_skc_to_tcp_timewait_sock, bpf_skc_to_tcp_sock bpf_skc_to_tcp_request_sock, bpf_skc_to_udp6_sock, bpf_snprintf_btf, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_get_get_task_btf, bpf_get_task_btf, bpf_snprintf bpf_ktime_get_coarse_ns, bpf_for_each_map_elem, bpf_snprintf_timer_init, bpf_timer_set_callback, bpf_timer_start, bpf_timer_cancel, bpf_timer_cancel bpf_task_pt_regs, bpf_skc_to_unix_sock

cgroup_sock

bpf_map_lookup_elem, bpf_map_update_elem, bpf_map_delete_elem, bpf_ktime_get_get_prandom_u32, bpf_get_smp_processor_id, bpf_map_update_call, bpf_map_update_elem bpf_get_current_tgid, bpf_get_current_uid_gid, bpf_get_current_comm, bpf_get_cgroup_classid, bpf_perf_event_output, bpf_get_current_task, bpf_get_get_numa_node_id, bpf_get_current_node_id bpf_get_socket_cookie, bpf_get_current_cgroup_id, bpf_get_local_storage, bpf_map_pop_elem, bpf_map_pop_elem, bpf_map_peek_peek_elem, bpf_spin_spin_lock, bpf_get_local_storage, bpf_map_pop_elem bpf_spin_unlock, bpf_sk_storage_get, bpf_probe_user, bpf_probe_read_kernel, bpf_probe_user_str, bpf_probe_read_kernel_str, bpf_sk_jiffies64 bpf_get_netns_cookie, bpf_get_current_ancestor_cgroup_id, bpf_ktime_get_boot_ns, bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_discard bpf_ringbuf_query, bpf_snprintf_btf, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_get_current_task_btf, bpf_ktime_coarse_ns, bpf_for_each_map_elem, bpf_per_cpu_ptr bpf_snprintf, bpf_timer_init, bpf_timer_callback, bpf_timer_start, bpf_timer_cancel, bpf_task_pt_regs

lwt_in

bpf_map_lookup_elem, bpf_map_update_elem, bpf_map_delete_elem, bpf_ktime_get_get_prandom_u32, bpf_get_smp_processor_id, bpf_map_update_call, bpf_map_update_elem bpf_get_cgroup_classid, bpf_get_route_realm, bpf_perf_event_output, bpf_skb_load_bytes, bpf_csum_diff, bpf_skb_under_cgroup, bpf_get_hash_recalc, bpf_get_current_task, bpf_skb_pull_data, bpf_get_numa_node_id, bpf_lwt_push_encap, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_pop_elem, bpf_map_pop_elem, bpf_map_pop_elem bpf_spin_lock, bpf_spin_unlock, bpf_probe_read_user, bpf_probe_read_user_str, bpf_probe_str, bpf_jiffies64, bpf_jiffies64, bpf_ktime_get_boot_ns bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_query, bpf_skc_to_tcp6_sock, bpf_skc_to_tcp_sock bpf_skc_to_tcp_timewait_sock, bpf_skc_to_tcp_request_sock, bpf_skc_to_udp6_sock, bpf_snprintf_stf, bpf_per_cpu_ptr, bpf_this_cpu_ptr bpf_get_current_task_btf, bpf_ktime_get_coarse_ns, bpf_for_each_map_elem, bpf_snprintf, bpf_timer_init, bpf_timer_set_callback, bpf_timer_timer_start, bpf_timer_start bpf_timer_cancel, bpf_task_pt_regs, bpf_skc_to_unix_sock

lwt_out

bpf_map_lookup_elem, bpf_map_update_elem, bpf_map_delete_elem, bpf_ktime_get_get_prandom_u32, bpf_get_smp_processor_id, bpf_map_update_call, bpf_map_update_elem bpf_get_cgroup_classid, bpf_get_route_realm, bpf_perf_event_output, bpf_skb_load_bytes, bpf_csum_diff, bpf_skb_under_cgroup, bpf_get_hash_recalc, bpf_get_current_task, bpf_skb_pull_data, bpf_get_numa_node_id, bpf_map_pop_elem, bpf_map_pop_elem, bpf_map_peek_peek_lock, bpf_spin_lock, bpf_get_numa_node_id, bpf_map_pop_elem bpf_spin_unlock, bpf_probe_read_user, bpf_probe_read_user_str, bpf_probe_kernel_str, bpf_jiffies64, bpf_ktime_get_boot_ns bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_query, bpf_skc_to_tcp6_sock, bpf_skc_to_tcp_sock bpf_skc_to_tcp_timewait_sock, bpf_skc_to_tcp_request_sock, bpf_skc_to_udp6_sock, bpf_snprintf_stf, bpf_per_cpu_ptr, bpf_this_cpu_ptr bpf_get_current_task_btf, bpf_ktime_get_coarse_ns, bpf_for_each_map_elem, bpf_snprintf, bpf_timer_init, bpf_timer_set_callback, bpf_timer_timer_start, bpf_timer_start bpf_timer_cancel, bpf_task_pt_regs, bpf_skc_to_unix_sock

lwt_xmit

bpf_map_lookup_elem, bpf_map_update_elem, bpf_map_delete_elem, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_skb_store_bytes, bpf_l3_csum_replace, bpf_l4_csum_replace, bpf_tail_call, bpf_get_cgroup_classid, bpf_skb_get_tunnel_key, bpf_skb_set_tunn_key, bpf_skb_set_tunn_key bpf_redirect, bpf_get_route_realm, bpf_perf_event_output, bpf_skb_load_bytes, bpf_skb_diff, bpf_skb_get_tunnel_opt, bpf_skb_set_tunnel_opt bpf_skb_under_cgroup, bpf_get_hash_recalc, bpf_get_current_task, bpf_skb_change_tail, bpf_skb_pull_data, bpf_csum_update, bpf_set_hash_invalid, bpf_get_numa_node_id, bpf_skb_change_head, bpf_lwt_push_encap, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_map_peek_elem, bpf_map_peek_elem, bpf_map_peek_elem bpf_spin_lock, bpf_spin_unlock, bpf_probe_read_user, bpf_probe_read_user_str, bpf_probe_str, bpf_jiffies64, bpf_jiffies64, bpf_ktime_get_boot_ns bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_query, bpf_csum_level, bpf_skc_to_tcp6_sock, bpf_skc_to_tcp_sock, bpf_skc_to_tcp_timewait_sock, bpf_skc_to_tcp_request_sock, bpf_skc_to_udp6_sock, bpf_snprintf_btf, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_get_task_btf, bpf_ktime_get_coarse_ns, bpf_for_each_map_elem, bpf_snprintf_snprintf_timer_init bpf_timer_set_callback, bpf_timer_start, bpf_timer_cancel, bpf_task_pt_regs, bpf_skc_to_unix_sock

sock_ops

bpf_map_lookup_elem, bpf_map_update_elem, bpf_map_delete_elem, bpf_ktime_get_get_prandom_u32, bpf_get_smp_processor_id, bpf_map_update_call, bpf_map_update_elem bpf_perf_event_output, bpf_get_current_task, bpf_get_numa_id, bpf_get_socket_cookie, bpf_setsockopt, bpf_sock_map_update, bpf_getsockopt, bpf_sock_opsockopt, bpf_sock_ops_flaset, bpf_sockopt bpf_sock_hash_update, bpf_get_local_storage, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock bpf_tcp_sock, bpf_sk_storage_get, bpf_sk_storage_delete, bpf_probe_read_user, bpf_probe_kernel, bpf_probe_user_str, bpf_probe_user_str, bpf_probe_read_kernel_str, bpf_probe_read_kernel bpf_jiffies64, bpf_get_netns_cookie, bpf_ktime_get_boot_ns, bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_disf_query, bpf_ringbuf_disf_query bpf_skc_to_tcp6_sock, bpf_skc_to_tcp_to_tcp_timewait_sock, bpf_skc_to_tcp_request_sock, bpf_skc_to_udp6_sock, bpf_skc_to_udp6_sock, bpf_skc_to_tcp_sock bpf_load_hdr_opt, bpf_store_hdr_opt, bpf_reserve_hdr_opt, bpf_snprintf_btf, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_get_get_task_btf, bpf_ktime_get_coarse_ns, bpf_for_each_map_elem, bpf_snprintf_timer_init, bpf_timer_set_callback, bpf_timer_start, bpf_timer_cancel, bpf_timer_cancel bpf_task_pt_regs, bpf_skc_to_unix_sock

sk_skb

bpf_map_lookup_elem, bpf_map_update_elem, bpf_map_delete_elem, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_skb_store_bytes, bpf_tail_call, bpf_perf_event_output, bpf_skb_load_bytes, bpf_get_current_task, bpf_skb_change_tail, bpf_skb_pull_data, bpf_get_numa_node_id, bpf_skb_change_head, bpf_get_socket_cookie, bpf_get_socket_uid, bpf_skb_adjust_room, bpf_sk_redirect_map, bpf_sk_hash, bpf_sk_lookup_tcp, bpf_get_socket_uid bpf_sk_lookup_udp, bpf_sk_release, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_lock, bpf_spin_un_lock, bpf_map_pop_elem bpf_skc_lookup_tcp, bpf_probe_read_user, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_jiffies64, bpf_ktime_get_boot_ns bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_query, bpf_skc_to_tcp6_sock, bpf_skc_to_tcp_sock bpf_skc_to_tcp_timewait_sock, bpf_skc_to_tcp_request_sock, bpf_skc_to_udp6_sock, bpf_snprintf_stf, bpf_per_cpu_ptr, bpf_this_cpu_ptr bpf_get_current_task_btf, bpf_ktime_get_coarse_ns, bpf_for_each_map_elem, bpf_snprintf, bpf_timer_init, bpf_timer_set_callback, bpf_timer_timer_start, bpf_timer_start bpf_timer_cancel, bpf_task_pt_regs, bpf_skc_to_unix_sock

cgroup_device

bpf_map_lookup_elem, bpf_map_update_elem, bpf_map_delete_elem, bpf_ktime_get_get_prandom_u32, bpf_get_smp_processor_id, bpf_map_update_call, bpf_map_update_elem bpf_get_current_uid_gid, bpf_perf_event_output, bpf_get_current_task, bpf_get_numa_node_id, bpf_get_current_cgroup_id, bpf_get_current_cgroup_id, bpf_get_local_storage, bpf_map_ush_elem bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, bpf_probe_user, bpf_probe_read_kernel, bpf_probe_read_user, bpf_probe_user_str, bpf_probe_user bpf_probe_read_kernel_str, bpf_jiffies64, bpf_ktime_get_boot_ns, bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_reserve bpf_ringbuf_query, bpf_snprintf_btf, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_get_current_task_btf, bpf_for_each_map_elem, bpf_snprintf, bpf_snprintf bpf_timer_init, bpf_timer_set_callback, bpf_timer_start, bpf_timer_cancel, bpf_task_pt_regs

sk_msg

bpf_map_lookup_elem, bpf_map_update_elem, bpf_map_delete_elem, bpf_ktime_get_get_prandom_u32, bpf_get_smp_processor_id, bpf_map_update_call, bpf_map_update_elem bpf_get_current_tgid, bpf_get_current_uid_gid, bpf_get_cgroup_classid, bpf_perf_event_output, bpf_get_current_task, bpf_get_node_id, bpf_geta_node_id, bpf_msg_redirect_map bpf_msg_apply_bytes, bpf_msg_cork_bytes, bpf_msg_pull_data, bpf_msg_redirect_hash, bpf_get_current_cgroup_id, bpf_map_push_elem, bpf_map_push_elem bpf_map_peek_elem, bpf_msg_push_data, bpf_msg_pop_data, bpf_spin_unlock, bpf_sk_storage_get, bpf_sk_storage_delete, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_user_str, bpf_probe_read_str, bpf_jiffies64, bpf_get_netns_cookie, bpf_get_current_ance_ance_cgroup_id, bpf_probe_user_str, bpf_get_netns_cookie bpf_ktime_get_boot_ns, bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_discard, bpf_ringbuf_query, bpf_skc_to_tcp6_sock, bpf_skc_to_tcp_sock, bpf_skc_to_tcp_timewait_sock, bpf_skc_to_tcp_request_sock, bpf_skc_to_udp6_sock, bpf_snprintf_btf, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_get_task_btf, bpf_ktime_get_coarse_ns, bpf_for_each_map_elem, bpf_snprintf_snprintf_timer_init bpf_timer_set_callback, bpf_timer_start, bpf_timer_cancel, bpf_task_pt_regs, bpf_skc_to_unix_sock

raw_tracepoint

bpf_map_lookup_elem, bpf_map_update_elem, bpf_map_delete_elem, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call, bpf_get_current_tgid, bpf_get_current_uid_gid, bpf_get_current_comm, bpf_perf_event_read, bpf_perf_event_output, bpf_get_get_stackid, bpf_get_tgid bpf_get_current_task, bpf_current_task_under_cgroup, bpf_get_numa_node_id, bpf_probe_read_str, bpf_perf_event_read_value, bpf_get_stack, bpf_get_current_cgroup_id, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_unlock, bpf_send_signal, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_send_signal_thread, bpf_jiffies64, bpf_get_ns_current_pid_tgid, bpf_get_current_current_cgroup_id bpf_ktime_get_boot_ns, bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_discard, bpf_ringbuf_discard, bpf_get_task_stack, bpf_snprint_bf bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_task_storage_get, bpf_get_current_task_btf, bpf_for_each_map_elem, bpf_snprintf, bpf_timer_init, bpf_timer_set_callback, bpf_timer_cancel, bpf_get_func_ip, bpf_task_pt_regs, bpf_get_task_pt_regs, bpf_get_branch_snapshot

cgroup_sock_addr

bpf_map_lookup_elem, bpf_map_update_elem, bpf_map_delete_elem, bpf_ktime_get_get_prandom_u32, bpf_get_smp_processor_id, bpf_map_update_call, bpf_map_update_elem bpf_get_current_tgid, bpf_get_current_uid_gid, bpf_get_current_comm, bpf_get_cgroup_classid, bpf_perf_event_output, bpf_get_current_task, bpf_get_get_numa_node_id, bpf_get_current_node_id bpf_get_socket_cookie, bpf_setsockopt, bpf_getsockopt, bpf_get_current_cgroup_id, bpf_get_local_storage, bpf_sk_lookup_tcp, bpf_sk_lookup_udp, bpf_sk_lookup_udp, bpf_sk_release, bpf_map_push_elem, bpf_map_pop_elem, bpf_spin_lock, bpf_spin_unlock, bpf_skc_lookup_tcp, bpf_skc_elem bpf_sk_storage_get, bpf_sk_storage_delete, bpf_probe_read_user, bpf_probe_read_user, bpf_probe_user_str, bpf_kernel_str, bpf_jiffies64 bpf_get_netns_cookie, bpf_get_current_ancestor_cgroup_id, bpf_ktime_get_boot_ns, bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_discard bpf_ringbuf_query, bpf_skc_to_tcp6_sock, bpf_skc_to_tcp_sock, bpf_skc_to_tcp_timewait_sock, bpf_skc_to_tcp_request_sock, bpf_skc_to_request_sock bpf_snprintf_btf, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_get_current_task_btf, bpf_ktime_coarse_ns, bpf_for_each_map_elem, bpf_for_each_map_elem, bpf_snprintf, bpf_timer_init, bpf_timer_callback, bpf_timer_cancel, bpf_task_pt_regs, bpf_skc_to_unix_sock

lwt_seg6local

bpf_map_lookup_elem, bpf_map_update_elem, bpf_map_delete_elem, bpf_ktime_get_get_prandom_u32, bpf_get_smp_processor_id, bpf_map_update_call, bpf_map_update_elem bpf_get_cgroup_classid, bpf_get_route_realm, bpf_perf_event_output, bpf_skb_load_bytes, bpf_csum_diff, bpf_skb_under_cgroup, bpf_get_hash_recalc, bpf_get_current_task, bpf_skb_pull_data, bpf_get_numa_node_id, bpf_map_pop_elem, bpf_map_pop_elem, bpf_map_peek_peek_lock, bpf_spin_lock, bpf_get_numa_node_id, bpf_map_pop_elem bpf_spin_unlock, bpf_probe_read_user, bpf_probe_read_user_str, bpf_probe_kernel_str, bpf_jiffies64, bpf_ktime_get_boot_ns bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_query, bpf_skc_to_tcp6_sock, bpf_skc_to_tcp_sock bpf_skc_to_tcp_timewait_sock, bpf_skc_to_tcp_request_sock, bpf_skc_to_udp6_sock, bpf_snprintf_stf, bpf_per_cpu_ptr, bpf_this_cpu_ptr bpf_get_current_task_btf, bpf_ktime_get_coarse_ns, bpf_for_each_map_elem, bpf_snprintf, bpf_timer_init, bpf_timer_set_callback, bpf_timer_timer_start, bpf_timer_start bpf_timer_cancel, bpf_task_pt_regs, bpf_skc_to_unix_sock

lirc_mode2

지원되지 않음

sk_reuseport

bpf_map_lookup_elem, bpf_map_update_elem, bpf_map_delete_elem, bpf_ktime_get_get_prandom_u32, bpf_get_smp_processor_id, bpf_map_update_call, bpf_map_update_elem bpf_skb_load_bytes, bpf_get_current_task, bpf_get_numa_node_id, bpf_get_socket_cookie, bpf_skb_load_bytes_relative, bpf_sk_sk_select_reuseport, bpf_map_push_elem, bpf_sk_load_bytes_elem bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, bpf_probe_user, bpf_probe_read_kernel, bpf_probe_read_user, bpf_probe_user_str, bpf_probe_user bpf_probe_read_kernel_str, bpf_jiffies64, bpf_ktime_get_boot_ns, bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_reserve bpf_ringbuf_query, bpf_snprintf_btf, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_get_current_task_btf, bpf_ktime_coarse_ns, bpf_for_each_map_elem, bpf_per_cpu_ptr bpf_snprintf, bpf_timer_init, bpf_timer_callback, bpf_timer_start, bpf_timer_cancel, bpf_task_pt_regs

flow_dissector

bpf_map_lookup_elem, bpf_map_update_elem, bpf_map_delete_elem, bpf_ktime_get_get_prandom_u32, bpf_get_smp_processor_id, bpf_map_update_call, bpf_map_update_elem bpf_skb_load_bytes, bpf_get_current_task, bpf_get_numa_node_id, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_peek_peek_lock, bpf_spin_lock, bpf_get_numa_node_id, bpf_map_pop_elem bpf_spin_unlock, bpf_probe_read_user, bpf_probe_read_user_str, bpf_probe_kernel_str, bpf_jiffies64, bpf_ktime_get_boot_ns bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_query, bpf_skc_to_tcp6_sock, bpf_skc_to_tcp_sock bpf_skc_to_tcp_timewait_sock, bpf_skc_to_tcp_request_sock, bpf_skc_to_udp6_sock, bpf_snprintf_stf, bpf_per_cpu_ptr, bpf_this_cpu_ptr bpf_get_current_task_btf, bpf_ktime_get_coarse_ns, bpf_for_each_map_elem, bpf_snprintf, bpf_timer_init, bpf_timer_set_callback, bpf_timer_timer_start, bpf_timer_start bpf_timer_cancel, bpf_task_pt_regs, bpf_skc_to_unix_sock

cgroup_sysctl

bpf_map_lookup_elem, bpf_map_update_elem, bpf_map_delete_elem, bpf_ktime_get_get_prandom_u32, bpf_get_smp_processor_id, bpf_map_update_call, bpf_map_update_elem bpf_get_current_uid_gid, bpf_perf_event_output, bpf_get_current_task, bpf_get_numa_node_id, bpf_get_current_cgroup_id, bpf_get_current_cgroup_id, bpf_get_local_storage, bpf_map_ush_elem bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, bpf_sysctl_get_name, bpf_sysctl_current_value, bpf_sysctl_get_new_value, bpf_sysctl_get_new_value, bpf_sysctl_set_set_new_value, bpf_strtol, bpf_strtoul, bpf_probe_user, bpf_probe_kernel, bpf_probe_user_str, bpf_probe_read_str, bpf_probe_read_str, bpf_probe_kernel, bpf_probe_kernel bpf_jiffies64, bpf_ktime_boot_ns, bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_query, bpf_snprint_bf bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_get_task_btf, bpf_ktime_get_coarse_ns, bpf_for_each_map_elem, bpf_snprintf_snprintf_timer_init bpf_timer_set_callback, bpf_timer_start, bpf_timer_cancel, bpf_task_pt_regs

raw_tracepoint_writable

bpf_map_lookup_elem, bpf_map_update_elem, bpf_map_delete_elem, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call, bpf_get_current_tgid, bpf_get_current_uid_gid, bpf_get_current_comm, bpf_perf_event_read, bpf_perf_event_output, bpf_get_get_stackid, bpf_get_tgid bpf_get_current_task, bpf_current_task_under_cgroup, bpf_get_numa_node_id, bpf_probe_read_str, bpf_perf_event_read_value, bpf_get_stack, bpf_get_current_cgroup_id, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_unlock, bpf_send_signal, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_send_signal_thread, bpf_jiffies64, bpf_get_ns_current_pid_tgid, bpf_get_current_current_cgroup_id bpf_ktime_get_boot_ns, bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_discard, bpf_ringbuf_discard, bpf_get_task_stack, bpf_snprint_bf bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_task_storage_get, bpf_get_current_task_btf, bpf_for_each_map_elem, bpf_snprintf, bpf_timer_init, bpf_timer_set_callback, bpf_timer_cancel, bpf_get_func_ip, bpf_task_pt_regs, bpf_get_task_pt_regs, bpf_get_branch_snapshot

cgroup_sockopt

bpf_map_lookup_elem, bpf_map_update_elem, bpf_map_delete_elem, bpf_ktime_get_get_prandom_u32, bpf_get_smp_processor_id, bpf_map_update_call, bpf_map_update_elem bpf_get_current_uid_gid, bpf_perf_event_output, bpf_get_current_task, bpf_get_numa_node_id, bpf_get_current_cgroup_id, bpf_get_current_cgroup_id, bpf_get_local_storage, bpf_map_ush_elem bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, bpf_tcp_sock, bpf_sk_storage_get, bpf_sk_storage_delete, bpf_probe_read_user, bpf_spin_unlock bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_kernel_str, bpf_get_netns_cookie, bpf_ktime_boot_ns, bpf_ringf_buf_output, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_query, bpf_snprintf_btf, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_this_cpu_ptr, bpf_get_current_task_btf, bpf_for_each_map_elem, bpf_snprintf_timer_init, bpf_timer_set_callback, bpf_timer_start, bpf_timer_cancel, bpf_timer_cancel bpf_task_pt_regs

tracing

지원되지 않음

struct_ops

bpf_map_lookup_elem, bpf_map_update_elem, bpf_map_delete_elem, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_skb_store_bytes, bpf_l3_csum_replace, bpf_l4_csum_replace, bpf_clone_redirect, bpf_get_current_tgid, bpf_get_current_current_uid_gid, bpf_get_current_current_uid_gid, bpf_l4_csum_replace_replace bpf_get_current_comm, bpf_get_cgroup_classid, bpf_skb_vlan_push, bpf_skb_vlan_pop, bpf_skb_get_tunnel_key, bpf_skb_set_tunnel_key, bpf_skb_set_tunnel_key, bpf_perf_event_read, bpf_redirect, bpf_get_route_realm, bpf_perf_event_output, bpf_skb_load_bytes, bpf_csum_diff, bpf_csum_diff, bpf_skb_tunn_opt bpf_skb_set_tunnel_opt, bpf_skb_change_proto, bpf_skb_change_type, bpf_skb_under_cgroup, bpf_get_hash_recalc, bpf_get_get_current_task, bpf_current_task_under_cgroup, bpf_skb_change_tail, bpf_skb_data, bpf_csum_update, bpf_set_hash_invalid, bpf_get_node_id, bpf_skb_change_head, bpf_skb_change_head, bpf_xdp_adjust_head, bpf_probe_read_str, bpf_get_socket_cookie, bpf_set_socket_uid, bpf_set_setsockopt, bpf_skb_adjust_room, bpf_skb_adjust_map, bpf_redirect_map bpf_sk_redirect_map, bpf_sock_map_update, bpf_xdp_adjust_meta, bpf_perf_event_read_value, bpf_perf_prog_value, bpf_getsockopt, bpf_override_return, bpf_sock_ops_cb_flags_set, bpf_msg_redirect_map, bpf_msg_apply_bytes, bpf_msg_bytes, bpf_msg_pull_data, bpf_bind, bpf_xdp_adjust_tail, bpf_skb_get_xfrm_state, bpf_get_stack, bpf_skb_load_bytes_relative, bpf_sock_hash, bpf_sock_hash, bpf_msg_hash, bpf_sk_redirect_hash, bpf_sk_redirect_hash, bpf_sk_redirect_hash bpf_lwt_push_encap, bpf_lwt_seg6_store_bytes, bpf_lwt_seg6_srh, bpf_lwt_seg6_action, bpf_rc_repeat, bpf_rc_rc_keydown, bpf_lwt_seg bpf_skb_cgroup_id, bpf_get_current_cgroup_id, bpf_get_local_storage, bpf_sk_select_select_reuseport, bpf_skb_ancestor_cgroup_id, bpf_sk_lookup_tcp, bpf_sk_lookup_udp, bpf_sk_lookup_udp bpf_sk_release, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_msg_push_data, bpf_msg_pop_data, bpf_rc_pointer_rel, bpf_spin_lock, bpf_spin_unlock, bpf_sk_fullsock, bpf_skb_ecn_set_ce, bpf_get_listener_sock, bpf_skc_lookup_tcp, bpf_skc_lookup_tcp bpf_tcp_check_syncookie, bpf_sysctl_get_name, bpf_sysctl_get_value, bpf_sysctl_get_value, bpf_sysctl_set_value, bpf_strtol, bpf_strtol, bpf_strtol, bpf_strtoul, bpf_sysctl_get_value bpf_sk_storage_get, bpf_sk_storage_delete, bpf_send_signal, bpf_tcp_gen_syncookie, bpf_skb_output, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user bpf_probe_read_kernel_str, bpf_tcp_send_ack, bpf_send_signal_thread, bpf_read_branch_ recordss, bpf_get_ns_current_pid_tgid, bpf_xdp_output bpf_get_netns_cookie, bpf_get_current_ancestor_cgroup_id, bpf_ktime_get_boot_ns, bpf_seq_printf, bpf_seq_write, bpf_seq_cgroup_id, bpf_sk_sk_ancestor_cgroup_id, bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_discard, bpf_ringbuf_discard, bpf_ringbuf_query, bpf_csum_level, bpf_skc_to_tcp6_sock, bpf_skc_to_tcp_to_tcp_timewait_sock, bpf_skc_to_tcp_request_sock, bpf_skc_to_udp6_sock, bpf_skc_to_udp6_sock, bpf_skc_to_tcp_sock bpf_get_task_stack, bpf_load_hdr_opt, bpf_store_hdr_opt, bpf_inode_storage_get, bpf_inode_storage_delete, bpf_d_path, bpf_copy_from_from_user bpf_snprintf_btf, bpf_seq_printf_btf, bpf_skb_cgroup_classid, bpf_redirect_neigh, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_this_cpu_ptr, bpf_se_redirect_peer, bpf_seq_btf bpf_task_storage_get, bpf_task_storage_delete, bpf_get_current_task_btf, bpf_bprm_opts_set, bpf_ktime_get_coarse_ns, bpf_ima_inode_hash, bpf_sock_from_from_file bpf_check_mtu, bpf_for_each_map_elem, bpf_snprintf, bpf_sys_bpf, bpf_btf_name_kind, bpf_sys_close, bpf_timer_init, bpf_timer_set_call, bpf_timer_set_call, bpf_timer_call bpf_timer_start, bpf_timer_cancel, bpf_get_func_ip, bpf_get_attach_cookie, bpf_task_pt_regs, bpf_get_branch_snapshot, bpf_skc_to_unix_sock, bpf_kallsyms_lookup_name

ext

지원되지 않음

lsm

지원되지 않음

sk_lookup

bpf_map_lookup_elem, bpf_map_update_elem, bpf_map_delete_elem, bpf_ktime_get_get_prandom_u32, bpf_get_smp_processor_id, bpf_map_update_call, bpf_map_update_elem bpf_perf_event_output, bpf_get_current_task, bpf_get_numa_node_id, bpf_sk_release, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_map_pop_elem, bpf_map_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, bpf_probe_read_user, bpf_probe_read_user_str, bpf_probe_str, bpf_kernel_str, bpf_jiffies64, bpf_jiffies64 bpf_ktime_get_boot_ns, bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_discard, bpf_ringbuf_query, bpf_skc_to_tcp6_sock, bpf_skc_to_tcp_sock, bpf_skc_to_tcp_timewait_sock, bpf_skc_to_tcp_request_sock, bpf_skc_to_udp6_sock, bpf_snprintf_btf, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_get_task_btf, bpf_ktime_get_coarse_ns, bpf_for_each_map_elem, bpf_snprintf_snprintf_timer_init bpf_timer_set_callback, bpf_timer_start, bpf_timer_cancel, bpf_task_pt_regs, bpf_skc_to_unix_sock

표 7.3. 사용 가능한 맵 유형

맵 유형Available

hash

제공됨

array

제공됨

prog_array

제공됨

perf_event_array

제공됨

percpu_hash

제공됨

percpu_array

제공됨

stack_trace

제공됨

cgroup_array

제공됨

lru_hash

제공됨

lru_percpu_hash

제공됨

lpm_trie

제공됨

array_of_maps

제공됨

hash_of_maps

제공됨

devmap

제공됨

sockmap

제공됨

cpumap

제공됨

xskmap

제공됨

sockhash

제공됨

cgroup_storage

제공됨

reuseport_sockarray

제공됨

percpu_cgroup_storage

제공됨

제공됨

스택

제공됨

sk_storage

제공됨

devmap_hash

제공됨

struct_ops

제공되지 않음

ringbuf

제공됨

inode_storage

제공됨

task_storage

제공됨

8장. 버그 수정

이 부분에서는 사용자에게 중요한 영향을 미치는 Red Hat Enterprise Linux 9.1에서 수정된 버그에 대해 설명합니다.

8.1. 설치 프로그램 및 이미지 생성

설치 프로그램이 더 이상 이전 버전의 패키지를 설치하지 않음

이전에는 설치 프로세스 중에 설치 프로그램이 DNF 구성 파일을 올바르게 로드하지 않았습니다. 결과적으로 설치 프로그램은 RPM 트랜잭션에 이전 버전의 선택된 패키지를 설치하는 경우가 있었습니다.

이 버그는 수정되었으며 최신 버전의 패키지만 설치 리포지토리에서 설치됩니다. 최신 버전의 패키지를 설치할 수 없는 경우 설치가 예상대로 실패합니다.

(BZ#2053710)

stage2에서 네트워크 구성을 변경해도 Anaconda 설치에 성공

이전 버전에서는 rd.live.ram 부팅 인수를 사용할 때 Anaconda에서 initramfs 에서 설치 이미지를 메모리로 가져오는 데 사용되는 NFS 마운트 지점을 마운트 해제하지 않았습니다. 결과적으로 2단계에서 네트워크 구성이 변경된 경우 설치 프로세스가 응답하지 않거나 시간 초과 오류가 발생할 수 있었습니다.

이 문제를 해결하기 위해 initramfs 전에 initramfs에서 설치 이미지를 가져오는 데 사용되는 NFS 마운트 지점을 메모리로 마운트 해제합니다. 결과적으로 설치 프로세스가 중단되지 않고 완료됩니다.

(BZ#2082132)

8.2. 서브스크립션 관리

이제 virt-who 가 FIPS 모드에서 ESX 서버에 올바르게 연결

이전에는 FIPS 모드에서 RHEL 9 시스템에서 virt-who 유틸리티를 사용할 때 virt-who 를 ESX 서버에 연결할 수 없었습니다. 그 결과 virt-who 는 ESX 서버를 보고하지 않았으며, 이를 위해 구성된 경우에도 다음 오류 메시지를 기록했습니다.

ValueError: [digital envelope routines] unsupported

이번 업데이트를 통해 virt-who 가 FIPS 모드를 올바르게 처리하도록 수정되었으며 설명된 문제가 더 이상 발생하지 않습니다.

(BZ#2054504)

8.3. 소프트웨어 관리

DNF에서 Reason Change Action 유형의 항목이 포함된 트랜잭션을 올바르게 롤백합니다.

이전에는 Reason Change Action 유형의 항목이 포함된 트랜잭션에서 dnf history rollback 명령을 실행하면 실패했습니다. 이번 업데이트를 통해 문제가 해결되었으며 dnf history rollback 이 예상대로 작동합니다.

(BZ#2053014)

8.4. 쉘 및 명령행 툴

ReaR의 vi 명령은 더 이상 무한 루프를 생성하지 않습니다.

이전에는 ReaR 복구 시스템에 vi 실행 파일을 포함하지 않았으며 /bin/vi 스크립트만 포함되었습니다. 그 결과 /bin/vi 스크립트에서 호출 시 무한 루프가 발생했습니다. 이번 업데이트를 통해 ReaR 복구 시스템에는 실제 vi 실행 파일 /usr/libexec/vi 가 포함되어 있으며 vi 명령을 실행하면 더 이상 끝없는 루프가 발생하지 않습니다.

(BZ#2097437)

PXE 출력 방법을 사용한 후 rsync OUTPUT_URL 위치에 출력 파일을 더 이상 저장하지 못했습니다.

이전에는 OUTPUT=PXEBACKUP=RSYNC 옵션이 있는 OUTPUT_URL 변수 처리가 제거되었습니다. 결과적으로 OUTPUT_URL 에 rsync 위치를 사용할 때 ReaR은 initrd 및 커널 파일을 이 위치에 복사하지 못했지만 BACKUP_URL 에서 지정한 위치에 업로드했습니다. 이번 업데이트를 통해 RHEL 8.4 및 이전 릴리스의 동작이 복원됩니다. rsync를 사용하여 지정된 OUTPUT_URL 대상에 필요한 파일을 다시 생성합니다.

(BZ#2115958)

/etc/fstab에서 UUID를 업데이트하지 않는 경우 더 이상 오류 메시지가 표시되지 않습니다.

이전에는 UUID가 다른 경우 새로 생성된 파티션의 UUID와 일치하도록 /etc/fstab 에서 UUID(Universally unique identifier)를 업데이트하지 못한 경우 복구 중에 ReaR이 오류 메시지를 표시하지 않았습니다. 복구 이미지가 백업과 동기화되지 않은 경우 이 문제가 발생할 수 있었습니다. 이번 업데이트를 통해 복원된 기본 시스템 파일이 다시 생성된 시스템과 일치하지 않는 경우 복구 중에 오류 메시지가 발생합니다.

(BZ#2083272)

이전 버전에서는 NetBackup 버전 9를 사용하여 시스템 복원을 지원

이전에는 NetBackup (NBU) 방법과 NetBackup 버전 9 이상을 사용하여 시스템을 복원하지 못했습니다. 라이브러리 및 기타 파일이 누락되어 실패했습니다. 이번 업데이트를 통해 NBU_LD_LIBRARY_PATH 변수에 필요한 라이브러리 경로가 포함되어 있으며 복구 시스템은 이제 필요한 파일을 통합하며 ReaR은 NetBackup 메서드를 사용할 수 있습니다.

(BZ#2120736)

Rear no longer displays a false error message about missing symlink targets

이전 버전에서는 ReaR에 복구 이미지를 생성할 때 /usr/lib/modules/ 에서 빌드 의 symlink 대상 및 소스 심볼릭 링크에 대한 잘못된 오류 메시지가 표시되었습니다. 이 상황은 무해했으며 오류 메시지를 무시해도 됩니다. 이번 업데이트를 통해 ReaR은 이 상황에서 symlink 대상에 대한 잘못된 오류 메시지를 보고하지 않습니다.

(BZ#2119501)

매개 변수가 없는 X 작업이 더 이상 CIM Client가 충돌하지 않음

x 작업은 메서드를 호출하고 XML을 반환하며, 매개 변수는 호출된 메서드의 이름을 지정합니다. 이전 버전에서는 명령줄 sblim-wbemcli CIM(Common Information Model) 클라이언트가 추가 매개 변수 없이 x 작업을 실행할 때 충돌했습니다. 이번 업데이트를 통해 호출된 메서드의 이름을 정의하는 매개변수가 필요합니다. 이 매개변수 없이x 작업을 호출하면 오류 메시지가 발생하고 CIM 클라이언트가 더 이상 충돌하지 않습니다.

(BZ#2083577)

free 명령은 사용된 메모리에 새로운 계산 방법을 사용합니다.

이전 버전에서는 사용 가능한 유틸리티에서 사용된 메모리를 계산하여 총 메모리에서 사용 가능한 공간, 캐시 공간 및 버퍼 공간을 뺀되었습니다. 그 결과 free 유틸리티에서 공유 메모리를 계산하지 않았기 때문에 사용된 메모리 값과 다른 도구의 결과를 비교할 때 불일치가 발생했습니다. 이번 업데이트를 통해 free 메모리 상태를 지우고 회수할 수 없는 캐시를 고려하는 새 계산 방법을 사용합니다. 사용된 메모리는 이제 사용할 수 없는 메모리이며 가상 메모리에 있는 tmpfs 오브젝트도 포함합니다.

(BZ#2003033)

8.5. 인프라 서비스

바인딩되지 않은 SHA-1 기반 RSA 서명을 검증하지 않음

이전에는 OpenSSL이 DEFAULT 시스템 전체의 암호화 정책에서 SHA-1 기반 RSA 서명의 유효성을 검사하지 않았습니다. 그 결과 Unbound가 이러한 서명을 검증하려고 하면 OpenSSL의 오류로 인해 해결이 실패했습니다. 이번 업데이트를 통해 Unbound는 모든 RSA/SHA1(algorithm 번호 5) 및 RSASHA1-NSEC3-SHA1(알고리타 번호 7) 서명의 유효성 검사를 비활성화합니다. 이렇게 하면 전체 시스템 암호화 정책에서 결과가 안전하지 않습니다.

(BZ#2071543)

8.6. 보안

OpenSSH 키 생성은 FIPS 호환 인터페이스를 사용합니다.

OpenSSH에서 사용하는 OpenSSL 암호화 라이브러리는 legacy 및 modern의 두 가지 인터페이스를 제공합니다. 이전에는 OpenSSH는 FIPS (Federal Information Processing Standards) 요구 사항을 준수하지 않은 키 생성에 레거시 인터페이스를 사용했습니다. 이번 업데이트를 통해 ssh-keygen 유틸리티는 저급 FIPS 호환 API 대신 FIPS 호환 API를 사용합니다. 결과적으로 OpenSSH 키 생성은 FIPS와 호환됩니다.

(BZ#2087121)

FIPS 모드에서 FIPS에 의해 승인되지 않은 암호화는 더 이상 OpenSSL에서 작동하지 않습니다.

이전에는 FIPS가 승인되지 않은 암호화가 시스템 설정에 관계없이 OpenSSL 툴킷에서 작동했습니다. 따라서 시스템을 FIPS 모드에서 실행할 때 비활성화해야하는 암호화 알고리즘 및 암호를 사용할 수 있습니다. 예를 들면 다음과 같습니다.

  • RSA 키 교환을 사용하는 TLS 암호화 제품군이 작동했습니다.
  • PKCS #1 및 SSLv23 패딩을 사용하거나 2048 비트보다 짧은 키를 사용하더라도 공개 키 암호화 및 암호 해독에 대한 RSA 기반 알고리즘은 작동했습니다.

이번 업데이트에서는 FIPS에 의해 승인되지 않은 암호화가 FIPS 모드에서 더 이상 OpenSSL에서 작동하지 않도록 할 수 있습니다.

(BZ#2053289)

OpenSSL에서 제거된 임의의 곡선 지정

이전에는 명시적 곡선 매개 변수 안전 검사가 불완전했습니다. 결과적으로 RHEL에서 매우 큰 p 값이 작동하는 임의의 elliptic 곡선이 있습니다. 이번 업데이트를 통해 이제 명시적 곡선 매개 변수가 잘 알려진 곡선 중 하나와 일치하는지 확인합니다. 그 결과 명시적 곡선 매개변수를 사용하여 임의의 곡선을 지정하는 옵션이 OpenSSL에서 제거되었습니다. 임의의 명시적 곡선을 지정하는 매개변수 파일, 개인 키, 공개 키 및 인증서는 더 이상 OpenSSL에서 작동하지 않습니다. 명시적 곡선 매개 변수를 사용하여 P-224, P-256, P-384, P-521 및 secp256k1 과 같은 잘 알려진 곡선 중 하나를 지정하는 것은 비FIPS 모드에서 계속 지원됩니다.

(BZ#2066412)

OpenSSL req 는 개인 키 암호화에 AES-256-CBC 사용

이전에는 OpenSSL req 툴이 3DES 알고리즘을 사용하여 개인 키 파일을 암호화했습니다. 3DES 알고리즘은 암호화 모듈에 대한 현재 FIPS 140 표준에서 안전하지 않고 허용되지 않기 때문에 req 는 대신 AES-256-CBC 알고리즘을 사용하여 암호화된 개인 키 파일을 생성합니다. 전체 PKCS#8 파일 형식은 변경되지 않습니다.

(BZ#2063947)

FFDHE를 사용할 때 OpenSSL이 더 이상 연결되지 않음

이전 버전에서는 FFDHE(finite-field-based Diffie-Hellman ephemeral) 키 교환 메커니즘을 사용하는 TLS 연결이 클라이언트에서 FFDHE 키 공유를 처리할 때 실패하는 경우가 있었습니다. 이는 OpenSSL에서 지나치게 제한적인 검사로 인해 발생했습니다. 그 결과 OpenSSL 서버는 internal_error 경고와의 연결을 중단했습니다. 이번 업데이트를 통해 OpenSSL은 작지만 호환되는 클라이언트 키 공유를 사용할 수 있습니다. 결과적으로 FFDHE 키 교환을 사용할 때 OpenSSL과 다른 구현 간의 연결이 무작위로 중단되지 않습니다.

(BZ#2004915)

이제 OpenSSL 기반 애플리케이션이rkish 로케일에서 올바르게 작동합니다.

OpenSSL 라이브러리에서 대소문자를 구분하지 않는 문자열 비교 기능을 사용하기 때문에 OpenSSL 기반 애플리케이션이rkish 로케일에서 올바르게 작동하지 않았으며, 검사 생략하면 이 로케일을 사용하는 애플리케이션이 충돌했습니다. 이번 업데이트에서는 대소문자를 구분하지 않는 문자열 비교를 위해 POSIX(Portable Operating System Interface) 로케일을 사용하는 패치를 제공합니다. 결과적으로 curl과 같은 OpenSSL 기반 애플리케이션은rkish 로케일과 함께 올바르게 작동합니다.

(BZ#2071631)

SELinux 정책에 추가된 insights-client 에 대한 권한

새로운 insights-client 서비스에는 이전 selinux-policy 버전에 포함되지 않은 권한이 필요합니다. 그 결과 insights-client 의 일부 구성 요소가 제대로 작동하지 않고 AVC(액세스 벡터 캐시) 오류 메시지가 보고되었습니다. 이번 업데이트에서는 SELinux 정책에 새 권한이 추가되었습니다. 결과적으로 Insights-client 는 AVC 오류를 보고하지 않고 올바르게 실행됩니다.

(BZ#2081425, BZ#2077377, BZ#2087765, BZ#2107363)

SELinux staff_u 사용자가 더 이상 unconfined_r로 잘못 전환할 수 없음

이전에는 secure_mode 부울이 활성화되면 staff_u 사용자가 예상되지 않은 unconfined_r 역할로 전환할 수 있었습니다. 결과적으로 staff_u 사용자는 시스템의 보안에 영향을 미치는 권한 있는 작업을 수행할 수 있었습니다. 이번 업데이트를 통해 SELinux 정책이 수정되었으며 staff_u 사용자가 더 이상 unconfined_r 로 잘못 전환할 수 없습니다.

(BZ#2076681)

사용 가능한 메모리를 확인할 때 OpenSCAP에서 더 이상 잘못된 오류를 생성하지 않음

이전 버전에서는 일부 XCCDF 규칙을 평가할 때 OpenSCAP에서 사용 가능한 메모리를 확인하지 못하고 잘못된 검사 결과를 생성하는 오류 메시지가 잘못 표시되었습니다. 예를 들어 accounts_user_dot_no_world_writable_ programs ,accounts_ user_dot_group_ownershipaccounts_users_home_files_permissions 에 대해 이러한 문제가 발생했습니다. 이번 업데이트를 통해 오류 처리 버그가 수정되어 실제 실패에만 오류 메시지가 표시됩니다.

(BZ#2109485)

fagenrules --load 가 올바르게 작동합니다.

이전에는 fapolicyd 서비스에서 신호가 올바르게 처리되지 않았습니다(SIGHUP). 그 결과 SIGHUP을 수신한 후 fapolicyd 가 종료되고 fagenrules --load 명령이 제대로 작동하지 않았습니다. 이번 업데이트에서는 이 문제에 대한 수정 사항이 포함되어 있습니다. 결과적으로 fagenrules --load 가 이제 올바르게 작동하며 규칙 업데이트에 더 이상 fapolicyd 를 수동으로 다시 시작할 필요가 없습니다.

(BZ#2070655)

8.7. 네트워킹

이제 인스턴스에서 nm-cloud-setup 서비스를 시작한 후도 기본 IP 주소가 유지됩니다.

이전에는 IRQ 클라우드에서 인스턴스를 시작한 후 nm-cloud-setup 서비스에서 여러 IPv4 주소의 경우 잘못된 IP 주소를 기본 IP 주소로 구성했습니다. 그 결과 발신 연결에 대한 IPv4 소스 주소 선택에 영향을 미쳤습니다. 이번 업데이트를 통해 보조 IP 주소를 수동으로 구성한 후 NetworkManager 패키지는 기본 IP 주소 메타데이터에서 기본 IP 주소를 가져오고 기본 및 보조 IP 주소를 올바르게 구성합니다.

(BZ#2079849)

NetworkManager 유틸리티는 수동으로 추가된 IPv6 주소의 올바른 순서를 적용합니다.

일반적으로 IPv6 주소 순서는 소스 주소 선택 우선 순위에 영향을 미칩니다. 예를 들어 발신 TCP 연결을 수행할 때입니다. 이전에는 수동,dhcpv6autoconf6 방법을 통해 추가된 IPv6 주소의 상대 우선 순위가 올바르지 않았습니다. 이번 업데이트에서는 문제를 수정하고 순서 우선 순위는 이제 이 논리를 반영합니다. manual > dhcpv6 > autoconf6. 또한 ipv6.addresses 설정 아래의 주소 순서는 먼저 추가된 주소가 가장 높은 우선 순위를 갖도록 변경되었습니다.

(BZ#2097293)

8.8. 커널

네트워크 소켓 태깅이 다시 작동합니다.

이전에는 net_prio 또는 net_cls 와 같이 cgroup v2와 동일한 기존 cgroup v1 컨트롤러가 혼합 cgroup v2 환경의 다른 cgroup v2 컨트롤러와 함께 마운트될 때 cgroup v2 소켓 태그를 방해했습니다. 그 결과 net_prio 또는 net_cls v1 컨트롤러를 사용하는 혼합 cgroup v1/v2 환경에서 cgroup v2를 사용하여 적절한 네트워크 소켓 태그를 비활성화했습니다. 이번 업데이트에서는 이러한 제한을 제거하여 혼합 cgroup v1/v2 환경 네트워크 소켓 태그를 사용할 수 있습니다.

(BZ#2060150)

kexec-tools 패키지에서 기본 crashkernel 메모리 예약 값 지원

kexec-tools 패키지에는 이제 기본 crashkernel 메모리 예약 값이 유지됩니다. kdump 서비스는 기본값을 사용하여 각 커널에 크래시 커널 메모리를 예약합니다. 이 구현을 통해 시스템의 사용 가능한 메모리가 4GB 미만인 경우 kdump 의 메모리 할당이 향상됩니다.

기본 crashkernel 값으로 예약된 메모리가 시스템에 충분하지 않은 경우 kdumpctl estimate 명령을 사용하여 충돌을 트리거하지 않고 예상 값을 얻을 수 있습니다. 예상 crashkernel= 값은 정확하지 않을 수 있으며 적절한 crashkernel= 값을 설정하는 참조로 사용될 수 있습니다.

(BZ#1959203)

시스템이 동적 LPAR 작업을 성공적으로 실행할 수 있음

이전에는 이러한 조건 중 하나가 충족되면 HMC(Hardware Management Console)에서 동적 논리 파티션(DLPAR) 작업을 실행할 수 없었습니다.

  • 무결성 모드에서 커널 잠금 메커니즘을 암시적으로 활성화하는 Secure Boot 기능이 활성화되었습니다.
  • 커널 잠금 메커니즘은 무결성 또는 기밀성 모드에서 수동으로 활성화되었습니다.

RHEL 9에서는 커널 잠금이 완전히 차단되어 /dev/mem 문자 장치 파일을 통해 액세스할 수 있는 시스템 메모리에 대한 RTAS(Run Time Abstraction Services) 액세스가 완전히 차단되었습니다. 여러 RTAS 호출이 필요한 경우 /dev/mem 에 대한 쓰기 액세스가 제대로 작동합니다. 그 결과 RTAS 호출이 올바르게 실행되지 않아 사용자에게 다음과 같은 오류 메시지가 표시되었습니다.

HSCL2957 Either there is currently no RMC connection between the management console and the partition <LPAR name> or the partition does not support dynamic partitioning operations. Verify the network setup on the management console and the partition and ensure that any firewall authentication between the management console and the partition has occurred. Run the management console diagrmc command to identify problems that might be causing no RMC connection.

이번 업데이트를 통해 잠길 수 있는 매우 좁은 PowerPC 관련 예외를 제공하여 문제가 해결되었습니다. 예외는 RTAS가 필요한 /dev/mem 영역에 액세스할 수 있도록 허용합니다. 따라서 설명된 시나리오에서는 문제가 더 이상 나타나지 않습니다.

(BZ#2046472)

링 버퍼 값을 rx 에서 max로 설정한 후 커널 경고 없음

커널은 등록 취소 취소, 처리 중 경고 메시지가 생성되었지만 이미 초기화된 구조를 사용하여 클린 입력을 예상하는 내부 함수가 호출되었을 때 수정 드라이버 를 생성했습니다. 이번 업데이트에서는 구조를 다시 등록하기 전에 구조를 다시 초기화하여 문제가 해결되었습니다.

(BZ#2054379)

8.9. 부트 로더

grubby 에서 향후 커널에 인수를 전달

최신 버전의 커널을 설치할 때 grubby 툴에서 이전 커널 버전의 커널 명령줄 인수를 전달하지 않았습니다. 결과적으로 GRUB 부트 로더는 사용자 설정을 무시했습니다. 이번 수정으로 새 커널 버전을 설치한 후 사용자 설정이 유지됩니다.

(BZ#1978226)

8.10. 파일 시스템 및 스토리지

FlexVolume 항목은 더 이상 저널 쓰기를 중지하지 않습니다.

이전 버전에서는 device-mapper suspend 작업 중 VDO 드라이버에서 장치 작업을 다시 시작한 후에도 일부 저널 블록은 일부 메타데이터 업데이트가 이미 완료되었지만 다시 사용하기 전에 일부 메타데이터 업데이트를 기다리는 것으로 표시될 수 있었습니다. 저널이 동일한 물리 블록으로 다시 랩핑하기에 충분한 저널 항목이 생성되면 사용할 수 없었습니다. FlexVolume 쓰기가 중지되어 블록이 사용 가능할 때까지 기다립니다. 이 작업은 발생하지 않습니다. 그 결과 VDO 장치의 일부 작업에 일시 중지 또는 재개 주기가 포함된 경우 일부 저널 업데이트 후 장치는 동결 상태로 유지되었습니다. 저널은 이 장치 상태가 VDO 내의 이전 할당 패턴과 들어오는 쓰기 또는 삭제 패턴에 종속되어 있기 때문에 예측할 수 없었습니다. 이번 업데이트를 통해 스토리지에 데이터를 일시 중지 또는 재개한 후 내부 데이터 구조 상태가 재설정되어 더 이상 잠금이 발생하지 않습니다.

(BZ#2064802)

데이터 장치를 추가하면 더 이상 어설션 실패가 트리거되지 않습니다.

이전 버전에서는 캐시에 장치를 추가할 때 Stratis에서 초기화 후 즉시 캐시를 사용하지 않았습니다. 그 결과 stratisd 서비스에서 사용자가 풀에 추가 데이터 장치를 추가하려고 할 때마다 어설션 실패 메시지를 반환했습니다. 이번 수정을 통해 초기화 직후 캐시가 사용되고 어설션 오류가 발생하지 않습니다.

(BZ#2007018)

암호화된 풀에 새 데이터 장치를 추가할 때 오류 해결

이전에는 사용자가 암호화된 데이터 장치로 암호화된 풀을 초기화할 때마다 --trust-url 옵션으로 지정된 tang 서버에서 Clevis bind 명령을 사용하여, stratisd 는 내부 데이터 구조에서 Clevis tang 구성의 지문 부분을 포함하지 않았습니다. 그 결과 새 데이터 장치를 풀에 추가하려고 할 때 오류가 발생했습니다. 이번 업데이트를 통해 stratisd 의 내부 데이터 구조에는 이제 Clevis tang 구성의 지문 부분이 포함됩니다.

(BZ#2005110)

AMD EPYC 시스템의 Broadcom 이니시에이터에서 NVMe 네임스페이스에 연결하려면 더 이상 기본이 아닌 IOMMU 설정이 필요하지 않습니다.

기본적으로 RHEL 커널은 AMD 기반 플랫폼에서 IOMMU를 활성화합니다. 이전 버전에서는 lpfc 드라이버에서 dead-gather list accessor 매크로를 사용하지 않았습니다. 결과적으로 AMD 프로세서가 있는 특정 서버에는 전송 길이 불일치로 인해 I/O 실패와 같은 NVMe I/O 문제가 발생했습니다.

이번 업데이트를 통해 Broadcom 이니시에이터의 NVMe 네임스페이스에 연결하기 위해 커널 명령줄 옵션을 사용하여 IOMMU를 passthrough 모드로 배치할 필요가 없습니다.

(BZ#2073541)

8.11. 고가용성 및 클러스터

pcsstonith-watchdog-timeout의 값을 검증합니다.

이전에는 stonith-watchdog-timeout 속성을 SBD 구성과 호환되지 않는 값으로 설정할 수 있었습니다. 이로 인해 펜싱 루프가 발생하거나 작업이 완료되지 않은 경우에도 클러스터에서 펜싱 조치를 완료할 수 있습니다. 이번 수정을 통해 pcs 는 잘못된 구성을 방지하기 위해 설정할 때 stonith-watchdog-property 값을 검증합니다.

(BZ#2058246)

pcs 가 새 Booth 티켓을 생성할 때 모드 옵션을 인식

이전에는 사용자가 새 Booth 티켓을 추가할 때 mode 옵션을 지정하면 pcs 에서 잘못된 booth 티켓 옵션 'mode' 오류를 보고했습니다. 이번 수정을 통해 Booth 티켓을 생성할 때 모드 옵션을 지정할 수 있습니다.

(BZ#2058243)

pcs 가 리소스와 stonith 리소스 간 구분

이전에는 일부 pcs 명령에서 리소스와 stonith 리소스를 구분하지 않았습니다. 이를 통해 사용자는 stonith 리소스에 pcs resource 하위 명령을 사용하고 stonith 리소스가 아닌 리소스에 pcs stonith 하위 명령을 사용할 수 있었습니다. 이로 인해 사용자가 혼란하거나 리소스가 잘못될 수 있습니다. 이번 업데이트를 통해 리소스 유형이 일치하지 않는 경우 pcs 에 경고가 표시됩니다.

(BZ#1301204)

8.12. 컴파일러 및 개발 도구

glibc 가 NSS 모듈을 로드한 후 errno를 복원합니다.

이전 버전에서는 마지막 NSS 모듈에서 데이터를 제공하지 않은 경우 getpwent() 와 같은 함수를 사용하여 glibc 의 NSS(Name Service Switch) 구현에서 errno를 잘못 설정했습니다. 결과적으로 이러한ECDHE 함수를 사용하는 애플리케이션이 오류를 잘못 관찰하고 실패했습니다. glibc 는 이제 NSS 모듈을 로드한 후 errno를 복원하므로 이러한 기능을 사용하는 애플리케이션이 더 이상 실패하지 않습니다.

(BZ#2063142)

감사 인터페이스는 이제 x8 레지스터와 AArch64에 대한 NEON 레지스터의 전체 너비를 저장하고 복원합니다.

이전에는 동적 로더의 감사 인터페이스를 구현하는 버그로 인해 프로시저 호출 표준에 비해 AArch64 저장된 레지스터 상태가 불완전했습니다. 이 버그는 수정되었으며 감사 인터페이스는 이제 x8 레지스터와 AArch64 용 NEON 레지스터의 전체 너비를 저장하고 복원합니다. 동적 로더 감사 인터페이스를 사용하는 애플리케이션은 이제 AArch64 에 대한 x8 레지스터를 검사하고 영향을 미칠 수 있습니다. 이 새로운 x8 레지스터를 사용하고 AArch64 에서 NEON 레지스터의 전체 너비에 액세스하려면 새로운 버전의 인터페이스 (LAV_ECDHERRENT)를 사용하려면 감사 모듈을 다시 작성해야 합니다.

(BZ#2003291)

POWER9-optimized strncpy 함수가 더 이상 잘못된 결과를 제공하지 않음

이전에는 POWER9 strncpy 함수가 패딩을 위한 NUL 바이트의 소스로 올바른 레지스터를 사용하지 않았습니다. 그 결과 출력 버퍼에 NUL 패딩 대신 초기화되지 않은 레지스터 콘텐츠가 포함되었습니다. 이번 업데이트를 통해 strncpy 함수가 수정되었으며 출력 버퍼의 끝은 이제 NUL 바이트로 올바르게 채워집니다.

(BZ#2091549)

IBMz15 아키텍처에 설치된 glibc memmem 함수의 Valgrind 덮어쓰기

이전 버전에서는 glibc memmem 함수의 valgrind 재정의가 누락되어 다음과 같은 잘못된 긍정 경고가 발생합니다.

Conditional jump or move depends on uninitialised value(s)

이번 업데이트에는 glibc memmem 함수의 valgrind 덮어쓰기가 포함되어 있으며 결과적으로 IBMz15 아키텍처의 valgrind 아래 실행되는 프로그램에서 memmem 함수를 사용할 때 더 이상 긍정 경고가 발생하지 않습니다.

(BZ#1993976)

8.13. IdM (Identity Management)

ipa user-del --preserve user_login 출력은 더 이상 사용자가 삭제되었음을 표시하지 않습니다.

이전에는 ipa user-del --preserve user_login 명령을 실행하여 사용자 계정을 유지하는 경우 출력에서 Deleted 사용자 "user_login" 메시지를 잘못 반환했습니다. 이번 업데이트를 통해 이제 출력에 Preserved 사용자 "user_login" 이 반환됩니다.

(BZ#2100227)

RHEL 9 Kerberos 클라이언트 - 이기종 KDC 시나리오에서 PKINIT 사용자 인증이 올바르게 작동합니다.

이전에는 RHEL 9 Kerberos 클라이언트에서 Heimdal Kerberos Distribution Center(KDC)에 대해 IdM 사용자의 PKINIT 인증이 실패했습니다. 이 오류는 Kerberos 클라이언트가 RHEL 9에서 SHA-1 알고리즘의 사용 중단 컨텍스트에 필요한 supportedCMSTypes 필드를 지원하지 않기 때문에 발생했습니다.

이번 업데이트를 통해 RHEL 9 Kerberos 클라이언트는 sha512WithRSAEncryption, sha256WithRSAEncryption as supportedCMSTypes 를 비롯한 서명 알고리즘 목록을 Heimdal KDC로 보냅니다. Heimdal KDC는 sha512WithRSAEncryption 을 사용하므로 PKINIT 인증이 올바르게 작동합니다.

(BZ#2068935)

LDAP 그룹 멤버 목록에서 읽을 수 없는 오브젝트 처리

이번 업데이트 이전에는 SSSD에서 LDAP 그룹 멤버 목록에서 읽을 수 없는 오브젝트를 일관되지 않게 처리하여 읽을 수 없는 오브젝트를 유발하거나 특정 상황에서 읽을 수 없는 오브젝트가 무시되었습니다.

이번 업데이트를 통해 SSSD에는 이 동작을 수정하는 새로운 옵션 ldap_ignore_unreadable_references 가 있습니다. ldap_ignore_unreadable_references 옵션이 false 로 설정된 경우 읽을 수 없는 오브젝트로 인해 오류가 발생하고, 읽을 수 없는 오브젝트로 설정되면 읽을 수 없는 오브젝트가 무시됩니다. 기본값은 false 로 설정되고 원래의 일관성 없는 동작으로 인해 업데이트 후 일부 그룹 조회가 실패할 수 있습니다. 이 경우 /etc/sssd/sssd.conf 파일에 있는 해당 [domain/name of the domain] 섹션에 ldap_ignore_unreadable_references = True 를 설정합니다.

이렇게 하면 읽을 수 없는 오브젝트를 일관된 방식으로 처리할 수 있으며 새로운 ldap_ignore_unreadable_references 옵션을 사용하여 동작을 조정할 수 있습니다.

(BZ#2069376)

8.14. 데스크탑

활성화 키로 등록되는 서브스크립션이 수정되었습니다.

이전에는 활성화 키를 사용하여 설정에서 Red Hat 서브스크립션을 등록할 수 없었습니다. 등록 키를 누른 후 설정이 다음 오류를 표시했습니다.

Failed to register system; Failed to RegisterWithActivationKeys: Unknown arguments: dict_keys(['enable_content'])

이번 업데이트를 통해 문제가 해결되었으며 설정에서 예상대로 활성화 키를 사용하여 서브스크립션을 등록할 수 있습니다.

(BZ#2100467)

8.15. 그래픽 인프라

X.org에서 X11URITY 확장을 활성화합니다.

이전에는 X.org 디스플레이 서버에서 X11ECDHEURITY 확장을 제공하지 않았습니다. 그 결과 이 확장을 사용한 애플리케이션이 예기치 않게 종료되었습니다.

이번 업데이트를 통해 X.org를 사용하면 X11ECDHEURITY 확장을 사용할 수 있습니다. 결과적으로 확장 기능을 사용하는 애플리케이션이 이제 예상대로 작동합니다.

(BZ#1894612)

VGA 디스플레이가 있는 Matrox GPU가 예상대로 작동합니다.

이 릴리스 이전에는 다음 시스템 구성을 사용한 경우 디스플레이에 그래픽 출력이 표시되지 않았습니다.

  • Matrox MGA G200 제품군의 GPU
  • VGA 컨트롤러에 연결된 디스플레이
  • UEFI가 레거시 모드로 전환

따라서 이 구성에 RHEL을 사용하거나 설치할 수 없었습니다.

이번 업데이트를 통해 mgag200 드라이버가 크게 다시 작성되었으며 결과적으로 그래픽 출력이 예상대로 작동합니다.

(BZ#2100898)

8.16. 웹 콘솔

웹 콘솔을 사용하여 USB 호스트 장치 제거가 예상대로 작동합니다.

이전에는 USB 장치를 가상 머신(VM)에 연결할 때 USB 장치의 장치 번호와 버스 번호가 VM에 전달된 후 변경되었습니다. 결과적으로 웹 콘솔을 사용하여 이러한 장치를 제거하는 것은 장치 및 버스 번호의 잘못된 상관관계로 인해 실패했습니다. 이번 업데이트를 통해 문제가 해결되어 웹 콘솔을 사용하여 USB 호스트 장치를 제거할 수 있습니다.

(JIRA:RHELPLAN-109067)

웹 콘솔을 사용하여 여러 호스트 장치를 연결하는 기능이 예상대로 작동합니다.

이전에는 웹 콘솔을 사용하여 VM(가상 머신)에 연결할 장치를 여러 개 선택하면 단일 장치만 연결되었으며 나머지 장치는 무시되었습니다. 이번 업데이트에서는 문제가 해결되어 웹 콘솔을 사용하여 여러 호스트 장치를 동시에 연결할 수 있습니다.

(JIRA:RHELPLAN-115603)

8.17. Red Hat Enterprise Linux System Roles

네트워크 RHEL 역할은 구성 파일의 ansible_managed 매개변수 관리

이전에는 Ansible 역할이 네트워크 역할 관리 구성 파일에 올바른 ansible_managed 헤더를 제공할 수 없었습니다. 그 결과 시스템 관리자는 Ansible에서 관리하는 파일에 대해 불명확했습니다. 이번 수정을 통해 관리 파일에 올바른 ansible_managed 헤더가 있으며 시스템 관리자는 관리되는 Ansible 파일을 안정적으로 알 수 있습니다.

(BZ#2065382)

올바른 본딩 모드에 대한 active-backup 을 지원하기 위한 오타가 수정됨

이전에는 active-backup 본딩 모드를 지정하는 동안 InfiniBand 포트를 지원하는 활성_ backup 오타가 있었습니다. 이 오타로 인해 InfiniBand 본딩 포트에 대한 올바른 본딩 모드를 지원하지 못했습니다. 이번 업데이트에서는 본딩 모드를 active-backup 으로 변경하여 오타가 수정되었습니다. 이제 연결이 InfiniBand 본딩 포트를 성공적으로 지원합니다.

(BZ#2065394)

IPRouteUtils.get_route_tables_mapping() 함수에서 공백 시퀀스를 허용합니다.

이전 버전에서는 /etc/iproute2/rt_tables 와 같은 iproute2 라우팅 테이블 데이터베이스의 구문 분석기에서 파일의 항목이 254 의 형식이며 숫자 ID와 이름을 분리한 단일 공백 문자만 있다고 주장했습니다. 그 결과, 파서가 경로 테이블 이름과 테이블 ID 사이의 모든 매핑을 캐시하지 못했기 때문에 사용자는 경로 테이블 이름을 정의하여 경로 테이블에 정적 경로를 추가할 수 없었습니다. 이번 업데이트를 통해 구문 분석기는 테이블 ID와 테이블 이름 사이에 공백 시퀀스를 허용합니다. 결과적으로 구문 분석기가 경로 테이블 이름과 테이블 ID 간의 모든 매핑을 캐시하므로 사용자는 경로 테이블 이름을 정의하여 경로 테이블에 정적 경로를 추가할 수 있습니다.

(BZ#2115886)

이제 forward_port 매개변수에서 stringdict 옵션을 모두 허용합니다.

이전에는 방화벽 RHEL 시스템 역할에서 forward_port 매개변수가 문자열 옵션만 허용했습니다. 그러나 역할 문서에서는 문자열 dict 옵션 모두 지원되었다고 주장했습니다. 그 결과 문서를 읽고 따르는 사용자에게 오류가 발생했습니다. 이 버그는 forward_port 가 두 옵션을 모두 허용하도록 하여 해결되었습니다. 결과적으로 사용자는 문서를 안전하게 따라 포트 전달을 구성할 수 있습니다.

(BZ#2100605)

지표 역할에 따른 구성은 이제 심볼릭 링크를 올바르게 따릅니다.

mssql pcp 패키지가 설치되면 mssql.conf 파일은 /etc/pcp/mssql/ 에 있으며 심볼릭 링크 /var/lib/pcp/pmdas/mssql/mssql.conf 에 의해 대상으로 지정됩니다. 이전 버전에서는 metrics 역할이 mssql.conf 를 구성하는 대신 심볼릭 링크를 덮어 쓰기했습니다. 그 결과 지표 역할을 실행하면 심볼릭 링크가 일반 파일로 변경되었으며 구성에서는 /var/lib/pcp/pmdas/mssql/mssql.conf 파일에만 영향을 미쳤습니다. 이로 인해 심볼릭 링크가 실패했으며 기본 구성 파일 /etc/pcp/mssql/mssql.conf 가 구성의 영향을 받지 않았습니다. 이제 문제가 해결되었으며 심볼릭 링크를 따르는 follow: yes 옵션이 지표 역할에 추가되었습니다. 결과적으로 metrics 역할은 심볼릭 링크를 유지하고 기본 구성 파일을 올바르게 구성합니다.

(BZ#2060523)

kernel_settings configobj 는 관리 호스트에서 사용 가능

이전에는 kernel_settings 역할이 관리 호스트에 python3-configobj 패키지를 설치하지 않았습니다. 결과적으로 이 역할은 configobj Python 모듈을 찾을 수 없다는 오류를 반환했습니다. 이번 수정으로 이 역할을 통해 관리 호스트에 python3-configobj 패키지가 있고 kernel_settings 역할이 예상대로 작동하는지 확인합니다.

(BZ#2060525)

볼륨에 대한 mount_options 매개변수가 볼륨에 유효

이전 버전에서는 매개변수가 볼륨에 유효한 매개변수 목록에서 실수로 제거되었습니다. 그 결과 사용자는 볼륨의 mount_options 매개변수를 설정할 수 없었습니다. 이번 버그 수정을 통해 mount_options 매개변수가 유효한 매개변수 목록에 다시 추가되었으며 오류를 catch하기 위해 코드를 리팩터링했습니다. 결과적으로 스토리지 RHEL 시스템 역할은 볼륨에 대해 mount_options 매개변수를 설정할 수 있습니다.

(BZ#2083376)

스토리지 RHEL 시스템 역할에서 LVM 볼륨의 제거 및 raid0 수준을 올바르게 지원합니다.

이전에 스토리지 RHEL 시스템 역할에서 RAID 레벨이 잘못 보고되고 raid0 은 LVM 볼륨에 지원되지 않습니다. 이제 이 문제가 해결되어 LVM에서 지원하는 모든 RAID 레벨의 LVM 볼륨을 올바르게 생성할 수 있습니다. raid0,raid1,raid4,raid5,raid6,raid10 스트립미러.

(BZ#2083410)

지표 RHEL System Role README 및 문서는 역할의 특정 RHEL 버전에서 지원되는 Redis 및 Grafana 버전을 명확하게 지정합니다.

이전 버전에서는 지원되지 않는 플랫폼에서 Redis 및 Grafana 버전이 지원되지 않는 metrics 역할을 사용하려고 하면 해당 역할이 실패했습니다. 이번 업데이트에서는 어떤 버전의 Redis 및 Grafana가 어떤 역할의 RHEL 버전을 지원하는지 설명서에 대해 설명합니다. 따라서 지원되지 않는 플랫폼에서 지원되지 않는 Redis 및 Grafana 버전을 사용하지 않을 수 있습니다.

(BZ#2100286)

sshsshd RHEL System Roles의 최소 RSA 키 비트 옵션

실수로 짧은 RSA 키를 사용하면 시스템이 공격에 더 취약해질 수 있습니다. 이번 업데이트를 통해 sshsshd RHEL System Roles에서 RequiredRSASize 옵션을 사용하여 OpenSSH 클라이언트 및 서버에 대해 RSA 키 최소 비트 길이를 설정할 수 있습니다.

(BZ#2109998)

추가 Dracut 명령줄 매개변수를 지정할 때 nbde_client RHEL 시스템 역할에서 적절한 간격을 사용합니다.

커널 명령줄 매개변수와 같은 추가 매개변수를 지정할 때 Dracut 프레임워크를 사용하려면 적절한 간격이 필요합니다. 적절한 간격을 사용하여 매개변수를 지정하지 않으면 Dracut은 지정된 추가 매개변수를 커널 명령줄에 추가하지 않을 수 있습니다. 이번 업데이트를 통해 nbde_client RHEL System Role은 애드온 Dracut 구성 파일을 생성할 때 적절한 간격을 사용합니다. 결과적으로 역할은 Dracut 명령줄 매개변수를 올바르게 설정합니다.

(BZ#2115156)

SSSD에 의해 tlog RHEL 시스템 역할이 올바르게 덮어 쓰기

이전에는 tlog RHEL 시스템 역할이 SSSD(System Security Services Daemon) 파일 공급자와 함께 enabled authselect 옵션 with-files-domain 에 의존하여 nsswitch.conf 파일에 올바른 passwd 항목을 설정했습니다. RHEL 9.0에서는 SSSD가 기본적으로 파일 공급자를 암시적으로 활성화하지 않아 SSSD의 tlog-rec-session 쉘 오버레이가 작동하지 않았습니다. 이번 수정으로 tlog 역할이 nsswitch.conf 를 업데이트하여 SSSD에서 tlog-rec-session 이 올바르게 덮어 쓰기되도록 합니다.

(BZ#2071804)

지표 RHEL 시스템 역할은 구성을 업데이트한 후 pmiepmlogger 서비스를 자동으로 다시 시작합니다.

이전에는 구성이 변경된 후 pmiepmlogger 서비스를 재시작하지 않았으며 핸들러 실행을 대기했습니다. 이로 인해 다른 메트릭 서비스와 관련된 오류가 발생했으며, 이로 인해 pmiepmlogger 구성이 런타임 동작에 일치해야 했습니다. 이번 업데이트를 통해 구성 업데이트 직후 pmiepmlogger 를 재시작하고 구성이 종속 지표 서비스의 런타임 동작과 일치하며 올바르게 작동합니다.

(BZ#2100294)

8.18. 가상화

부하가 부족한 경우 가상 머신의 네트워크 트래픽 성능이 더 이상 줄어들지 않음

이전 버전에서는 RHEL 가상 머신의 경우 높은 수준의 네트워크 트래픽을 처리할 때 성능이 저하되었습니다. 기본 코드가 수정되었으며 네트워크 트래픽 성능이 이제 설명된 상황에서 예상대로 작동합니다.

(BZ#1945040)

8.19. 클라우드 환경의 RHEL

Hyper-V VM에 연결된 네트워크 어댑터의 SR-IOV 기능이 안정적으로 작동합니다.

이전에는 SR-IOV(Single-root I/O virtualization)가 활성화된 네트워크 어댑터를 Microsoft Hyper-V 하이퍼바이저에서 실행되는 RHEL 9 가상 머신(VM)에 연결할 때 경우에 따라 SR-IOV 기능이 제대로 작동하지 않았습니다. Hyper-V 특정 메모리 매핑 I/O(MMIO) 할당 코드의 버그가 수정되었으며 이제 Hyper-V VM에서 SR-IOV 기능이 예상대로 작동합니다.

(BZ#2030922)

Azure의 ARM 64 RHEL 9 가상 머신에서 SR-IOV가 더 이상 채택되지 않음

이전에는 SR-IOV 네트워킹 장치는 Microsoft Azure 플랫폼에서 실행되는 ARM 64 RHEL 9(가상 머신)에서 예상보다 지연 시간이 훨씬 높았습니다. 문제가 해결되었으며 영향을 받는 VM이 예상대로 수행됩니다.

(BZ#2068432)

8.20. 컨테이너

podman 시스템 연결 추가podman 이미지 scp 가 더 이상 실패하지 않음

Podman은 RSA 키 교환에 SHA-1 해시를 사용합니다. 이전에는 RSA 키를 사용하는 시스템 간 SSH 연결이 작동했지만 podman system connection addpodman image scp 명령은 RHEL 9의 키 교환이 허용되지 않았기 때문에 동일한 RSA 키를 사용하여 작동하지 않았습니다. 이번 업데이트에서는 문제가 해결되었습니다.

(JIRA:RHELPLAN-121180)

베타 GPG 키로 서명된 컨테이너 이미지를 가져올 수 있습니다.

이전 버전에서는 RHEL 베타 컨테이너 이미지를 가져올 때 Podman이 오류 메시지로 실패했습니다. Error: Source image rejected: None of the signatures were accepted. 현재 빌드가 기본적으로 RHEL 베타 GPG 키를 신뢰하지 않도록 구성되었기 때문에 이미지를 가져오지 못했습니다. 이번 업데이트를 통해 /etc/containers/policy.json 파일은 신뢰할 수 있는 키가 포함된 파일 목록을 허용하는 새 keyPaths 필드를 지원합니다. 이로 인해 GA 및 베타 GPG 키로 서명된 컨테이너 이미지가 기본 구성에서 허용됩니다.

(BZ#2094015)

Podman은 더 이상 컨테이너 "X509: 알 수 없는 기관에서 서명한 인증서"를 가져오지 않습니다.

이전에는 자체 CA 인증서에서 자체 내부 레지스트리를 서명한 경우 호스트 머신으로 인증서를 가져와야했습니다. 그렇지 않으면 오류가 발생합니다.

x509: certificate signed by unknown authority

이번 업데이트에서는 문제가 해결되었습니다.

(BZ#2027576)

dNF 및 YUM이 일치하지 않는 리포지토리 ID로 인해 더 이상 실패하지 않음

이전에는 DNF 및 YUM 리포지토리 ID가 DNF 또는 YUM에서 예상되는 형식과 일치하지 않았습니다. 예를 들어 다음 예제를 실행하면 오류가 발생했습니다.

# podman run -ti ubi8-ubi
# dnf debuginfo-install dnsmasq
...
This system is not registered with an entitlement server. You can use subscription-manager to register.

이번 업데이트에서는 문제가 해결되었습니다. 접미사 --debug-rpms 가 모든 디버그 리포지토리 이름(예: ubi-8-appstream-debug-rpms)에 추가되었으며 접미사 -rpms 도 모든 UBI 리포지토리 이름(예: ubi-8-appstream-rpms)에 추가되었습니다.

자세한 내용은 UBI(Universal Base Images): 이미지, 리포지토리, 패키지 및 소스 코드를 참조하십시오.

(BZ#2120378)

9장. 기술 프리뷰

이 부분에서는 Red Hat Enterprise Linux 9에서 사용 가능한 모든 기술 프리뷰 목록을 제공합니다.

기술 프리뷰 기능에 대한 Red Hat 지원 범위 정보는 기술 프리뷰 기능 지원 범위를 참조하십시오.

9.1. 쉘 및 명령행 툴

64비트 IBM Z 아키텍처에서 기술 프리뷰로 사용 가능

이제 64비트 IBM Z 아키텍처에서 기본 Relax 및 Recover(ReaR) 기능을 기술 프리뷰로 사용할 수 있습니다. IBM Z에 ReaR 복구 이미지를 z/VM 환경에서만 생성할 수 있습니다. 논리 파티션(LPAR) 백업 및 복구는 테스트되지 않았습니다.

현재 사용 가능한 유일한 출력 방법은 IPL(Initial Program Load)입니다. IPL은 zIPL 부트로더와 함께 사용할 수 있는 커널 및 초기 램디스크(initrd)를 생성합니다.

주의

현재 복구 프로세스는 시스템에 연결된 모든 DASD(ECDHE 연결 스토리지 장치)를 다시 포맷합니다. 시스템 스토리지 장치에 중요한 데이터가 있는 경우 시스템 복구를 시도하지 마십시오. 여기에는 복구 환경으로 부팅하는 데 사용된 zIPL 부트로더, ReaR 커널 및 initrd로 준비된 장치도 포함됩니다. 사본을 계속 보관하십시오.

자세한 내용은 64비트 IBM Z 아키텍처에서 ReaR 복구 이미지 사용을 참조하십시오.

(BZ#2046653)

GIMP는 RHEL 9에서 기술 프리뷰로 사용 가능

GIMP(GNU Image Manipulation Program) 2.99.8은 이제 RHEL 9에서 기술 프리뷰로 사용할 수 있습니다. gimp 패키지 버전 2.99.8은 일련의 개선 사항이 있는 시험판 버전이지만 제한된 기능 세트이며 안정성에 대한 보장은 없습니다. 공식 GIMP 3가 릴리스되는 즉시 이 시험판 버전의 업데이트로 RHEL 9에 도입됩니다.

RHEL 9에서는 gimp 를 RPM 패키지로 쉽게 설치할 수 있습니다.

(BZ#2047161)

9.2. 보안

gnutls 에서 KTLS를 기술 프리뷰로 사용

업데이트된 gnutls 패키지에서는 커널 TLS(KTLS)를 사용하여 암호화된 채널에서 데이터 전송을 기술 프리뷰로 가속화할 수 있습니다. KTLS를 활성화하려면 modprobe 명령을 사용하여 tls.ko 커널 모듈을 추가하고 다음 콘텐츠를 사용하여 시스템 전체 암호화 정책에 대한 새 구성 파일 /etc/crypto-policies/local.d/gnutls-ktls.txt 를 생성합니다.

[global]
ktls = true

현재 버전은 TLS KeyUpdate 메시지를 통해 트래픽 키 업데이트를 지원하지 않으므로 AES-GCM 암호화 제품군의 보안에 영향을 미칩니다. 자세한 내용은 RFC 7841 - TLS 1.3 문서를 참조하십시오.

(BZ#2042009)

9.3. 네트워킹

ECDHE VPN은 기술 프리뷰로 사용 가능

Red Hat이 지원되지 않는 기술 프리뷰로 제공하는 Red Hat은 Linux 커널에서 실행되는 고성능 VPN 솔루션입니다. 최신 암호화를 사용하며 다른 VPN 솔루션보다 더 쉽게 구성할 수 있습니다. 또한, FlexVolumereECDHE의 작은 코드 표시는 공격 면적을 줄임으로써 보안을 개선합니다.

보다 자세한 내용은 Setting up aECDHE VPN을 참조하십시오.

(BZ#1613522)

NetworkManager를 사용하여 Multipath TCP 구성은 기술 프리뷰로 사용 가능

이번 업데이트를 통해 NetworkManager 유틸리티는 MPTCP(Multipath TCP) 기능을 제공합니다. nmcli 명령을 사용하여 MPTCP를 제어하고 해당 설정을 영구적으로 설정할 수 있습니다.

자세한 내용은 Multipath TCP: High availability for the endpoints and the future and RFC 8684: TCP Extensions for Multipath Operation with Multiple Addresses 를 참조하십시오.

(BZ#2029636)

KTLS를 기술 프리뷰로 이용 가능

RHEL은 KTLS(커널 전송 계층 보안)를 기술 프리뷰로 제공합니다. KTLS는 AES-GCM 암호화에 대해 커널의 대칭 암호화 또는 암호 해독 알고리즘을 사용하여 TLS 레코드를 처리합니다. KTLS에는 이 기능을 제공하는 NIC(Network Interface Controller)에 TLS 레코드 암호화를 오프로드하는 인터페이스도 포함됩니다.

(BZ#1570255)

systemd 확인 서비스는 기술 프리뷰로 사용 가능

systemd-resolved 서비스는 로컬 애플리케이션에 이름 확인을 제공합니다. 이 서비스는 캐싱 및 검증 DNS 스텁 확인자, LLMNR(Link-Local Multicast Name Resolution) 및 멀티 캐스트 DNS 확인기(Multicast DNS resolver)를 구현합니다.

systemd-resolved 는 지원되지 않는 기술 프리뷰입니다.

(BZ#2020529)

9.4. 커널

커널용 Intel 데이터 스트리밍 가속기 드라이버는 기술 프리뷰로 사용 가능

커널의 Intel 데이터 스트리밍 가속기 드라이버(IDXD)는 현재 기술 프리뷰로 사용할 수 있습니다. Intel CPU 통합 가속기이며 프로세스 주소 공간 ID(pasid) 제출 및 SVM(공유 가상 메모리)과 함께 공유 작업 대기열이 포함되어 있습니다.

(BZ#2030412)

SGX를 기술 프리뷰로 이용 가능

SGX (Software ECDHE Extensions )는 소프트웨어 코드와 데이터를 공개 및 수정으로부터 보호하기 위한 Intel® 기술입니다. RHEL 커널은 SGX v1 및 v1.5 기능을 부분적으로 제공합니다. 버전 1을 사용하면 SGX 기술을 사용할 수 있습니다.

(BZ#1874182)

ECDHE-iWARP 드라이버는 기술 프리뷰로 사용 가능

soft-iWARP(siw)는 소프트웨어인 iWARP(Internet Wide-area RDMA Protocol), Linux용 커널 드라이버입니다. soft-iWARP는 TCP/IP 네트워크 스택을 통해 iWARP 프로토콜 제품군을 구현합니다. 이 프로토콜 제품군은 완전히 소프트웨어로 구현되며 특정 RDMA(Remote Direct Memory Access) 하드웨어가 필요하지 않습니다. soft-iWARP를 사용하면 표준 이더넷 어댑터가 있는 시스템에서 iWARP 어댑터 또는 이미 설치된 다른 시스템에 연결할 수 있습니다.

(BZ#2023416)

9.5. 파일 시스템 및 스토리지

ext4 및 XFS에서 기술 프리뷰로 DAX를 사용할 수 있습니다.

RHEL 9에서는 DAX 파일 시스템을 기술 프리뷰로 사용할 수 있습니다. DAX는 애플리케이션이 영구 메모리를 주소 공간에 직접 매핑할 수 있는 수단을 제공합니다. DAX를 사용하려면 일반적으로 하나 이상의 NVMe(Non-Volatile Dual In-line Memory Modules) 형식으로 시스템에 사용할 수 있는 영구 메모리 형식이 있어야 하며 NVDIMM(s)에서 DAX 호환 파일 시스템을 생성해야 합니다. 또한 파일 시스템은 dax 마운트 옵션을 사용하여 마운트해야 합니다. 그런 다음 dax 마운트 파일 시스템의 파일 mmap 으로 인해 스토리지가 애플리케이션의 주소 공간에 직접 매핑됩니다.

(BZ#1995338)

Stratis를 기술 프리뷰로 사용 가능

Stratis는 로컬 스토리지 관리자입니다. 사용자에게 추가 기능을 사용하여 스토리지 풀의 관리 파일 시스템을 제공합니다.

  • 스냅샷 및 씬 프로비저닝 관리
  • 필요에 따라 파일 시스템 크기 자동 확장
  • 파일 시스템 관리

Stratis 스토리지를 관리하려면 stratisd 백그라운드 서비스와 통신하는 stratis 유틸리티를 사용합니다.

Stratis는 기술 프리뷰로 제공됩니다.

자세한 내용은 Stratis 문서 설정: Stratis 파일 시스템 설정을 참조하십시오.

(BZ#2041558)

NVMe-oF Discovery 서비스 기능

NVMexpress.org 기술 제안(TP) 8013 및 8014에 정의된 NVMe-oF Discovery 서비스 기능은 기술 프리뷰로 사용할 수 있습니다. 이러한 기능을 미리 보려면 nvme-cli 2.0 패키지를 사용하고 TP-8013 또는 TP-8014를 구현하는 NVMe-oF 대상 장치에 호스트를 연결합니다. TP-8013 및 TP-8014에 대한 자세한 내용은 https://nvmexpress.org/developers/nvme-specification/ 웹 사이트의 NVM Express 2.0 Ratified TP를 참조하십시오.

(BZ#2021672)

NVMe-stas 패키지를 기술 프리뷰로 사용 가능

Linux용 CDC( Central Discovery Controller) 클라이언트인 nvme-stas 패키지를 이제 기술 프리뷰로 사용할 수 있습니다. 비동기 이벤트 알림(AEN), 자동화된 NVMe 하위 시스템 연결 제어, 오류 처리 및 보고, 자동(0conf) 및 수동 구성을 처리합니다.

이 패키지는 두 개의 데몬인 StorageECDHE Finder(stafd) 및 StorageECDHE Connector(stacd)로 구성됩니다.

(BZ#1893841)

9.6. 컴파일러 및 개발 도구

JMC-coreowasp-java-encoder 를 기술 프리뷰로 이용 가능

RHEL 9는 기술 프리뷰 기능으로 jmc-coreowasp-java-encoder 패키지와 함께 배포됩니다.

JMC -core 는 JDK Flight Recording 파일을 구문 분석하고 작성하는 라이브러리를 포함하여 JDK(Java Development Kit)용 코어 API와 JDK(Java Discovery Protocol)를 통한 JVM(Java Virtual Machine) 검색 라이브러리를 제공하는 라이브러리입니다.

owasp-java-encoder 패키지는 Java에 대한 고성능 Low-overhead Contextual encoder 컬렉션을 제공합니다.

(BZ#1980981)

9.7. IdM (Identity Management)

DNSSEC는 IdM에서 기술 프리뷰로 사용 가능

통합 DNS가 있는 IdM(Identity Management) 서버는 이제 DNS 프로토콜의 보안을 강화하는 DNS의 확장 기능인 DNS 보안 확장(DNSSEC)을 구현합니다. IdM 서버에서 호스팅되는 DNS 영역에 DNSSEC를 사용하여 자동으로 서명할 수 있습니다. 암호화 키는 자동으로 생성되고 순환됩니다.

DNSSEC를 사용하여 DNS 영역을 보호하려는 사용자는 다음 문서를 읽고 따르는 것이 좋습니다.

통합 DNS가 포함된 IdM 서버는 DNSSEC를 사용하여 다른 DNS 서버에서 얻은 DNS 응답을 검증합니다. 이는 권장 이름 지정 방법에 따라 구성되지 않은 DNS 영역의 가용성에 영향을 미칠 수 있습니다.

(BZ#2084180)

Identity Management JSON-RPC API를 기술 프리뷰로 사용 가능

IdM(Identity Management)에 API를 사용할 수 있습니다. API를 보기 위해 IdM은 API 브라우저도 기술 프리뷰로 제공합니다.

이전에는 여러 버전의 API 명령을 사용하도록 IdM API가 향상되었습니다. 이러한 향상된 기능으로 인해 호환되지 않는 방식으로 명령의 동작이 변경될 수 있습니다. 이제 IdM API가 변경되어도 기존 툴 및 스크립트를 계속 사용할 수 있습니다. 이를 통해 다음을 활성화합니다.

  • 관리자는 관리 클라이언트보다 서버에서 이전 또는 이후 버전의 IdM을 사용하는 것입니다.
  • IdM 버전이 서버에서 변경되어도 개발자는 특정 버전의 IdM 호출을 사용할 수 있습니다.

경우에 따라 한 측에서 기능에 대한 새로운 옵션을 도입하는 최신 버전을 사용하는 경우와 관계없이 서버와의 통신이 가능합니다.

API 사용에 대한 자세한 내용은 Using the Identity Management API to Communicate with the IdM Server (TECHNOLOGY PREVIEW) 를 참조하십시오.

(BZ#2084166)

RHEL IdM을 사용하면 사용자 인증을 외부 ID 공급자에 기술 프리뷰로 위임할 수 있습니다.

RHEL IdM에서는 OAuth 2 장치 권한 부여 흐름을 지원하는 외부 ID 공급자(IdP)와 사용자를 연결할 수 있습니다. 이러한 사용자가 RHEL 9.1에서 사용할 수 있는 SSSD 버전으로 인증할 때 외부 IdP에서 인증 및 권한 부여를 수행한 후 Kerberos 티켓을 통해 RHEL IdM SSO(Single Sign-On) 기능을 수신합니다.

주요 기능은 다음과 같습니다.

  • ipa idp-* 명령을 사용하여 외부 IdP에 대한 참조 추가, 수정 및 삭제
  • ipa user-mod --user-auth-type=idp 명령을 사용하여 사용자의 IdP 인증 활성화

자세한 내용은 Using external identity providers to authenticate to IdM 에서 참조하십시오.

(BZ#2069202)

sssd-idp 하위 패키지를 기술 프리뷰로 사용 가능

SSSD용 sssd-idp 하위 패키지에는 IdM(Identity Management) 서버에 대해 OAuth2 인증을 수행하는 클라이언트 측 구성 요소인 oidc_child 및ECDHE5 idp 플러그인이 포함되어 있습니다. 이 기능은 RHEL 8.7 이상의 IdM 서버와 RHEL 9.1 이상에서만 사용할 수 있습니다.

(BZ#2065693)

SSSD 내부ECDHE5 idp 플러그인 사용 기술 프리뷰

SSSDECDHE5 idp 플러그인을 사용하면 OAuth2 프로토콜을 사용하여 외부 ID 공급자(IdP)에 대해 인증할 수 있습니다. 이 기능은 RHEL 8.7 이상의 IdM 서버와 RHEL 9.1 이상에서만 사용할 수 있습니다.

(BZ#2056482)

ACME를 기술 프리뷰로 이용 가능

ACME(Automated Certificate Management Environment) 서비스가 IdM(Identity Management)에서 기술 프리뷰로 제공됩니다. ACME는 자동 식별자 검증 및 인증서 발행을 위한 프로토콜입니다. 인증서 수명을 줄이고 인증서 라이프사이클 관리에서 수동 프로세스를 방지하여 보안을 개선하는 것입니다.

RHEL에서 ACME 서비스는 RHCS(Red Hat Certificate System) PKI ACME 응답자를 사용합니다. RHCS ACME 하위 시스템은 IdM 배포의 모든 CA(인증 기관) 서버에 자동으로 배포되지만 관리자가 이를 활성화할 때까지는 요청을 서비스하지 않습니다. RHCS는 ACME 인증서를 발급할 때 acmeIPAServerCert 프로필을 사용합니다. 발급된 인증서의 유효 기간은 90일입니다. ACME 서비스를 활성화하거나 비활성화하면 전체 IdM 배포에 영향을 미칩니다.

중요

모든 서버가 RHEL 8.4 이상을 실행하는 IdM 배포에서 ACME를 활성화하는 것이 좋습니다. 이전 RHEL 버전에는 ACME 서비스가 포함되어 있지 않으므로 혼합 버전 배포 시 문제가 발생할 수 있습니다. 예를 들어 ACME가 없는 CA 서버는 다른 DNS SAN(Subject Alternative Name)을 사용하므로 클라이언트 연결이 실패할 수 있습니다.

주의

현재 RHCS는 만료된 인증서를 제거하지 않습니다. ACME 인증서는 90일 후에 만료되므로 만료된 인증서가 누적될 수 있으며 성능에 영향을 미칠 수 있습니다.

  • 전체 IdM 배포에서 ACME를 활성화하려면 ipa-acme-manage enable 명령을 사용합니다.

    # ipa-acme-manage enable
    The ipa-acme-manage command was successful
  • IdM 배포에서 ACME를 비활성화하려면 ipa-acme-manage disable 명령을 사용합니다.

    # ipa-acme-manage disable
    The ipa-acme-manage command was successful
  • ACME 서비스가 설치되어 있고 활성화 또는 비활성화되었는지 확인하려면 ipa-acme-manage status 명령을 사용하십시오.

    # ipa-acme-manage status
    ACME is enabled
    The ipa-acme-manage command was successful

(BZ#2084181)

9.8. 데스크탑

64비트 ARM 아키텍처용 GNOME을 기술 프리뷰로 사용 가능

GNOME 데스크탑 환경은 64비트 ARM 아키텍처에서 기술 프리뷰로 사용할 수 있습니다.

이제 VNC를 사용하여 64비트 ARM 서버의 데스크탑 세션에 연결할 수 있습니다. 따라서 그래픽 애플리케이션을 사용하여 서버를 관리할 수 있습니다.

제한된 그래픽 애플리케이션 세트는 64비트 ARM에서 사용할 수 있습니다. 예를 들어 다음과 같습니다.

  • Firefox 웹 브라우저
  • Red Hat Subscription Manager (subscription-manager-cockpit)
  • 방화벽 설정(firewall-config)
  • 디스크 사용 분석기(Bobab)

Firefox를 사용하여 서버의 Cockpit 서비스에 연결할 수 있습니다.

Libre>-<와 같은 특정 애플리케이션은 명령줄 인터페이스만 제공하며 그래픽 인터페이스가 비활성화됩니다.

(JIRA:RHELPLAN-27394)

IBM Z 아키텍처용 GNOME을 기술 프리뷰로 이용 가능

IBM Z 아키텍처에서는 GNOME 데스크탑 환경을 기술 프리뷰로 사용할 수 있습니다.

VNC를 사용하여 IBM Z 서버의 데스크탑 세션에 연결할 수 있습니다. 따라서 그래픽 애플리케이션을 사용하여 서버를 관리할 수 있습니다.

제한된 그래픽 애플리케이션 세트는 IBM Z에서 사용할 수 있습니다. 예를 들면 다음과 같습니다.

  • Firefox 웹 브라우저
  • Red Hat Subscription Manager (subscription-manager-cockpit)
  • 방화벽 설정(firewall-config)
  • 디스크 사용 분석기(Bobab)

Firefox를 사용하여 서버의 Cockpit 서비스에 연결할 수 있습니다.

Libre>-<와 같은 특정 애플리케이션은 명령줄 인터페이스만 제공하며 그래픽 인터페이스가 비활성화됩니다.

(JIRA:RHELPLAN-27737)

9.9. 웹 콘솔

Stratis는 RHEL 웹 콘솔에서 기술 프리뷰로 사용 가능

이번 업데이트를 통해 Red Hat Enterprise Linux 웹 콘솔은 Stratis 스토리지를 기술 프리뷰로 관리하는 기능을 제공합니다.

Stratis에 대한 자세한 내용은 Stratis를 참조하십시오. https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html/managing_file_systems/setting-up-stratis-file-systems_managing-file-systems#the-purpose-and-features-of-stratis_setting-up-stratis-file-systems

(JIRA:RHELPLAN-122345)

9.10. 가상화

RHEL VM을 ARM64 프로세서에서 실행 중인 VMware ESXi 인스턴스에 배포할 수 있습니다.

이제 64비트 ARM 기반 프로세서에서 실행되는 VMware ESXi 하이퍼바이저 인스턴스에 RHEL 가상 머신을 배포할 수 있습니다.

(JIRA:RHELPLAN-95456)

KVM 가상 머신용 AMD SEV 및 SEV-ES

RHEL 9는 KVM 하이퍼바이저를 사용하는 AMD EPYC 호스트 시스템에 대해 기술 프리뷰로 SEV(Secure Encrypted Virtualization) 기능을 제공합니다. VM(가상 머신)에서 활성화된 경우 SEV는 VM 메모리를 암호화하여 호스트의 액세스로부터 VM을 보호합니다. 이렇게 하면 VM의 보안이 향상됩니다.

또한 향상된 암호화 상태 버전의 SEV(SEV-ES)도 기술 프리뷰로 제공됩니다. SEV-ES는 VM 실행이 중지되면 모든 CPU 레지스터 콘텐츠를 암호화합니다. 이렇게 하면 호스트가 VM의 CPU 레지스터를 수정하거나 정보를 읽을 수 없습니다.

SEV 및 SEV-ES는 2세대 AMD EPYC CPU(코드 이름) 이상에서만 작동합니다. 또한 RHEL 9에는 SEV 및 SEV-ES 암호화가 포함되어 있지만 SEV 및 SEV-ES 보안 테스트는 포함되지 않습니다.

(JIRA:RHELPLAN-65217)

가상화는 ARM 64에서 사용 가능

이제 ARM 64 CPU를 사용하여 시스템에 KVM 가상 머신을 생성할 수 있습니다.

(JIRA:RHELPLAN-103993)

virtio-mem 은 AMD64, Intel 64 및 ARM 64에서 사용 가능

RHEL 9에서는 기술 프리뷰로 AMD64, Intel 64 및 ARM 64 시스템에 virtio-mem 기능이 도입되었습니다. virtio-mem 을 사용하면 VM(가상 머신)에서 호스트 메모리를 동적으로 추가하거나 제거할 수 있습니다.

virtio-mem 을 사용하려면 VM의 XML 구성에서 virtio-mem 메모리 장치를 정의하고, virsh update-memory-device 명령을 사용하여 VM이 실행되는 동안 메모리 장치 크기 변경을 요청합니다. 이러한 메모리 장치에 의해 노출된 현재 메모리 크기를 실행 중인 VM에 보려면 VM의 XML 구성을 확인합니다.

(BZ#2014487, BZ#2044162, BZ#2044172)

Intel vGPU를 기술 프리뷰로 사용 가능

기술 프리뷰로 물리적 Intel GPU 장치를 중재 장치라고 하는 여러 가상 장치로 나눌 수 있습니다. 그런 다음 이러한 중재된 장치를 가상 GPU로 여러 VM(가상 머신)에 할당할 수 있습니다. 결과적으로 이러한 VM은 단일 물리적 Intel GPU의 성능을 공유합니다.

이 기능은 더 이상 사용되지 않으며 향후 RHEL 릴리스에서 완전히 제거됩니다.

(JIRA:RHELDOCS-17050)

중첩된 가상 머신 생성

Nested KVM virtualization is provided as a Technology Preview for KVM virtual machines (VMs) running on Intel, AMD64, and IBM Z hosts with RHEL 9. With this feature, a RHEL 7, RHEL 8, or RHEL 9 VM that runs on a physical RHEL 9 host can act as a hypervisor, and host its own VMs.

(JIRA:RHELDOCS-17040)

9.11. 클라우드 환경의 RHEL

RHEL 기밀 VM은 이제 Azure에서 기술 프리뷰로 사용 가능

업데이트된 RHEL 커널을 사용하여 Microsoft Azure에서 기밀 가상 머신(VM)을 기술 프리뷰로 생성하고 실행할 수 있습니다. 그러나 Azure에서 부팅하는 동안 RHEL 기밀 VM 이미지를 암호화할 수는 없습니다.

(JIRA:RHELPLAN-122321)

9.12. 컨테이너

서명 이미지에 대한 여러 신뢰할 수 있는 GPG 키의 기능은 기술 프리뷰로 제공됩니다.

/etc/containers/policy.json 파일은 신뢰할 수 있는 키가 포함된 파일 목록을 허용하는 새 keyPaths 필드를 지원합니다. 이로 인해 GA 및 베타 GPG 키로 서명된 컨테이너 이미지가 기본 구성에서 허용됩니다.

예를 들어 다음과 같습니다.

"registry.redhat.io": [
        {
            "type": "signedBy",
            "keyType": "GPGKeys",
            "keyPaths": ["/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release", "/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-beta"]
        }
]

(JIRA:RHELPLAN-129327)

sigstore 서명은 기술 프리뷰로 사용 가능

Podman 4.2부터 컨테이너 이미지 서명의 sigstore 형식을 사용할 수 있습니다. sigstore 서명은 이미지 서명을 저장할 별도의 서명 서버가 없어도 컨테이너 이미지와 함께 컨테이너 레지스트리에 저장됩니다.

(JIRA:RHELPLAN-74672)

podman-machine 명령은 지원되지 않음

가상 머신을 관리하는 podman-machine 명령은 기술 프리뷰로만 사용할 수 있습니다. 대신 명령줄에서 직접 Podman을 실행합니다.

(JIRA:RHELDOCS-16861)

10장. 사용되지 않는 기능

이 부분에서는 Red Hat Enterprise Linux 9에서 더 이상 사용되지 않는 기능에 대해 설명합니다.

사용되지 않는 기능은 이 제품의 향후 주요 릴리스에서 지원되지 않을 가능성이 높으며 새로운 배포에 구현하는 것은 권장되지 않습니다. 특정 주요 릴리스 내에서 더 이상 사용되지 않는 기능의 최신 목록은 최신 릴리스 노트를 참조하십시오.

더 이상 사용되지 않는 기능의 지원 상태는 Red Hat Enterprise Linux 9 내에서 변경되지 않습니다. 지원 기간에 대한 자세한 내용은 Red Hat Enterprise Linux 라이프 사이클Red Hat Enterprise Linux Application Streams 라이프 사이클을 참조하십시오.

사용되지 않는 하드웨어 구성 요소는 현재 또는 향후 주요 릴리스의 새로운 배포에 구현하는 것을 권장하지 않습니다. 하드웨어 드라이버 업데이트는 보안 및 중요 수정 사항으로만 제한됩니다. Red Hat은 최대한 빠른 시일 내에 이 하드웨어를 교체할 것을 권장합니다.

패키지가 더 이상 사용되지 않으며 향후 사용이 권장되지 않는 경우가 있습니다. 경우에 따라 패키지가 제품에서 삭제될 수 있습니다. 제품 설명서에 더 이상 사용되지 않는 기능과 유사 또는 동일하거나 보다 고급 기능을 제공하는 최근 패키지가 지정된 권장 사항이 기재됩니다.

RHEL 8에 있지만 RHEL 9에서 제거된 기능에 대한 자세한 내용은 RHEL 9 채택의 고려 사항을 참조하십시오.

10.1. 설치 프로그램 및 이미지 생성

더 이상 사용되지 않는 Kickstart 명령

다음 Kickstart 명령은 더 이상 사용되지 않습니다.

  • timezone --ntpservers
  • timezone --nontp
  • logging --level
  • %packages --excludeWeakdeps
  • %packages --instLangs
  • %anaconda
  • pwpolicy

특정 옵션만 나열된 경우 기본 명령 및 기타 옵션을 계속 사용할 수 있으며 더 이상 사용되지 않습니다. Kickstart 파일에서 더 이상 사용되지 않는 명령을 사용하면 로그에 경고가 출력됩니다. inst.ksstrict 부팅 옵션을 사용하여 더 이상 사용되지 않는 명령 경고를 오류로 전환할 수 있습니다.

(BZ#1899167)

10.2. 보안

SHA-1은 암호화 목적으로 더 이상 사용되지 않습니다.

암호화 목적으로 SHA-1 메시지 다이제스트 사용은 RHEL 9에서 더 이상 사용되지 않습니다. SHA-1에 의해 생성된 다이제스트는 해시 충돌을 찾아 많은 문서화된 성공적인 공격으로 인해 안전하지 않습니다. RHEL 핵심 암호화 구성 요소는 기본적으로 SHA-1을 사용하여 서명을 생성하지 않습니다. 보안 관련 사용 사례에서 SHA-1을 사용하지 않도록 RHEL 9의 애플리케이션이 업데이트되었습니다.

예외적으로 HMAC-SHA1 메시지 인증 코드와 UUID(Universal Unique Identifier) 값은 현재 보안 위험을 초래하지 않기 때문에 SHA-1을 사용하여 생성할 수 있습니다. SHA-1은 Kerberos 및ECDHE-2와 같은 중요한 상호 운용성 및 호환성 문제로 연결된 제한된 경우에도 사용할 수 있습니다. 자세한 내용은 RHEL 9 보안 강화 문서의 FIPS 140-3과 호환되지 않는 암호화를 사용하는 RHEL 애플리케이션 목록을 참조하십시오.

시나리오에서 기존 또는 타사 암호화 서명을 확인하는 데 SHA-1을 사용해야 하는 경우 다음 명령을 입력하여 활성화할 수 있습니다.

# update-crypto-policies --set DEFAULT:SHA1

또는 시스템 전체 암호화 정책을 LEGACY 정책으로 전환할 수 있습니다. 또한 LEGACY 는 안전하지 않은 여러 알고리즘을 사용할 수 있습니다.

(JIRA:RHELPLAN-110763)

RHEL 9에서 SCP가 더 이상 사용되지 않음

보안 복사 프로토콜(SCP)은 알려진 보안 취약점이 있기 때문에 더 이상 사용되지 않습니다. SCP API는 RHEL 9 라이프사이클에서 계속 사용할 수 있지만 이를 사용하면 시스템 보안이 줄어듭니다.

  • scp 유틸리티에서 SCP는 기본적으로 SSH 파일 전송 프로토콜(SECDHE)으로 교체됩니다.
  • OpenSSH 제품군은 RHEL 9에서 SCP를 사용하지 않습니다.
  • libssh 라이브러리에서 SCP가 더 이상 사용되지 않습니다.

(JIRA:RHELPLAN-99136)

SASL의 다이제스트-MD5는 더 이상 사용되지 않습니다.

Simple Authentication Security Layer (ECDHEL) 프레임워크의 Digest-MD5 인증 메커니즘은 더 이상 사용되지 않으며 향후 주요 릴리스의 cyrus-sasl 패키지에서 제거될 수 있습니다.

(BZ#1995600)

OpenSSL deprecates MD2, MD4, MDC2, Whirlpool, RIPEMD160, Blowfish, CAST, DES, IDEA, RC2, RC4, RC5, SEED, PBKDF1

OpenSSL 프로젝트는 안전하지 않거나 또는 둘 다이기 때문에 암호화 알고리즘 세트를 더 이상 사용되지 않습니다. 또한 Red Hat은 이러한 알고리즘을 사용하는 것을 권장하지 않으며 RHEL 9는 새로운 알고리즘을 사용하도록 암호화된 데이터를 마이그레이션하기 위한 알고리즘을 제공합니다. 사용자는 시스템의 보안을 위해 이러한 알고리즘에 의존해서는 안 됩니다.

다음 알고리즘의 구현은 OpenSSL의 MD2, MD4, MDC2, Whirlpool, RIPEMD160, Blowfish, CAST, DES, IDEA, RC2, RC5, SEED1의 레거시 공급자로 이동되었습니다.

레거시 공급자를 로드하고 더 이상 사용되지 않는 알고리즘을 활성화하는 방법에 대한 지침은 /etc/pki/tls/openssl.cnf 구성 파일을 참조하십시오.

(BZ#1975836)

/etc/system-fips 가 더 이상 사용되지 않음

/etc/system-fips 파일을 통한 FIPS 모드가 제거되었으며 파일은 RHEL의 향후 버전에 포함되지 않습니다. FIPS 모드에서 RHEL을 설치하려면 시스템 설치 중에 fips=1 매개변수를 커널 명령줄에 추가하십시오. fips-mode-setup --check 명령을 사용하여 RHEL이 FIPS 모드에서 작동하는지 확인할 수 있습니다.

(JIRA:RHELPLAN-103232)

libcrypt.so.1 이 더 이상 사용되지 않음

libcrypt.so.1 라이브러리는 더 이상 사용되지 않으며 RHEL의 향후 버전에서 제거될 수 있습니다.

(BZ#2034569)

fapolicyd.rules 가 더 이상 사용되지 않음

허용 및 거부 실행 규칙이 포함된 파일의 /etc/fapolicyd/rules.d/ 디렉터리에는 /etc/fapolicyd/fapolicyd.rules 파일이 교체됩니다. 이제 fagenrules 스크립트가 이 디렉터리의 모든 구성 요소 규칙 파일을 /etc/fapolicyd/ECDHE.rules 파일에 병합합니다. /etc/fapolicyd/fapolicyd.trust 의 규칙은 여전히 fapolicyd 프레임워크에서 처리되지만 이전 버전과의 호환성을 위해서만 처리됩니다.

(BZ#2054740)

10.3. 네트워킹

네트워크 팀은 RHEL 9에서 더 이상 사용되지 않습니다.

teamd 서비스와 libteam 라이브러리는 Red Hat Enterprise Linux 9에서 더 이상 사용되지 않으며 다음 주요 릴리스에서 제거됩니다. 대신 네트워크 팀 대신 본딩을 구성합니다.

Red Hat은 유사한 기능을 갖춘 본딩의 두 가지 기능인 본딩을 유지하기 위해 커널 기반 본딩에 중점을 두고 있습니다. 본딩 코드에는 높은 고객 채택이 있으며 강력한 커뮤니티 개발이 가능합니다. 결과적으로 본딩 코드에는 개선 사항 및 업데이트가 제공됩니다.

팀을 본딩으로 마이그레이션하는 방법에 대한 자세한 내용은 네트워크 팀 구성을 네트워크 본딩으로 마이그레이션을 참조하십시오.

(BZ#1935544)

ifcfg 형식의 NetworkManager 연결 프로필이 더 이상 사용되지 않음

RHEL 9.0 이상에서는 ifcfg 형식의 연결 프로필이 더 이상 사용되지 않습니다. 다음 주요 RHEL 릴리스에서는 이 형식에 대한 지원이 제거됩니다. 그러나 RHEL 9에서는 수정 시 NetworkManager는 이 형식의 기존 프로필을 계속 처리하고 업데이트합니다.

기본적으로 NetworkManager는 이제 /etc/NetworkManager/system-connections/ 디렉터리에 있는 키 파일 형식으로 연결 프로필을 저장합니다. ifcfg 형식과 달리 키 파일 형식은 NetworkManager가 제공하는 모든 연결 설정을 지원합니다. 키 파일 형식 및 프로필을 마이그레이션하는 방법에 대한 자세한 내용은 키 파일 형식의 NetworkManager 연결 프로필을 참조하십시오. (BZ#1894877)

firewalldiptables 백엔드는 더 이상 사용되지 않음

RHEL 9에서는 iptables 프레임워크가 더 이상 사용되지 않습니다. 결과적으로 firewalldiptables 백엔드 및 직접 인터페이스 도 더 이상 사용되지 않습니다. 직접 인터페이스 대신 firewalld 의 기본 기능을 사용하여 필요한 규칙을 구성할 수 있습니다.

(BZ#2089200)

10.4. 커널

RHEL 9에서 IRQ 캡슐화가 더 이상 사용되지 않음

비동기 전송 모드(ATM) 캡슐화는 DestinationRule Adaptation Layer 5(AAL-5)에 대해 Layer-2(ECDHE-to-ECDHE Protocol, 이더넷) 또는 Layer-3(IP) 연결을 활성화합니다. Red Hat은 RHEL 7 이후 DestinationRule NIC 드라이버를 지원하지 않습니다. RHEL 9에서는ECDHE 구현 지원이 삭제되고 있습니다. 이러한 프로토콜은 현재 ADSL 기술을 지원하며 제조 업체에 의해 단계적으로 제거되는 칩셋에서만 사용됩니다. 따라서 Red Hat Enterprise Linux 9에서ECDHE 캡슐화가 더 이상 사용되지 않습니다.

자세한 내용은 AAL5 over AAL5,Multiprotocol Encapsulation overECDHE Adaptation Layer 5, Classical IP 및 ARP overECDHE에서 참조하십시오.

(BZ#2058153)

10.5. 파일 시스템 및 스토리지

lvm2-activation-generator 및 생성된 서비스가 RHEL 9.0에서 제거됨

lvm2-activation-generator 프로그램과 생성된 서비스 lvm2-activation,lvm2-activation-early, lvm2-activation-net 은 RHEL 9.0에서 제거됩니다. 서비스를 활성화하는 데 사용되는 lvm.conf event_activation 설정은 더 이상 작동하지 않습니다. 볼륨 그룹을 자동 활성화하는 유일한 방법은 이벤트 기반 활성화입니다.

(BZ#2038183)

10.6. 동적 프로그래밍 언어, 웹 서버 및 데이터베이스 서버

libdb 가 더 이상 사용되지 않음

RHEL 8 및 RHEL 9는 현재ECDHEPLv2 라이센스에 따라 배포되는 Berkeley DB (libdb) 버전 5.3.28을 제공합니다. 업스트림 Berkeley DB 버전 6은 NSXPLv3 라이센스에서 사용할 수 있으며 이는 더 제한적입니다.

libdb 패키지는 RHEL 9에서 더 이상 사용되지 않으며 향후 주요 RHEL 릴리스에서 제공되지 않을 수 있습니다.

또한 RHEL 9의 libdb 에서 암호화 알고리즘이 제거되었으며 RHEL 9에서 여러 libdb 종속성이 제거되었습니다.

libdb 사용자는 다른 키-값 데이터베이스로 마이그레이션하는 것이 좋습니다. 자세한 내용은 RHEL에서 더 이상 사용되지 않는 Berkeley DB(libdb)에 대해 사용 가능한 지식베이스 문서를 참조하십시오.

(BZ#1927780, BZ#1974657, JIRA:RHELPLAN-80695)

10.7. 컴파일러 및 개발 도구

openssl 3.0에서 2048보다 작은 키 크기는 더 이상 사용되지 않습니다.

2048비트보다 작은 키 크기는 openssl 3.0에서 더 이상 사용되지 않으며 Go의 FIPS 모드에서 더 이상 작동하지 않습니다.

(BZ#2111072)

일부 PKCS1 v1.5 모드가 더 이상 사용되지 않음

일부 PKCS1 v1.5 모드는 암호화에 대해 FIPS-140-3 에서 승인되지 않으며 비활성화됩니다. 더 이상 Go의 FIPS 모드에서 작동하지 않습니다.

(BZ#2092016)

10.8. IdM (Identity Management)

OpenDNSSec의 SHA-1 이 더 이상 사용되지 않음

OpenDNSSec은 SHA-1 알고리즘을 사용하여 디지털 서명 및 인증 레코드 내보내기를 지원합니다. SHA-1 알고리즘의 사용은 더 이상 지원되지 않습니다. RHEL 9 릴리스에서 OpenDNSSec의 SHA-1 은 더 이상 사용되지 않으며 향후 마이너 릴리스에서 제거될 수 있습니다. 또한 OpenDNSSec 지원은 Red Hat Identity Management와의 통합으로 제한됩니다. OpenDNSSec은 독립형으로 지원되지 않습니다.

(BZ#1979521)

SSSD 암시적 파일 공급자 도메인은 기본적으로 비활성화되어 있습니다.

/etc/shadow/etc/groups 의 그룹 정보와 같은 로컬 파일에서 사용자 정보를 검색하는 SSSD 암시적 파일 공급자 도메인은 기본적으로 비활성화되어 있습니다.

SSSD를 사용하여 로컬 파일에서 사용자 및 그룹 정보를 검색하려면 다음을 수행합니다.

  1. SSSD를 구성합니다. 다음 옵션 중 하나를 선택합니다.

    1. sssd.conf 구성 파일에서 id_provider=files 옵션을 사용하여 로컬 도메인을 명시적으로 구성합니다.

      [domain/local]
      id_provider=files
      ...
    2. sssd.conf 구성 파일에서 enable_files_domain=true 를 설정하여 파일 공급자를 활성화합니다.

      [sssd]
      enable_files_domain = true
  2. 이름 서비스 스위치를 구성합니다.

    # authselect enable-feature with-files-provider

(JIRA:RHELPLAN-100639)

OpenLDAP 클라이언트 유틸리티에서 -H 및 -p 옵션은 더 이상 사용되지 않습니다.

업스트림 OpenLDAP 프로젝트는 유틸리티에서 -h-p 옵션을 더 이상 사용하지 않으며 LDAP URI를 지정하는 대신 -H 옵션을 사용하는 것이 좋습니다. 결과적으로 RHEL 9는 OpenLDAP 클라이언트 유틸리티에서 두 가지 옵션을 더 이상 사용하지 않았습니다. -h-p 옵션은 향후 릴리스에서 RHEL 제품에서 제거됩니다.

(JIRA:RHELPLAN-137660)

SMB1 프로토콜은 Samba에서 더 이상 사용되지 않음

Samba 4.11부터 비보안 SMB1(Server Message Block 버전 1) 프로토콜은 더 이상 사용되지 않으며 향후 릴리스에서 제거됩니다.

보안을 개선하기 위해 기본적으로 SMB1은 Samba 서버 및 클라이언트 유틸리티에서 비활성화되어 있습니다.

Jira:RHELDOCS-16612

10.9. 데스크탑

ECDHEK 2가 더 이상 사용되지 않음

레거시ECDHEK 2 툴킷 및 다음과 같은 관련 패키지는 더 이상 사용되지 않습니다.

  • adwaita-gtk2-theme
  • gnome-common
  • gtk2
  • gtk2-immodules
  • hexchat

다른 여러 패키지는 현재 K 2에 의존합니다. 이는 향후 주요 RHEL 릴리스에서 더 이상 사용되지 않는 패키지에 의존하지 않도록 수정되었습니다.

ECDHEK 2를 사용하는 애플리케이션을 유지 관리하는 경우 애플리케이션을ECDHEK 4로 이식하는 것이 좋습니다.

(JIRA:RHELPLAN-131882)

10.10. 그래픽 인프라

X.org Server가 더 이상 사용되지 않음

X.org 디스플레이 서버는 더 이상 사용되지 않으며 향후 주요 RHEL 릴리스에서 제거됩니다. 대부분의 경우 기본 데스크탑 세션이 Wayland 세션입니다.

X11 프로토콜은 XWayland 백엔드를 사용하여 완전히 지원됩니다. 결과적으로 X11 이 필요한 애플리케이션은 Wayland 세션에서 실행될 수 있습니다.

Red Hat은 Wayland 세션에서 나머지 문제와 격차를 해결하기 위해 노력하고 있습니다. Wayland 의 미결한 문제는 알려진 문제 섹션을 참조하십시오.

사용자 세션을 X.org 백엔드로 다시 전환할 수 있습니다. 자세한 내용은 GNOME 환경 선택 및 프로토콜 표시를 참조하십시오.

(JIRA:RHELPLAN-121048)

motif가 더 이상 사용되지 않음

업스트림 Motif 커뮤니티의 개발이 비활성 상태이기 때문에 RHEL에서 Motif 위젯 툴킷이 더 이상 사용되지 않습니다.

다음 Motif 패키지는 개발 및 디버깅 변형을 포함하여 더 이상 사용되지 않습니다.

  • motif
  • openmotif
  • openmotif21
  • openmotif22

또한 motif-static 패키지가 제거되었습니다.

Red Hat은 replacementK 툴킷을 대체할 것을 권장합니다. ECDHEK는 더 유지 관리할 수 있으며 Motif에 비해 새로운 기능을 제공합니다.

(JIRA:RHELPLAN-98983)

10.11. Red Hat Enterprise Linux System Roles

RHEL 9 노드에서 팀을 구성할 때 네트워킹 시스템 역할에 사용 중단 경고가 표시됩니다.

RHEL 9에서는 네트워크 팀 구성 기능이 더 이상 사용되지 않습니다. 결과적으로 RHEL 8 컨트롤러에서 네트워킹 RHEL 시스템 역할을 사용하여 RHEL 9 노드에서 네트워크 팀을 구성하면 사용 중단에 대한 경고가 표시됩니다.

(BZ#1999770)

10.12. 가상화

SHA1- 기반 서명을 사용한 SecureBoot 이미지 확인이 더 이상 사용되지 않음

UEFI (PE/COFF) 실행 파일에서 SHA1- 기반 서명을 사용하여 SecureBoot 이미지 확인을 수행하는 것은 더 이상 사용되지 않습니다. 대신 Red Hat은 SHA2 알고리즘 이상을 기반으로 서명을 사용할 것을 권장합니다.

(BZ#1935497)

가상 머신 스냅샷에 대한 제한된 지원

가상 머신(VM) 스냅샷 생성은 현재 UEFI 펌웨어를 사용하지 않는 VM에서만 지원됩니다. 또한 스냅샷 작업 중에 QEMU 모니터가 차단되어 특정 워크로드의 하이퍼바이저 성능에 부정적인 영향을 미칠 수 있습니다.

VM 스냅샷 생성의 현재 메커니즘이 더 이상 사용되지 않으며 프로덕션 환경에서 VM 스냅샷을 사용하지 않는 것이 좋습니다. 그러나 새로운 VM 스냅샷 메커니즘이 개발 중이며 향후 RHEL 9 마이너 릴리스에서 완전히 구현될 예정입니다.

(JIRA:RHELPLAN-15509, BZ#1621944)

virt-manager가 더 이상 사용되지 않음

virt-manager라고도 하는 Virtual Machine Manager 애플리케이션은 더 이상 사용되지 않습니다. Cockpit 라고도 하는 RHEL 웹 콘솔은 후속 릴리스에서 교체될 예정입니다. 따라서 GUI에서 가상화를 관리하기 위해 웹 콘솔을 사용하는 것이 좋습니다. 그러나 virt-manager 에서 사용할 수 있는 일부 기능은 RHEL 웹 콘솔에서 아직 제공되지 않을 수 있습니다.

(JIRA:RHELPLAN-10304)

libvirtd 가 더 이상 사용되지 않음

libvirt d Daemon은 RHEL 9에서 더 이상 사용되지 않으며 향후 주요 RHEL 릴리스에서 제거됩니다. 하이퍼바이저의 가상화 관리에 libvirtd 를 사용할 수 있지만 새로 도입된 모듈식 libvirt 데몬으로 전환하는 것이 좋습니다. 자세한 내용 및 내용은 RHEL 9 가상화 구성 및 관리 문서를 참조하십시오.

(JIRA:RHELPLAN-113995)

가상 플로피 드라이버가 더 이상 사용되지 않음

가상 플로피 디스크 장치를 제어하는 isa-fdc 드라이버는 더 이상 사용되지 않으며 향후 RHEL 릴리스에서 지원되지 않습니다. 따라서 마이그레이션된 VM(가상 머신)과의 호환성을 보장하기 위해 RHEL 9에서 호스팅되는 VM에서 ingressppy 디스크 장치를 사용하지 않는 것이 좋습니다.

(BZ#1965079)

qcow2-v2 이미지 형식이 더 이상 사용되지 않음

RHEL 9에서는 가상 디스크 이미지의 qcow2-v2 형식이 더 이상 사용되지 않으며 향후 주요 RHEL 릴리스에서 지원되지 않습니다. 또한 RHEL 9 Image Builder는 qcow2-v2 형식으로 디스크 이미지를 생성할 수 없습니다.

qcow2-v2 대신 qcow2-v3를 사용하는 것이 좋습니다. qcow2-v2 이미지를 최신 형식 버전으로 변환하려면 qemu-img 수정 명령을 사용합니다.

(BZ#1951814)

레거시 CPU 모델이 더 이상 사용되지 않음

상당한 수의 CPU 모델이 더 이상 사용되지 않으며 향후 RHEL의 주요 릴리스에서 VM(가상 머신)에서 사용하도록 지원되지 않습니다. 더 이상 사용되지 않는 모델은 다음과 같습니다.

  • Intel: Intel Xeon 55xx 및 75xx 프로세서 제품군 이전의 모델 ( Nehalem이라고도 함)
  • AMD의 경우: AMD Opteron G4 이전의 모델
  • IBM Z의 경우: IBM z14 이전의 모델

VM이 더 이상 사용되지 않는 CPU 모델을 사용하는지 확인하려면 virsh dominfo 유틸리티를 사용하고 있는지 확인하고 Messages 섹션에서 다음과 유사한 행을 찾습니다.

tainted: use of deprecated configuration settings
deprecated configuration: CPU model 'i486'

(BZ#2060839)

10.13. 컨테이너

RHEL 7 호스트에서 RHEL 9 컨테이너 실행은 지원되지 않습니다.

RHEL 7 호스트에서 RHEL 9 컨테이너를 실행하는 것은 지원되지 않습니다. 이 방법은 작동할 수 있지만 보장되지 않습니다.

자세한 내용은 Red Hat Enterprise Linux 컨테이너 호환성 매트릭스 를 참조하십시오.

(JIRA:RHELPLAN-100087)

Podman 내 SHA1 해시 알고리즘이 더 이상 사용되지 않음

rootless 네트워크 네임스페이스의 파일 이름을 생성하는 데 사용되는 SHA1 알고리즘은 Podman에서 더 이상 지원되지 않습니다. 따라서 Podman 4.1.1 이상으로 업데이트하기 전에 루트리스(rootless) 컨테이너가 네트워크에 가입된 경우 재시작해야 합니다(업그레이프 4netns를 사용하지 않고 업그레이드 후 컨테이너에 연결할 수 있도록 합니다.

(BZ#2069279)

rhel9/pause 가 더 이상 사용되지 않음

rhel9/pause 컨테이너 이미지가 더 이상 사용되지 않습니다.

(BZ#2106816)

10.14. 사용되지 않는 패키지

이 섹션에는 더 이상 사용되지 않으며 향후 Red Hat Enterprise Linux 주요 릴리스에 포함되지 않는 패키지가 나열되어 있습니다.

RHEL 8과 RHEL 9 사이의 패키지 변경 사항은 RHEL 9 문서 채택 시 패키지 변경 사항을 참조하십시오.

중요

더 이상 사용되지 않는 패키지의 지원 상태는 RHEL 9 내에서 변경되지 않습니다. 지원 기간에 대한 자세한 내용은 Red Hat Enterprise Linux 라이프 사이클Red Hat Enterprise Linux Application Streams 라이프 사이클을 참조하십시오.

RHEL 9에서는 다음 패키지가 더 이상 사용되지 않습니다.

  • iptables-devel
  • iptables-libs
  • iptables-nft
  • iptables-nft-services
  • iptables-utils
  • libdb
  • mcpp
  • mod_auth_mellon
  • python3-pytz
  • xorg-x11-server-Xorg

11장. 확인된 문제

이 부분에서는 Red Hat Enterprise Linux 9.1의 알려진 문제에 대해 설명합니다.

11.1. 설치 프로그램 및 이미지 생성

reboot --kexecinst.kexec 명령은 예측 가능한 시스템 상태를 제공하지 않습니다.

reboot --kexec Kickstart 명령 또는 inst.kexec 커널 부팅 매개변수를 사용하여 RHEL 설치를 수행해도 전체 재부팅과 동일한 예측 가능한 시스템 상태가 제공되지 않습니다. 결과적으로 재부팅하지 않고 설치된 시스템으로 전환하면 예기치 않은 결과가 발생할 수 있습니다.

kexec 기능은 더 이상 사용되지 않으며 향후 Red Hat Enterprise Linux 릴리스에서 제거될 예정입니다.

(BZ#1697896)

타사 도구를 사용하여 생성된 USB에서 설치를 부팅할 때 로컬 미디어 설치 소스가 탐지되지 않음

타사 툴을 사용하여 생성된 USB에서 RHEL 설치를 부팅할 때 설치 프로그램이 로컬 미디어 설치 소스를 감지하지 못합니다( Red Hat CDN 만 감지됨).

이 문제는 기본 부팅 옵션 int.stage2 ==가 iso9660 이미지 형식을 검색하려고 하기 때문에 발생합니다. 그러나 타사 도구는 다른 형식으로 ISO 이미지를 만들 수 있습니다.

이 문제를 해결하려면 다음 해결 방법 중 하나를 사용합니다.

  • 설치를 부팅할 때 Tab 키를 클릭하여 커널 명령줄을 편집하고 inst.stage2= 의 부팅 옵션을 inst.repo= 로 변경합니다.
  • Windows에서 부팅 가능한 USB 장치를 만들려면 Fedora Media Writer를 사용하십시오.
  • Rufus와 같은 타사 도구를 사용하여 부팅 가능한 USB 장치를 생성하는 경우 먼저 Linux 시스템에서 RHEL ISO 이미지를 다시 생성한 다음 타사 도구를 사용하여 부팅 가능한 USB 장치를 생성합니다.

지정된 해결 방법을 수행하는 데 관련된 단계에 대한 자세한 내용은 RHEL 8.3 설치 중에 설치 미디어가 자동으로 탐지되지 않음을 참조하십시오.

(BZ#1877697)

authauthconfig Kickstart 명령에는 AppStream 리포지토리가 필요

authselect-compat 패키지는 설치하는 동안 authauthconfig Kickstart 명령이 필요합니다. 이 패키지가 없으면 auth 또는 authconfig가 사용되는 경우 설치에 실패합니다. 설계에 따라 authselect-compat 패키지는 AppStream 리포지토리에서만 사용할 수 있습니다.

이 문제를 해결하려면 설치 프로그램에 BaseOS 및 AppStream 리포지토리를 사용할 수 있는지 확인하거나 설치 중에 authselect Kickstart 명령을 사용합니다.

(BZ#1640697)

드라이버 디스크 메뉴가 콘솔에 사용자 입력을 표시하지 못했습니다

드라이버 디스크가 있는 커널 명령행에서 inst.dd 옵션을 사용하여 RHEL 설치를 시작하면 콘솔에 사용자 입력이 표시되지 않습니다. 결과적으로 애플리케이션이 사용자 입력 및 정지에 응답하지 않지만 사용자에게 혼동되는 출력이 표시됩니다. 그러나 이 동작은 기능에 영향을 미치지 않으며 Enter 를 누른 후 사용자 입력이 등록됩니다.

해결 방법으로 예상 결과를 보려면 콘솔에 사용자 입력이 없는 것을 무시하고 입력 추가 완료 시 Enter 키를 누릅니다.

(BZ#2109231)

Anaconda가 애플리케이션으로 실행되는 시스템에서 예기치 않은 SELinux 정책

Anaconda가 이미 설치된 시스템에서 애플리케이션으로 실행 중인 경우(예: -image anaconda 옵션을 사용하여 이미지 파일에 다른 설치를 수행하기 위해) 설치 중에 SELinux 유형 및 속성을 수정하는 것은 좋지 않습니다. 결과적으로 Anaconda가 실행 중인 시스템에서 SELinux 정책의 특정 요소가 변경될 수 있습니다. 이 문제를 해결하려면 프로덕션 시스템에서 Anaconda를 실행하지 말고 임시 가상 시스템에서 실행합니다. 따라서 프로덕션 시스템에 대한 SELinux 정책이 수정되지 않습니다. boot.iso 또는 dvd.iso 에서 설치와 같은 시스템 설치 프로세스의 일부로 anaconda를 실행하는 것은 이 문제의 영향을 받지 않습니다.

(BZ#2050140)

USB CD-ROM 드라이브는 Anaconda에서 설치 소스로 사용할 수 없습니다.

USB CD-ROM 드라이브가 소스이고 Kickstart ignoredisk --only-use= 명령이 지정되면 설치에 실패합니다. 이 경우 Anaconda에서 이 소스 디스크를 찾아서 사용할 수 없습니다.

이 문제를 해결하려면 harddrive --partition=sdX --dir=/ 명령을 사용하여 USB CD-ROM 드라이브에서 설치합니다. 이로 인해 설치에 실패하지 않습니다.

(BZ#1914955)

iso9660 파일 시스템을 사용하여 하드 드라이브 분할 설치에 실패합니다.

하드 드라이브가 iso9660 파일 시스템으로 분할된 시스템에는 RHEL을 설치할 수 없습니다. 이는 iso9660 파일 시스템 파티션이 포함된 하드 디스크를 무시하도록 설정된 업데이트된 설치 코드로 인해 발생합니다. 이는 DVD를 사용하지 않고 RHEL을 설치할 때에도 발생합니다.

이 문제를 해결하려면 Kickstart 파일에 다음 스크립트를 추가하여 설치가 시작되기 전에 디스크를 포맷합니다.

참고: 해결방법을 수행하기 전에 디스크에서 사용 가능한 데이터를 백업하십시오. delete fs 명령은 디스크에서 기존 데이터를 모두 포맷합니다.

%pre
wipefs -a /dev/sda
%end

결과적으로 설치는 오류 없이 예상대로 작동합니다.

(BZ#1929105)

Anaconda에서 관리자 계정의 존재를 확인하지 못했습니다.

그래픽 사용자 인터페이스를 사용하여 RHEL을 설치하는 동안 Anaconda는 관리자 계정이 생성되었는지 확인하지 못합니다. 결과적으로 사용자는 관리자 계정없이 시스템을 설치할 수 있습니다.

이 문제를 해결하려면 관리자 사용자 계정 또는 루트 암호가 설정되고 root 계정의 잠금이 해제되어 있는지 확인하십시오. 결과적으로 사용자는 설치된 시스템에서 관리 작업을 수행할 수 있습니다.

(BZ#2047713)

새로운 XFS 기능에서는 버전 5.10 이전 펌웨어를 사용하여 PowerNV IBM POWER 시스템을 부팅할 수 없습니다.

PowerNV IBM POWER 시스템은 펌웨어에 Linux 커널을 사용하고, GRUB 대신 Petitboot를 사용합니다. 이로 인해 펌웨어 커널 마운트 /boot 및 Petitboot가 GRUB 구성을 읽고 RHEL을 부팅합니다.

RHEL 9 커널은 bigtime=1inobtcount=1 기능을 XFS 파일 시스템에 도입했습니다. 이 기능은 버전 5.10보다 오래된 펌웨어가 이해하지 못합니다.

이 문제를 해결하려면 /boot 용으로 다른 파일 시스템을 사용할 수 있습니다(예: ext4).

(BZ#1997832)

PReP가 4MiB 또는 8MiB가 아닌 경우 RHEL을 설치할 수 없음

PReP(PowerPC 참조 플랫폼) 파티션이 4kiB 섹터를 사용하는 디스크에서 4MiB 또는 8MiB와 다른 크기인 경우 RHEL 설치 프로그램은 부트 로더를 설치할 수 없습니다. 따라서 RHEL을 디스크에 설치할 수 없습니다.

문제를 해결하려면 PReP 파티션이 정확히 4MiB 또는 8MiB이고 크기가 다른 값으로 반올림되지 않았는지 확인하십시오. 결과적으로 설치 프로그램이 RHEL을 디스크에 설치할 수 있습니다.

(BZ#2026579)

설치 프로그램에서 다중 경로 장치로 사용자 지정 파티셔닝하는 동안 잘못된 총 디스크 공간이 표시됩니다.

설치 프로그램은 사용자 지정 파티셔닝 중에 다중 경로 장치의 개별 경로를 필터링하지 않습니다. 이로 인해 설치 프로그램이 다중 경로 장치에 대한 개별 경로를 표시하고 사용자는 생성된 파티션의 다중 경로 장치에 대한 개별 경로를 선택할 수 있습니다. 결과적으로 총 디스크 공간의 합계가 잘못 표시됩니다. 전체 디스크 공간에 각 개별 경로의 크기를 추가하여 계산됩니다.

이 문제를 해결하려면 사용자 정의 파티셔닝 중에 개별 경로가 아닌 다중 경로만 사용하고 총 디스크 공간을 잘못 계산된 것을 무시합니다.

(BZ#2052938)

NVMe over Fibre Channel 장치에서 설치 실패

RHEL을 설치할 때 설치 프로그램은 파이버 채널 장치를 통해 NVMe(Non-volatile Memory Express)를 표시하고 선택할 수 있습니다. 설치 과정에서 이러한 장치 사용은 지원되지 않습니다. 이로 인해 설치 프로세스가 실패하거나 설치된 시스템이 올바르게 부팅되지 않을 수 있습니다.

이 문제를 해결하려면 대화형 설치 (텍스트 또는 그래픽 모드) 중에 NVMe over Fibre Channel 장치를 사용하지 마십시오. Kickstart 설치를 실행하는 경우 ignoredisk --drives=<IGNORE_DISKS > Kickstart 명령을 사용하여 NVMe over Fibre Channel 장치를 무시하도록 시스템을 구성하여 < IGNORE_DISKS >를 NVMe over Fibre Channel 장치로 교체합니다. 또는 ignoredisk --only-use=<ONLY_USE_DISKS >를 사용하여 설치 중에 Kickstart가 사용하는 디스크를 정의하여 < ONLY_USE_DISKS >를 지원되는 장치로 대체할 수 있습니다.

참고

NVMe over Fibre Channel 장치에만 설치할 수 있습니다. 로컬로 연결된 NVMe 장치가 올바르게 작동합니다.

ignoredisk Kickstart 명령에 대한 자세한 내용은 Performing an advanced RHEL 9 installation guide의 Kickstart 명령을 참조하십시오.

(BZ#2107346)

RHEL for Edge 설치 프로그램 이미지는 rpm-ostree 페이로드를 설치할 때 마운트 지점을 생성하지 못합니다.

RHEL for Edge 설치 프로그램 이미지에 사용되는 rpm-ostree 페이로드를 배포할 때 설치 프로그램에서 사용자 지정 파티션에 대한 일부 마운트 지점을 제대로 생성하지 않습니다. 결과적으로 다음 오류와 함께 설치가 중단됩니다.

The command 'mount --bind /mnt/sysimage/data /mnt/sysroot/data' exited with the code 32.

이 문제를 해결하려면 다음을 수행합니다.

  • 자동 파티션 스키마를 사용하고 마운트 지점을 수동으로 추가하지 마십시오.
  • 수동으로 /var 디렉토리 내에서만 마운트 지점을 할당합니다. 예를 들어 /var/my-mount-point) 및 다음과 같은 표준 디렉토리인 / , / boot,/var 입니다.

결과적으로 설치 프로세스가 성공적으로 완료됩니다.

(BZ#2125542)

네트워크에 연결된 경우 설치 후 NetworkManager가 시작되지 않지만 DHCP 또는 고정 IP 주소가 구성되지 않은 경우 NetworkManager를 시작합니다.

Anaconda는 RHEL 9.0부터 특정 ip= 또는 kickstart 네트워크 구성이 설정되지 않은 경우 네트워크 장치를 자동으로 활성화합니다. Anaconda는 각 이더넷 장치에 대해 기본 영구 구성 파일을 생성합니다. 연결 프로파일에는 ONBOOTautoconnect 값이 true 로 설정되어 있습니다. 결과적으로 설치된 시스템을 시작할 때 RHEL은 네트워크 장치를 활성화하고 networkManager-wait-online 서비스가 실패합니다.

해결 방법으로 다음 중 하나를 수행합니다.

  • 사용하려는 연결을 제외하고 nmcli 유틸리티를 사용하여 모든 연결을 삭제합니다. 예를 들어 다음과 같습니다.

    1. 모든 연결 프로필을 나열합니다.

      # nmcli connection show
    2. 필요하지 않은 연결 프로필을 삭제합니다.

      # nmcli connection delete <connection_name>

      <connection_name>을 삭제하려는 연결 이름으로 바꿉니다.

  • 특정 ip= 또는 kickstart 네트워크 구성이 설정되지 않은 경우 Anaconda에서 자동 연결 네트워크 기능을 비활성화합니다.

    1. Anaconda GUI에서 Network & Host Name 으로 이동합니다.
    2. 비활성화할 네트워크 장치를 선택합니다.
    3. Configure 를 클릭합니다.
    4. 일반 탭에서 우선 순위로 Connect를 자동으로선택 취소합니다.
    5. 저장을 클릭합니다.

(BZ#2115783)

11.2. 서브스크립션 관리

subscription-manager 유틸리티는 명령을 완료한 후 터미널에서 nonessential 텍스트를 유지합니다.

RHEL 9.1부터 subscription-manager 유틸리티는 작업을 처리하는 동안 진행 정보를 표시합니다. 일부 언어(일반적으로 비Latin)의 경우 작업이 완료된 후 진행 메시지가 지워지지 않을 수 있습니다. 결과적으로 터미널에서 이전 진행 메시지의 일부가 표시될 수 있습니다.

이는 subscription-manager 의 기능적 실패가 아닙니다.

이 문제를 해결하려면 다음 단계 중 하나를 수행하십시오.

  • 터미널에서 'subscription -manager' 명령을 실행하는 경우 --no-progress -ECDHE 옵션을 포함합니다.
  • 다음 명령을 입력하여 진행 메시지를 표시하지 않고 작동하도록 subscription-manager 를 구성합니다.

    # subscription-manager config --rhsm.progress_messages=0

(BZ#2136694)

11.3. 소프트웨어 관리

설치 프로세스가 응답하지 않는 경우가 있습니다.

RHEL을 설치할 때 설치 프로세스가 응답하지 않는 경우가 있습니다. /tmp/packaging.log 파일은 끝에 다음 메시지를 표시합니다.

10:20:56,416 DDEBUG dnf: RPM transaction over.

이 문제를 해결하려면 설치 프로세스를 다시 시작하십시오.

(BZ#2073510)

업그레이드를 통해 아키텍처를 변경하는 패키지의 보안 DNF 업그레이드가 실패합니다.

RHBA-2022:8295 권고와 함께 릴리스된 BZ#2108969 의 패치에는 다음과 같은 회귀 문제가 추가되었습니다. 업그레이드를 통해 아키텍처를 변경하는 패키지의 보안 필터를 사용한 DNF 업그레이드는 실패합니다. 따라서 시스템을 취약한 상태로 유지할 수 있습니다.

이 문제를 해결하려면 보안 필터없이 정기적으로 업그레이드를 수행하십시오.

(BZ#2108969)

11.4. 쉘 및 명령행 툴

ifcfg 파일을 사용하여 네트워크 인터페이스 이름 변경 실패

RHEL 9에서 initscripts 패키지는 기본적으로 설치되지 않습니다. 결과적으로 ifcfg 파일을 사용하여 네트워크 인터페이스 이름을 변경할 수 없습니다. 이 문제를 해결하려면 udev 규칙을 사용하거나 파일을 연결하여 인터페이스 이름을 변경하는 것이 좋습니다. 자세한 내용은 일관된 네트워크 인터페이스 장치 이름 지정systemd.link(5) 매뉴얼 페이지를 참조하십시오.

권장 솔루션 중 하나를 사용할 수 없는 경우 initscripts 패키지를 설치합니다.

(BZ#2018112)

RHEL 9에 chkconfig 패키지가 기본적으로 설치되지 않음

시스템 서비스에 대한 경미한 정보를 업데이트하고 쿼리하는 chkconfig 패키지는 RHEL 9에 기본적으로 설치되지 않습니다.

서비스를 관리하려면 systemctl 명령을 사용하거나 chkconfig 패키지를 수동으로 설치합니다.

systemd 에 대한 자세한 내용은 systemd 관리를 참조하십시오. systemctl 유틸리티를 사용하는 방법에 대한 자세한 내용은 systemctl을 사용하여 시스템 서비스 관리를 참조하십시오.

(BZ#2053598)

11.5. 인프라 서비스

bindunbound 모두 SHA-1 기반 서명의 유효성 검사를 비활성화합니다.

바인딩 및 바인딩 되지 않은 구성 요소는 모든 RSA/SHA1 (algorithm 번호 5) 및 RSASHA1-NSEC3-SHA1 (알고리트 번호 7) 서명의 유효성 검사 지원을 비활성화하고 서명에 대한 SHA-1 사용은 DEFAULT 시스템 전체의 암호화 정책에서 제한됩니다.

결과적으로 SHA-1, RSA/SHA1 및 RSASHA1-NSEC3-SHA1 다이제스트 알고리즘으로 서명된 특정 DNSSEC 레코드가 Red Hat Enterprise Linux 9에서 확인되지 않고 영향을 받는 도메인 이름이 취약해집니다.

이 문제를 해결하려면 RSA/SHA-256 또는 elliptic 곡선 키와 같은 다른 서명 알고리즘으로 업그레이드하십시오.

영향을 미치고 취약한 최상위 도메인 목록은 RSASHA1로 서명된 DNSSEC 레코드가 해결 방법을 확인하지 못함 을 참조하십시오.

(BZ#2070495)

동일한 쓰기 가능한 영역 파일이 여러 영역에서 사용되는 경우 named 가 시작되지 않습니다.

BIND에서는 여러 영역에 동일한 쓰기 가능한 영역 파일을 허용하지 않습니다. 결과적으로 구성에 named 서비스에서 수정할 수 있는 파일의 경로를 공유하는 여러 영역이 포함된 경우 named 가 시작되지 않습니다. 이 문제를 해결하려면 in-view 절을 사용하여 여러 뷰 간에 하나의 영역을 공유하고 다른 영역에 다른 경로를 사용해야 합니다. 예를 들어 경로에 보기 이름을 포함합니다.

쓰기 가능한 영역 파일은 일반적으로 DNSSEC에서 유지 관리하는 허용된 동적 업데이트, 슬레이브 영역 또는 영역이 있는 영역에서 사용됩니다.

(BZ#1984982)

콘솔 키맵 을 설정하려면 최소 설치 시 libxkbcommon 라이브러리가 필요합니다.

RHEL 9에서는 특정 systemd 라이브러리 종속성이 동적 연결에서 동적 로드로 변환되어 시스템이 열려 있을 때 런타임 시 라이브러리가 열립니다. 이 변경으로 필요한 라이브러리를 설치하지 않는 한 이러한 라이브러리에 종속되는 기능을 사용할 수 없습니다. 이는 최소 설치가 있는 시스템의 키보드 레이아웃 설정에도 영향을 미칩니다. 그 결과 localectl --no-convert set-x11-keymap gb 명령이 실패합니다.

이 문제를 해결하려면 libxkbcommon 라이브러리를 설치합니다.

# dnf install libxkbcommon

(BZ#2214130)

11.6. 보안

OpenSSL 은 PKCS #11 토큰이 원시 RSA 또는 RSA-PSS 서명 생성을 지원하는지 탐지하지 않습니다.

TLS 1.3 프로토콜은 RSA-PSS 서명을 지원해야 합니다. PKCS #11 토큰이 원시 RSA 또는 RSA-PSS 서명을 지원하지 않는 경우, OpenSSL 라이브러리를 사용하는 서버 애플리케이션은 PKCS #11 토큰에서 키를 보유하는 경우 RSA 키로 작동하지 않습니다. 따라서 설명된 시나리오에서는 TLS 통신이 실패합니다.

이 문제를 해결하려면 TLS 버전 1.2를 사용 가능한 최고 TLS 프로토콜 버전으로 사용하도록 서버 및 클라이언트를 구성합니다.

(BZ#1681178)

OpenSSL 이 원시 RSA 또는 RSA-PSS 서명을 지원하지 않는 PKCS #11 토큰을 잘못 처리

OpenSSL 라이브러리는 PKCS #11 토큰의 키 관련 기능을 감지하지 않습니다. 결과적으로 원시 RSA 또는 RSA-PSS 서명을 지원하지 않는 토큰을 사용하여 서명이 생성되면 TLS 연결을 설정하지 못합니다.

이 문제를 해결하려면 /etc/pki/tls/openssl.cnf 파일의 crypto_policy 섹션 끝에 .include 행 뒤에 다음 행을 추가합니다.

SignatureAlgorithms = RSA+SHA256:RSA+SHA512:RSA+SHA384:ECDSA+SHA256:ECDSA+SHA512:ECDSA+SHA384
MaxProtocol = TLSv1.2

결과적으로 설명된 시나리오에서는 TLS 연결을 설정할 수 있습니다.

(BZ#1685470)

SCP empties 파일은 특정 구문이 사용될 때 자체적으로 복사됩니다.

scp 유틸리티는 보안 복사 프로토콜(SCP)에서 더 안전한 SSH 파일 전송 프로토콜(SECDHE)으로 변경되었습니다. 결과적으로, 위치에서 동일한 위치에 파일을 복사하면 파일 내용이 삭제됩니다. 이 문제는 다음 구문에 영향을 미칩니다.

SCP localhost:/myfile localhost:/myfile

이 문제를 해결하려면 이 구문을 사용하여 소스 위치와 동일한 대상에 파일을 복사하지 마십시오.

다음 구문에 대해 문제가 해결되었습니다.

  • SCP /myfile localhost:/myfile
  • SCP localhost:~/myfile ~/myfile

(BZ#2056884)

PSK 암호화 제품군은 FUTURE 암호화 정책에서 작동하지 않습니다.

PSK(Pre-shared key) 암호가 완전한 전달 보안(PFS) 키 교환 방법을 수행하는 것으로 인식되지 않습니다. 결과적으로 ECDHE-PSKDHE-PSK 암호화 적합성은 예를 들어 FUTURE 암호화 정책과 같이ECDHE LEVEL=3 으로 구성된 OpenSSL에서 작동하지 않습니다. 해결 방법으로 PSK 암호를 사용하는 애플리케이션에 대해 덜 제한적인 암호화 정책을 설정하거나 더 낮은 보안 수준(ECDHELEVEL)을 설정할 수 있습니다.

(BZ#2060044)

GnuPG는 crypto-policies에서 허용하지 않더라도 SHA-1 서명을 잘못 사용할 수 있음

GnuPG(GNU 개인 정보 보호 ECDHE) 암호화 소프트웨어는 시스템 전체의 암호화 정책에 정의된 설정과 관계없이 SHA-1 알고리즘을 사용하는 서명을 생성하고 확인할 수 있습니다. 결과적으로 DEFAULT 암호화 정책의 암호화 목적으로 SHA-1을 사용할 수 있으며, 이는 서명에 대해 이 비보안 알고리즘의 사용 중단과 일치하지 않습니다.

이 문제를 해결하려면 SHA-1과 관련된 GnuPG 옵션을 사용하지 마십시오. 결과적으로 GnuPG는 비보안 SHA-1 서명을 사용하여 기본 시스템 보안을 낮추지 않습니다.

(BZ#2070722)

GPG-agent 가 FIPS 모드에서 SSH 에이전트로 작동하지 않음

gpg-agent 툴은 FIPS 모드가 MD5 다이제스트를 비활성화하더라도 ssh-agent 프로그램에 키를 추가할 때 MD5 지문을 생성합니다. 결과적으로 ssh-add 유틸리티에서 인증 에이전트에 키를 추가하지 못합니다.

이 문제를 해결하려면 gpg-agent --daemon --enable-ssh-support 명령을 사용하지 않고 ~/.gnupg/sshcontrol 파일을 만듭니다. 예를 들어 < FINGERPRINT> 0 형식의 gpg --list-keys 명령의 출력을 ~/.gnupg/sshcontrol 에 붙여넣을 수 있습니다. 결과적으로 gpg-agent 는 SSH 인증 에이전트로 작동합니다.

(BZ#2073567)

기본 SELinux 정책을 사용하면 제한되지 않은 실행 파일이 스택을 실행할 수 있습니다.

SELinux 정책에서 selinuxuser_execstack 부울의 기본 상태는 on입니다. 즉, 제한되지 않은 실행 파일이 스택을 실행할 수 있습니다. 실행 파일은 이 옵션을 사용하지 않아야 하며, 잘못 코딩된 실행 파일 또는 가능한 공격을 나타낼 수 있습니다. 그러나 Red Hat은 다른 도구, 패키지 및 타사 제품과의 호환성으로 인해 기본 정책에서 부울 값을 변경할 수 없습니다. 시나리오가 이러한 호환성 측면에 의존하지 않는 경우 setsebool -P selinuxuser_execstack 명령을 입력하여 로컬 정책에서 부울을 해제할 수 있습니다.

(BZ#2064274)

Kickstart 설치 중 서비스 관련 규칙 수정에 실패할 수 있습니다.

Kickstart 설치 중에 OpenSCAP 유틸리티에서 서비스 활성화 또는 비활성화 상태 수정이 필요하지 않은 것으로 잘못 표시되는 경우가 있습니다. 그 결과 OpenSCAP에서 설치된 시스템의 서비스를 비준수 상태로 설정할 수 있습니다. 이 문제를 해결하려면 Kickstart 설치 후 시스템을 스캔하고 수정할 수 있습니다. 이렇게 하면 서비스 관련 문제가 해결됩니다.

(BZ#1834716)

SCAP 감사 규칙을 잘못 수정하지 못했습니다.

감사 구성과 관련된 일부 SCAP 규칙의 Bash 수정은 수정 시 감사 키를 추가하지 않습니다. 이는 다음 규칙에 적용됩니다.

  • audit_rules_login_events
  • audit_rules_login_events_faillock
  • audit_rules_login_events_lastlog
  • audit_rules_login_events_tallylog
  • audit_rules_usergroup_modification
  • audit_rules_usergroup_modification_group
  • audit_rules_usergroup_modification_gshadow
  • audit_rules_usergroup_modification_opasswd
  • audit_rules_usergroup_modification_passwd
  • audit_rules_usergroup_modification_shadow
  • audit_rules_time_watch_localtime
  • audit_rules_mac_modification
  • audit_rules_networkconfig_modification
  • audit_rules_sysadmin_actions
  • audit_rules_session_events
  • audit_rules_sudoers
  • audit_rules_sudoers_d

결과적으로 관련 감사 규칙이 이미 존재하지만 OVAL 검사를 완전히 따르지 않는 경우 수정은 감사 규칙의 기능적 부분, 즉 경로 및 액세스 비트이지만 감사 키는 추가하지 않습니다. 따라서 결과 감사 규칙이 올바르게 작동하지만 SCAP 규칙이 FAIL를 잘못 보고합니다. 이 문제를 해결하려면 감사 규칙에 올바른 키를 수동으로 추가합니다.

(BZ#2120978)

STIG 프로파일의 SSH 타임아웃 규칙으로 잘못된 옵션을 구성합니다.

OpenSSH의 업데이트는 다음과 같은 정보 시스템 기관 보안 기술 구현 가이드(DISA STIG) 프로필의 규칙에 영향을 미쳤습니다.

  • RHEL 9 용 DISA STIG (xccdf_org.ssgproject.content_profile_stig)
  • DISA STIG with GUI for RHEL 9 (xccdf_org.ssgproject.content_profile_stig_gui)

이러한 각 프로필에서 다음 두 가지 규칙이 영향을 받습니다.

Title: Set SSH Client Alive Count Max to zero
CCE Identifier: CCE-90271-8
Rule ID: xccdf_org.ssgproject.content_rule_sshd_set_keepalive_0

Title: Set SSH Idle Timeout Interval
CCE Identifier: CCE-90811-1
Rule ID: xccdf_org.ssgproject.content_rule_sshd_set_idle_timeout

SSH 서버에 적용하면 이러한 각 규칙이 더 이상 이전처럼 작동하지 않는 옵션(clientAliveCountMaxClientAliveInterval)을 구성합니다. 결과적으로 OpenSSH는 이러한 규칙으로 구성된 시간 초과에 도달하면 유휴 SSH 사용자의 연결을 해제하지 않습니다. 해결 방법으로 솔루션이 개발될 때까지 RHEL 9용 DISA STIG 및 RHEL 9 프로파일용 GUI를 사용하는 DISA STIG에서 이러한 규칙이 일시적으로 제거되었습니다.

(BZ#2038978)

Keylime은 여러 IMA 측정 파일에 액세스하는 시스템을 검증하지 못할 수 있습니다.

Keylime 에이전트를 실행하는 시스템에서IMA( Integrity Measurement Architecture)에 의해 측정된 여러 파일에 빠른 연속으로 액세스하면 Keylime 검증기가 IMA 로그 추가를 잘못 처리할 수 있습니다. 결과적으로 실행 중인 해시가 올바른 PCR(Platform Configuration Register) 상태와 일치하지 않으며 시스템을 검증하지 못합니다. 현재는 해결방법이 없습니다.

(BZ#2138167)

Keylime 측정 부팅 정책 생성 스크립트로 인해 세그먼트 오류 및 코어 덤프가 발생할 수 있습니다.

Keylime에서 부팅시 측정 정책을 생성하는 create_mb_refstate 스크립트는 제공된 입력에 따라 tpm2_eventlog 툴의 출력을 처리할 때 LengthOf DevicePath 필드의 값을 사용하는 대신 DevicePath 필드의 데이터 길이를 잘못 계산할 수 있습니다. 결과적으로 스크립트는 잘못 계산된 길이를 사용하여 잘못된 메모리에 액세스하려고 시도하여 세그먼트 오류와 코어 덤프가 발생합니다. Keylime의 주요 기능은 이 문제의 영향을 받지 않지만 측정된 부팅 정책을 생성할 수 없습니다.

이 문제를 해결하려면 측정된 부팅 정책을 사용하거나 tpm2-tools 패키지의 tpm2_eventlog 툴을 사용하여 얻은 데이터에서 정책 파일을 수동으로 쓰지 마십시오.

(BZ#2140670)

일부 TPM 인증서로 인해 Keylime 등록 기관 충돌

프로덕션 배포에서 활성화해야 하는 tenant.confrequire_ek_cert 구성 옵션은 TPM(Relime) 테넌트에 TPM(Trusted Platform Module)의 승인 키(EK) 인증서가 필요한지 여부를 결정합니다. require_ek_cert 가 활성화된 초기 ID 인용을 수행할 때 Kelime은 에이전트의 TPM 장치를 Keylime TPM 인증서 저장소에 있는 신뢰할 수 있는 인증서와 비교하여 EK 인증서를 유효한지 여부를 확인합니다. 그러나 저장소의 일부 인증서는 잘못된 형식의 x509 인증서이며 Keylime 등록 기관이 충돌하게 됩니다. 현재 require_ek_certfalse 로 설정하고 EK 검증을 수행할 ek_check_script 옵션에 사용자 지정 스크립트를 정의하는 것을 제외하고 이 문제에 대한 간단한 해결 방법이 없습니다.

(BZ#2142009)

11.7. 네트워킹

nm-cloud-setup 서비스는 인터페이스에서 수동으로 구성된 보조 IP 주소를 제거합니다.

클라우드 환경에서 수신된 정보를 기반으로 nm-cloud-setup 서비스는 네트워크 인터페이스를 구성합니다. nm-cloud-setup 을 비활성화하여 인터페이스를 수동으로 설정합니다. 그러나 특정 경우에는 호스트의 다른 서비스도 인터페이스를 구성할 수 있습니다. 예를 들어, 이러한 서비스는 보조 IP 주소를 추가할 수 있습니다. nm-cloud-setup 을 방지하려면 보조 IP 주소를 제거합니다.

  1. nm-cloud-setup 서비스 및 타이머를 중지하고 비활성화합니다.

    # systemctl disable --now nm-cloud-setup.service nm-cloud-setup.timer
  2. 사용 가능한 연결 프로필을 표시합니다.

    # nmcli connection show
  3. 영향을 받는 연결 프로필을 다시 활성화합니다.

    # nmcli connection up "<profile_name>"

결과적으로 서비스는 인터페이스에서 수동으로 구성된 보조 IP 주소를 더 이상 제거하지 않습니다.

(BZ#2151040)

세션 키를 업데이트하지 않으면 연결이 끊어집니다.

커널 전송 계층 보안(kTLS) 프로토콜은 대칭 암호화에 사용되는 세션 키 업데이트를 지원하지 않습니다. 결과적으로 사용자는 키를 업데이트할 수 없으므로 연결이 중단됩니다. 이 문제를 해결하려면 kTLS를 비활성화합니다. 결과적으로 해결방법을 사용하여 세션 키를 성공적으로 업데이트할 수 있습니다.

(BZ#2013650)

initscripts 패키지는 기본적으로 설치되지 않습니다.

기본적으로 initscripts 패키지는 설치되지 않습니다. 결과적으로 ifupifdown 유틸리티를 사용할 수 없습니다. 또는 nmcli connection upnmcli connection down 명령을 사용하여 연결을 활성화 및 비활성화합니다. 제안된 대체 방법이 작동하지 않는 경우 문제를 보고하고 ifupifdown 유틸리티에 대한 NetworkManager 솔루션을 제공하는 NetworkManager-initscripts-updown 패키지를 설치합니다.

(BZ#2082303)

11.8. 커널

Mellanox ConnectX-5 어댑터를 사용하는 동안 mlx5 드라이버가 실패합니다.

이더넷 스위치 장치 드라이버 모델(switchdev) 모드에서 mlx5 드라이버는 DMFS(Device Managed Flow Adjusting) 매개변수 및 ConnectX-5 어댑터 지원 하드웨어를 사용하여 구성할 때 실패합니다. 결과적으로 다음과 같은 오류 메시지가 표시됩니다.

BUG: Bad page cache in process umount pfn:142b4b

이 문제를 해결하려면 DMFS 대신 SMFS(Software managed flow steering) 매개변수를 사용해야 합니다.

(BZ#2180665)

Secure Boot를 사용하여 FADump를 활성화하면 GRUB Out of Memory (OOM)가 발생할 수 있습니다.

Secure Boot 환경에서 GRUB 및 PowerVM은 함께 부팅 메모리용 512MB 메모리 리전(RMA)을 할당합니다. 리전은 부팅 구성 요소 간에 분할되며 구성 요소가 할당을 초과하면 메모리 부족 오류가 발생합니다.

일반적으로 설치된 기본 initramfs 파일 시스템과 vmlinux 기호 테이블은 이러한 오류를 방지하기 위한 제한 내에 있습니다. 그러나 시스템에서 Firmware Assisted Dump(FADump)가 활성화된 경우 기본 initramfs 크기가95MB를 늘리고 초과할 수 있습니다. 결과적으로 모든 시스템을 재부팅하면 GRUB OOM 상태가 됩니다.

이 문제를 방지하려면 Secure Boot 및 FADump를 함께 사용하지 마십시오. 이 문제를 해결하는 방법에 대한 자세한 내용과 방법은 https://www.ibm.com/support/pages/node/6846531 의 내용을 참조하십시오.

(BZ#2149172)

kmod 의 약한 모듈이 모듈 상호 종속성으로 작동하지 않음

kmod 패키지에서 제공하는 약한 모듈 스크립트는 설치된 커널과 kABI와 호환되는 모듈을 결정합니다. 그러나 모듈의 커널 호환성을 확인하는 동안 약한 모듈은 모듈 기호의 종속성을 더 높은에서 더 낮은 버전의 커널 릴리스까지 제공합니다. 결과적으로 다른 커널 릴리스에 대해 빌드된 상호 의존 관계가 있는 모듈이 호환되지 않는 것으로 해석될 수 있으므로 약한 모듈 스크립트가 이 시나리오에서 작동하지 않습니다.

이 문제를 해결하려면 새 커널을 설치하기 전에 최신 스포지 커널에 대해 추가 모듈을 빌드하거나 배치합니다.

(BZ#2103605)

kdump 서비스가 IBM Z 시스템에 initrd 파일을 빌드하지 못했습니다.

64비트 IBM Z 시스템에서 kdump 서비스는 s390-subchannels 와 같은 znet 관련 구성 정보가 비활성 NetworkManager 연결 프로필에 있을 때 초기 RAM 디스크(initrd)를 로드하지 못합니다. 결과적으로 다음 오류로 인해 kdump 메커니즘이 실패합니다.

dracut: Failed to set up znet
kdump: mkdumprd: failed to make kdump initrd

해결 방법으로 다음 솔루션 중 하나를 사용하십시오.

  • znet 구성 정보가 있는 연결 프로필을 다시 사용하여 네트워크 본딩 또는 브리지를 구성합니다.

    $ nmcli connection modify enc600 master bond0 slave-type bond
  • 비활성 연결 프로필의 znet 구성 정보를 활성 연결 프로파일로 복사합니다.

    1. nmcli 명령을 실행하여 NetworkManager 연결 프로필을 쿼리합니다.

      # nmcli connection show
      
      NAME                       UUID               TYPE   Device
      
      bridge-br0           ed391a43-bdea-4170-b8a2 bridge   br0
      bridge-slave-enc600  caf7f770-1e55-4126-a2f4 ethernet enc600
      enc600               bc293b8d-ef1e-45f6-bad1 ethernet --
    2. 비활성 연결의 구성 정보로 활성 프로필을 업데이트합니다.

      #!/bin/bash
       inactive_connection=enc600
       active_connection=bridge-slave-enc600
       for name in nettype subchannels options; do
       field=802-3-ethernet.s390-$name
       val=$(nmcli --get-values "$field"connection show "$inactive_connection")
       nmcli connection modify "$active_connection" "$field" $val"
       done
    3. kdump 서비스를 다시 시작하여 변경 사항을 적용합니다.

      # kdumpctl restart

(BZ#2064708)

kdump 메커니즘이 LUKS 암호화 대상에서 vmcore 파일을 캡처하지 못했습니다.

Linux 통합 키 설정(LUKS) 암호화된 파티션을 사용하여 시스템에서 kdump 를 실행하는 경우 시스템에 사용 가능한 메모리 양이 필요합니다. 사용 가능한 메모리가 필요한 메모리 양보다 작으면 systemd-cryptsetup 서비스가 파티션을 마운트하지 못합니다. 결과적으로 두 번째 커널은 LUKS 암호화 대상에서 크래시 덤프 파일(vmcore)을 캡처하지 못합니다.

kdumpctl estimate 명령을 사용하면 kdump 에 필요한 권장 메모리 크기인 Recommended crashkernel 값을 쿼리할 수 있습니다.

이 문제를 해결하려면 다음 단계를 사용하여 LUKS 암호화 대상에서 kdump 에 필요한 메모리를 구성합니다.

  1. 예상 crashkernel 값을 출력합니다.

    # kdumpctl estimate
  2. crashkernel 값을 늘려 필요한 메모리 양을 구성합니다.

    # grubby --args=crashkernel=652M --update-kernel=ALL
  3. 시스템을 재부팅하여 변경 사항을 적용합니다.

    # reboot

결과적으로 kdump 는 LUKS 암호화 파티션이 있는 시스템에서 올바르게 작동합니다.

(BZ#2017401)

부팅 시 크래시 커널 메모리 할당이 실패합니다.

특정 ampere Altra 시스템에서 사용 가능한 메모리가 1GB 미만인 경우 부팅 중에 kdump 사용을 위해 크래시 커널 메모리를 할당하는 데 실패합니다. 결과적으로 kdumpctl 명령이 kdump 서비스를 시작하지 못합니다.

이 문제를 해결하려면 다음 중 하나를 수행하십시오.

  • 크기 요구 사항(예: crashkernel =240M )에 맞게 crashkernel 매개변수의 값을 최솟값으로 줄입니다.
  • kdump 에 대해 4GB 이상의 크래시 커널 메모리를 예약하려면 crashkernel=x,high 옵션을 사용합니다.

결과적으로 kdump 의 크래시 커널 메모리 할당이 Veleropere Altra 시스템에서 실패하지 않습니다.

(BZ#2065013)

지연 계정 기능에 기본적으로 SWAPINIO% 통계 열이 표시되지 않습니다.

이전 버전과 달리 지연된 계정 기능은 기본적으로 비활성화되어 있습니다. 결과적으로 iotop 애플리케이션에 SWAPINIO% 통계 열이 표시되지 않으며 다음 경고가 표시됩니다.

CONFIG_TASK_DELAY_ACCT not enabled in kernel, cannot determine SWAPIN and IO%

taskstats 인터페이스를 사용하여 계정 지연 기능은 스레드 그룹에 속하는 모든 작업 또는 스레드에 대한 지연 통계를 제공합니다. 작업 실행 지연은 커널 리소스를 사용할 수 있을 때까지 기다립니다(예: 사용 가능한 CPU가 실행될 때까지 대기 중인 작업). 통계는 작업의 CPU 우선 순위, I/O 우선 순위 및 rss 제한 값을 적절하게 설정하는 데 도움이 됩니다.

이 문제를 해결하려면 런타임 또는 부팅 시 delayacct 부팅 옵션을 활성화할 수 있습니다.

  • 런타임에 delayacct 를 활성화하려면 다음을 입력합니다.

    echo 1 > /proc/sys/kernel/task_delayacct

    이 명령은 시스템 전체 기능을 활성화하지만 이 명령을 실행한 후에 시작하는 작업에 대해서만 사용할 수 있습니다.

  • 부팅 시 delayacct 를 영구적으로 활성화하려면 다음 절차 중 하나를 사용합니다.

    • /etc/sysctl.conf 파일을 편집하여 기본 매개변수를 재정의합니다.

      1. /etc/sysctl.conf 파일에 다음 항목을 추가합니다.

        kernel.task_delayacct = 1

        자세한 내용은 Red Hat Enterprise Linux에서 sysctl 변수를 설정하는 방법을 참조하십시오.

      2. 시스템을 재부팅하여 변경 사항을 적용합니다.
    • GRUB 2 설정 파일을 편집하여 기본 매개변수를 재정의합니다.

      1. /etc/default/grub 파일의 GRUB _CMDLINE_LINUX 항목에 delayacct 옵션을 추가합니다.
      2. grub2-mkconfig 유틸리티를 실행하여 부팅 구성을 다시 생성합니다.

        # grub2-mkconfig -o /boot/grub2/grub.cfg

        자세한 내용은 How do I permanently modify the kernel command line? 를 참조하십시오.

      3. 시스템을 재부팅하여 변경 사항을 적용합니다.

결과적으로 iotop 애플리케이션에 SWAPINIO% 통계 열이 표시됩니다.

(BZ#2132480)

kTLS는 TLS 1.3을 NIC로의 오프로드를 지원하지 않습니다.

커널 전송 계층 보안 (kTLS)은 TLS 1.3의 오프로드를 NIC에 지원하지 않습니다. 결과적으로 NIC가 TLS 오프로드를 지원하는 경우에도 소프트웨어 암호화는 TLS 1.3과 함께 사용됩니다. 이 문제를 해결하려면 오프로드가 필요한 경우 TLS 1.3을 비활성화합니다. 따라서 TLS 1.2만 오프로드할 수 있습니다. TLS 1.3을 사용 중인 경우 TLS 1.3을 오프로드할 수 없기 때문에 성능이 저하됩니다.

(BZ#2000616)

iwl7260-firmware 는 IntelSync-Fi 6 AX200, AX210 및ECDHE P1ad P1ECDHE 4에서 Tang-Fi를 교체합니다.

iwl7260-firmware 또는 iwl7260-wifi 드라이버를 RHEL 8.7 및/또는 RHEL 9.1 (및 이후)에서 제공하는 버전으로 업데이트한 후 하드웨어는 잘못된 내부 상태가 됩니다. 따라서 IntelSyncfi 6 카드가 작동하지 않고 오류 메시지가 표시될 수 있습니다.

kernel: iwlwifi 0000:09:00.0: Failed to start RT ucode: -110
kernel: iwlwifi 0000:09:00.0: WRT: Collecting data: ini trigger 13 fired (delay=0ms)
kernel: iwlwifi 0000:09:00.0: Failed to run INIT ucode: -110

확인되지 않은 작업은 시스템의 전원을 끄고 다시 켜는 것입니다. 재부팅하지 마십시오.

(BZ#2129288)

dkms 는 64비트 ARM CPU에서 올바르게 컴파일된 드라이버를 사용하여 프로그램 오류에 대한 잘못된 경고를 제공합니다.

동적 커널 모듈 지원(dkms) 유틸리티는 64비트 ARM CPU의 커널 헤더가 4 킬로바이트 및 64 킬로바이트 페이지 크기가 있는 커널 모두에서 작동하는지 인식하지 못합니다. 결과적으로 커널 업데이트가 수행되고 kernel-64k-devel 패키지가 설치되지 않은 경우 dkms 는 프로그램이 올바르게 컴파일된 드라이버에서 실패한 이유에 대한 잘못된 경고를 제공합니다. 이 문제를 해결하려면 두 가지 유형의 ARM CPU 아키텍처에 대한 헤더 파일이 포함된 kernel-headers 패키지를 설치하고 dkms 및 해당 요구 사항에 국한되지 않습니다.

(JIRA:RHEL-25967)

11.9. 부트 로더

grubby 의 동작과 문서의 다양한 기능

grubby 툴을 사용하여 새 커널을 추가하고 인수를 지정하지 않으면 grubby 가 기본 인수를 새 항목에 전달합니다. 이 동작은 --copy-default 인수를 전달하지 않고도 수행됩니다. --args--copy-default 옵션을 사용하면 grubby 문서에 명시된 대로 해당 인수가 기본 인수에 추가됩니다.

그러나 $tuned_params 와 같은 인수를 추가하면 --copy-default 옵션이 호출되지 않는 한 grubby 툴에서 이러한 인수를 전달하지 않습니다.

이 경우 다음 두 가지 해결 방법을 사용할 수 있습니다.

  • root= 인수를 설정하고 --args empty를 둡니다.

    # grubby --add-kernel /boot/my_kernel --initrd /boot/my_initrd --args "root=/dev/mapper/rhel-root" --title "entry_with_root_set"
  • 또는 root= 인수와 지정된 인수를 설정하지만 기본 인수는 설정하지 않습니다.

    # grubby --add-kernel /boot/my_kernel --initrd /boot/my_initrd --args "root=/dev/mapper/rhel-root some_args and_some_more" --title "entry_with_root_set_and_other_args_too"

(BZ#2127453)

11.10. 파일 시스템 및 스토리지

cloud-init 에 의해 프로비저닝되고 NFSv3 마운트 항목으로 구성된 경우 Azure의 RHEL 인스턴스가 부팅되지 않음

현재 Microsoft Azure 클라우드 플랫폼에서 RHEL 가상 머신(VM)을 부팅하는 것은 cloud-init 툴을 통해 VM을 프로비저닝하고 VM의 게스트 운영 체제에 /etc/fstab 파일에 NFSv3 마운트 항목이 있는 경우 실패합니다.

(BZ#2081114)

Anaconda에서 CHAP 인증 시도에 실패한 후 인증 방법을 사용하지 않고 iSCSI 서버에 로그인하지 못했습니다.

CHAP 인증을 사용하여 iSCSI 디스크를 추가하고 잘못된 자격 증명으로 인해 로그인 시도가 실패하면 인증 방법이 없는 상태에서 디스크를 다시 로그인하려고 시도합니다. 이 문제를 해결하려면 현재 세션을 닫고 인증 방법을 사용하지 않고 로그인합니다.

(BZ#1983602)

NVMe/TCP에서 장치 맵퍼 Multipath가 지원되지 않음

nvme-tcp 드라이버와 함께 장치 매퍼 Multipath를 사용하면 call Trace 경고 및 시스템 불안정이 발생할 수 있습니다. 이 문제를 해결하려면 NVMe/TCP 사용자가 네이티브 NVMe 멀티패스를 활성화하고 NVMe에서 device-mapper-multipath 툴을 사용하지 않아야 합니다.

기본적으로 RHEL 9에서는 네이티브 NVMe 멀티패스가 활성화됩니다. 자세한 내용은 NVMe 장치에서 멀티패스 활성화를 참조하십시오.

(BZ#2033080)

blk-availability systemd 서비스는 복잡한 장치 스택을 비활성화합니다.

systemd 에서 기본 블록 비활성화 코드는 가상 블록 장치의 복잡한 스택을 항상 올바르게 처리하지는 않습니다. 일부 구성에서는 종료 중에 가상 장치가 제거되지 않을 수 있으므로 오류 메시지가 기록됩니다. 이 문제를 해결하려면 다음 명령을 실행하여 복잡한 블록 장치 스택을 비활성화합니다.

# systemctl enable --now blk-availability.service

결과적으로 종료 중에 복잡한 가상 장치 스택이 올바르게 비활성화되고 오류 메시지가 생성되지 않습니다.

(BZ#2011699)

supported_speeds sysfs 특성은 잘못된 속도 값을 보고합니다.

이전 버전에서는 qla2xxx 드라이버에서 잘못된 정의로 인해 HBA의 supported_speeds sysfs 속성이 예상되는 64GB/s 속도 대신 20Gb/s 속도를 보고했습니다. 결과적으로 HBA가 64 Gb/s 링크 속도를 지원하는 경우 sysfs supported_speeds 값이 올바르지 않아 보고된 속도 값에 영향을 미쳤습니다.

그러나 이제 HBA에 대해 supported_speeds sysfs 속성은 의도된 64 Gb/s 대신 100 Gb/s 속도, 예상 128 Gb/s 속도 대신 50Gb/s 속도를 반환합니다. 이는 보고된 속도 값에만 영향을 미치며 파이버 연결에 사용되는 실제 링크 속도가 정확합니다.

(BZ#2069758)

11.11. 동적 프로그래밍 언어, 웹 서버 및 데이터베이스 서버

MySQLMariaDB--ssl-fips-mode 옵션은 FIPS 모드를 변경하지 않습니다.

MySQLMariaDB--ssl-fips-mode 옵션은 업스트림과 다르게 작동합니다.

RHEL 9에서 mysqld 또는 mariadbd 데몬의 인수로 --ssl-fips-mode 를 사용하거나 MySQL 또는 MariaDB 서버 구성 파일에서 ssl-fips-mode 를 사용하는 경우 --ssl-fips-mode 는 이러한 데이터베이스 서버에 대해 FIPS 모드를 변경하지 않습니다.

대신 다음을 수행합니다.

  • --ssl-fips-modeON 으로 설정하면 mysqld 또는 mariadbd 서버 데몬이 시작되지 않습니다.
  • FIPS 사용 시스템에서 --ssl-fips-modeOFF 로 설정하면 mysqld 또는 mariadbd 서버 데몬이 FIPS 모드에서 계속 실행됩니다.

이는 특정 구성 요소가 아닌 전체 RHEL 시스템에서 FIPS 모드를 활성화 또는 비활성화해야 하기 때문에 예상됩니다.

따라서 RHEL의 MySQL 또는 MariaDB 에서 --ssl-fips-mode 옵션을 사용하지 마십시오. 대신 전체 RHEL 시스템에서 FIPS 모드가 활성화되어 있는지 확인합니다.

  • FIPS 모드가 활성화된 RHEL을 설치하는 것이 좋습니다. 설치 중에 FIPS 모드를 활성화하면 시스템이 FIPS 승인 알고리즘 및 지속적인 모니터링 테스트로 모든 키를 생성합니다. FIPS 모드에서 RHEL을 설치하는 방법에 대한 자세한 내용은 FIPS 모드에서 시스템 설치를 참조하십시오.
  • 또는 시스템을 FIPS 모드로 전환하는 절차에 따라 전체 RHEL 시스템의 FIPS 모드를 전환할 수 있습니다.

(BZ#1991500)

11.12. 컴파일러 및 개발 도구

특정 기호 기반 프로브는 64비트 ARM 아키텍처의 SystemTap 에서 작동하지 않습니다.

커널 구성은 SystemTap 에 필요한 특정 기능을 비활성화합니다. 결과적으로 일부 기호 기반 프로브는 64비트 ARM 아키텍처에서 작동하지 않습니다. 결과적으로 영향을 받는 SystemTap 스크립트가 실행되지 않거나 원하는 프로브 포인트에서 히트를 수집하지 않을 수 있습니다.

RHBA-2022:5259 권고가 릴리스된 나머지 아키텍처에서는 이 버그가 수정되었습니다.

(BZ#2083727)

11.13. IdM (Identity Management)

MIT Kerberos는 PKINIT에 대한ECDHE 인증서를 지원하지 않습니다.

MIT Kerberos는 PKINIT(Public Key Cryptography for initial authentication)에서 ECC(elliptic-curve 암호화) 지원 설계를 설명하는 주석 문서에 대한 RFC5349 요청을 구현하지 않습니다. 결과적으로 RHEL에서 사용하는 MITECDHE5-pkinit 패키지는ECDHE 인증서를 지원하지 않습니다. 자세한 내용은 Kerberos(PKINIT)의 공개 키 암호화에 대한 ECC(Elliptic Curve Cryptography) 지원을 참조하십시오.

(BZ#2106043)

PKINIT가 AD KDC에 대해 작동하도록 RHEL 9 클라이언트에 DEFAULT:SHA1 하위 정책을 설정해야 합니다.

SHA-1 다이제스트 알고리즘은 RHEL 9에서 더 이상 사용되지 않으며 초기 인증을 위한 공개 키 암호화(PKINIT)의 CMS 메시지는 이제 강력한 SHA-256 알고리즘으로 서명됩니다.

그러나 AD(Active Directory) Kerberos Distribution Center(KDC)는 여전히 SHA-1 다이제스트 알고리즘을 사용하여 CMS 메시지에 서명합니다. 결과적으로 RHEL 9 Kerberos 클라이언트는 AD KDC에 대해 PKINIT를 사용하여 사용자를 인증하지 못합니다.

문제를 해결하려면 다음 명령을 사용하여 RHEL 9 시스템에서 SHA-1 알고리즘을 지원합니다.

 # update-crypto-policies --set DEFAULT:SHA1

(BZ#2060798)

RHEL 9 Kerberos 에이전트가 RHEL-9 이외의 Kerberos 에이전트와 통신하면 사용자의 PKINIT 인증이 실패합니다.

클라이언트 또는 Kerberos 배포 센터(KDC) 중 하나인 RHEL 9 Kerberos 에이전트가 AD(Active Directory) 에이전트가 아닌 RHEL-9 Kerberos 에이전트와 상호 작용하는 경우 사용자의 PKINIT 인증이 실패합니다. 문제를 해결하려면 다음 작업 중 하나를 수행하십시오.

  • SHA-1 서명을 확인할 수 있도록 RHEL 9 에이전트의 crypto-policy를 DEFAULT:SHA1 로 설정합니다.

    # update-crypto-polices --set DEFAULT:SHA1
  • 비 RHEL-9 및 비 AD 에이전트를 업데이트하여 SHA-1 알고리즘을 사용하여 CMS 데이터에 서명하지 않도록 합니다. 이를 위해 Kerberos 클라이언트 또는 KDC 패키지를 SHA-1 대신 SHA-256을 사용하는 버전으로 업데이트합니다.

    • CentOS 9 Stream:ECDHE5-1.19.1-15
    • RHEL 8.7:ECDHE5-1.18.2-17
    • RHEL 7.9:ECDHE5-1.15.1-53
    • Fedora Rawhide/36:ECDHE5-1.19.2-7
    • Fedora 35/34: krb5-1.19.2-3

결과적으로 사용자의 PKINIT 인증이 올바르게 작동합니다.

다른 운영 체제의 경우 에이전트가 SHA-1 대신 SHA-256으로 CMS 데이터에 서명할 수 있도록 하는 이 릴리스입니다.

PKINIT가 AD KDC에 대해 작동하도록 RHEL 9 클라이언트에 DEFAULT:SHA1 하위 정책을 설정해야 합니다. 을 참조하십시오.

(BZ#2077450)

AD 트러스트를 위한 FIPS 지원에는 AD-SUPPORT 암호화 하위 정책이 필요합니다.

Active Directory(AD)는 RHEL 9의 FIPS 모드에서 기본적으로 허용되지 않는 AES SHA-1 HMAC 암호화 유형을 사용합니다. AD 신뢰가 있는 RHEL 9 IdM 호스트를 사용하려면 IdM 소프트웨어를 설치하기 전에 AES SHA-1 HMAC 암호화 유형에 대한 지원을 활성화하십시오.

FIPS 컴플라이언스는 기술 및 조직 계약을 모두 포함하는 프로세스이므로 AD-SUPPORT 하위 정책을 활성화하기 전에 FIPS 감사기를 참조하여 기술 조치가 AES SHA-1 HMAC 암호화 유형을 지원하도록 허용한 다음 RHEL IdM을 설치합니다.

 # update-crypto-policies --set FIPS:AD-SUPPORT

(BZ#2057471)

RHEL 9 KDC에 대해 PKINIT를 사용하여 사용자를 인증하지 못했습니다.

기본적으로 Heimdal Kerberos 클라이언트는 IKE(Internet Key Exchange)용 Modular Exponential(MODP) Diffie-Hellman Group 2를 사용하여 IdM 사용자의 PKINIT 인증을 시작합니다. 그러나 RHEL 9의 MIT Kerberos Distribution Center(KDC)는 MODP 그룹 14 및 16만 지원합니다.

그 결과 RHEL MIT KDC에서 서명되지 않은 클라이언트 및 키 매개 변수PREAUTH_FAILED 오류와 함께 사전 준비 요청이 실패합니다.

이 문제를 해결하려면 Heimdal 클라이언트에서 MODP 그룹 14를 사용하는지 확인합니다. 클라이언트 구성 파일의 libdefaults 섹션에서 pkinit_dh_min_bits 매개변수를 1759로 설정합니다.

[libdefaults]
pkinit_dh_min_bits = 1759

결과적으로 Heimdal 클라이언트는 RHEL MIT KDC에 대한 PKINIT 사전 인증을 완료합니다.

(BZ#2106296)

FIPS 모드에서 IdM은 양방향 간 신뢰를 구축하기 위해ECDHESSP 프로토콜 사용을 지원하지 않습니다.

새 Technology LAN Manager Security Support Provider(NTLMSSP) 인증은 FIPS와 FIPS와 호환되는 Active Directory(AD)와 IdM(Identity Management) 간에 두 가지 방식 간 트러스트를 설정하는 데 실패합니다. FIPS 모드의 IdM은 AD 도메인 컨트롤러에서 인증을 시도할 때 사용하는 RC4ECDHE 해시를 허용하지 않습니다.

(BZ#2124243)

AD cross-realm TGS 요청에 대한 IdM

IdM Kerberos 티켓의 PAC(권한 속성 인증서) 정보는 AD(Active Directory)에서 지원되지 않는 AES SHA-2 HMAC 암호화로 서명됩니다.

결과적으로 IdM에서 AD cross-realm TGS 요청(즉, 양방향 신뢰 설정)이 다음 오류로 인해 실패합니다.

"Generic error (see e-text) while getting credentials for <service principal>"

(BZ#2060421)

FIPS 모드에서 IdM Vault 암호화 및 암호 해독 실패

FIPS 모드가 활성화되면 OpenSSL RSA-PKCS1v15 패딩 암호화가 차단됩니다. 결과적으로 IdM(Identity Management) Vault가 현재 PKCS1v15 패딩을 사용하여 세션 키를 전송 인증서로 래핑하므로 제대로 작동하지 않습니다.

(BZ#2089907)

도메인 SID 불일치로 인해 마이그레이션된 IdM 사용자가 로그인하지 못할 수 있습니다.

ipa migrate-ds 스크립트를 사용하여 한 IdM 배포에서 사용자를 다른 배포로 마이그레이션하는 경우 기존 SID(Security Identifiers)에 현재 IdM 환경의 도메인 SID가 없기 때문에 IdM 서비스 사용에 문제가 있을 수 있습니다. 예를 들어, 해당 사용자는 kinit 유틸리티로 Kerberos 티켓을 검색할 수 있지만 로그인할 수 없습니다. 이 문제를 해결하려면 Knowledgebase 문서: Migrated IdM users unable to log in due to mismatching domain SIDs 를 참조하십시오.

(JIRA:RHELPLAN-109613)

Directory Server가 모드로 시작되면 예기치 않게 종료됩니다.

버그로 인해 전역 모드가 Directory Server에서 작동하지 않습니다. 참조 옵션을 dirsrv 사용자로 사용하여 ns-slapd 프로세스를 시작하는 경우 Directory Server는 포트 설정을 무시하고 예기치 않게 종료됩니다. 루트 사용자가 프로세스를 실행할 때 SELinux 레이블을 변경하고 서비스가 나중에 일반 모드에서 시작되지 않도록 합니다. 사용할 수 있는 해결방법이 없습니다.

(BZ#2053204)

Directory Server에서 접미사가 실패하는 경우 구성

Directory Server에서 백엔드를 설정하는 경우 dsconf <instance_name> 백엔드 접미사 세트를 사용하여 백엔드 상태를 설정하면 다음 오류와 함께 --state conjunction 명령이 실패합니다.

Error: 103 - 9 - 53 - Server is unwilling to perform - [] - need to set nsslapd-referral before moving to referral state

결과적으로 접미사에 대한 구성에는 실패합니다. 문제를 해결하려면 다음을 수행합니다.

  1. nsslapd-referral 매개변수를 수동으로 설정합니다.

    # ldapmodify -D "cn=Directory Manager" -W -H ldap://server.example.com
    
    dn: cn=dc\3Dexample\2Cdc\3Dcom,cn=mapping tree,cn=config
    changetype: modify
    add: nsslapd-referral
    nsslapd-referral: ldap://remote_server:389/dc=example,dc=com
  2. 백엔드 상태를 설정합니다.

    # dsconf <instance_name> backend suffix set --state referral

결과적으로 해결방법을 사용하여 접미사를 구성할 수 있습니다.

(BZ#2063140)

dsconf 유틸리티에는 entryUUID 플러그인에 대한 수정 작업 생성 옵션이 없습니다.

dsconf 유틸리티는 entryUUID 플러그인에 대한 수정 작업을 생성하는 옵션을 제공하지 않습니다. 따라서 관리자는 dsconf 를 사용하여 기존 항목에 entryUUID 속성을 자동으로 추가하는 작업을 생성할 수 없습니다. 이 문제를 해결하려면 수동으로 작업을 생성합니다.

# ldapadd -D "cn=Directory Manager" -W -H ldap://server.example.com -x

dn: cn=entryuuid_fixup_<time_stamp>,cn=entryuuid task,cn=tasks,cn=config
objectClass: top
objectClass: extensibleObject
basedn: <fixup base tree>
cn: entryuuid_fixup_<time_stamp>
filter: <filtered_entry>

작업이 생성되면 Directory Server에서 누락되거나 유효하지 않은 entryUUID 속성이 있는 항목을 수정합니다.

(BZ#2047175)

ldap_id_use_start_tls 옵션에 기본값을 사용할 때 발생할 수 있는 위험

TLS없이 ldap:// 를 ID 조회에 사용하는 경우 공격 벡터가 발생할 위험이 있습니다. 특히 MITM(Man-in-the-middle) 공격으로 공격자는 LDAP 검색에 반환된 오브젝트의 UID 또는 GID를 변경하여 사용자를 가장할 수 있습니다.

현재 TLS를 적용하는 SSSD 구성 옵션인 ldap_id_use_start_tls 는 기본값은 false 입니다. 설정이 신뢰할 수 있는 환경에서 작동하고 id_provider = ldap 에 대해 암호화되지 않은 통신을 안전하게 사용할 수 있는지 결정합니다. 참고 id_provider = adid_provider = ipa 는 SASL 및 GSSAPI로 보호되는 암호화된 연결을 사용하므로 영향을 받지 않습니다.

암호화되지 않은 통신을 사용하는 것이 안전하지 않은 경우 /etc/sssd/sssd.conf 파일에서 ldap_id_use_start_tls 옵션을 true 로 설정하여 TLS를 적용합니다. 기본 동작은 RHEL의 향후 릴리스에서 변경될 예정입니다.

(JIRA:RHELPLAN-155168)

11.14. 데스크탑

RHEL 9로 업그레이드한 후 Firefox 추가 기능이 비활성화되어 있습니다.

RHEL 8에서 RHEL 9로 업그레이드하는 경우 Firefox에서 이전에 활성화한 추가 기능이 모두 비활성화됩니다.

문제를 해결하려면 애드온을 수동으로 다시 설치하거나 업데이트합니다. 결과적으로 추가 기능이 예상대로 활성화됩니다.

(BZ#2013247)

사용자 생성 화면이 응답하지 않음

그래픽 사용자 인터페이스를 사용하여 RHEL을 설치할 때 사용자 생성 화면이 응답하지 않습니다. 결과적으로 설치 중에 사용자를 생성하는 것이 더 어렵습니다.

이 문제를 해결하려면 다음 솔루션 중 하나를 사용하여 사용자를 생성합니다.

  • VNC 모드에서 설치를 실행하고 VNC 창의 크기를 조정합니다.
  • 설치 프로세스를 완료한 후 사용자를 생성합니다.

(BZ#2122636)

RHEL 9로 업그레이드한 후 VNC가 실행되지 않음

RHEL 8에서 RHEL 9로 업그레이드한 후 이전에 활성화된 경우에도 VNC 서버가 시작되지 않습니다.

문제를 해결하려면 시스템 업그레이드 후 vncserver 서비스를 수동으로 활성화합니다.

# systemctl enable --now vncserver@:port-number

결과적으로 VNC가 활성화되고 모든 시스템 부팅 후 예상대로 시작됩니다.

(BZ#2060308)

11.15. 그래픽 인프라

Matrox G200e는 VGA 디스플레이의 출력이 표시되지 않음

다음 시스템 구성을 사용하는 경우 그래픽 출력이 표시되지 않을 수 있습니다.

  • Matrox G200e GPU
  • VGA 컨트롤러에 연결된 디스플레이

따라서 이 구성에 RHEL을 사용하거나 설치할 수 없습니다.

문제를 해결하려면 다음 절차를 사용하십시오.

  1. 시스템을 부트 로더 메뉴로 부팅합니다.
  2. kernel 명령행에 module_blacklist=mgag200 옵션을 추가합니다.

결과적으로 RHEL이 부팅되고 그래픽 출력이 예상대로 표시되지만 최대 해상도는 16비트 색상 깊이에서 1024x768로 제한됩니다.

(BZ#1960467)

X.org 설정 유틸리티가 Wayland에서 작동하지 않음

화면을 조작하기 위한 X.org 유틸리티는 Wayland 세션에서 작동하지 않습니다. 특히 xrandr 유틸리티는 처리, 해결, 순환 및 레이아웃에 대한 다른 접근 방식으로 인해 Wayland에서 작동하지 않습니다.

(JIRA:RHELPLAN-121049)

NVIDIA 드라이버는 X.org로 되돌릴 수 있습니다.

특정 조건에서 독점 NVIDIA 드라이버는 Wayland 디스플레이 프로토콜을 비활성화하고 X.org 디스플레이 서버로 되돌립니다.

  • NVIDIA 드라이버 버전이 470 미만인 경우
  • 시스템이 하이브리드 그래픽을 사용하는 노트북인 경우
  • 필요한 NVIDIA 드라이버 옵션을 활성화하지 않은 경우

또한 Wayland가 활성화되어 있지만 데스크탑 세션은 기본적으로 NVIDIA 드라이버 버전이 510 미만인 경우 X.org를 사용합니다.

(JIRA:RHELPLAN-119001)

Night Light는 NVIDIA를 사용하는 Wayland에서 사용할 수 없습니다.

시스템에서 전용 NVIDIA 드라이버를 활성화하면 Wayland 세션에서 GNOME의 Night Light 기능을 사용할 수 없습니다. NVIDIA 드라이버는 현재 Night Light 를 지원하지 않습니다.

(JIRA:RHELPLAN-119852)

11.16. 웹 콘솔

특정 문제 해결 시 VNC 콘솔이 잘못 작동합니다.

특정 디스플레이 해상도에서 VNC(Virtual Network Computing) 콘솔을 사용하는 경우 마우스 오프셋 문제가 발생하거나 인터페이스의 일부만 표시될 수 있습니다. 결과적으로 VNC 콘솔을 사용할 수 없습니다. 이 문제를 해결하려면 VNC 콘솔 크기를 확장하거나 콘솔 탭에서 데스크탑 뷰어를 사용하여 원격 뷰어를 시작할 수 있습니다.

(BZ#2030836)

11.17. 가상화

경우에 따라 https 또는 ssh를 통해 가상 머신 설치 실패

현재 virt-install --cdrom https://example/path/to/image.iso 사용 등 https 또는 ssh 연결을 통해 ISO 소스에서 OS(게스트 운영 체제)를 설치하려고 할 때 virt-install 유틸리티가 실패합니다. VM(가상 머신)을 생성하는 대신, 설명된 작업은 모니터링 메시지에 연결하는 동안 내부 오류: 프로세스가 종료된 상태에서 예기치 않게 종료됩니다.

마찬가지로 RHEL 9 웹 콘솔을 사용하여 게스트 OS를 설치하는 데 실패하고 https 또는 ssh URL을 사용하거나 OS 다운로드 기능을 사용하면 알 수 없는 드라이버 'https' 오류가 표시됩니다.

이 문제를 해결하려면 호스트에 qemu-kvm-block-curlqemu-kvm-block-ssh 를 설치하여 https 및 ssh 프로토콜 지원을 각각 활성화합니다. 또는 다른 연결 프로토콜 또는 다른 설치 소스를 사용합니다.

(BZ#2014229)

가상 머신에서 NVIDIA 드라이버를 사용하면 Wayland가 비활성화됩니다.

현재 NVIDIA 드라이버는 Wayland 그래픽 세션과 호환되지 않습니다. 결과적으로 NVIDIA 드라이버를 사용하는 RHEL 게스트 운영 체제는 Wayland를 자동으로 비활성화하고 대신 Xorg 세션을 로드합니다. 이는 주로 다음과 같은 시나리오에서 발생합니다.

  • NVIDIA GPU 장치를 통해 RHEL 가상 머신(VM)에 전달하는 경우
  • RHEL VM에 NVIDIA vGPU 미디어 장치를 할당하는 경우

(JIRA:RHELPLAN-117234)

밀란 VM CPU 유형은 AMD Milan 시스템에서 사용할 수 없는 경우가 있습니다.

특정 AMD Milan 시스템에서는 강화된 REP MOVSB(erms) 및 Fast short REP MOVSB(fsrm) 기능 플래그가 기본적으로 BIOS에서 비활성화되어 있습니다. 결과적으로 이러한 시스템에서 밀란 CPU 유형을 사용할 수 없습니다. 또한 기능 플래그 설정이 다른 밀란 호스트 간에 VM 실시간 마이그레이션이 실패할 수 있습니다. 이러한 문제를 해결하려면 호스트의 BIOS에서 ermsfsrm 을 수동으로 켭니다.

(BZ#2077767)

AVX를 비활성화하면 VM이 재부팅되지 않음

AVX(Advanced Vector Extensions) 지원이 있는 CPU를 사용하는 호스트 시스템에서 AVX를 명시적으로 비활성화하여 VM에서 커널 패닉을 트리거합니다.

(BZ#2005173)

마이그레이션 후 VNC를 UEFI VM에 연결할 수 없음

VM(가상 머신)을 마이그레이션하는 동안 메시지 큐를 활성화하거나 비활성화하면 가상 네트워크 컴퓨팅(VNC) 클라이언트가 마이그레이션이 완료된 후 VM에 연결되지 않습니다.

이 문제는 OVMF(Open Virtual Machine Firmware)를 사용하는 UEFI 기반 VM에만 영향을 미칩니다.

(JIRA:RHELPLAN-135600)

페일오버 virtio NIC에는 Windows 가상 머신의 IP 주소가 할당되지 않음

현재 페일오버 virtio NIC로만 Windows VM(가상 머신)을 시작할 때 VM이 NIC에 IP 주소를 할당하지 못합니다. 결과적으로 NIC는 네트워크 연결을 설정할 수 없습니다. 현재는 해결방법이 없습니다.

(BZ#1969724)

네트워크 인터페이스 재설정 후 Windows VM이 IP 주소를 얻지 못함

경우에 따라 Windows 가상 머신이 자동 네트워크 인터페이스 재설정 후 IP 주소를 얻지 못하는 경우가 있습니다. 이로 인해 VM이 네트워크에 연결할 수 없습니다. 이 문제를 해결하려면 Windows 장치 관리자에서 네트워크 어댑터 드라이버를 비활성화하고 다시 활성화합니다.

(BZ#2084003)

실시간 마이그레이션 후 Broadcom 네트워크 어댑터가 Windows VM에서 잘못 작동합니다.

현재 Broadcom 제품군의 네트워크 어댑터(예: Broadcom, Qlogic 또는 Marvell)는 Windows VM(가상 머신)의 실시간 마이그레이션 중에 핫 플러그를 해제할 수 없습니다. 결과적으로 마이그레이션이 완료된 후 어댑터가 잘못 작동합니다.

이 문제는 SR-IOV(Single-root I/O Virtualization)를 사용하여 Windows VM에 연결된 어댑터에만 영향을 미칩니다.

(BZ#2090712, BZ#2091528, BZ#2111319)

장애 조치 설정이 있는 hostdev 인터페이스는 핫 플러그 해제한 후에는 핫플러그할 수 없습니다.

실행 중인 VM(가상 머신)에서 페일오버 구성으로 hostdev 네트워크 인터페이스를 제거한 후 현재 해당 인터페이스를 실행 중인 동일한 VM에 다시 연결할 수 없습니다.

(BZ#2052424)

장애 조치 VF가 있는 VM의 실시간 복사 후 마이그레이션이 실패합니다.

현재 VM에서 VF(가상 기능) 장애 조치 기능이 활성화된 장치를 사용하는 경우 실행 중인 VM(가상 머신)을 마이그레이션하지 못합니다. 이 문제를 해결하려면 post-copy 마이그레이션 대신 표준 마이그레이션 유형을 사용합니다.

(BZ#1817965)

호스트 네트워크는 실시간 마이그레이션 중에 VF를 사용하여 VM을 ping할 수 없습니다.

가상 SR-IOV 소프트웨어를 사용하는 VM(가상 기능)과 같이 구성된 가상 기능(VF)을 사용하여 가상 머신(VM)을 실시간 마이그레이션하는 경우, VM 네트워크는 다른 장치에 표시되지 않으며 ping 과 같은 명령으로 VM에 연결할 수 없습니다. 그러나 마이그레이션이 완료되면 더 이상 문제가 발생하지 않습니다.

(BZ#1789206)

다수의 큐를 사용하면 Windows 가상 머신이 실패할 수 있습니다.

vTPM(가상 신뢰 플랫폼 모듈) 장치가 활성화되고, 250개 이상의 대기열을 사용하도록 멀티 큐 virtio-net 기능이 구성된 경우 VM(Windows 가상 머신)이 실패할 수 있습니다.

이 문제는 vTPM 장치의 제한으로 인해 발생합니다. vTPM 장치에는 열린 파일 설명자의 최대 수에 하드 코딩된 제한이 있습니다. 새 큐에 대해 여러 파일 설명자가 열리므로 내부 vTPM 제한을 초과하여 VM이 실패할 수 있습니다.

이 문제를 해결하려면 다음 두 가지 옵션 중 하나를 선택합니다.

  • vTPM 장치를 활성화하되 250개 미만의 대기열을 사용합니다.
  • 250개 이상의 대기열을 사용하도록 vTPM 장치를 비활성화합니다.

(BZ#2020146)

PCIe ATS 장치는 Windows VM에서 작동하지 않음

Windows 게스트 운영 체제를 사용하여 VM(가상 머신)의 XML 구성에서 PCIe 주소 변환 서비스(ATS) 장치를 구성할 때 게스트는 VM을 부팅한 후 ATS 장치를 활성화하지 않습니다. Windows는 현재 virtio 장치에서 ATS를 지원하지 않기 때문입니다.

자세한 내용은 Red Hat KnowledgeBase 를 참조하십시오.

(BZ#2073872)

11.18. 클라우드 환경의 RHEL

Nutanix AHV에서 LVM을 사용하는 RHEL 9 가상 머신을 복제하거나 복원하면 루트가 아닌 파티션이 사라집니다.

Nutanix AHV 하이퍼바이저에서 호스팅되는 VM(가상 머신)에서 RHEL 9 게스트 운영 체제를 실행하는 경우 스냅샷에서 VM을 복원하거나 현재 VM을 복제하면 게스트가 논리 볼륨 관리(LVM)를 사용하는 경우 VM의 루트가 아닌 파티션이 사라집니다. 결과적으로 다음과 같은 문제가 발생합니다.

  • 스냅샷에서 VM을 복원하면 VM을 부팅할 수 없으며 대신 긴급 모드로 들어갑니다.
  • 복제로 생성된 VM은 부팅할 수 없으며 대신 긴급 모드로 들어갑니다.

이러한 문제를 해결하려면 VM의 긴급 모드에서 다음을 수행하십시오.

  1. LVM 시스템 장치 파일 rm /etc/lvm/devices/system.devices를 제거합니다.
  2. LVM 장치 설정 재생성 :importdevices -a
  3. VM 재부팅

이렇게 하면 복제되거나 복원된 VM이 올바르게 부팅될 수 있습니다.

또는 문제가 발생하지 않도록 하려면 VM을 복제하거나 VM 스냅샷을 생성하기 전에 다음을 수행하십시오.

  1. /etc/lvm/lvm.conf 파일에서 use_devicesfile = 0 행의 주석을 제거하십시오.
  2. VM 재부팅

(BZ#2059545)

ESXi에서 RHEL 9 게스트 사용자 정의로 인해 네트워킹 문제가 발생하는 경우가 있음

현재 VMware ESXi 하이퍼바이저에서 RHEL 9 게스트 운영 체제를 사용자 정의해도 NetworkManager 키 파일에서 제대로 작동하지 않습니다. 결과적으로 게스트가 이러한 키 파일을 사용하는 경우 IP 주소 또는 게이트웨이와 같은 잘못된 네트워크 설정이 설정됩니다.

자세한 내용 및 해결 방법은 VMware Knowledge Base 를 참조하십시오.

(BZ#2037657)

VMware 호스트의 RHEL 가상 시스템에서 고정 IP 설정이 작동하지 않음

현재 VMware 호스트에서 RHEL을 VM(가상 머신)의 게스트 운영 체제로 사용하는 경우 DatasourceOVF 기능이 제대로 작동하지 않습니다. 결과적으로 cloud-init 유틸리티를 사용하여 VM의 네트워크를 고정 IP로 설정한 다음 VM을 재부팅하면 VM의 네트워크가 DHCP로 변경됩니다.

(BZ#1750862)

11.19. 지원 관련 기능

IBM Power Systems, Little Endian에 대한 보고서를 실행할 때 시간 초과

IBM Power Systems에서 sos report 명령을 실행하는 경우 수백 또는 수천 개의 CPU가 있는 Little Endian에서 /sys/devices/system/cpu 디렉터리의 대규모 콘텐츠를 수집할 때 프로세서 플러그인은 300초의 기본 타임아웃에 도달합니다. 해결 방법으로 다음과 같이 플러그인의 시간 제한을 늘립니다.

  • 일회성 설정의 경우 다음을 실행합니다.
# sos report -k processor.timeout=1800
  • 영구 변경을 위해 /etc/sos/sos.conf 파일의 [plugin_options] 섹션을 편집합니다.
[plugin_options]
# Specify any plugin options and their values here. These options take the form
# plugin_name.option_name = value
#rpm.rpmva = off
processor.timeout = 1800

example 값은 1800으로 설정됩니다. 특정 시간 초과 값은 특정 시스템에 따라 크게 달라집니다. 플러그인의 타임아웃을 적절하게 설정하려면 먼저 다음 명령을 실행하여 하나의 플러그인을 수집하는 데 필요한 시간을 시간 초과 없이 추정할 수 있습니다.

# time sos report -o processor -k processor.timeout=0 --batch --build

(BZ#1869561)

11.20. 컨테이너

이전 컨테이너 이미지에서 systemd 실행이 작동하지 않음

이전 컨테이너 이미지(예: centos:7 )에서 systemd를 실행하면 작동하지 않습니다.

$ podman run --rm -ti centos:7 /usr/lib/systemd/systemd
 Storing signatures
 Failed to mount cgroup at /sys/fs/cgroup/systemd: Operation not permitted
 [!!!!!!] Failed to mount API filesystems, freezing.

이 문제를 해결하려면 다음 명령을 사용하십시오.

# mkdir /sys/fs/cgroup/systemd
# mount none -t cgroup -o none,name=systemd /sys/fs/cgroup/systemd
# podman run --runtime /usr/bin/crun --annotation=run.oci.systemd.force_cgroup_v1=/sys/fs/cgroup --rm -ti centos:7 /usr/lib/systemd/systemd

(JIRA:RHELPLAN-96940)

부록 A. 구성 요소별 티켓 목록

이 문서에는 Bugzilla 및 JIRA ID가 나열되어 있습니다. 공개적으로 액세스할 수 있는 Bugzilla 버그에는 티켓에 대한 링크가 포함되어 있습니다.

구성 요소티켓

389-ds-base

BZ#2052527,BZ#2057063,BZ#2057066,BZ#1872451,BZ#205 3204,BZ#2063140,BZ#2047175

NetworkManager

BZ#2068525, BZ#2059608,BZ#2030997,BZ#2079849,BZ#2097293,BZ#2029636, BZ#1894877, BZ#2151040

anaconda

BZ#2059414, BZ#2053710, BZ#2082132, BZ#2050140, BZ#1877697, BZ#1914955,BZ#1929105, BZ#1997832, BZ#2052938, BZ#2107346 ,BZ#2107346,BZ#2125542, BZ#2115783

ansible-collection-microsoft-sql

BZ#2066337

ansible-collection-redhat-rhel_mgmt

BZ#2112434

ansible-freeipa

BZ#2076567

bind

BZ#1984982

catatonit

BZ#2074193

Chrony

BZ#2047415, BZ#2051441

clevis

BZ#2107078

cloud-init

BZ#1750862

cockpit-appstream

BZ#2030836

cockpit

BZ#2056786

cronie

BZ#2090691

crypto-policies

BZ#2102774, BZ#2070604

cyrus-sasl

BZ#1995600

device-mapper-multipath

BZ#2084365, BZ#2033080, BZ#2011699

distribution

BZ#2063773

dnf-plugins-core

BZ#2066646

dnf

BZ#2053014, BZ#2073510

dotnet7.0

BZ#2112027

dyninst

BZ#2057675

edk2

BZ#1935497

elfutils

BZ#2088774

fapolicyd

BZ#2100041, BZ#2054740, BZ#2070655

Firefox

BZ#2013247

firewalld

BZ#2040689, BZ#2039542

FRR

BZ#2069563

gcc-toolset-12-annobin

BZ#2077438

gcc-toolset-12-binutils

BZ#2077445

gcc-toolset-12-gcc

BZ#2077465

gcc-toolset-12-gdb

BZ#2077494

gcc

BZ#2063255

gdb

BZ#1870017

gdm

BZ#2097308

gimp

BZ#2047161

glibc

BZ#2033683,BZ#2096191,BZ#2063142, BZ#2077838, BZ#2085529,BZ#2003291,BZ#2091549

gnome-settings-daemon

BZ#2100467

gnupg2

BZ#2070722, BZ#2073567

gnutls

BZ#2042009

golang

BZ#2075169, BZ#2111072, BZ#2092016

grub2

BZ#2074761, BZ#2026579

grubby

BZ#1978226, BZ#1969362, BZ#2127453

httpd

BZ#2079939, BZ#2065677

IPA

BZ#747959 ,BZ#2091988, BZ #2091988 ,BZ#2100227,BZ#2084180,BZ#2084166,BZ#2069202,BZ#2057471,BZ#2124243,BZ#2089907

jmc-core

BZ#1980981

kdump-anaconda-addon

BZ#1959203, BZ#2017401

kernel-rt

BZ#2061574

kernel

JIRA:RHELPLAN-117713, BZ#2027894, BZ#2066451, BZ#20798, BZ#2065226, BZ#2013413, BZ#2001936, BZ#2001936, BZ#2097188, BZ#2096127, BZ#2054379, BZ#2073541, BZ#2027 BZ#2030922, BZ#1945040, BZ#2100898, BZ#2068432, BZ#2046472, BZ#1613522, BZ#1874182, BZ#1995338, BZ#1570255, BZ#2023416, BZ#2021672, BZ#2000616, BZ#20006650, BZ#2132480, BZ#2060150, BZ#2059545, BZ#2069758, BZ#1960467, BZ#ECDHE173, BZ#2129288

kexec-tools

BZ#2064708, BZ#2065013

keylime

BZ#2138167, BZ#2140670, BZ#2142009

kmod-kvdo

BZ#2064802

kmod

BZ#2103605

krb5

BZ#2068935,BZ#2106043,BZ#2060798,BZ#2077450,BZ#2106296,BZ#2060421

libdnf

BZ#2108969

libnvme

BZ#2099619

libsepol

BZ#2069718, BZ#2079276

libvirt

BZ#2064194, BZ#2014487

libvpd

BZ#2051288

libxcrypt

BZ#2034569

llvm-toolset

BZ#2061041

lsvpd

BZ#2051289

lvm2

BZ#2038183

maven

BZ#2083112

mysql

BZ#1991500

nfs-utils

BZ#2081114

nmstate

BZ#2084474, BZ#2082043

nodejs

BZ#2083072

nss

BZ#2091905

nvme-cli

BZ#2090121

nvme-stas

BZ#1893841

open-vm-tools

BZ#2061193, BZ#2037657

opencryptoki

BZ#2044179

openscap

BZ#2109485

openssh

BZ#2066882, BZ#2087121, BZ#2056884

OpenSSL

BZ#2060510, BZ#2053289, BZ#2066412, BZ#2063947,BZ#2004915,BZ#2058663,BZ#1975836, BZ#1681178, BZ#1685470, BZ#2060044,BZ#2071631

pacemaker

BZ#2121838, BZ#2072108

pause-container

BZ#2106816

pcre2

BZ#2086494

pcs

BZ#2024522,BZ#2054671,BZ#2058251,BZ#2058252,BZ#2058246,BZ#2058243,BZ#1301204

php

BZ#2070040

pki-core

BZ#2084181

podman

BZ#2097708, BZ#2027576, BZ#2069279

policycoreutils

BZ#2115242

PowerPC-utils

BZ#1920964

ppc64-diag

BZ#2051286

procps-ng

BZ#2052536, BZ#2003033

pykickstart

BZ#2083269

qemu-kvm

BZ#2044218, BZ#1965079,BZ#1951814,BZ #2060839,BZ#2014229,BZ#2052424, BZ#1817965 ,BZ#1817965,BZ#1789206, BZ#2090712 ,BZ#2090712,BZ#2020146

후지

BZ#2111059, BZ#2097437, BZ#2115958, BZ#2083272, BZ#2120736, BZ#2119501

resource-agents

BZ#1826455

rhel-system-roles

BZ#2072385,BZ#2086965,BZ#2065337,BZ#2079622,BZ#2043010,BZ#2065383,BZ#2112145,BZ#2052081, BZ#2052086,BZ#2065392,BZ#2072742,BZ#2072745,BZ#2072746,BZ#2075119,BZ#2078989,BZ#2079627, , BZ#2093423,BZ#2100292,BZ#2100942,BZ#2115154,BZ#2115157,BZ #2115152,BZ#2051737,BZ#2065382, , BZ#2065394,BZ#2115886,BZ#2100605,BZ#2060523,BZ#2060525,BZ #2070462, BZ#2083376, BZ#2083410 ,BZ#2083410 BZ#2100286,BZ#2109998,BZ#2115156,BZ#2071804,BZ#2100294,BZ#1999770

rsyslog

BZ#2064318

Rust

BZ#2075337

s390utils

BZ#1870699, BZ#1932480

samba

BZ#2077487, Jira:RHELDOCS-16612

sblim-wbemcli

BZ#2083577

scap-security-guide

BZ#2070563, BZ#2120978, BZ#2038978

selinux-policy

BZ#1965013, BZ#2081425, BZ#2076681, BZ#2064274

sos

BZ#1869561

sssd

BZ#1978119, BZ#2065693, BZ#2056482

stalld

BZ#2107275

stratisd

BZ#1990905,BZ#2040352,BZ#2039960,BZ#2007018,BZ#ECDHE110,BZ#2041558

subscription-manager

BZ#2092014, BZ#2136694

systemd

BZ#2018112

systemtap

BZ#2083727

tigervnc

BZ#2060308

tpm2-tools

BZ#2090748

tuned

BZ#2093847

ubi8-container

BZ#2120378

udisks2

BZ#1983602

바인딩되지 않음

BZ#2087120, BZ#2071543, BZ#2070495

valgrind

BZ#1993976

virt-who

BZ#2054504

virtio-win

BZ#1969724, BZ#2084003

whois

BZ#2054043

xmlstarlet

BZ#2069689

xorg-x11-server

BZ#1894612

기타

JIRA:RHELPLAN-92522, BZ#2125549, BZ#2128016, BZ#1937031, JIRA:RHELPLAN-121982, JIRA:RHELPLAN-95456, JIRA:RHELPLAN-122321, JIRA:RHELPLAN-118462, JIRA:RHELPLAN-101140, JIRA:RHELPLAN-121982, JIRA:RHELPLAN-121982, JIRA:RHELPLAN-121982, JIRA:RHELPLAN-121982 JIRA:RHELPLAN-132023, JIRA:RHELPLAN-123369, JIRA:RHELPLAN-117109, JIRA:RHELPLAN-130379, BZ#2049492, JIRA:RHELPLAN-130376, JIRA:RHELPLAN-122735 BZ#2070793,BZ#21227 16, JIRA:RHELPLAN-123368, JIRA:RHELPLAN-135601, JIRA:RHELPLAN-135602, BZ#2139877, JIRA:RHELPLAN-122776, JIRA:RHELPLAN-121180, JIRA:RHELPLAN-122776 BZ#2094015, JIRA:RHELPLAN-109067, JIRA:RHELPLAN-115603, JIRA:RHELPLAN-65217, BZ#2020529,BZ#2030412, BZ#2046653, JIRA:RHELPLAN-103993, JIRA:RHELPLAN-122345, JIRA:RHELPLAN-129327, JIRA:RHELPLAN-74672, BZ#1927780, JIRA:RHELPLAN-110763, BZ#1935544, BZ#2089200, JIRA:RHELPLAN-15509, JIRA:RHELPLAN-99136, JIRA:RHELPLAN-1032, BZ#1899167, BZ#1979521, JIRA:RHELPLAN-100087, JIRA:RHELPLAN-100639, JIRA:RHELPLAN-10304, BZ#2058153, JIRA:RHELPLAN-113995 JIRA:RHELPLAN-121048, JIRA:RHELPLAN-98983, JIRA:RHELPLAN-131882, JIRA:RHELPLAN-137660, BZ#1640697, BZ#1697896, BZ#16978913 , JIRA:RHELPLAN-96940, JIRA:RHELPLAN-96940 https://bugzilla.redhat.com/show_bug.cgi?id=2047713 JIRA:RHELPLAN-117234, JIRA:RHELPLAN-119852, JIRA:RHELPLAN-119852, BZ#2077767, BZ#2082303, BZ#2082303, JIRA:RHELPLAN-121049, JIRA:RHELPLAN-109613 JIRA:RHELPLAN-135600, BZ#2149172

부록 B. 리버전 내역

0.1-28

2024년 3월 14일 Gabriela Fialová (gfialova@redhat.com)

0.1-12

2024년 2월 1일 Gabriela Fialová (gfialova@redhat.com)

0.1-11

2023년 11월 13일 Gabriela Fialová (gfialova@redhat.com)

0.1-10

2023년 11월 10일 Gabriela Fialová (gfialova@redhat.com)

  • RHEL 문서의 피드백 제공에서 모듈을 업데이트했습니다.
0.1-9

2023년 11월 10일 Gabriela Fialová (gfialova@redhat.com)

0.1-8

Fri Oct 13 2023, Gabriela Fialová (gfialova@redhat.com)

0.1-7

September 25 2023, Gabriela Fialová (gfialova@redhat.com)

  • KI BZ#2122636 (Desktop)이 추가되었습니다.
0.1-6

2023년 9월 8일, Muehlfeld (mmuehlfeld@redhat.com)

  • 더 이상 사용되지 않는 기능 릴리스 노트 JIRA:RHELDOCS-16612 (Samba)가 추가되었습니다.
  • JIRA의 RHEL을 반영하도록 "Red Hat 문서에 대한 피드백 제공"을 업데이트했습니다.
0.1-5

August 17 2023, Gabriela Fialová (gfialova@redhat.com)

  • Enh BZ#2136937 (Plumbers)이 추가되었습니다.
0.1-4

2023년 8월 7일 Gabriela Fialová (gfialova@redhat.com)

0.1-3

2023년 8월 2일 Muehlfeld (mmuehlfeld@redhat.com)

  • 더 이상 사용되지 않는 기능 릴리스 노트 BZ#1894877 (NetworkManager)가 업데이트되었습니다.
0.1-2

2023년 7월 25일 Gabriela Fialová (gfialova@redhat.com)

  • 알려진 문제 BZ#2109231 (설치자)이 추가되었습니다.
0.1-1

2023년 6월 15일 Lucie Vaová (lvarakova@redhat.com)

  • 새로운 기능 BZ#2070725 (Boot loader)가 추가되었습니다.
  • 기타 마이너 업데이트
0.1-0

2023년 5월 17일, Gabriela Fialov al (gfialova@redhat.com)

0.0-9

2023년 4월 27일, Gabriela Fialov al (gfialova@redhat.com)

0.0-8

2023년 4월 25일, Lucie Va>-<ková (lvarakova@redhat.com)

  • 알려진 문제 BZ#2180665 (Kernel)가 추가되었습니다.
0.0-7

2023년 2월 20일 Gabriela Fialová (gfialova@redhat.com)

0.0-6

2023년 2월 16일, Gabriela Fialová (gfialova@redhat.com)

  • 알려진 문제 BZ#2132480 (Kernel)이 업데이트되었습니다.
0.0-5

Tue 2월 14, 2023, Gabriela Fialová (gfialova@redhat.com)

0.0-4

Tue 2월 14, 2023, Muehlfeld (mmuehlfeld@redhat.com)

  • 개선 사항 BZ#2144898 (Networking)을 추가했습니다.
0.0-3

2022년 12월 7일 Gabriela Fialová (gfialova@redhat.com)

  • nodejs:18 모듈 스트림 BZ#2083072 를 기술 프리뷰에서 완전히 지원되는 기능(Dynamic 프로그래밍 언어, 웹 서버, 데이터베이스 서버)으로 이동했습니다.
0.0-2

2022년 11월 16일 Gabriela Fialová (gfialova@redhat.com)

  • Red Hat Enterprise Linux 9.1 릴리스 노트.
0.0-1

2022년 9월 28일, Gabriela Fialová (gfialova@redhat.com)

  • Red Hat Enterprise Linux 9.1 베타 릴리스 노트.

법적 공지

Copyright © 2024 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.