보안/해킹 관련 뿐만 아니라 개발 환경도 가상 환경으로 설정해서 사용한다.
Docker와 별개로 별도의 OS 자체를 설치해서 가상으로 구동한다.
VirtualBox 다운로드 받는 곳
https://www.virtualbox.org/wiki/Downloads
VirtualBox 대시보드에서 "New" 아이콘을 클릭해서 Linux/Ubuntu 정보를 입력하고 VM을 생성한다.
새로 생성된 VM을 선택하고 설정창(Cmd+S)을 열어 Network 탭에서 "Bridged Adapter"를 선택한다.
"NAT"가 기본 값이지만 현재 로컬의 IP 대역을 그대로 사용하기 위해서는 Bridged Adapter로 선택한다.
VM을 설정했다면 우분투 리눅스 이미지를 다운로드 해서 설치한다.
우분투 IOS 다운로드 받는 곳 (HTTPS 아님 ㅠㅠ)
http://releases.ubuntu.com/16.04/
Server install image for 64-bit PC (AMD64) computers (standard download) 파일로 설치했다.
ubuntu-16.04.6-server-amd64.iso
VM을 더블클릭해서 실행하고 IOS 파일을 선택한다.
(ISO 파일은 우분투 리눅스의 설치 CD인 것)
이미지로 부팅이 되고 다음과 같이 Ubuntu Linux 설치 화면이 나온다.
설치 화면에 나오는대로 하면 된다.
호스트 입력, 관리 계정/패스워드 입력, 홈 디렉토리를 암호화 할 것인지, 타임존, 디스크 파티션/LVM 등등..
그래서.. 리눅스 설치 화면은 생략!
설치가 거의 끝나면 다음과 같은 화면이 나오는데,
SSH 접속을 위해 부팅시 OepnSSH Server를 자동으로 실행하도록 체크한다.
Ubuntu 16.04.5 LTS amd64 (server) VDI + 100GB HDD + Bridged Network Interface + CPU (2+)
SSH로 접속하기 위해 VM의 고정 IP(Static IP)를 설정한다.
Bridged Network Interface를 선택했기 때문에 현재의 호스트와 동일한 네트워크 환경일 것이다.
인터넷 공유기를 사용한다면 보통의 경우 192.168.0.xxx 이거나 192.168.1.xxx 일 것이다.
여기에서는 192.168.1.xxx 환경이라 가정..
/etc/network/interfaces 파일을 열어서 다음과 같이 편집한 후 네트워크를 재시작 한다. (또는 재부팅)
재부팅 후 ifconfig 명령을 통해 IP를 확인할 수 있다.
로컬 호스트에서 다음과 같은 명령어를 이용해 VM 윈도우 없이 백그라운드에서 실행할 수 있다.
그리고 위에서 설정한 IP로 SSH를 통해 접속할 수 있다.
$ VBoxManage startvm "VM name" --type headless (해당 VM을 백그라운드로 실행하는 명령)
$ VBoxManage controlvm "VM name" poweroff (해당 VM을 종료하는 명령)
$ VBoxManage list vms (등록/설치된 VM 리스트를 보는 명령)
$ VBoxManage list runningvms (현재 실행중인 VM 리스트를 보는 명령)
첨부된 쉘 스크립트 파일(*.sh)들은 위의 기본 명령을 이용해 편리하게 VM을 관리할 수 있게 작성된 스크립트이다.
sudo apt install numix-gtk-theme numix-icon-theme alias vm='~/bin/vm_manage.sh' alias gg='~/bin/vm_console.sh' alias zz='~/bin/vm_desktop.sh' alias console='~/bin/vm_console.sh' alias desktop='~/bin/vm_desktop.sh' alias ll='ls -p'