OS/CentOS: CentOS 8
개요
- 릴리스 노트
- 2019-09-24 릴리스 / 2021-12-31 지원 종료(EOL)
- Red Hat이 CentOS Stream에 집중하기로 결정, 예정(2029년)보다 약 8년 일찍 종료
- RHEL(Red Hat Enterprise Linux) 8 기반 downstream 배포판
- CentOS 7 대비 커널, 도구 체인, 보안 스택, 패키지 관리자 전면 업그레이드
- EOL 이후 대안: CentOS Stream 9, Rocky Linux, AlmaLinux
| 항목 | CentOS 7 | CentOS 8 |
|---|---|---|
| RHEL 기반 | RHEL 7 | RHEL 8 |
| 커널 | 3.10.x | 4.18.x |
| 패키지 관리 | yum | DNF |
| 방화벽 백엔드 | iptables | nftables |
| 리포지토리 | base/extras | BaseOS + AppStream |
| EOL | 2024-06-30 | 2021-12-31 |
주요 변경사항
CentOS Stream 추가
- 배포 흐름:
Fedora → CentOS Stream → RHEL → CentOS(downstream) - RHEL의 upstream rolling preview 역할 — RHEL 출시 전 기능을 먼저 포함
- CentOS 8 EOL 이후 Red Hat은 기존 CentOS(downstream) 대신 CentOS Stream으로 전환
소프트웨어 리포지토리 이원화
| 리포지토리 | 역할 | 패키지 형식 |
|---|---|---|
| BaseOS | 핵심 OS 패키지 — 긴 지원 주기 보장 | RPM |
| AppStream | 애플리케이션 모듈 — 다양한 버전 병렬 지원 | 모듈(Module) |
-
AppStream 모듈: 동일 패키지의 여러 버전을 스트림(stream)으로 관리
dnf module list # 사용 가능한 모듈 목록 dnf module install python36 # Python 3.6 설치 dnf module enable python38:3.8 # Python 3.8 스트림 활성화 dnf module install python38 # Python 3.8 설치
DNF (Dandified Yum)
- RPM 기반 패키지 관리 도구 —
yum명령어와 하위 호환 - 의존성 해결 알고리즘: SAT solver 적용 → 정확도·속도 개선
-
yum명령은 DNF 래퍼로 동작 (동일하게 사용 가능)dnf install <package> dnf update dnf remove <package> dnf search <keyword> dnf module list dnf module enable php:7.4 dnf module install php
Cockpit 웹 콘솔
-
브라우저에서 서버 상태·서비스·스토리지·네트워크 관리
dnf install cockpit systemctl enable --now cockpit.socket # https://<IP>:9090 접속
nftables 기본 방화벽 백엔드
iptables대신 nftables 사용 —firewalld를 통해 상위 수준 제어-
기존
iptables명령은 호환 래퍼(iptables-legacy)로 유지firewall-cmd --state firewall-cmd --list-all firewall-cmd --permanent --add-service=http firewall-cmd --permanent --add-port=8080/tcp firewall-cmd --reload
SELinux 3.0
- 기본값: enforcing 모드 (정책 위반 시 차단)
sestatus로 현재 모드 확인- 임시 허용(테스트용):
setenforce 0/ 영구 변경:/etc/selinux/config
Wayland 기본 디스플레이 서버
- 기본 GUI 세션: Wayland / X11 세션 선택 가능
기술 스택
| 컴포넌트 | 버전 |
|---|---|
| Kernel | 4.18.x |
| systemd | 239 |
| GCC | 8.x |
| Python | 3.6 (기본), 3.8 (AppStream 모듈) |
| PHP | 7.2, 7.3, 7.4 (AppStream 모듈) |
| MariaDB | 10.3 (AppStream 모듈) |
| PostgreSQL | 10, 12 (AppStream 모듈) |
| Node.js | 10, 12 (AppStream 모듈) |
| OpenSSL | 1.1.1 |
기본 설정
SELinux 확인 및 설정
sestatus # 현재 SELinux 상태 확인
setenforce 0 # 임시로 permissive 모드 전환 (재부팅 시 초기화)
# 영구 변경: /etc/selinux/config 에서 SELINUX=permissive 또는 SELINUX=disabled
EPEL 리포지토리 추가
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 # 확인
AppStream 모듈 관리
dnf module list # 사용 가능한 모듈 목록 조회
dnf module list --enabled # 활성화된 모듈만 조회
dnf module enable python38:3.8 # 스트림 활성화
dnf module install python38 # 설치
dnf module disable python38 # 비활성화
네트워크 설정 (NetworkManager)
nmcli device status # 네트워크 인터페이스 상태
nmcli connection show # 연결 목록
nmcli connection up <name> # 연결 활성화
EOL 이후 마이그레이션
CentOS 8은 2021-12-31 지원 종료. 운영 중인 서버는 아래 대안으로 전환 권장:
| 대안 | 특징 |
|---|---|
| Rocky Linux 8/9 | CentOS 8 드롭인 대체, RHEL 1:1 호환 목표 |
| AlmaLinux 8/9 | CloudLinux 주도, RHEL ABI 호환, 무료 |
| CentOS Stream 9 | RHEL upstream preview, 최신 기능 선행 적용 |
| RHEL | Red Hat 공식 지원, 유료 (개인 개발자 무료 티어 있음) |