久しぶりにKaliのVMで環境を作ったので記録

追記1：2022/08/15 いつも参考にしている『ハッキング・ラボのつくりかた 仮想環境におけるハッカー体験学習』の[サポートサイト](https://s-akademeia.sakura.ne.jp/main/books/lab/faq.html)がありました。ipusironさんが懇切丁寧に解説されているのでおすすめです。
追記2：2022/08/15 Windowsと通信すると文字化けするので表示できるようにGNOME端末とXfce Terminal端末を入れたので記述を追加。 
追記3：2022/12/30 /etc/resolv.confが再起動で書き換わってしまう件で解決した方法を追加。

## Kaliの最新版をインストール

#### ダウンロード
Kaliのサイトからダウンロード（kali-linux-2022.3-virtualbox-amd64.7z）する。
[Virtual Machines](https://www.kali.org/get-kali/#kali-virtual-machines)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/277081/d687786c-a8c7-00d3-f57c-55adf5ee2dff.png)

#### インストール
解凍するとファイルが２つ入っている。kali-linux-2021.1-vbox-amd64.ovaみたいな.ovaファイルでないので戸惑うがとりあえずkali-linux-2022.3-virtualbox-amd64.vboxをダブルクリックしたら当たり前のようにVirtualBoxに読み込まれて起動ボタンがイネーブルになったのでそのまま起動する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/277081/406484cd-6411-e598-7d54-c8ef06f8f6e5.png)

#### 日本語化
USキーボード配列でviで保存が行えないので[こちらの記事](https://qiita.com/yohm/items/75ff8d8b159375c83b1f)を参考に「:」の位置を調べて「:wq」を入力する（Shift-;==:）

***追記(2022/12/30)：解決しました。ブロードバンドルーター本体の設定でDNSサーバーの指定をし忘れていたのが原因でした。DNSサーバー(8.8.8.8)を指定したところresolv.confは自動的に設定を反映していていました。***
~~なぜか毎回resolv.confが書き換わってhostnameでアクセスできなくなるので毎回書き換える作業をしている。（調べればいいけど）~~
~~ので、ネームサーバーを書き換えて日本語化に必要なコマンドを実行する。~~
~~└─$ sudo vi /etc/resolv.conf~~
~~└─$ cat /etc/resolv.conf~~
~~# Generated by NetworkManager~~
~~search ******~~
~~これに変更-> nameserver 8.8.8.8~~

```
└─$ sudo apt update
└─$ sudo apt upgrade
└─$ sudo apt install -y task-japanese task-japanese-desktop
└─$ sudo dpkg-reconfigure locales
#  [*] ja_JP.UTF-8 UTF-8  を選択して実行
Generating locales (this might take a while)...
  en_US.UTF-8... done
  ja_JP.UTF-8... done
Generation complete.

└─$ sudo update-locale LANG=ja_JP.UTF-8
└─$ sudo dpkg-reconfigure tzdata
Current default time zone: 'Asia/Tokyo'
Local time is now:      Thu Aug 11 14:56:20 JST 2022.
Universal Time is now:  Thu Aug 11 05:56:20 UTC 2022.

#一旦再起動
└─$ sudo reboot
```

#### 日本語入力
sudo localectlで設定を確認する。前回インストールしたときは、

```
sudo localectl set-keymap jp106
sudo localectl set-keymap jp-OADG109A
```

でセットしたが今回はエラーになってできなかったので以下のようにlocalectl set-x11-keymap jpをすることで日本語入力できるようになった。（jp106のkeymapあるじゃん、って突っ込んだが。）

```
└─$ sudo localectl              
   System Locale: LANG=ja_JP.UTF-8
       VC Keymap: n/a
      X11 Layout: us
       X11 Model: pc105

└─$ localectl set-x11-keymap jp

└─$ sudo localectl                 
   System Locale: LANG=ja_JP.UTF-8
       VC Keymap: jp106
      X11 Layout: jp

#一旦再起動
└─$ sudo reboot
```
## Windowsと通信すると文字化けするので表示できるようにした
#### GNOME端末
インストールして起動する。
```
└─$ sudo apt update -y && sudo apt upgrade -y
└─$ sudo apt install -y gnome-terminal
└─$ gnome-terminal
```
起動した端末の設定でプロファイルの互換性タブでエンコーディングをSHIFT_JISに変更する。

#### Xfce Terminal端末
インストールして起動する。
```
└─$ sudo apt-get install -y xfce4-terminal
└─$ xfce4-terminal
```
起動した端末の設定で上級者-互換性の設定でエンコーディングをSHIFT_JISに変更する。

#### おまけ
いろいろ試してだめだったこと、だけどもしかしたらこのおかげでできたのかもしれないものを載せておきます。どうしても表示できないようならこちらも試してみてください。
```
└─$ sudo localedef -f SHIFT_JIS -i ja_JP ja_JP.SJIS
[warning] character map `SHIFT_JIS' is not ASCII compatible, locale not ISO C compliant [--no-warnings=ascii]

└─$ locale -a | grep ja
ja_JP.sjis
ja_JP.utf8

└─$ export LANG=ja_JP.SJIS
└─$ echo $LANG
ja_JP.SJIS
```
### まとめ
Kaliは[But why won't people help me?!](https://unix.meta.stackexchange.com/questions/5360/why-is-kali-linux-so-hard-to-set-up-why-wont-people-help-me)でいうほどには難しいものではありません。私は主婦ですがTsurugiも大好きですしKaliも大好きなので楽しく使い続けたいと思います。

テスト環境としては十分なVMが完成。
ご参考になれば幸いです。