들어가며
RHEL(Red Hat Enterprise Linux)는 전세계 및 국내에서 가장 많이 사용하는 기업용 리눅스 OS이다. 2000년 첫 버전을 출시한 이후 업그레이드를 계속해 2021년 5월 현재 8.3 버전이 배포되고 있다. 레드햇이 지원하는 페도라 프로젝트(Fedora Project)에서 만든 리눅스 배포판인 페도라(Fedora)를 기반으로 한다.
RHEL은 버전 별로 라이프 사이클이 정해져 있다. 버전마다 10년 동안 하드웨어 드라이버, 보안 패치 등의 업데이트가 제공된다. RHEL 7과 8의 라이프 사이클 종료일은 다음과 같다.
라이프 사이클이 종료되면 버그 및 보안 패치, 기술 이슈에 대한 원인 분석 서비스에 제한이 생긴다. 다만 이전에 릴리스 된 패치에 대해서는 지원이 계속되며 지식베이스 고객 포탈 서비스(Red Hat Knowledgebase)도 계속 이용할 수 있다.
최신 버전인 RHEL 8이 배포되면서 이전 버전의 RHEL을 사용 중인 시스템 운영관리자를중심으로 RHEL 7 대비 8은 어떤 점이 변경되었는지, 마이그레이션을 해야 하는지에 대한 궁금증이 커지고 있다. 이에 본 아티클에서는 필자가 고객사로부터 자주 문의 받는 사항을 중심으로 RHEL 7과 8 간의 차이점을 짚어보고 시스템 운영관리자라면 꼭 알아야 할 RHEL 8의 특징을 살펴보겠다.
RHEL 7과 RHEL 8의 주요 차이점
RHEL 7과 8의 주요한 차이점은 다음과 같다.
RHEL 8은 운영체제의 핵심인 커널부터 I/O 스케줄러, 컨테이너 등이 변경되었다. 이에 따라 기업·기관의 시스템 운영관리자는 RHEL 8 적용에 앞서 현재 가동 중인 서비스에 필요한 소프트웨어 설치 유무를 확인하고 성능에 미칠 영향을 먼저 검토해야 한다.
저장소(Repositories)
RHEL 8은 “BaseOS”, “AppStream” 2개 저장소를 사용한다.
BaseOS 저장소
운영체제의 기반이 되는 기본 기능의 코어 세트를 제공하는데 사용된다. 커널과 같은 기본 OS 기능의 핵심 패키지 그룹으로 물리적 하드웨어, 가상머신, 클라우드 인스턴스 또는 컨테이너에서 실행 가능하도록 하는 패키지를 제공한다.
AppStream 저장소
운영 서비스에서 수행 가능한 애플리케이션(예: Apache, Cyrus-imapd, Vim 등), 런타임 언어(예: Java, PHP, Python 등) 및 데이터베이스(예: MariaDB, PostgreSQL 등) 등이 포함되어 있다. BaseOS 저장소의 핵심 운영체제 패키지보다 더 자주 업데이트 된다. BaseOS 저장소와 AppStream 저장소의 분리로 AppStream 저장소 패키지 업데이트 시 이미 구성되어 있는 플랫폼 또는 특정 배포의 기본 안정성에 영향을 주지 않고 업데이트가 가능한 유연성을 제공한다. 예들 들어 PostgreSQL의 경우 v10과 v9.6을 제공하고 원하는 버전을 설치해 사용할 수 있다. 이전에 단일 패키지로 구성되어 최신 버전만을 지원했지만 제공되는 버전 중 원하는 것을 선택해 사용 가능합니다.
소프트웨어 관리
RHEL 8에서 소프트웨어 관리는 “yum” 대신 “dnf” 명령어를 사용한다.
새로운 “dnf”는 기존 “yum”의 낮은 성능, 높은 메모리 사용량 및 비효율적인 의존성 등의 기술 문제를 해결하였다.
기본적인 소프트웨어 설치, 업데이트, 삭제는 아래와 같이 할 수 있다.
RHEL 8은 “dnf”를 기반으로 하지만 RHEL 7에서 사용되는 “yum”과 호환된다. “yum” 명령과 대부분의 옵션은 RHEL 7과 동일한 방식으로 작동한다.
네트워크 스크립트
RHEL 8에서 네트워크 설정은 “nmcli”, “nmtui” 명령어를 사용한다.
RHEL 8부터는 RHEL 7에서 사용되던 “network-scripts”를 통한 ifup, ifdown 명령어를 사용할 수 없다. 대신 “NetworkManager” 서비스를 사용하고 “nmcli”, “nmtui” 명령어를 통해 제어한다.
“nmcli” 명령어를 사용하여 이더넷 연결을 추가하는 방법은 다음과 같다.
기본으로 제공되지는 않지만 “ifup”, “ifdown” 명령어를 사용하기 위해 “network-scripts”를 수동으로 설치할 수 있다. 패키지는 BaseOS 저장소에 존재하며 # dnf install network-scripts 명령으로 설치 가능하다. 설치 후 /etc/sysconfig/network-scripts/ 하위에서 “ifup”, “ifdown” 명령어를 확인할 수 있다.
시간 동기화
RHEL 8에서 시간 동기화는 “chronyd”를 사용한다.
NTP(Network Time Protocol)를 이용한 시간 동기화를 위해 RHEL 7에서는 “ntpd” 혹은 “chronyd”를 사용할 수 있었지만 RHEL 8은 “chronyd”만 지원한다.
즉시 시간 동기화를 위해 사용했던 “ntpdate” 명령어는 RHEL 8에서는 사용할 수 없으며 아래와 같이 수행해야 한다.
보안
tcp_wrappers
RHEL 8은 여러 가지 서비스의 접근 제어가 가능했던 “tcp_wrappers” 기능을 지원하지 않으며 “firewalld”로 대체되었다. 기본 패키지에서 “tcp_wrappers”가 제외되어 /etc/hosts.{allow,deny}를 통한 보안 설정은 불가능하다.
10.10.10.0/24 네트워크에 SSH를 허용하고 다른 모든 네트워크를 차단하려면 아래와 같이 설정하면 된다.
PAM
계정 잠금 제어 시 사용하던 PAM 패키지의 “pam_faillock” 모듈 사용법이 변경되었다. 기존의 “authconfig”를 대체한 “authselect”를 사용하여 “pam_faillock” 모듈을 활성화할 수 있다.
RHEL 7에서는 /etc/pam.d/system-auth 및 /etc/pam.d/password-auth에 pam_faillockd을 설정한다. (두 파일을 모두 변경해야 적용됨)
RHEL 8은 RHEL 7와 달리 /etc/pam.d/system-auth 및 /etc/pam.d/password-auth를 수동으로 편집하는 것은 권장하지 않는다. “pam_faillock” 모듈을 사용하려면 아래와 같이 하면 된다.
기본 네트워크 패킷 필터링
RHEL 8에서 패킷 필터링은 “iptables” 대신 “nft” 명령어를 사용한다. RHEL 7에서 사용되던 “iptables” 명령어도 여전히 지원되지만, 추후 “iptables” 명령어는 지원되지 않을 수 있어 신규 스크립트 작성시에는 “nft” 명령어를 사용하는 것을 권장한다.
“nft” 명령어는 기존 “iptables” 명령어에 비해 편의성, 기능 및 성능이 크게 향상되었다.
“iptables” 및 “nft” 명령어를 비교하면 아래와 같다.
모든 규칙 나열
특정 테이블 및 체인 나열
기존 “iptables”의 규칙을 동일한 “nft” 규칙으로 변환하기 위한 “iptables-translate”, “ip6tables-translate” 도구를 제공한다. 아래와 같이 “iptables” 규칙을 “nft” 규칙으로 변환할 수 있다.
마치며
RHEL 8은 이전 버전에 비해 다양한 워크로드에서 향상된 성능을 제공한다. 또한 지속적인 취약점 모니터링을 통해 중대 이슈 발생 시 신속한 업데이트를 제공함으로써 시스템 전반의 보안과 안정성이 향상되었다.
날마다 새로운 애플리케이션이 등장하고 사용량이 늘어나면서 IT 인프라의 복잡성도 높아지고 있다. 특히 서버 운영체제를 민첩하고 안정적으로 관리하는 것은 업무 성과 및 고객 서비스 성능과 직결된다. 만약 구 버전의 RHEL을 운영하고 있다면 예상치 못한 기술 이슈에 대비하고 인프라 효율을 향상시키기 위해 최신 버전으로 업그레이드 하는 것을 고려해야 한다.
본 아티클이 RHEL 8을 검토·채택하고 마이그레이션 해야 하는 시스템 운영관리자들에게 많은 도움이 되기를 바란다.
# References
- https://access.redhat.com/ko/support/policy/updates/errata
- https://access.redhat.com/articles/rhel-limits
- https://access.redhat.com/solutions/1532
- https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/package_manifest/appstream-repository
- https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/package_manifest/baseos-repository
- https://access.redhat.com/solutions/3935901
- https://access.redhat.com/solutions/5313011
- https://access.redhat.com/solutions/4492191
- https://access.redhat.com/solutions/3103631
- https://access.redhat.com/solutions/3938381
- https://access.redhat.com/solutions/3906701
- https://access.redhat.com/solutions/62949
- https://access.redhat.com/solutions/4175751
- https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8-beta/html/considerations_in_adopting_rhel_8/file-systems-and-storage_considerations-in-adopting-rhel-8
- https://www.redhat.com/en/blog/red-hat-enterprise-linux-8-improves-performance-modern-workloads
김문경 프로
에스코어㈜ 소프트웨어사업부 오픈소스SW그룹
에스코어 소프트웨어사업부에서 Red Hat Enterprise Linux 기술 서비스를 담당하고 있습니다.
-
다음 글
Register for Download Contents
- 이메일 주소를 제출해 주시면 콘텐츠를 다운로드 받을 수 있으며, 자동으로 뉴스레터 신청 서비스에 가입됩니다.
- 뉴스레터 서비스 가입 거부 시 콘텐츠 다운로드 서비스가 제한될 수 있습니다.
- 파일 다운로드가 되지 않을 경우 s-core_mktg@samsung.com으로 문의해주십시오.