2 분 소요

개요

  • 릴리스 노트
  • 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 공식 지원, 유료 (개인 개발자 무료 티어 있음)


관련 포스트