RHEL 기초 #2 셋업 — RHEL 9 설치, Subscription Manager, 첫 로그인

12 분 소요

#1에서 레드햇 계열의 전체 흐름을 잡았습니다. 이번 글은 RHEL 머신을 한 대 직접 띄우는 절차 — ISO를 받고, 가상 머신에 설치하고, Subscription Manager로 등록하고, 첫 로그인 직후의 잔주름을 정리하는 한 사이클을 다뤄요.

RHEL 기초 시리즈에서 이번 글의 위치:

  • #1 RHEL이란 — Fedora에서 RHEL까지, 그리고 AlmaLinux와 Rocky Linux
  • #2 셋업 — RHEL 9 설치, Subscription Manager, 첫 로그인 ← 이번 글
  • #3 dnf와 패키지 관리 — repo, modules, AppStream
  • #4 systemd 입문 — 서비스, target, journalctl
  • #5 사용자/그룹/권한 — UID/GID, sudo, ACL
  • #6 파일 시스템 기본 — XFS, mount, /etc/fstab
  • #7 기본 보안 — firewalld, SSH 하드닝

어디에 깔까 #

학습용 RHEL 머신을 둘 곳은 세 가지입니다.

옵션비용한 줄 평
로컬 가상 머신무료추천. 스냅샷,롤백이 쉬워 망쳐도 부담 없음
클라우드 인스턴스시간당 과금EC2/Lightsail. 외부에서 접근 가능, 잠시 뒤 끄는 걸 잊으면 비용
베어메탈 / 듀얼부팅무료디스크 영구 점유. 학습용으론 과함

이 글은 로컬 가상 머신을 기준으로 갑니다. 설치하다 꼬여도 VM만 지우고 다시 시작하면 되므로, 처음 OS를 다루는 분께 가장 안전합니다. 호스트 머신에 따라 도구가 갈립니다.

호스트추천 도구비고
Apple Silicon (M1~M4)UTM (mac.getutm.app)무료, ARM64 RHEL 9 잘 돔
Intel Mac / Windows / LinuxVirtualBox (virtualbox.org)무료. 기업용은 VMware Workstation/Fusion도

이 글의 스크린샷,예시는 Apple Silicon + UTM + RHEL 9 (ARM64) 기준이지만, 인스톨러 화면과 명령은 x86_64 / VirtualBox 환경과 사실상 같습니다. 다른 점은 그때그때 짚어둘게요.

참고로 AWS에서 RHEL을 띄우고 SSH로 접속하는 방법도 있습니다. (AWS 기초 #1) Free Tier 한도 안에서 t2.micro 정도면 학습용으로 충분합니다. 다만 이 글에서는 인스톨러 화면을 직접 보는 경험을 위해 로컬 VM으로 진행합니다.

1) Developer Subscription 가입과 ISO 받기 #

RHEL을 합법적으로 무료로 쓰려면 Red Hat Developer Subscription이 필요합니다. 한 계정당 16대까지 RHEL을 설치할 수 있고, 보안 패치도 동일하게 받습니다.

가입 절차:

  1. developers.redhat.com 접속
  2. 우측 상단 Sign inRegister로 가입 (이메일 + 비밀번호 + 회사명 / 학생도 OK)
  3. 이메일 인증 마치면 끝

ISO 다운로드 #

access.redhat.com/downloads에서 Red Hat Enterprise Linux 9를 클릭하면 다운로드 페이지가 뜹니다. 받을 ISO는 두 종류입니다.

ISO크기차이
Binary DVD (x86_64-dvd.iso / aarch64-dvd.iso)~9 GB모든 패키지 포함, 오프라인 설치 가능
Boot ISO (x86_64-boot.iso / aarch64-boot.iso)~900 MB부팅만, 패키지는 설치 중 네트워크로 받음

학습용으로는 Binary DVD를 받으세요. 한 번 받아두면 인터넷 없이도 설치할 수 있습니다. Apple Silicon이면 aarch64, 그 외에는 x86_64입니다.

중요 — 다운로드 직전에 아키텍처 선택이 보입니다. 호스트 CPU와 맞춰야 합니다. M1~M4 Mac → aarch64, Intel/AMD → x86_64. 잘못 받으면 VM이 부팅조차 안 됩니다.

다운로드는 보통 30 분~1 시간. 받는 동안 다음 단계를 먼저 진행해도 됩니다.

2) 가상 머신 만들기 #

Apple Silicon — UTM #

UTM을 처음 켜면 환영 화면이 나옵니다. Create a New Virtual MachineVirtualize (Emulate 아님, 훨씬 느려요) → Linux를 고릅니다.

항목
ISO Image받아둔 aarch64-dvd.iso 선택
Memory4096 MB (최소 2 GB, 넉넉히 4 GB)
CPU Cores2~4 (호스트 코어 절반 정도)
Storage Size40 GB (최소 20 GB)
Shared Directory(선택) — 호스트 폴더와 공유하고 싶을 때

마지막 Summary에서 Namerhel9-test처럼 알아보기 쉬운 이름으로 정하세요. Save를 누르면 왼쪽 목록에 VM이 생깁니다.

Intel/Windows/Linux — VirtualBox #

VirtualBox에서는 New → 이름 입력 → Type: Linux, Version: Red Hat (64-bit) 선택 → 메모리 / CPU / 디스크는 위 표와 동일하게 잡으면 됩니다.

생성 후 VM을 선택하고 Settings → Storage → Empty CD 아이콘에서 받아둔 x86_64-dvd.iso를 마운트합니다. 이 단계가 빠지면 VM이 시작될 때 “부팅 디스크 없음” 상태로 멈춥니다.

공통 — VM 시작 #

준비된 VM을 Start 하면 검은 화면에 부트 메뉴가 뜹니다.

부트 메뉴
   Install Red Hat Enterprise Linux 9.x
   Test this media & install Red Hat Enterprise Linux 9.x
   Troubleshooting -->

위쪽 Install Red Hat Enterprise Linux 9.x를 골라 Enter를 누르세요. 잠깐 텍스트 로그가 흘러간 뒤 그래픽 인스톨러 (Anaconda)가 뜹니다.

3) Anaconda 인스톨러 따라가기 #

Anaconda 화면은 한 허브 (Installation Summary) + 여러 스포크 (개별 설정) 모양입니다. 노란 ! 표시가 있는 항목은 반드시 한 번은 들어가야 설치가 시작됩니다.

Anaconda의 모양
┌──────────────────────────────────────────────┐
│  INSTALLATION SUMMARY                        │
├──────────────────────────────────────────────┤
│  LOCALIZATION                                │
│    🌐 Keyboard          [English (US)]       │
│    🌐 Language Support  [English]            │
│    🌐 Time & Date       [Americas/New York]  │
├──────────────────────────────────────────────┤
│  SOFTWARE                                    │
│    💿 Connect to Red Hat                     │
│    💿 Installation Source [Local media]      │
│    💿 Software Selection [Server with GUI]   │
├──────────────────────────────────────────────┤
│  SYSTEM                                      │
│    💾 Installation Destination  ⚠️           │
│    💾 KDUMP                                  │
│    💾 Network & Host Name                    │
│    💾 Security Profile                       │
├──────────────────────────────────────────────┤
│  USER SETTINGS                               │
│    👤 Root Password         ⚠️               │
│    👤 User Creation                          │
└──────────────────────────────────────────────┘
                    [Begin Installation]

각 항목을 채워가는 순서는 자유지만 보통 위에서 아래로. 핵심 항목만 짚어둡니다.

Language / Keyboard / Time & Date #

  • Language한국어 또는 English (US). 서버 학습용은 영어 권장 — 에러 메시지를 검색하기 쉽습니다.
  • Keyboard — 한국에서 사 온 맥은 English (US)가 무난. 한글 키보드 쓰면 Korean.
  • Time & DateAsia / Seoul. NTP 자동 동기는 켜두세요.

Software Selection #

기본값은 Server with GUI. 학습용엔 GUI가 부담스럽지 않다면 그대로 둬도 되고, 가벼운 걸 원하면 Server (텍스트 모드) 또는 Minimal Install을 골라요.

이 시리즈는 Server with GUI를 가정하고 진행합니다. GNOME 데스크탑까지 함께 설치되지만, 실제 작업은 거의 터미널에서 합니다.

Installation Destination — 디스크 파티셔닝 #

⚠️ 표시가 가장 자주 걸리는 곳입니다. 클릭해서 들어가면 디스크 목록이 보입니다. VM 디스크 한 장이 잡혀 있을 것입니다. 그 디스크를 클릭해 체크한 뒤:

  • Storage Configuration: Automatic 선택
  • Encryption: 학습용은 끄고 진행. 운영에선 LUKS 켜요 (고급 #5)

Done으로 빠져나와 ⚠️ 가 사라지는 걸 확인. 자동 파티셔닝은 이런 모양으로 잡힙니다.

자동 파티셔닝의 결과
/boot          1 GB    XFS
/boot/efi      600 MB  EFI (UEFI 부팅이면)
/              남은 공간의 70%   XFS
/home          남은 공간의 30%   XFS
swap           메모리와 비슷한 크기

LVM으로 묶이고 파일시스템은 XFS (#6에서 다룸)가 기본입니다. 수동 파티셔닝은 이번 글의 범위 밖입니다.

Network & Host Name #

자동으로 **Wired (eth0/enp0s1)**가 잡혀 있을 텐데 OFF로 비활성화돼 있습니다. ON으로 켜는 걸 빼먹지 마세요. 이걸 안 켜고 설치하면 부팅 후 인터넷이 안 통합니다.

화면 우하단 Host Namerhel9-test 같은 이름을 넣고 Apply. 안 넣으면 localhost.localdomain으로 들어갑니다.

Connect to Red Hat (선택) #

설치 시점에 바로 등록해버리는 옵션입니다. 가입한 Red Hat 계정 ID/PW를 넣으면 자동으로 Subscription이 붙습니다.

이 글은 건너뛰고 설치 후 명령으로 등록하는 길로 갑니다. 여기서 등록하든 나중에 등록하든 결과는 같지만, subscription-manager 명령을 한 번 직접 쳐 보는 경험이 더 남는 게 있습니다.

Root Password #

⚠️ 또 하나가 여기. 길게 잡으세요 (12자 이상 권장). 학습용 VM 이라도 패턴 있는 비밀번호는 들이지 마세요.

옵션으로 Lock root accountAllow root SSH login with password가 있습니다. 학습용은 둘 다 기본값 (lock 안 함, SSH 비번 로그인 허용 안 함) 으로 두면 됩니다. 운영에선 SSH 키 인증만 허용하도록 잠가야 합니다 (#7).

User Creation #

일상 작업용 사용자를 한 명 만듭니다. 루트로 일하는 일은 만들지 마세요.

항목값 예
Full nameCurtis Kim
User namecurtis
Make this user administrator✅ 체크 (sudo 가능하게)
Password(별개의 강한 비밀번호)

Make this user administrator를 체크해야 wheel 그룹에 들어가 sudo가 됩니다. 안 하면 매번 root 비밀번호로 su - 해야 됩니다.

Begin Installation #

⚠️ 가 모두 사라졌으면 Begin Installation이 활성화됩니다. 누르면 설치가 시작됩니다.

설치 진행
Installing the software ...
   100 / 1240 packages
   ...

VM 사양과 디스크에 따라 10~25 분. 그동안 자리를 떠도 됩니다.

설치가 끝나면 Reboot System 버튼이 뜹니다. 누르면 VM이 재시작 — 그런데 다시 인스톨러 부트 화면이 뜨는 일이 흔합니다. 이때는 VM의 ISO 마운트를 해제 (UTM: VM 정지 후 Edit → Drive → Eject / VirtualBox: Devices → Optical Drives → Remove disk) 한 뒤 다시 부팅합니다.

4) 첫 부팅과 로그인 #

ISO를 빼고 재부팅하면 GRUB 부트 메뉴가 잠시 보이고 (자동으로 5초 후 진행), 곧 그래픽 로그인 화면이 뜹니다.

처음 한 번 Initial Setup 화면이 뜰 수 있는데, License Information에 동의 (I accept the license agreement) 하고 FINISH CONFIGURATION으로 빠져나오면 끝.

방금 만든 사용자 (curtis)로 로그인합니다. GNOME 환영 마법사가 뜨면 Skip으로 넘기세요. 마지막에 검은 데스크탑 + 터미널이 보이면 OS가 제 자리에 제대로 올라온 겁니다.

Activities → Terminal (또는 Ctrl+Alt+T)로 셸을 엽니다.

첫 확인
$ cat /etc/redhat-release
Red Hat Enterprise Linux release 9.5 (Plow)

$ uname -a
Linux rhel9-test 5.14.0-503.x.x.el9_5.aarch64 ...

$ whoami
curtis

/etc/redhat-releaseRed Hat Enterprise Linux release 9.x가 찍히면 정확히 RHEL 위에 올라온 것입니다. AlmaLinux/Rocky 라면 여기 다른 문자열이 찍힙니다 (뒤에서 다룸).

5) Subscription Manager 등록 #

이제 이 머신을 내 Red Hat 계정에 묶어 야 합니다. 이걸 안 해두면 dnf install이 거의 다 실패합니다 — 패키지를 받을 저장소(repository) 에 접근 권한이 없기 때문입니다.

등록 #

register
$ sudo subscription-manager register --username <RHID> --password <PW>
The system has been registered with ID: a1b2c3d4-...
The registered system name is: rhel9-test

<RHID>developers.redhat.com 가입할 때 만든 Red Hat 계정 ID, <PW>는 그 비밀번호입니다. 비밀번호를 명령줄에 직접 적기 싫으면 --password를 빼면 프롬프트가 떠요.

명령이 성공하면 Simple Content Access 모드로 자동으로 붙어 모든 RHEL 저장소가 활성화됩니다.

확인 #

저장소 목록 확인
$ sudo dnf repolist
repo id                              repo name
rhel-9-for-aarch64-appstream-rpms    Red Hat Enterprise Linux 9 ...
rhel-9-for-aarch64-baseos-rpms       Red Hat Enterprise Linux 9 ...

두 줄이 보이면 성공. 안 보이면 등록이 제대로 안 된 것입니다. sudo subscription-manager status로 상태 확인 후 다시 시도.

첫 업데이트 #

dnf update
$ sudo dnf update -y
Last metadata expiration check: 0:00:01 ago ...
Dependencies resolved.
...
Complete!

설치 ISO 굽힐 때부터 며칠~몇 주가 지났을 테니 보안 패치가 꽤 떨어집니다. 첫 업데이트는 보통 5~15 분.

업데이트 후 커널이 바뀌었으면 재부팅이 필요합니다.

재부팅 필요 여부
$ sudo dnf needs-restarting -r
Core libraries or services have been updated since boot-up:
  * kernel
Reboot is required to fully utilize these updates.

$ sudo reboot

6) 첫 잔주름 — 시간 / hostname / sudo / SSH #

설치는 끝났지만, 운영 직전에 한 번씩 손볼 곳이 몇 군데 있습니다.

시간 동기 — chronyd #

RHEL 9의 시간 동기 데몬은 chronyd 입니다. 이미 떠 있을 것입니다.

시간 상태 확인
$ timedatectl
               Local time: Fri 2026-04-10 14:23:01 KST
           Universal time: Fri 2026-04-10 05:23:01 UTC
                 Time zone: Asia/Seoul (KST, +0900)
 System clock synchronized: yes
               NTP service: active

$ chronyc sources
MS Name/IP address       Stratum ...
^* ntp.example.com             2 ...

System clock synchronized: yesNTP service: active가 보이면 OK. 시간대가 잘못됐다면:

시간대 변경
$ sudo timedatectl set-timezone Asia/Seoul

Hostname 확인 / 변경 #

hostname
$ hostnamectl
   Static hostname: rhel9-test
         Icon name: computer-vm
           Chassis: vm
        ...

# 바꾸려면
$ sudo hostnamectl set-hostname rhel9-lab

변경 후 새 셸을 열면 프롬프트가 새 이름으로 바뀌어 있습니다.

sudo가 잘 도는지 #

설치 시 Make this user administrator를 체크했으면 사용자가 wheel 그룹에 들어 있고, RHEL 9의 기본 sudoers 정책상 wheel 그룹은 sudo가 됩니다.

확인
$ groups
curtis wheel

$ sudo whoami
[sudo] password for curtis:
root

wheel이 그룹 목록에 없다면 root로 로그인해 추가:

wheel 그룹에 추가
# su -로 root로 변경 후
# usermod -aG wheel curtis
# exit  # 사용자 셸로 나가서 새로 로그인하면 적용

SSH로 접속해보기 #

VM 콘솔만 쓰면 답답합니다. 호스트 터미널에서 SSH로 들어가면 복사,붙여넣기,여러 창이 자유로워집니다.

먼저 VM 안에서 IP를 확인:

IP 확인
$ ip -4 addr show
2: enp0s1: ...
    inet 192.168.64.15/24 ...

호스트 터미널에서:

호스트에서 SSH
$ ssh curtis@192.168.64.15
The authenticity of host '192.168.64.15 (192.168.64.15)' can't be established.
ED25519 key fingerprint is SHA256:...
Are you sure you want to continue connecting (yes/no)? yes
curtis@192.168.64.15's password:
[curtis@rhel9-lab ~]$

처음엔 비밀번호로 들어가지만, 다음 글을 따라가면서 곧 SSH 키 인증으로 바꾸게 됩니다 (#7).

VirtualBox 사용자 — 기본 NAT 네트워크는 호스트에서 VM으로 직접 SSH가 안 됩니다. Settings → Network → Advanced → Port Forwarding에서 호스트 2222 → 게스트 22를 추가하고 ssh -p 2222 curtis@127.0.0.1로 접속하거나, 네트워크를 Bridged Adapter로 바꿔주세요.

AlmaLinux / Rocky로 따라오는 분께 #

거의 동일합니다. 차이만 짚으면:

단계RHELAlmaLinux / Rocky
ISO 받기developers.redhat.com (계정 필요)almalinux.org / rockylinux.org (가입 불필요)
인스톨러Anaconda동일 (브랜딩만 다름)
Subscription Manager 등록필요 (subscription-manager register)필요 없음 — 이 단계 통째로 건너뜀
/etc/redhat-releaseRed Hat Enterprise Linux release 9.xAlmaLinux release 9.x / Rocky Linux release 9.x
그 외 명령dnf / systemctl / firewalld / SELinux전부 동일

즉 (5) Subscription Manager 단계만 빼면 모든 게 같습니다. 이 시리즈의 나머지 편 (#3 부터) 도 그대로 따라올 수 있습니다.

자주 만나는 함정 #

“VM이 부팅이 안 됩니다” #

ISO 아키텍처를 잘못 받은 경우가 1순위. M1~M4 Mac 인데 x86_64를 받았거나, Intel 인데 aarch64를 받았으면 부팅조차 안 됩니다. 다시 받으세요.

VirtualBox에서 Version을 Linux/Other (64-bit) 같은 일반값으로 둔 경우도 가끔 부팅이 막혀요. 반드시 **Red Hat (64-bit)**으로.

“설치는 끝났는데 인스톨러 화면이 또 떠요” #

ISO가 가상 CD 드라이브에 그대로 마운트돼 있어 다시 그쪽으로 부팅된 겁니다. VM 정지 → ISO 제거 → 재부팅.

dnf install이 다 실패합니다” #

99%는 Subscription 등록이 안 된 상태입니다. sudo subscription-manager status로 확인.

sudo가 안 됩니다” #

설치 때 Make this user administrator를 안 체크한 경우. root로 로그인해 usermod -aG wheel <user> 후 다시 로그인.

“GUI가 너무 무거워요” #

학습이 어느 정도 익숙해지면 GUI를 끄고 텍스트 모드로 부팅하면 메모리/CPU가 한결 가벼워져요.

텍스트 모드로 기본 부팅
$ sudo systemctl set-default multi-user.target
$ sudo reboot

다시 GUI를 원하면 graphical.target으로 되돌립니다. (target은 #4 systemd)

정리 #

이번 글에서 잡은 흐름:

  • 학습용 RHEL은 로컬 VM으로 — Apple Silicon은 UTM, 그 외는 VirtualBox.
  • ISO는 Developer Subscription 가입 후 access.redhat.com/downloads 에서. 아키텍처 (aarch64 / x86_64) 잘못 고르면 부팅이 안 됨.
  • Anaconda 인스톨러의 ⚠️ 항목 — 디스크 (Installation Destination) / Root Password / User Creation. Make this user administrator 체크 잊지 말기.
  • Network & Host Name의 ON 토글 빼먹지 말기.
  • 설치 후 **subscription-manager register**로 등록하면 RHEL 저장소가 붙고 dnf가 동작.
  • **dnf update -y**로 첫 패치 적용, 커널 바뀌었으면 재부팅.
  • AlmaLinux / Rocky도 거의 동일. Subscription 단계만 통째로 생략.

다음 — 패키지 관리 본격적으로 #

이제 RHEL 머신이 살아 있고 인터넷도 통합니다. 다음으로 다룰 주제는 이 위에 무언가를 깔고 지우는 일 — 모든 운영의 출발점입니다.

#3 dnf와 패키지 관리 — repo, modules, AppStream에서는 dnf 명령군 (install, remove, search, info, history, repoquery), AppStream이 BaseOS와 다른 이유, modules로 같은 패키지의 여러 버전 (예: PostgreSQL 13/15/16)을 골라 설치하는 방법, 그리고 외부 저장소 (EPEL, COPR)를 안전하게 붙이는 방법까지 한 번에 잡습니다.

X