Ubuntu란

Ubuntu(우분투)는 리눅스 기반의 운영체제 중 하나입니다. 다른 말로 Windows나 macOS처럼 컴퓨터를 동작시키는 OS이죠.

그럼 왜 우분투를 사용할까요? 앞서 언급한 것과 같이 공부하면서 자주 접하게 될 실행파일 포맷은 리눅스에서 실행가능한 elf입니다. 우분투는 리눅스 배포판 중에서 널리 사용되고 입문자에게 친숙한 환경을 제공하기 때문에 가상머신의 OS로 사용합니다.

에뮬레이션에 대한 자세한 내용은 init.tools CORE의 Virtual Environment의 에뮬레이션 부분을 참고해 주시면 될 것 같습니다.

환경 구축 및 도구 설치

우분투 설치는 이전 챕터에서 완료 했기에 우분투 환경 구축을 진행겠습니다.

패키지 설치

아래의 명령어를 터미널에 입력하여 도구 다운로드의 준비를 해줍니다.

sudo apt udpate && sudo apt upgrade -y

만약 비밀번호 입력을 요구하면 이전에 설정한 비밀번호를 입력하면 됩니다.

약간의 시간이 지나고, 아래의 이미지처럼 에러 없이 설치가 완료되면 다음 단계로 넘어가면 됩니다.

아래의 명령어을 통해서 몇가지 도구를 설치해 보겠습니다.

sudo apt install nano gcc gdb net-tools binutils python3 python3-pip python3-venv

apt install은 루트(관리자) 권한이 있어야 사용이 가능하기 때문에 명령어 앞에 sudo를 붙였습니다. 이 명령어로 설치가 끝나면 윈도우에서의 기본적인 환경 구축은 끝났다고 보셔도 됩니다.

중간에 아래 이미지 처럼 Do you want to continue? [Y/N] 부분이 나오면, y를 입력하여 다음 단계로 넘어가시면 됩니다.

이제 아래 이미지처럼 에러 없이 설치가 완료 될 때까지 기다리면 됩니다.

설치한 패키지 설명

이번에 설치한 패키지들에 대해 간략하게 설명하면 아래와 같습니다.

nano:

  • 터미널에서 사용할 수 있는 텍스트 편집기입니다. 메모장의 터미널 버전이라고 생각하시면 됩니다.
  • 설정 파일을 수정하거나 간단한 코드를 작성할 때 유용합니다.

gcc:

  • C언어로 작성한 코드를 컴퓨터가 실행할 수 있는 프로그램으로 변환해주는 도구(컴파일러)입니다.
  • C언어를 이용한 문제를 풀거나 프로그램을 만들 때 필요합니다.

gdb:

  • 프로그램이 어떻게 동작하는지 한 줄 한 줄 따라가며 분석할 수 있는 디버거입니다.
  • 프로그램의 오류를 찾거나, 보안 분야에서 바이너리를 분석할 때 자주 사용됩니다.

net-tools:

  • 네트워크 상태를 확인할 수 있는 명령어 모음입니다. ifconfig 같은 명령어가 여기에 포함됩니다.
  • 내 IP 주소를 확인하거나 네트워크 연결 상태를 점검할 때 사용합니다.

binutils:

  • 컴파일된 프로그램(바이너리 파일)을 분석하거나 조작할 수 있는 도구 모음입니다.
  • 보안 공부를 하다 보면 프로그램 내부 구조를 들여다볼 일이 많은데, 그때 필요한 도구들이 들어있습니다.

python3:

  • 파이썬 프로그래밍 언어 본체입니다. 보안 도구 제작, 문제 풀이 등 거의 모든 곳에서 사용됩니다.

python3-pip:

  • 파이썬용 패키지 관리자입니다. 다른 사람이 만들어 놓은 파이썬 라이브러리를 설치할 때 사용합니다.
  • apt가 리눅스 프로그램의 앱스토어라면, pip은 파이썬 라이브러리의 앱스토어라고 생각하면 됩니다.

python3-venv:

  • 파이썬 가상환경을 만들 수 있게 해주는 도구입니다.
  • 프로젝트마다 서로 다른 버전의 라이브러리를 사용해야 할 때, 각각 독립된 공간을 만들어서 충돌을 방지해 줍니다.

VSCode와 연결

VSCode를 이용하면 직접 WSL과 연결할 수 있습니다. 아래의 순서를 따라 연결을 진행하겠습니다.

VSCode WSL 연결

WSL로의 연결을 위해서는 우선 VSCode 좌하단의 >,<가 겹쳐진 듯한 모양(아래 이미지의 빨간 타원 위치)을 클릭합니다.

그럼 상단에 위와 같은 메뉴가 나오게 되는데, 여기서 WSL 또는 Connect to WSL을 선택하면 됩니다.

그러면 아래 이미지와 같이 자동으로 확장의 설치가 진행됩니다. 이후 조금 기다리면 좌하단에 파란색 박스로 변하면서 Openning Remote라는 문구와 함께 로딩이 진행됩니다.

WSL과 VSCode가 연결이 완료되면, WSL: Ubuntu와 같이 연결된 WSL의 인스턴스가 표시됩니다.

VSCode와 WSL이 연결되면 WSL 내부의 폴더를 직접 코드 에디터 내부에서 열 수 있습니다. 이미지와 같이 VSCode 아이콘 아래 버튼을 누르고 Open Folder를 눌러 진행할 수도 있고, 위에서 알려드린 메뉴바를 이용하는 방식으로 하셔도 무방합니다.

또한 코드 에디터에서 터미널을 열었을 때 WSL의 터미널로 연결됩니다. 이 부분도 이전에 VSCode 쪽에서 알려드린 방식 그대로 터미널에 접근하시면 됩니다.

WSL과의 연결을 끊으려고 한다면 좌하단 파란색 박스를 누르면 메뉴가 나오는데, 여기서 Close Remote Connection을 누르면 연결이 끊기게 됩니다.


이전:6. 가상환경
목차: 0. 따라만 하면 완성!! 해커 노트북 세팅 - Windows 편
다음: 8. 호스트 기기에 설치하는 분석 도구들