OS/CentOS: CentOS Stream 10
개요
- 릴리스 발표
- 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 유지 (
podman→dockeralias 설정 가능) -
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<FIPSupdate-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