Computer >> 컴퓨터 >  >> 시스템 >> Linux

CentOS 8 설치 및 기본 설정 완벽 가이드

이 글에서는 CentOS 8을 처음부터 새로 설치하는 기본 절차와 초기 서버 설정 방법을 단계별로 자세히 살펴보겠습니다.

CentOS 8의 새로운 기능은 무엇인가?

CentOS 8은 2019년 9월 24일에 출시되었습니다. CentOS는 Red Hat의 상용 배포판인 Red Hat Enterprise Linux(RHEL)를 기반으로 하며, 이와 완전히 호환되는 리눅스 배포판입니다.

CentOS 8 릴리스의 주요 변경 사항을 살펴보겠습니다.

  • 리눅스 커널 4.18이 적용되었습니다.
  • 패키지 관리자가 yum에서 dnf로 전환되었습니다. 현재 yum은 dnf에 대한 심볼릭 링크로 존재합니다.
  • 기본 저장소가 BaseOSAppStream 두 개로 분리되었습니다. 이를 통해 사용자가 서로 다른 버전의 패키지를 설치할 수 있습니다. BaseOS는 기존과 동일하게 작동합니다.
  • 커널을 포함한 모든 소프트웨어가 업데이트되었습니다. 이제 기본 저장소에서 PHP 7.2를 설치할 수 있습니다(드디어!).
  • iptablesnftables로 대체되었습니다.
  • 네트워크 설정에 network-scripts가 더 이상 기본으로 사용되지 않으며, NetworkManager를 통해 네트워크를 관리해야 합니다.
  • 기본적으로 cockpit 서버 관리 웹 인터페이스가 설치되어 있습니다(초보자에게 매우 편리합니다).
  • 컨테이너 관리에는 docker 대신 Podman이 사용됩니다.
  • 더 높은 성능을 제공하고 BBR 및 NV 혼잡 제어 알고리즘을 지원하는 새로운 TCP/IP 4.16 스택이 도입되었습니다.
  • 각종 배포 패키지들의 새 버전이 포함되었습니다.

ISO 이미지로 CentOS 8 설치하는 방법

필자는 KVM 가상 머신에 CentOS를 설치했기 때문에, 공식 미러 사이트(https://www.centos.org/download/mirrors/) 중 하나에서 설치 ISO 이미지를 미리 다운로드하여 가상 서버에 마운트한 뒤 OS를 설치했습니다. (물리 서버에 설치하려면 설치 ISO 이미지를 USB 메모리에 기록하면 됩니다.) CentOS 8의 설치 과정은 이전 버전과 크게 다르지 않으며, 이 글은 처음 설치하는 사용자를 위한 가이드입니다.

CentOS 8 설치를 위한 권장 최소 사양은 디스크 공간 10GB 이상, CPU 코어당 712MB의 RAM입니다.

컴퓨터 또는 가상 머신을 CentOS 설치 이미지로 부팅합니다. 첫 번째 단계에서 다음 작업을 선택하라는 메시지가 표시됩니다. 설치가 목적이므로 메뉴에서 첫 번째 항목을 선택합니다.

Install CentOS Linux 8.0.1905

CentOS 8 설치 및 기본 설정 완벽 가이드

선택하면 설치 프로세스가 시작됩니다.

CentOS 8 설치 및 기본 설정 완벽 가이드

필요한 소프트웨어가 로드되는 동안에는 아무 작업도 할 필요 없이 과정을 지켜보기만 하면 됩니다.

검은 화면이 CentOS 로고가 있는 대화형 화면으로 바뀌면 키보드와 마우스를 준비합니다.

CentOS 8 설치 및 기본 설정 완벽 가이드

환영 화면에서는 설치 과정에서 사용할 언어를 선택하라는 메시지가 표시됩니다. 언어를 선택한 후 Continue(계속)를 클릭합니다. 다음 메뉴에서 CentOS 설치의 기본 설정을 지정합니다.

CentOS 8 설치 및 기본 설정 완벽 가이드

설치를 시작하려면 Installation Destination(설치 대상) 항목만 필수로 구성하면 됩니다. 이곳에서 디스크 파티션 레이아웃을 선택하지만, 필자는 이 단계에서 네트워크, 시간 및 날짜까지 함께 설정하는 것을 선호합니다.

CentOS 8 설치 및 기본 설정 완벽 가이드

자신의 시간대에 맞게 설정을 선택합니다.

네트워크를 구성하려면 Network & Host Name(네트워크 및 호스트 이름)을 클릭합니다.

CentOS 8 설치 및 기본 설정 완벽 가이드

Host Name(호스트 이름) 필드에 서버 이름을 입력하고, Configure(구성)를 클릭하여 네트워크 인터페이스를 설정합니다.

CentOS 8 설치 및 기본 설정 완벽 가이드

General 탭에서 Automatically connect to this network when it is available(사용 가능할 때 이 네트워크에 자동으로 연결) 항목에 체크하여 네트워크 인터페이스가 자동으로 시작되도록 설정합니다.

IPv4 Settings(IPv4 설정) 탭(IPv6를 사용하는 경우 IPv6 탭)으로 이동하여 IP 주소, 넷마스크, 게이트웨이, DNS 서버를 설정합니다.

CentOS 8 설치 및 기본 설정 완벽 가이드

특정 IP 주소를 입력하려면 방식을 Manual(수동)로 선택하고 Add(추가)를 클릭합니다. 변경 사항을 저장한 후 초기 네트워크 구성 화면으로 돌아갑니다.

CentOS 8 설치 및 기본 설정 완벽 가이드

스크린샷에서 볼 수 있듯이 IP 주소가 추가되었고 네트워크 인터페이스가 작동 중입니다(상태: Connected).

다음 단계에서는 디스크 파티션 설정으로 이동합니다.

CentOS 8 설치 및 기본 설정 완벽 가이드

여기서는 설치 과정을 보여드리기 위해 CentOS 개발자가 제공하는 자동 스토리지 구성을 사용했습니다. 다른 방식으로 디스크를 파티션하려면 Custom(사용자 정의)을 선택하면 됩니다.

서버의 스토리지 컨트롤러가 하드웨어 RAID를 지원하지 않는 경우, mdadm을 사용해 서버 디스크에 소프트웨어 RAID를 구성할 수 있습니다.

필자의 가상 머신에는 이전에 게스트 OS가 설치되어 있었기 때문에 설치 프로그램이 이를 감지했습니다. 이후에 나타나는 메뉴에서 이전 운영체제의 파티션을 제거했습니다.

CentOS 8 설치 및 기본 설정 완벽 가이드

Delete all(모두 삭제)을 클릭하면 파티션을 제거할 수 있습니다. 그런 다음 Reclaim space(공간 회수)를 클릭하여 사용 가능한 디스크 공간 크기를 갱신해야 합니다.

설치할 패키지 목록은 Software Selection(소프트웨어 선택)에서 지정합니다. CentOS 8을 서버로 사용할 계획이라면 Minimal Install(최소 설치)을 선택하는 것으로 충분하며, 가상 머신에 게스트 OS를 설치하는 경우 Standard와 Guest Agents를 추가로 선택하면 됩니다.

설정을 마쳤으면 Begin Installation(설치 시작)을 클릭하여 설치를 시작합니다.

CentOS 8 설치 및 기본 설정 완벽 가이드

필요한 구성 요소의 압축 해제 및 설치가 진행되는 동안 root 사용자의 비밀번호를 설정하라는 메시지가 표시됩니다. 추가 사용자를 생성할 수도 있지만 필수 사항은 아닙니다.

CentOS 8 설치 및 기본 설정 완벽 가이드

Root Password(루트 비밀번호)를 클릭하고 비밀번호를 입력한 뒤 확인합니다. 그런 다음 Done(완료)을 클릭하여 설치 화면으로 돌아갑니다.

CentOS 8 설치 및 기본 설정 완벽 가이드

CentOS 8 설치에는 약 5~7분이 소요됩니다. 설치 화면에 Reboot(재부팅) 버튼이 나타나면 설치가 완료된 것이므로 서버를 재시작해야 합니다.

CentOS 8 설치 및 기본 설정 완벽 가이드

이로써 CentOS 8 설치가 완료되었습니다.

설치 후 CentOS 8 기본 설정하기

CentOS 8의 설치 후 기본 설정은 CentOS 7과 거의 유사하며, 필자는 모든 서버에 동일한 기본 설정을 적용합니다.

CentOS에 업데이트 및 관리자 도구 설치

앞서 언급했듯이 CentOS 8에서는 yumdnf로 대체되었습니다.

dnf는 차세대 YUM 애플리케이션으로, 리눅스 배포판을 위한 RPM 패키지 관리자입니다. 이전에는 Fedora 배포판에서 사용되었으며, 이제 CentOS 8에도 적용되었습니다.

새로 설치한 서버에서 가장 먼저 하는 작업은 시스템 업데이트입니다.

# dnf update -y

이미지가 최신 상태라면 필자의 경우처럼 업데이트할 패키지가 없을 가능성이 높습니다.

Dependencies resolved.
Nothing to do.
Complete!

업데이트가 있다면 모두 설치합니다.

다음으로 EPEL 저장소를 활성화하고 서버 관리에 편리한 도구들을 설치합니다.

# dnf install epel-release -y
# dnf install mc wget screen nano net-tools bind-utils curl lsof vim -y

이 정도 유틸리티면 충분하지만, 본인이 익숙한 도구를 설치하면 됩니다.

필자는 필요한 업데이트를 항상 수동으로 설치하기 때문에 자동 시스템 업데이트는 사용하지 않습니다. 자동 업데이트를 구성하려면 dnf-automatic 패키지를 설치합니다.

# dnf install -y dnf-automatic

활성화된 시스템 업데이트 작업을 확인하려면 다음 명령어를 입력합니다.

# systemctl list-timers *dnf-*

CentOS에서 SELinux 비활성화하는 방법

초기 서버 설정 단계에서 필자는 항상 SELinux를 비활성화합니다(변경 사항을 적용하려면 서버를 재부팅해야 합니다).

# nano /etc/sysconfig/selinux
# reboot

다음 명령어로 SELinux를 즉시 비활성화할 수도 있습니다.

setenforce 0

CentOS 8 네트워크 설정 구성

필자는 OS 설치 과정에서 네트워크 설정을 이미 구성했기 때문에 지금은 별도로 설정할 필요가 없습니다. CentOS 8에서는 NetworkManagernmcli만으로 네트워크를 관리할 수 있으며, network-scripts는 기본적으로 지원되지 않는다는 점만 짚고 넘어가겠습니다. 솔직히 필자는 편의성 문제로 이전에는 항상 NM을 비활성화하고 사용하지 않았지만, 이제는 익혀야 할 것 같습니다.

네트워크 상태를 확인하는 방법은 다음과 같습니다.

# systemctl status NetworkManager

● NetworkManager.service - Network Manager
Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2020-06-29 08:23:11 NY; 3h 37min ago
Docs: man:NetworkManager(8)
Main PID: 870 (NetworkManager)
Tasks: 3 (limit: 5060)
Memory: 4.7M
CGroup: /system.slice/NetworkManager.service
└─870 /usr/sbin/NetworkManager --no-daemon

CentOS 8에서 호스트명 변경하는 방법

CentOS 설치 중 올바른 서버 호스트명을 설정하지 않았거나 단순히 변경하고 싶다면 몇 가지 방법이 있습니다. /etc/hostname 파일을 직접 수정하거나 다음 명령어로 변경할 수 있습니다.

# hostnamectl set-hostname mycentos8server

CentOS 8에서 Firewalld 설정

필요한 서비스(SSH 및 HTTP/HTTPS)를 firewalld의 신뢰할 수 있는 영역 목록에 추가합니다.

firewall-cmd --add-service=ssh
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https

CentOS에서 시간 및 타임존 변경

CentOS에서 현재 시간과 타임존을 확인하려면 date 명령어를 입력합니다.

# date

시스템 설치 과정에서 타임존을 설정했기 때문에 현재 뉴욕 시간이 표시됩니다. 타임존을 변경하려면 해당 명령어를 사용합니다.

# timedatectl set-timezone Asia/Seoul

사용 가능한 모든 타임존 목록을 보려면 다음 명령어를 실행합니다.

# timedatectl list-timezones

시간 동기화에는 chronyd가 사용되며, systemctl을 사용하여 활성화하고 자동 시작에 등록합니다.

# systemctl start chronyd
# systemctl enable chronyd
# systemctl status chronyd

● chronyd.service - NTP client/server
Loaded: loaded (/usr/lib/systemd/system/chronyd.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2020-06-29 16:13:48 +06; 9s ago
Docs: man:chronyd(8)
man:chrony.conf(5)
Main PID: 31700 (chronyd)
Tasks: 1 (limit: 5060)
Memory: 1.1M
CGroup: /system.slice/chronyd.service
└─31700 /usr/sbin/chronyd

Bash 히스토리 설정

bash 명령어 히스토리를 더 편리하게 확인하기 위해 필자는 항상 .bashrc에 몇 줄을 추가하여 필요한 명령어 히스토리 정보를 쉽게 얻을 수 있도록 합니다.

기본 설정에서 history 출력은 다음과 같이 표시됩니다.

# history

1 dnf repolist
2 dnf install epel-release

서버에서 어떤 명령어가 실행되었는지는 알 수 있지만 실행 시간과 날짜는 보이지 않습니다. 필자에게 이 정보는 매우 중요합니다. 따라서 history 출력을 더 편리하게 만들어 보겠습니다. /root/.bashrc 파일을 열고 몇 줄을 추가합니다.

# nano /root/.bashrc

export HISTSIZE=10000
export HISTTIMEFORMAT="%d/%m/%y - %H:%M:%S "

이후 history를 확인하면 명령어가 실행된 정확한 시간과 날짜를 볼 수 있습니다.

# history

1 06/29/20 - 16:16:29 dnf repolist
2 06/29/20 - 16:16:29 dnf install epel-release

Cockpit: CentOS 8 서버 관리 웹 인터페이스

앞서 언급했듯이 CentOS 8에는 cockpit 서버 관리 웹 인터페이스가 사전 설치되어 있습니다. systemctl을 통해서도 관리할 수 있으며, 실행하고 시작 프로그램에 등록할 수 있습니다.

# systemctl enable cockpit.socket
# systemctl start cockpit.socket

기본적으로 Cockpit 웹 서버는 TCP/9090 포트에서 수신 대기합니다. firewalld의 허용 목록에 해당 포트를 추가합니다.

# firewall-cmd --get-active-zones
# firewall-cmd --add-port=9090/tcp --zone=MY_ACTIVE_ZONE --permanent
# firewall-cmd --reload

Cockpit 웹 인터페이스에 접속하려면 브라우저에서 https://Your-CentOS8-IP:9090 주소를 열고 인증을 진행합니다.

CentOS 8 설치 및 기본 설정 완벽 가이드

Cockpit을 사용하면 서버 부하 확인, 네트워크·스토리지·컨테이너 관리, 로그 조회 등을 할 수 있습니다.

이상으로 일반적인 CentOS 서버 구성이 완료되었습니다. 이후에는 프로젝트 요구 사항에 따라 추가 설정을 진행하면 되며, 요구 사항은 프로젝트마다 다를 수 있습니다.