4.9. 커널

RHEL 8.6의 커널 버전

Red Hat Enterprise Linux 8.6은 커널 버전 4.18.0-372와 함께 배포됩니다.

외부 커널 매개변수 및 장치 드라이버 에 대한 중요 변경 사항 도 참조하십시오.

(BZ#1839151)

RHEL 8.6의 연장된 Berkeley Packet Filter

eBPF(Extended Berkeley Packet Filter) 는 제한된 기능 세트에 대한 액세스 권한이 있는 제한된 샌드박스 환경에서 커널 공간에서 코드를 실행할 수 있는 커널 내 가상 머신입니다. 가상 머신은 특수 어셈블리와 유사한 코드를 실행합니다.

eBPF 바이트코드는 먼저 커널에 로드한 후 확인, 코드 변환, just-in-time 컴파일을 사용하여 네이티브 머신 코드로 변환한 다음 가상 머신에서 코드를 실행합니다.

Red Hat은 eBPF 가상 시스템을 사용하는 다양한 구성 요소를 제공합니다. 각 구성 요소는 다른 개발 단계에 있으므로 현재 모든 구성 요소가 완전히 지원되는 것은 아닙니다. RHEL 8.6에서는 다음과 같은 eBPF 구성 요소가 지원됩니다.

  • BCC(BPF Compiler Collection) 툴 패키지: eBPF 를 사용하여 Linux 운영 체제의 I/O 분석, 네트워킹 및 모니터링을 위한 툴을 제공합니다.
  • BCC 툴 패키지에 제공된 툴과 유사한 툴을 개발할 수 있는 BCC 라이브러리입니다.
  • 트래픽 제어(tc)를 위한 eBPF(eBPF) 기능은 커널 네트워크 데이터 경로 내에서 프로그래밍 가능한 패킷 처리를 가능하게 합니다.
  • bpftrace 추적 언어
  • 커널 네트워킹 스택이 처리되기 전에 수신된 패킷에 대한 액세스를 제공하는 e XDP(데이터 경로) 기능은 특정 조건에서 지원됩니다. 자세한 내용은 XDP가 조건부로 지원되며 RHEL의 eBPF 기능에 대한 개요를 참조하십시오.
  • libbpf 패키지 - bpftracebpf/xdp 개발과 같은 bpf 관련 애플리케이션에 중요합니다.
  • XDP 기능에 대한 사용자 공간 지원 유틸리티가 포함된 xdp-tools 패키지는 이제 AMD 및 Intel 64비트 아키텍처에서 지원됩니다. 여기에는 XDP 프로그램을 로딩하기위한 xdp-loader 유틸리티, 패킷 필터링을 위한 xdp-filter 프로그램, XDP가 활성화된 네트워크 인터페이스에서 패킷을 캡처하는 xdpdump 유틸리티가 포함됩니다.

다른 모든 eBPF 구성 요소는 특정 구성 요소가 지원되는 것으로 표시되지 않는 한 기술 프리뷰로 사용할 수 있습니다.

다음과 같은 주목할 만한 eBPF 구성 요소는 현재 기술 프리뷰로 제공됩니다.

  • eXpress Data Path(XDP) 경로를 사용자 공간에 연결하기 위한 AF_XDP 소켓

기술 프리뷰 구성 요소에 대한 자세한 내용은 eBPF를 기술 프리뷰로 이용 가능 을 참조하십시오.

(BZ#1780124)

Red Hat은 기본적으로 권한 있는 사용자에 대해서만 모든 RHEL 버전에서 eBPF 를 활성화합니다.

eBPF(extended Berkeley Packet Filter)는 복잡한 기술로, 사용자가 Linux 커널 내에서 사용자 지정 코드를 실행할 수 있습니다. 따라서 eBPF 코드는 검증기 및 기타 보안 메커니즘을 통과해야 합니다. CVE(Common Vulnerabilities and Exposures) 인스턴스가 있으며, 이 코드의 버그는 인증되지 않은 작업을 위해 오용될 수 있었습니다. 이 위험을 완화하기 위해 Red Hat은 권한 있는 사용자에 대해서만 모든 RHEL 버전에서 기본적으로 eBPF 를 활성화했습니다. kernel.command-line 매개변수 privileged _bpf_disabled=0을 사용하여 권한이 없는 사용자에 대해 eBPF 를 활성화할 수 있습니다.

그러나 다음 사항에 유의하십시오.

  • 권한이 없는_bpf_disabled=0 을 적용하면 커널이 Red Hat 지원에서 평가되고 보안 위험으로 시스템이 열립니다.
  • Red Hat은 기능이 CAP_SYS_ADMIN 과 같은 경우 CAP_BPF 기능을 사용하여 프로세스를 처리할 것을 권장합니다.
  • unauthorized _bpf_disabled=0 을 설정하면 대부분의 BPF 프로그램 유형을 로드하려면 추가 기능(일반적으로 CAP_SYS_ADMIN 또는 CAP_PERFMON)이 필요하므로 권한이 없는 사용자가 많은 BPF 프로그램을 실행할 수 없습니다.

커널 명령줄 매개변수를 적용하는 방법에 대한 자세한 내용은 커널 명령줄 매개변수 구성을 참조하십시오.

(BZ#2089409)

osnoisetimerlat 추적기가 RHEL 8에 추가되었습니다.

osnoise 추적기에서는 운영 체제의 잡음을 측정합니다. 즉, OS 및 하드웨어 인터럽트의 애플리케이션 중단입니다. 또한 OS 잡음의 원인을 찾는 데 도움이 되는 추적점 세트도 제공합니다. timerlat 추적기에서 레이커 대기 시간을 측정하고 실시간 (RT) 스레드의 이러한 대기 시간 원인을 식별하는 데 도움이됩니다. RT 컴퓨팅에서는 대기 시간이 매우 중요하며 최소한의 지연도 저하될 수 있습니다. osnoisetimerlat 추적기를 사용하면 애플리케이션과 OS 간섭의 원인을 조사 및 찾고 RT 스레드의 지연을 재개할 수 있습니다.

(BZ#1979382)

strace 유틸리티는 실제 SELinux 컨텍스트와 SELinux 컨텍스트 데이터베이스에서 추출된 정의 간의 불일치를 표시할 수 있습니다.

strace 의 기존 --secontext 옵션이 mismatch 매개변수를 사용하여 확장되었습니다. 이 매개변수를 사용하면 불일치 시 실제 컨텍스트와 함께 예상 컨텍스트를 출력할 수 있습니다. 출력은 이중 느낌표(!!), 먼저 실제 컨텍스트, 다음 예상 컨텍스트로 구분됩니다. 아래 예제에서 전체,mismatch 매개변수는 컨텍스트의 사용자가 일치하지 않기 때문에 실제 컨텍스트와 함께 예상되는 전체 컨텍스트를 출력합니다. 그러나 독방 불일치 를 사용하는 경우 컨텍스트의 유형 부분만 확인합니다. 컨텍스트의 유형이 일치하므로 예상 컨텍스트가 인쇄되지 않습니다.

[...]
$ strace --secontext=full,mismatch -e statx stat /home/user/file
statx(AT_FDCWD, "/home/user/file" [system_u:object_r:user_home_t:s0!!unconfined_u:object_r:user_home_t:s0], ...

$ strace --secontext=mismatch -e statx stat /home/user/file
statx(AT_FDCWD, "/home/user/file" [user_home_t:s0], ...

SELinux 컨텍스트 불일치로 인해 SELinux와 관련된 액세스 제어 문제가 발생하는 경우가 많습니다. 시스템 호출 추적에 출력되는 불일치는 SELinux 컨텍스트 정확성의 검사를 훨씬 신속하게 제공할 수 있습니다. 시스템 호출 추적은 액세스 제어 검사와 관련하여 특정 커널 동작을 설명할 수도 있습니다.

(BZ#2038992, BZ#2038810)

rteval 유틸리티에 --cyclictest-threshold 옵션이 추가되었습니다.

이번 개선된 기능을 통해 rteval 테스트 모음에 --cyclictest-threshold=USEC 옵션이 추가되었습니다. 이 옵션을 사용하면 임계값을 지정할 수 있습니다. 대기 시간 측정이 이 임계값을 초과하면 rteval 테스트 실행이 즉시 종료됩니다. 대기 시간 기대치가 충족되지 않으면 실행이 실패 상태로 중단됩니다.

(BZ#2012285)