メインのマシンを久しぶりにWindowsにしたので、Windows上での開発や学習の環境を構築する際にとったメモ
方針
最近はRustの学習とUdemyでセキュリティ関連のコースを受講するのがメインのなので、下の2つができる状態にする
- Rustのコンパイルおよびデバッグができる
- Kali linuxが動く
RustについてはWindowsに直接インストールして開発するのではなく、WSLやVMにインストールしてVSCode Remoteで開発をおこなう
インストールするもの
ここに記載のものは公式ページからインストーラを入手してインストールしたりストアから入手する
- Rust関連
- VSCode
- Ubuntu(WSL)
- Rust,Kali共通
- VirtaulBox
- Vagrant
手順
Ubuntu(WSL)
WSL上でRustのコンパイルができるようにするまでの手順
- build-essentailをインストール
- Rustをインストール
なおWSLでは、デバッグに利用するLLDBで利用するシステムコールが実装されていないことが原因で、LLDBが正常に動作しないようなので、WSLでRustの環境構築はあまり得策ではなさそう
https://github.com/vadimcn/vscode-lldb/issues/177
WSL2ではLLDBも正常に動作するようなので、WSL2の安定板がリリースされた場合にはそちらを利用したほうが良いと思われる
https://github.com/Microsoft/WSL/issues/2028#issuecomment-502289733
build-essentailをインストール
gccやgcdを利用できるようにするためにbuild-essentailをインストールする
$ sudo apt install build-essentail
Rustをインストール
- Rustの公式サイト に従ってWSL上で以下のコマンドを実行
$ curl https://sh.rustup.rs -sSf | sh
$ source $HOME/.cargo/env
VirtualBox
VirtualBoxをインストールして諸々の仮想環境を整える。
Kali Linux
Udemyのコースで指定されているためKali linuxのイメージは↓のページから入手する
https://www.offensive-security.com/kali-linux-vm-vmware-virtualbox-image-download/
Ubuntu
イメージをダウンロードしてきてOSのインストールをするのが面倒なのでVagrantを利用する
WSL上のUbuntuが18.04のため、バージョンを合わせるためにVirtualBox上のUbuntuについても18.04とする
VagrantCloudのページに従い、Windowsのコマンドプロンプトにて以下のコマンドを実行
> vagrant init ubuntu/bionic64
> vagrant up
起動したVMにSSHで接続し、Ubuntu(WSL)で記した手順と同様に"build-essentail"と"Rust"をインストールする
併せてLLDBもインストールしておく
$ sudo apt install lldb
また、VSCodeからSSH接続するために、VirtualBoxへの接続に利用する秘密鍵を確認する
おそらく、ユーザディレクトリ下の".vagrant/machines/default/virtualbox/"の中に"private_key"が存在するはずだが、存在しない場合はコマンドプロンプトで以下のコマンドを実行して表示される"IdentityFile"が秘密鍵のパスとなる
> vagrant ssh-config
VSCode
VSCode RemoteでWSLやVirtualBox上のUbuntuに接続できるようにする
WSL
- VSCodeに拡張のRemote-WSLを追加
- Remote-WSLでWSLに接続(VScodeの左下の><となっている箇所をクリックして"Remote-wsl: New Window"をクリック)
- Rust(rls)をインストール(この時、install in wslをクリックする)
- WSL上にrlsに必要なものをインストールするか聞かれるのでyesとする
※ WSL上ではLLDBが正常に動作しないためLLDBの導入はしない
VirtualBox
- VSCodeに拡張のRemote-SSHを追加
- VirtualBox上のUbuntuに接続するために設定ファイルを編集する
3. WSLに接続するときと同様にVScode左下の><となっている箇所をクリック
4. "Remote-SSH: open configuration file"をクリック
5. 下のような内容を入力して保存 - VirtualBox上のubuntuに接続
7. VScode左下の><となっている箇所をクリック
8. "Remote-SSH: Connect to Host"をクリック
9. 設定ファイルの"Host"に記載したホスト名が表示されるはずなので、それをクリック - VSCodeに拡張のRust(rls)を追加(この時、install in wslをクリックする)
- WSL上にrlsに必要なものをインストールするか聞かれるのでyesとする
- VSCodeに拡張のCodeLLDBを追加
Host Local-Ubuntu
HostName 仮想マシンのIP(127.0.0.1)
Port 仮想マシンの22番ポートにフォーワーディングしているポート(2222)
User vagrant
IdentityFile 秘密鍵のフルパス
以上でRustの環境構築とKali linuxの準備は完了