안녕하세요. System Exploitation Fundamental 강의를 들으면서 윈도우 위에 리눅스 환경을 구성하는 데 구글링 하며 고생하다가 WSL2를 통해서 어느정도 실습환경을 만들었습니다. 이 과정이 힘들었기에 저와 같은 방법으로 실습하시려는 분들을 위한 방법을 정리했습니다. 시작할 때 제 환경은 이랬습니다.
Windows 10 Pro 버전 1903(OS 빌드 18362.959), 64비트 운영 체제, x64 기반 프로세서, 가상화를 지원하는 cpu
윈도우 키를 누르고 Windows 기능 켜기/끄기를 입력해서 다음 과정을 따라합니다.
Windows 기능 켜기/끄기 -> Linux용 Windows 하위 시스템 켜기, 가상 머신 플랫폼 켜기 -> 재부팅
그리고 윈도우 키를 누르고 cmd를 입력하고 엔터를 눌러서 명령 프롬프트를 연 다음
Cmd에 wsl --set-default-version 2 입력합니다.
만약 WSL 2에 커널 구성 요소 업데이트가 필요합니다. 자세한 내용은 https://aka.ms/wsl2kernel을 참조하십시오.
위에 것이 뜬다면 경로로 들어가서 시키는 대로 합니다. 저는 Linux 커널 업데이트 패키지를 다운로드하니 해결되었습니다. 시키는대로 다 하고 다시 wsl --set-default-version 2을 입력했을 때 "WSL 2와의 주요 차이점에 대한 자세한 내용은 https://aka.ms/wsl2를 참조하세요" 이 뜨면 됩니다.
이제 우분투를 설치해야 하는데 버전은 16.04를 다운 받는게 wargame 문제의 환경과 동일하므로 이것을 다운받읍시다. https://docs.microsoft.com/ko-kr/windows/wsl/install-manual 에서 시키는 대로 하면됩니다. 방법을 정리하면
윈도우 키를 누르고 microsoft store를 입력해 마이크로소프트 스토어에 들어가고 windows terminal를 다운로드 합니다.
이 외에도 더 필요한 것은 강의에서 알려주고 있습니다.
좀 더 찾아보면 WSL2로 GUI도 가능하다고 하니 가상환경 위에서 vscode나 파이어폭스를 킬 수도 있을 것 같습니다. cp /mnt/c/files/example0.c .와 같은 방식으로 윈도우 파일을 우분투 환경으로 옮겨도 되지만, cd /mnt/c/files 명령어로 현재 디렉토리를 윈도우의 C:\files로 옮기면 여기서 작업하는 파일에 빠르게 접근할 수 있습니다. 저는 이런 방법을 통해 코드 수정은 윈도우의 vscode로 Ctrl+S (저장하기) 단축키로 하고, 코드 실행은 터미널에서 합니다.
가장 좋은 실습 환경은 ubuntu로 부팅하는 것이지만, WSL2를 통해서 실행하는 게 저한테는 마음이 편안합니다.