2 분 소요

개요

  • 릴리스 발표
  • 2024-06-06 릴리스 — RHEL 10의 upstream rolling preview 배포판
  • CentOS Stream 9 지원은 Stream 10 릴리스 후 약 1년간 유지 예정
  • 핵심 방향: 레거시 제거(32비트, cgroups v1) + 보안 강화(OpenSSL 3.2, crypto-policies) + 컨테이너 생태계 강화(Podman 5)
항목 CentOS Stream 9 CentOS Stream 10
RHEL 기반 RHEL 9 upstream RHEL 10 upstream
Kernel 5.14.x 6.11.x
패키지 관리 DNF 4 DNF 5 (libdnf5)
cgroups v2 기본 (v1 우회 가능) v2 전용 (v1 제거)
32비트 지원 일부 완전 중단
Python 기본 3.9 3.12
OpenSSL 3.0 3.2


주요 변경사항

DNF 5 기본 패키지 관리자

  • libdnf5 기반 전면 재작성 — 성능·API 대폭 개선
  • DNF 4 대비 의존성 해결 속도 향상
  • Python 바인딩 외 C++ API 공식 지원
  • 주요 명령어는 DNF 4와 동일하나 일부 플러그인 미호환 가능

    dnf install <package>
    dnf update
    dnf remove <package>
    dnf search <keyword>
    dnf module list
    dnf module enable nodejs:22
    dnf module install nodejs
    

32비트(i686) OS 지원 완전 중단

  • 지원 아키텍처: x86_64, aarch64, ppc64le, s390x
  • 일부 i686 호환 멀티아크 라이브러리 패키지는 유지
  • 32비트 전용 애플리케이션 실행 시 컨테이너 활용 권장

cgroups v1 완전 제거

  • cgroups v2 전용 운영 — Stream 9의 v1 우회(커널 파라미터) 불가
  • 구형 컨테이너 런타임(Docker < 20.10 등) 업그레이드 필요
  • cgroups v2 확인:

    mount | grep cgroup2
    cat /sys/fs/cgroup/cgroup.controllers      # 활성화된 컨트롤러 확인
    

OpenSSL 3.2

  • 기본 암호화 정책 강화 — SHA-1 서명 비활성화
  • 레거시 알고리즘 제거 범위 확대 (3DES, RC2 등)
  • FIPS 140-3 지원 강화

Podman 5.x 기본 컨테이너 런타임

  • Docker 호환 CLI 유지 (podmandocker alias 설정 가능)
  • Quadlet 기능 강화 — systemd unit 파일로 컨테이너 선언적 관리

    # /etc/containers/systemd/myapp.container
    [Container]
    Image=docker.io/library/nginx:latest
    PublishPort=8080:80
    
    systemctl daemon-reload
    systemctl start myapp.service
    
  • Podman Compose 지원 (podman-compose 패키지)

SELinux 정책 강화

  • 컨테이너·가상화 워크로드 대상 더 엄격한 기본 정책 적용
  • 새로운 Boolean 및 컨텍스트 타입 추가

    sestatus                                    # 현재 상태 확인
    semanage boolean -l                         # SELinux Boolean 목록
    setsebool -P httpd_can_network_connect 1    # 예시: HTTP 네트워크 연결 허용
    

암호화 정책 (crypto-policies)

  • 기본값 DEFAULT — SHA-1 서명 완전 비활성화
  • 정책 수준: LEGACY < DEFAULT < FUTURE < FIPS

    update-crypto-policies --show
    update-crypto-policies --set DEFAULT
    update-crypto-policies --set LEGACY         # 하위 호환 필요 시
    

네트워크 스택

  • NetworkManager 기반 관리 유지
  • nmcli / nmtui 도구 개선

    nmcli device status
    nmcli connection show
    nmcli connection up <name>
    nmtui                                       # TUI 인터페이스
    


기술 스택

컴포넌트 버전
Kernel 6.11.x
systemd 256
GCC 14.x
LLVM/Clang 18.x
DNF 5.x (libdnf5 기반)
Podman 5.x
Python 3.12
PHP 8.3 (AppStream 모듈)
MariaDB 10.11 (AppStream 모듈)
PostgreSQL 16 (AppStream 모듈)
Node.js 20, 22 (AppStream 모듈)
OpenSSL 3.2


기본 설정

SELinux 확인 및 설정

  sestatus
  setenforce 0                                # 임시 permissive (재부팅 시 초기화)
  # 영구 변경: /etc/selinux/config → SELINUX=permissive 또는 disabled

cgroups v2 확인

  mount | grep cgroup2
  cat /sys/fs/cgroup/cgroup.controllers

EPEL 10 리포지토리 추가

  dnf install epel-release

방화벽 설정

  firewall-cmd --permanent --add-service=http
  firewall-cmd --permanent --add-service=https
  firewall-cmd --permanent --add-port=8080/tcp
  firewall-cmd --reload
  firewall-cmd --list-all                     # 적용 확인

타임존 설정

  timedatectl set-timezone Asia/Seoul
  timedatectl                                 # 확인

암호화 정책 관리

  update-crypto-policies --show
  update-crypto-policies --set DEFAULT
  update-crypto-policies --set LEGACY         # 하위 호환 필요 시

DNF 5 모듈 관리

  dnf module list                             # 사용 가능한 모듈 목록
  dnf module enable nodejs:22                 # 스트림 활성화
  dnf module install nodejs                   # 설치
  dnf module disable nodejs                   # 비활성화

Podman 기본 사용

  podman run -d --name myapp -p 8080:80 nginx
  podman ps
  podman logs myapp
  podman stop myapp && podman rm myapp


관련 포스트