Step 17. 우분투 설치와 스냅샷 — 실험실 입주와 세이브 포인트

Step 17. 우분투 설치와 스냅샷 — 실험실 입주와 세이브 포인트

Level 0 — 컴퓨터 조작과 구조의 이해 | 난이도 ★★★☆☆ | 예상 소요 시간 3~4시간 (다운로드 시간 포함)

전제: Step 16 완료(VirtualBox 설치됨). 인터넷 연결 필요(ISO 다운로드, 약 5GB).

  • 준비물: VirtualBox가 설치된 윈도우 PC, 인터넷 연결, 여유 디스크 30GB 이상.
  • 주의: 오늘 실습은 100% 안전합니다. 모든 작업이 가상머신 안에서 일어나며, "디스크 지우기" 같은 무서운 문구가 나와도 지워지는 것은 방금 만든 가상 디스크뿐입니다.
  • 요령: 설치 파일(ISO)이 약 5GB라 다운로드에 30분 이상 걸릴 수 있습니다. 다운로드를 먼저 시작하고, 기다리는 동안 2절 개념 부분을 읽는 순서를 추천합니다.

RPG 게임에서 보스 앞에서는 세이브를 합니다. 지면 세이브 포인트로 돌아와 다시 도전하죠. 오늘 배울 스냅샷(snapshot)은 가상머신의 세이브 포인트입니다. 그리고 그 실험실에 입주할 운영체제로 우분투(Ubuntu)를 선택했습니다 — 가장 사용자가 많고 자료가 넘치는, 보안 실습의 사실상 표준 리눅스입니다. 오늘 여러분은 실험실을 짓고, 망가뜨리고, 되돌리는 전체 흐름을 직접 체험합니다.


1. 학습 목표

이 챕터를 끝내면 다음을 할 수 있습니다:

  • ISO 파일과 LTS가 무엇인지 설명한다
  • VirtualBox에 새 가상머신을 만들고 자원을 기준에 맞게 배정한다
  • 우분투를 가상머신에 설치하고 첫 업데이트까지 완료한다
  • 스냅샷의 원리(변화분 기록)를 설명하고, 찍고 복원할 수 있다
  • 스냅샷과 백업의 차이를 설명하고, "언제 찍는가"의 규칙을 세운다

2. 배경 지식 — 오늘의 도구와 개념

오늘의 도구 한눈에 보기

구분 내용
언어·환경 VirtualBox 관리자(GUI) + 우분투 설치 프로그램 + 리눅스 터미널 첫 만남
오늘의 명령어 sudo apt update && sudo apt upgrade(설치 후 첫 업데이트)
필요한 개념 ISO 파일, LTS, 가상 디스크(.vdi), 스냅샷과 복원, 스냅샷 vs 백업

2-1. ISO — CD를 파일로 구운 것

옛날에는 운영체제를 CD/DVD로 사서 설치했습니다. ISO 파일은 그 설치 디스크를 통째로 파일 하나로 만든 것입니다. ubuntu-24.04-desktop-amd64.iso 같은 이름이고, 크기가 수 GB입니다.

가상머신에게 이 파일은 가상의 CD가 됩니다. VirtualBox 설정에서 ISO를 "꽂으면", VM은 진짜 CD가 들어온 줄 알고 부팅할 때 그걸 읽습니다. 물리적 CD도, CD 드라이브도 필요 없습니다.

2-2. 우분투와 리눅스 — 왜 하필 이것인가

리눅스(Linux)는 윈도우와 다른 계열의 운영체제로, 세계 서버의 대부분이 이 위에서 돌아갑니다. 보안을 배우는 데 리눅스가 필수인 이유는 명확합니다:

  • 인터넷의 서버 대부분이 리눅스 → 공격 대상의 대부분이 리눅스
  • 해킹·보안 도구의 대부분이 리눅스 기준으로 만들어짐
  • 구조가 투명해서 "컴퓨터가 실제로 뭘 하는지" 들여다보기 좋음

그리고 우분투는 수많은 리눅스 종류(배포판(distribution)이라 부릅니다) 중 초보에게 가장 친절한 것입니다. 배포판은 "리눅스 커널 + 기본 프로그램 + 관리 도구를 한 묶음으로 포장한 것"이라고 이해하면 됩니다 — 커널은 같아도 포장이 다른 것이 우분투, Debian, Fedora 등으로 갈립니다. 나중에 보안 실습용으로 유명한 Kali Linux도 이 배포판의 하나입니다.

LTS는 Long Term Support, "오래 관리해 주는 안정판"이라는 뜻으로, 최신 기능보다 안정성이 중요한 우리에게 딱 맞는 판입니다. 우분투는 2년마다 LTS를 내고 5년간 보안 업데이트를 제공합니다.

2-3. 가상 디스크 — 파일 하나가 하드디스크 하나

설치 과정에서 만들어지는 가장 큰 산출물이 가상 디스크입니다. 정체를 알아두면 VM 다루기가 쉬워집니다: 호스트 입장에서는 그냥 커다란 파일 하나(VirtualBox VMs 폴드 안의 .vdi 파일), 게스트 입장에서는 하드디스크 전체입니다.

이 "파일 = 디스크" 대응 관계가 주는 실용 지식:

  • VM을 백업하고 싶으면 이 파일(또는 VM 폴드 전체)을 복사하면 됩니다
  • VM을 지우고 싶으면 이 파일을 지우면 됩니다 — 컴퓨터 한 대가 파일처럼 사라집니다
  • 디스크 용량(25GB)은 처음부터 다 쓰는 게 아니라 쓰는 만큼 자라는 방식이 기본입니다(동적 할당). 25GB로 잡아도 실제 파일은 처음엔 몇 GB뿐입니다

2-4. 스냅샷의 원리 — 변화분만 기록한다

스냅샷은 어떻게 몇 초 만에 복원될까요? 전체를 매번 복사하는 게 아닙니다. 스냅샷을 찍는 순간부터 "그 이후의 변화"만 따로 기록합니다. 복원이란 그 변화분을 버리는 것 — 찍던 순간의 디스크로 돌아가는 겁니다.

원고를 쓰다가 백업본을 떠 둔 뒤 마음껏 수정하는 것과 같습니다. 맘에 안 들면 수정분을 버리고 백업본으로 돌아가죠. 그래서 스냅샷 직후의 용량은 작고, 이후 변경이 많을수록 커집니다.

주의할 점 하나: 스냅샷은 백업이 아닙니다. 호스트의 가상 디스크 파일이 날아가면 스냅샷도 함께 사라집니다. "실험용 되돌리기"로는 완벽해도 소중한 데이터의 보험으로는 쓰지 않습니다 — 이 구분을 기억해 두세요.


3. 따라 하기

3-1. 우분투 ISO 다운로드

  1. 브라우저에서 ubuntu.com 접속 (공식 사이트 확인 — Step 16의 습관!)
  2. Download 메뉴에서 Ubuntu Desktop 선택
  3. 최신 LTS 버전을 다운로드

기다리는 동안: 다운로드가 오래 걸리니 이 시간에 2절을 다시 읽거나, VirtualBox를 열어 인터페이스를 둘러보세요. 다음 단계에서 쓸 "새로 만들기(New)" 버튼의 위치를 미리 찾아 두면 좋습니다.

3-2. 새 가상머신 만들기

다운로드가 끝났으면(또는 끝나길 기다리며 미리 만들어도 됩니다), VirtualBox에서:

  1. 새로 만들기(New) 클릭
  2. 이름: Ubuntu-Lab (이름을 치면 종류가 자동으로 Linux/Ubuntu로 잡힙니다)
  3. 메모리: 2048MB 이상 (Step 16의 "호스트 절반 이하" 규칙 안에서. 16GB 호스트라면 4096MB 추천)
  4. CPU: 2개 (가능하면)
  5. 가상 하드 디스크: 지금 만들기25GB 이상

각 항목의 의미: 이 숫자들이 Step 16에서 그린 도면의 "가상 부품"들입니다. 진짜 컴퓨터를 살 때 사양을 고르는 것과 같은 과정을, 클릭 몇 번으로 하고 있는 겁니다.

3-3. ISO 꽂고 부팅 — 설치 시작

  1. 만들어진 VM을 선택 → 시작(Start)
  2. 첫 부팅 때 "시작 디스크를 선택하세요"가 나오면, 방금 받은 ISO 파일 지정
  3. VM 창이 열리고 우분투 설치 화면이 뜹니다

설치 진행 요령 (화면 안내를 따라가면 됩니다):

  • 언어: 한국어 선택 가능 (영어로 해도 물론 됩니다)
  • 설치 형식: 디스크를 지우고 Ubuntu 설치 선택 — 무서워하지 마세요. 지워지는 건 가상 디스크뿐이고 호스트의 파일은 손끝 하나 안 닿습니다. 이것이 격리의 첫 실전 체험입니다
  • 사용자 이름/비밀번호: 반드시 기억할 것! 이 비밀번호는 리눅스에서 관리 작업 때마다 계속 물어봅니다

설치 화면의 선택들이 의미하는 것:

  • "디스크에 설치" vs "체험하기(Try)": ISO로 부팅하면 설치 없이 RAM 위에서만 우분투를 돌려 볼 수도 있습니다. 이 "라이브 환경"은 나중에 컴퓨터 복구나 포렌식 도구로도 쓰이는 방식입니다
  • 키보드 배열: 한국어 101키가 기본. 잘못 고르면 비밀번호 입력이 엉망이 되는 고전적 사고가 납니다
  • 사용자 이름: 이 이름이 /home/이름이 됩니다. Step 18부터 매일 만날 주소이니 눈여겨보세요
  • 비밀번호: 잊으면 랩이 열리지 않으니 반드시 기록해 두세요. 단, 메모는 컴퓨터 옆이 아니라 안전한 곳에

3-4. 첫 부팅과 첫 업데이트

설치가 끝나고 재부팅되면(ISO는 빠집니다 — 안 빠지면 장치 메뉴에서 꺼내세요), 바탕 화면이 있는 완전한 리눅스 컴퓨터가 뜹니다. 이제 두 가지를 합니다.

첫째, 업데이트입니다. 왼쪽 아래 메뉴에서 터미널을 열고(또는 Ctrl + Alt + T):

sudo apt update && sudo apt upgrade

비밀번호를 물으면 설치 때 정한 것을 치세요. 쳐도 화면에 아무것도 안 보이는 게 정상입니다 — 별표조차 안 뜨는 것이 리눅스의 전통적 보안 설계입니다(자세한 이야기는 6절 벽 4에서).

명령 읽는 법: sudo는 "관리자 권한으로", apt는 우분투의 프로그램 관리자, update는 목록 새로고침, upgrade는 실제 업데이트입니다. &&는 "앞이 성공하면 뒤도 실행"이라는 연결자입니다. 명령의 자세한 세계는 Step 18부터 정식으로 배우니, 지금은 "처음 쳐 본 리눅스 명령"으로 기념해 두세요.

둘째, 둘러보기입니다. 파일 탐색기, 설정 등을 눌러 보세요. 윈도우와 비슷하면서 다른 점들을 관찰하는 것도 공부입니다. 화면이 작게 느껴지면 Guest Additions라는 확장을 설치하면 해결됩니다 — VirtualBox 메뉴의 "장치 → Guest Additions CD 이미지 삽입"을 실행해 안내를 따라가세요(지금 필수는 아닙니다).

3-5. 스냅샷 찍기 — 세이브 포인트 저장

깨끗한 설치가 끝난 지금이 첫 세이브 타이밍입니다:

  1. VM이 켜진 상태(또는 꺼진 상태 둘 다 가능)에서 VirtualBox 관리자 창으로
  2. VM 선택 → 오른쪽의 스냅샷(Snapshots)
  3. 생성(Take) 클릭
  4. 이름: 클린 설치 상태 / 설명: 우분투 설치+업데이트 직후

왜 지금 찍는가: 이 지점이 "아무 실험도 안 한 깨끗한 상태"이기 때문입니다. 앞으로 어떤 실험을 하든, 여기로 돌아오면 새것입니다.

3-6. 대망의 실험 — 망가뜨리고 되돌리기

오늘의 하이라이트입니다. 일부러 망가뜨려 봅시다:

  1. VM 안에서 바탕 화면이나 홈 폴드에 아무 파일이나 만들어 두세요 (important.txt 같은 것)
  2. 그 파일을 삭제하세요. 휴지통도 비우세요
  3. 이제 복원: VirtualBox 스냅샷 탭에서 클린 설치 상태 선택 → 복원(Restore)
  4. VM을 다시 시작하면?

관찰 포인트: 파일이 어떻게 됐나요? — 스냅샷 시점 이후에 만들어진 파일이니까, 없습니다. VM 전체가 "사진 찍던 순간"으로 돌아갔습니다. 삭제는 물론, 그 사이의 모든 변경이 무효화됩니다.

예측해 보기: 스냅샷을 찍고 → 소프트웨어를 설치하고 → 복원하면, 설치했던 프로그램은 어떻게 될까요? (정답: 사라집니다. 스냅샷 복원은 파일뿐 아니라 시스템 상태 전체를 되돌립니다. 설치, 설정 변경, 심지어 바탕 화면 배경까지. 이것이 "실험의 자유"를 주는 원리입니다.)

왜 이게 보안과 관련되는가: 이 책 후반에서 여러분은 취약한 웹 서버를 만들고, 익스플로잇을 돌리고, 시스템을 망가뜨릴 겁니다. 그때마다 "망하면 어쩌지"가 아니라 "돌리면 되지"가 되어야 합니다. 오늘의 이 3분 실험이 그 용기의 실물 증거입니다.


4. 미션과 연습문제

미션 — 스냅샷 관리 습관화

스냅샷은 찍는 것보다 관리하는 것이 기술입니다:

  1. 지금 바로 두 번째 스냅샷을 찍어 보세요 (이름: 첫 실험 후 — 방금의 복원 실험을 마친 상태)
  2. 스냅샷 목록을 보세요 — 클린 설치 상태 아래 첫 실험 후가지(tree)처럼 달려 있을 겁니다. 각 시점이 갈래라는 뜻입니다
  3. 메모장에 "스냅샷 찍는 타이밍 규칙"을 세 개 적어 보세요. 예: ① 큰 설치 전, ② 위험한 실험 전, ③ 뭔가 잘 됐을 때
  4. 앞으로의 실습 계획을 고려해, 어떤 스냅샷들을 추가로 찍게 될지 예상 목록을 적어 보세요

스스로 검증하는 법: 규칙 세 개가 "그래서 언제 찍는데?"에 답이 되면 완성입니다. 스냅샷을 안 찍어서 몇 시간의 작업을 날리는 것은 랩 생활의 국민적 사고입니다. 규칙이 그 사고를 막습니다.

연습문제

문제 1. ISO 파일이 무엇이며, 가상머신에서 어떤 역할을 하는지 설명해 보세요.

문제 2. 스냅샷과 백업의 차이를 "호스트의 가상 디스크 파일이 날아간 상황"을 기준으로 설명해 보세요.

문제 3. 스냅샷을 너무 많이 찍으면 어떤 문제가 생길까요? 2-4절의 원리에서 두 가지를 들어 보세요.

문제 4. 맬웨어 분석가가 악성코드를 실행하기 직전에 스냅샷을 찍는 이유를, 오늘의 복원 실험과 연결해 설명해 보세요.


5. 모범 답안과 완료 기준

미션 모범 답안

스냅샷 목록의 모양(예시):

클린 설치 상태  ← 우분투 설치+업데이트 직후
 └─ 첫 실험 후  ← 복원 실험을 마친 현재 상태

타이밍 규칙 예시:

1. 큰 설치나 설정 변경을 하기 전에는 반드시 찍는다
2. 위험해 보이는 실험(삭제, 권한 변경) 전에는 반드시 찍는다
3. 뭔가 잘 됐을 때(환경 구축 완료 등) 그 상태를 찍는다

검증하는 법: ① 스냅샷 목록에 두 개가 가지 형태로 보이는가. ② 규칙 세 개가 전부 "언제"를 답하는가. ③ 예상 목록에 앞으로의 챕터(리눅스 실습, 서버 설치 등)가 반영됐는가. 맬웨어 분석가들이 "실행 직전 스냅샷 → 분석 → 복원 → 조건 바꿔 재실행"을 반복하는 것과 같은 사고방식입니다 — 같은 초기 상태에서 무한히 실험할 수 있다는 것이 가상화가 보안 연구의 표준 환경인 이유입니다.

연습문제 해답

문제 1 해답. ISO는 설치 디스크(CD/DVD)를 통째로 파일 하나로 만든 것입니다. VirtualBox 설정에서 ISO를 꽂으면 VM은 진짜 CD가 들어온 줄 알고 부팅 때 그것을 읽으므로, 물리적 CD 없이 운영체제를 설치할 수 있습니다 — 가상의 CD입니다.

문제 2 해답. 스냅샷은 가상 디스크 파일에 딸린 "변화분 기록"이라서, 호스트의 가상 디스크 파일이 날아가면 스냅샷도 함께 사라집니다. 반면 백업(VM 폴드 통째 복사 등)은 별도 사본이라 원본이 날아가도 살아납니다. 그래서 스냅샷은 "실험용 되돌리기"로만 쓰고, 소중한 데이터의 보험으로는 쓰지 않습니다.

문제 3 해답. 첫째, 변화분이 쌓이므로 디스크 공간을 점점 더 먹습니다. 둘째, 오래된 스냅샷으로 돌아가면 그 사이의 보안 업데이트까지 함께 되돌아가는 문제가 있습니다. "필요한 시점만 찍고, 주기적으로 정리"가 답입니다.

문제 4 해답. 실행 후 시스템이 어떻게 오염됐는지 분석한 뒤 복원하고, 조건을 바꿔 다시 실행하기 위해서입니다. 오늘의 실험에서 "파일을 지우고 복원했더니 없던 일이 된" 것과 같은 원리로, 분석가는 오염된 시스템을 몇 초 만에 깨끗한 상태로 되돌려 같은 실험을 무한히 반복할 수 있습니다. (이 책에서의 악성코드 다루기는 개념·분석 중심이며, 생성이나 배포는 다루지 않습니다.)

완료 기준 체크리스트

  • [ ] ISO 파일이 무엇인지 설명할 수 있다
  • [ ] LTS의 뜻과 그것을 고른 이유를 안다
  • [ ] VirtualBox에 우분투를 설치했다
  • [ ] VM 자원(메모리/디스크) 배정의 기준을 안다
  • [ ] 스냅샷을 찍을 수 있다
  • [ ] 파일을 망가뜨린 뒤 스냅샷으로 복원하는 것을 직접 했다
  • [ ] 스냅샷과 백업의 차이를 설명할 수 있다
  • [ ] 미션: 스냅샷 타이밍 규칙 세 개를 적었다

6. 흔한 실수와 해결

벽 1. 다운로드가 너무 느리다

증상: ISO 다운로드가 몇 시간 예상.
원인: 공식 서버가 멀거나 시간대가 붐비는 것입니다.
해결: ubuntu.com 다운로드 페이지의 미러(한국 미러 서버)를 이용하거나, 밤사이에 받아 두세요. 파일이 크다는 것 외에 고장은 아닙니다.

벽 2. VM이 매우 느리다

증상: 설치도 사용도 버벅입니다.
원인 후보: ① 메모리/CPU 배정이 너무 작음 ② 호스트의 여유가 부족 ③ 가상화 기능(VT-x/AMD-V)이 꺼져 있으면 극단적으로 느립니다.
해결: VM을 끄고 설정에서 메모리 4096MB, CPU 2개로 올려 보세요(호스트 여유 내에서). 그래도 느리면 Step 16의 3-4절(VT-x)을 의심할 차례입니다.

벽 3. 설치 화면에서 "디스크 지우기"가 무섭다

증상: "Erase disk and install Ubuntu"를 못 누르겠습니다.
원인: 문구가 무섭게 생겼습니다.
해결: 이 화면은 가상머신 안입니다. 지워지는 것은 방금 우리가 만든 25GB짜리 가상 디스크 파일뿐입니다. 호스트의 사진, 문서, 게임은 전혀 관련이 없습니다 — 이것이 Step 16에서 배운 격리의 실체입니다. 안심하고 누르세요.

벽 4. 비밀번호를 쳤는데 화면에 안 나온다

증상: 터미널에서 비밀번호 입력 시 커서가 안 움직입니다.
원인: 고장이 아니라 리눅스의 전통적 보안 설계입니다. 비밀번호를 칠 때 아무 표시도 안 하는 것(별표조차 없음)이 정상입니다 — 옆에서 보면 글자 수조차 알 수 없게 하려는 것입니다.
해결: 안 보여도 입력되고 있습니다. 치고 엔터. 앞으로 익숙해질 리눅스의 첫 문화충격입니다.

벽 5. 스냅샷 복원 후 이상해졌다

증상: 복원했는데 뭔가 어색하거나 창이 안 맞습니다.
원인: 복원 시점의 메모리 상태까지 돌아간 경우 등. 대부분 일시적입니다.
해결: VM을 완전히 종료했다가 다시 시작해 보세요. 그래도 이상하면 스냅샷 목록에서 의도한 지점으로 복원됐는지 확인 — 복원은 클릭 한 번이면 다시 할 수 있으니 두려울 게 없습니다.

벽 6. 터미널에서 한/영 전환 때문에 명령이 안 먹는다

증상: 명령을 쳤는데 한글 자모가 섞이거나, 한영키를 눌러도 반응이 이상합니다.
원인: VM 창 안팎의 입력기가 따로 놀아서, 호스트(윈도우)와 게스트(우분투)의 한/영 상태가 어긋나는 일이 흔합니다.
해결: 명령을 치기 전에 프롬프트에 영문만 보이는지 확인하세요. 리눅스 명령은 전부 영문이라, 터미널에서는 영문 입력 상태를 기본으로 두는 습관이 좋습니다.


7. 정리

오늘의 개념

개념 한 줄 설명
ISO 설치 디스크를 통째로 파일로 만든 것 — VM의 가상 CD
LTS 오래 지원받는 안정판 — 실습·서버용으로 적합
가상 디스크 호스트에겐 큰 파일 하나, 게스트에겐 하드디스크 전체
스냅샷 VM 상태를 통째로 찍는 세이브 포인트
복원 스냅샷 이후의 변화분을 버리고 그 시점으로

오늘의 명령어

명령 하는 일
sudo 관리자 권한으로 실행 (비밀번호 질문이 나옴)
apt update 프로그램 목록 새로고침
apt upgrade 설치된 프로그램 업데이트
&& 앞 명령 성공 시 뒤 명령 실행

명령어보다 중요한 감각

오늘로 여러분은 되돌릴 수 있는 실험실을 갖췄습니다. "망가뜨려도 되는 환경 + 언제든 돌아오는 능력" — 보안 실습의 두 기둥이 완성됐습니다. 오늘 한 일의 순서를 복기하면: ① ISO 다운로드 → ② VM 생성(자원 배정) → ③ ISO로 설치 → ④ 업데이트 → ⑤ 클린 상태 스냅샷 → ⑥ 망가뜨리기/복원 체험.

두 가지 당부를 덧붙입니다. 첫째, 이 실험실의 자유는 어디까지나 랩 안의 이야기입니다. 가상머신 안이 안전하다는 것과 랩 밖의 남의 시스템을 공격해도 된다는 것은 전혀 다른 이야기이고, 후자는 오직 여러분의 원칙만이 지킵니다. 둘째, VM을 파일 하나(.ova)로 보내기/가져오기할 수 있어서, 보안 교육계에는 "연습용 취약 VM"을 통째로 배포하는 문화가 있습니다. 나중에 만날 Metasploitable 같은 유명 표적도 여러분이 오늘 만든 것과 같은 종류의 가상머신입니다.

무언가를 설치하거나 크게 바꾸기 전에는 "스냅샷 찍었나?"를 자문하세요. 이 한 문장이 앞으로 여러분의 수많은 시간을 구해 줄 것입니다.


전부 체크되면 Step 17 완료입니다. 사이드바의 체크박스를 눌러 진도를 저장하세요.