리눅스 환경 구축하기

subtitle·2025년 12월 4일

드림핵

목록 보기
3/3

가상머신

(virtual machine, VM)

VM: 하나의 컴퓨터 안에서 또 하나의 컴퓨터를 에뮬레이션하는 sw.
(하나의 운영체제 위에 다양한 운영체제 환경을 구축할 수 있다)

워게임도 어떤 문제는 윈도우에서 동작하고, 어떤 문제는 리눅스에서 동작한다.

VM sw를 사용하면 하나의 호스트 머신에서 여러 개의 가상 머신을 동시에 실행할 수 있기 때문에 물리적인 서버를 여러 대 구입하는 것보다 경제적이다. 또한 각 가상 머신 별로 다양한 운영체제를 설치하여 테스트하고자 하는 환경을 쉽게 구축할 수 있다.

호스트 머신이란?
호스트 머신은 실제 컴퓨터를 말한다. 호스트 머신 위에서 돌아가는 VM을 게스트 머신이라 부른다.


가상머신이 필요한 이유

  • 여러 운영체제 환경 구축: VirtualBox를 사용하면 하나의 운영체제 상에서 다양한 운영체제 환경을 구축할 수 있다.
    ex. Windows에서 Linux나 macOS를 실행할 수 있다.
    워게임을 풀다보면 특정 프로그램을 실행하기 위해 특정 운영체제가 필요한 경우가 있는데 이런 경우 VirtualBox를 사용하면 해당 운영체제를 가상 머신으로 구성해서 프로그램을 실행할 수 있다.

  • 독립된 환경 구축: 가상 머신을 사용하면 악성 코드 분석 등의 작업을 수행할 때 호스트 머신에 피해가 가지 않는다. 가상 머신은 호스트 머신과 완전히 분리된 독립된 환경을 구성하기 때문에 네트워크로 연결되어 있지 않는 이상 일반적으로 악성 코드를 실행하더라도 호스트 머신에 영향을 미치지 않는다.

  • 스냅샷 기능: VirtualBox는 스냅샷 기능을 제공한다.
    이 기능을 사용하면 가상 머신의 상태를 저장하고, 필요할 때 해당 상태로 빠르게 복원할 수 있다.
    이렇게 하면 가상 머신을 사용하다가 문제가 발생하거나 오류가 발생하더라도 이전 상태로 쉽게 돌아갈 수 있다.

→ 스냅샷 기능이 뭐지

Apple Silicon Mac에서 GUI 환경의 우분투나 윈도우즈 환경 구축이 어렵나?
: 드림핵의 강의와 현재 많은 CTF 문제와 워게임 문제가 x86 아키텍처를 기반으로 제작되었고 실행된다. 강의 작성시점(2025년 3월)을 기준으로 아직 x86 아키텍처를 우수한 성능을 가상화하는 방법이 알려져 있지 않아 GUI 환경의 x86 Linux나 x86 Windows 환경을 자체적으로 구축하기 어려운 상황이다.

→ x86이 뭐지



Apple Silicon Mac에서 UTM을 이용하여 리눅스 환경 구축하기

리눅스 VM 구축 - UTM

UTM: macOS에서 다양한 운영체제를 가상화하여 실행할 수 있게 해주는 오픈소스 가상화 sw로, 하나의 컴퓨터 위에서 여러 개의 운영체제를 돌릴 수 있게 도와준다.

가상 머신 sw인 UTM을 사용해서 Apple Silicon Mac에서 Ubuntu 24.04 64-bit PC(AMD64) Server를 함께 설치해보자.

UTM 다운로드

먼저 https://docs.getutm.app/installation/macos/ 에서 강의 작성 시점(2025년 3월)에서 가장 최근의 버전인 UTM 4.6.4 버전을 다운로드 하겠다. 아래의 Download from Github 버튼을 누르면 UTM.dmg 파일이 다운로드된다.



윈도우에서 virtualbox를 이용하여 리눅스 환경 구축하기

리눅스 VM 구축 - virtualbox

버츄얼박스는 x86 아키텍처를 가상화하기 위한 오픈 소스 소프트웨어이다. 하이퍼바이저 역할을 하는 프로그램으로, 가상머신(vm)을 만들어서 다른 운영체제를 설치하고 구동할 수 있도록 도와주는 소프트웨어이다.

일반적으로 리눅스 운영체제는 오픈 소스로 개발되어 있고 무료 사용 가능해서 보안 취약점을 찾기 위한 활동이 활발하다.
뿐만 아니라 다양한 도구와 명령어가 포함된 풍부한 환경을 제공하기 때문에 현실에서 서버 환경으로 많이 활용되고 있다.

리눅스는 서버 환경으로 활용되는 특성상 해커의 타겟이 되는 것은 일상적인 일이며, 그만큼 보안을 공부하기 위해서는 리눅스를 잘 알아야 한다.
(실제로 드림핵에서 제공하는 대부분의 실습 문제 역시 리눅스로 서버 환경을 구축하여 제공하고 있다. 시스템 해킹, 리버스 엔지니어링, 웹 해킹 등 분야를 가리지 않고 필요한 운영체제이므로 반딋 리눅스 환경을 구축하시는 것을 추천한다.)

본 강의에서는 virtualbox(7.1.4버전)을 사용해 ubuntu 24.04 64-bit PC Desktop을 구축할 것이다. 본 강의는 64비트 x86-64 아키텍처 기반의 윈도우를 기준으로 설명하지만 masOS와 Linux에서도 동일한 방식으로 진행할 수 있다.

virtualbox 다운로드

https://www.virtualbox.org/wiki/Download_Old_Builds_7_1 여기에 들어가서 호스트 운영체제에 맞는 파일을 다운받는다. 본 강의에서는 윈도우를 사요하기 때문에 window hosts를 선택한다.

다운로드 폴더에 성공적으로 EXE 파일이 다운로드된 것을 볼 수 있다.

virtualbox 설치

라이센스 동의를 선택하고 next 클릭

커스텀 셋업에서는 설정을 건들지 않고 바로 다음으로 진행한다.

virtualbox와 관련한 네트워크 기능을 설치한다.

virtualbox의 정상적 설치를 위해 python core와 win32api를 설치한다.

본인이 원하는 옵션을 선택하고 next 누른다. 본 강의에서는 아래 사진처럼 바탕화면에 아이콘을 생성하는 것만 제외하고 모두 선택했다.

설치를 진행한다.

이제 virtualbox 실행이 가능하다.

ubuntu iso 파일 다운로드

https://ubuntu.com/download/desktop 에 접속해서 다운로드합니다.


파일이 성공적으로 다운되었다.

가상머신 생성

운영체제를 설치해서 사용할 수 있는 가상머신을 virtualbox에서 생성할 것이다. 아래 사진과 같이 빨간색 네모로 표시된 new를 클릭한다.

다음과 같은 사양으로 설정한다.

hardware는 게스트 머신에 할당할 cpu 코어 개수와 메모리(RAM) 용량을 설정하는 탭이다.
호스트 머신의 cpu 코어와 메모리를 게스트 머신에 할당하는 형태이므로 너무 많은 자원을 할당하면 호스트 머신을 구동할 자원이 부족해져서 실제 컴퓨터의 성능이 심각한 수준으로 저하될 수 있다. 따라서 과하지 않은 수준으로 설정하는 것이 좋다.
2코어 cpu와 8GB RAM을 가가지고 있는 랩탑(호스트 머신)을 기준으로 다음과 같이 설정하였다.

virtual hard disk에서는 게스트 머신에 할당할 디스크 용량을 정하는 것이다. 필요에 맞게 설정가능하고 강의에서는 45GB로 했다.

가상머신 생성!

ISO 파일 삽입

이제 가상 머신에 우분투를 설치하기 위해 ISO 파일을 삽입할 것이다.
운영체제가 설치되지 않은 컴퓨터를 새로 구입하면 CD나 USB 등을 사용해서 운영체제를 설치한다.
가상머신도 마찬가지로 초기에 운영체제가 설치되어있지 않기 때문에 가상의 CD롬이나 가상의 USB 포트를 사용하여 운영체제를 설치해야 한다.

먼저 아래 사진과 같이 왼쪽 목록에서 ubuntu 24.04 desktop을 설치할 가상 머신을 선택하고 중앙에 빨간색 네모로 표시된 settings를 클릭한다.

Ubuntu 24.04 Desktop 설치

우분투 설치를 위한 가상 머신을 선택한 후 start 버튼을 눌러 실행한다.

어떤 언어 사용할 건지 묻는 화면에 english 사용 체크

원하는 언어의 키보드 레이아웃을 선택

인터넷 설정 부분

우리는 특정 버전(24.04)의 우분투를 설치하는 것이기 때문에 스킵 선택

추가적 기능을 설치하는 부분인데 지금 당장은 필요없어서 그냥 next

디스크에 존재하는 데이터나 운영체제를 모두 지우고 설치할 건지 묻는데, 건들지 않고 next

계정 정보 설정을 다음과 같이 하였다

타임존을 설정하는 단계에서 원하는 곳을 선택한다

지금까지 설정했던 것 확인

설치 진행중

설치완료되면 restart now 클릭

재부팅 완료시 다음 사진이 나오는데 엔터 눌러서 설치 완료한다.

계정 로그인

재부팅이 완료되면 아래 사진과 같이 앞서 만들었던 계정이 보인다. 계정을 클릭해서 진행한다.

앞서 생성했던 계정의 비밀번호(virtualbox0318)을 입력하고 엔터를 누른다.

pro버전 쓸건지 묻는데 skip누른다

우분투 준비 완료!

virtualbox guest additions 설치

guest additions는 게스트 머신에 운영체제 설치를 마치고 난 후, 추가적으로 설치하는 디바이스 드라이버와 응용 프로그램의 모음집이다.
guest additions를 설치하면 게스트 운영체제의 성능을 최적화할 수 있고 호스트 머신과 게스트 머신 간 연동을 지원하여 사용성을 향상시킨다. 몇 가지 특징적인 기능은 다음과 같다.

  • 호스트 머신과 게스트 머신 사이에 공유 폴더를 만들어 파일을 쉽게 주고받을 수 있다.
  • 클립 보드를 호스트 머신과 공유할 수 있다.
  • 호스트 머신과 게스트 머신 사이에 마우스 드래그로 파일을 옮길 수 있다.
  • 게스트 머신의 창 크기를 조절해서 해상도를 변경할 수 있다.

guest additions 설치 방법은 다음과 같다.

우선 가상 머신 창을 클릭한 후 virtualbox 상단 메뉴에서 devices-insert guest additions CD images...를 선택한다. 그러면 사진과 같이 좌측 메뉴에 CD 모양 아이콘이 생긴다.(아이콘이 보이지 않을 경우 스크롤을 내려보세요) CD 모양 아이콘을 클릭한다.

insert guest additions CD images.. 는 상단 바의 devices 메뉴를 클릭하면 보이고, 이걸 클릭해야 cd 아이콘이 보임.

아래 사진과 같이 파일 탐색기가 켜지면 시프트 키를 누른 상태로 파일 탐색기를 마우스 오른쪽 버튼으로 클릭한다.
나오는 메뉴 중 Open in Terminal을 클릭한다.

그러면 터미널이 아래와 같이 실행됨.

터미널에 다음 명령어를 타이핑한다

./autorun.sh

비번인(virtualbox0318) 입력 후에 엔터키 누르면 다음 사진처럼 bzip2가 없다는 오류메시지가 뜰 것이다.

터미널에 명령어를 입력해서 bzip을 설치한다.

sudo apt update
sudo apt install bzip2

그 다음 다시 ./autorun.sh를 입력하면 아래 사진과 같이 guest additions 설치가 진행된다.

설치됐으면 터미널에서 엔터키 누르고
다음 명령어를 실행해서 재부팅한다.
sudo reboot

VirtualBox 내 터미널 관련 단축키

  • 터미널 처음에 열때 : ctrl + alt + T
  • 터미널 열려 있는 상태에서 새 터미널 탭 열기: ctrl + shift + N
  • 터미널 내 복/붙: ctrl + shift + c / ctrl + shift + v

복사/붙여넣기, 드래그&드랍 활성화

virtualbox에서 해당하는 가상 머신을 선택하고, settings를 클릭한다.

왼쪽 목록에서 general을 선택하고, general에서 advanced로 이동한다. 여기서 shared clipboard와 drag'n drop을 모두 bidirectional로 선택햏서 게스트-호스트 양방향으로 복/붙과 드래그&드랍이 가능하게 해준다.

간단한 테스트를 위해 windows에서 메모장에 hello ubuntu!!! 라는 문장을 적고, 다시 우분투 가상 머신에서 터미널을 열어 ctrl + shift + v 를 누르면 앞서 메모장에 입력했던 명령어가 성공적으로 붙여넣기된 모습을 볼 수 있다.



윈도우에서 WSL2를 이용해서 리눅스 환경 구축하기

리눅스 VM 구축 - WSL2

본 강의는 윈도우 유저들을 위해 vm 프로그램인 WSL2를 사용해서 우분투 리눅스 24.04를 설치하는 방법을 소개한다. 현재 windows10(version 2004) 이상 버전을 사용중이라면 virtualbox보다는 컴퓨터의 자원을 덜 사용하는 WSL2의 사용을 추천한다. 다만 WSL를 사용하는 과정에서 오류가 잦은 경우 Virtualbox를 추천한다.

windows + R 로 실행 창을 열고, winver를 입력하면 windows 버전을 확인할 수 있다. 본 강의에서는 windows11을 사용한다.

WSL2 설치

Windows 11에 WSL2를 설치할 것이다. 아래 사진과 같이 윈도우 컴퓨터에서 단축키 Windows + R 로 실행(run)창을 열고, powershell을 입력한다. 실행(run)창이 켜져있는 상태에서 관리자 권한으로 실행을 위해 단축키 ctrl + shift + enter을 입력한다.

그러면 아래와 같이 파워셸을 관리자 권한으로 실행된 모습을 볼 수 있다.

그 다음 파워쉘에서 아래 명령어를 입력한다. 해당 명령은 WSL을 실행하는 데 필요한 기능을 활성화하고 ubuntu linux의 배포 버전(24.04)을 자동으로 설치한다.

wsl.exe --install -d Ubuntu-24.04

아래 사진에 나타난 메시지 Changes will not be effective until the system is rebooted처럼 설치가 끝났으므로 컴퓨터를 재부팅한다.

재부팅을 완료하면 아래의 명령어를 입력하여 ubuntu-24.04를 실행시킨다.
wsl.exe -d Ubuntu-24.04

그리고 아래 사진의 두 번째 빨간색 네모와 같이 user accountNew password를 차례대로 입력한다.

설정한 계정 정보를 입력하면 아래 사진과 같이 성공적으로 우분투에 접속할 수 있다.

다음 명령어를 입력해서 우분투 버전을 확인한다
lsb_release -a

아래와 같이 24.04 버전으로 출력되면 잘 설치된 것이다.

우분투 실행 방법

아래 사진처럼 windows 하단 검색 창에 ubuntu를 검색해서 앱을 실행시킨다.

그럼 이런 우분투 터미널이 나온다.

두번째 방법은 windows에서 powershell을 실행시켜 wsl ~ 명령어를 입력하면 우분투의 home 디렉토리에서 작업할 수 있다.



토글


- 스냅샷 기능이 뭐지
스냅 샷의 주요 특징
1. 시점 기반 저장: 스냅 샷 생성 시점의 데이터 상태를 그대로 보존합니다.
2. 복원 기능: 시스템 장애나 데이터 손상이 발생했을 때, 스냅 샷으로 만들어둔 이전 시점으로 복구할 수 있습니다.
3. 효율적인 공간 사용: 원본 데이터를 모두 복사하는 백업과 달리, 스냅 샷은 데이터 변경이 발생한 부분만 저장하여 효율적으로 공간을 사용합니다.
원본 데이터와 별도 저장: 스냅 샷은 원본 데이터가 저장된 스토리지 내의 별도 공간에 저장됩니다. 따라서 원본 스토리지에 장애가 발생하면 스냅 샷을 사용한 복구가 불가능할 수도 있습니다.
4. 다양한 분야에서 활용: NAS(Network Attached Storage)의 파일 스냅 샷, 가상화 환경의 VM 스냅 샷, 데이터베이스, 그리고 암호화폐 에어드랍 이벤트 등 다양한 분야에서 활용됩니다.

- x86이 뭐지
x86은 인텔이 개발한 마이크로프로세서 계열과 이 프로세서들이 사용하는 명령어 집합 구조(ISA, Instruction Set Architecture)를 통칭하는 용어입니다. 현재 대부분의 개인용 컴퓨터(PC) 및 서버 시장에서 지배적인 아키텍처로 사용되고 있습니다.
x86은 현재 우리가 사용하는 대부분의 컴퓨터와 서버의 핵심을 이루는 CPU 설계 방식이라고 할 수 있습니다.
profile
Hello~!

0개의 댓글