Kali Linux (2020.1) 最初にやるべき設定

# 目的
毎回、「あとは、あの設定して・・・どこから設定するんだっけ？」みたいなことを繰り返さないために記録を残す。


# Kali Linuxの入手〜インストール
### Kali Linuxのダウンロード
[Kali Linuxのダウンロードページ](https://www.kali.org/downloads/)からisoファイルをDLする。
今回はVMware Fusionを使うが、あえてVMwareやVirtual Boxイメージは使用しない。（理由は後述）
![download-site.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/411291/0538df17-aa7c-927b-e170-9bd406f9f33d.png)

### チェックサム確認
以下のコマンドを実行。（環境はMacです）
grepにヒットすれば一致してるってことでOK。

```
$ shasum -a 256 kali-linux-2020.1-vmware-amd64.7z | grep (sha256sumの値)
```

### VMware Fusion上にKali Linuxをインストール
isoファイルをドラッグしてインストール開始。
OSの種類はUbuntu 64bitを選択。
![スクリーンショット 2020-04-04 18.41.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/411291/76287ac7-89a1-0a35-6e00-1bd848e081ea.png)

暇。。。
![installing.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/411291/a48fffbe-2bb5-85e1-b46a-7ef57b35baf1.png)

インストール完了
![install-finished.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/411291/0800f91e-227c-7f01-4c38-fa14d2751976.png)


# インストール完了〜初期設定
### キーボードレイアウト変更（JISキーボード使用時）　
**isoからインストールした際に日本語を選択していれば、設定済み。（飛ばして次へ）**

日本語キーボードを使っているのに、なぜかカッコつけて英語でインストールしちゃった方は以下を参考に設定を変更したほうがいい。

ターミナルで以下を実行
 
```
$ sudo dpkg-reconfigure keyboard-configuration
```

以下の画面が表示されたら、誘導されるがままに選択していく
![keyboard-configuration.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/411291/51a06286-31b3-fd58-0a75-1567f6379c52.png)

以降の選択肢。

- 「Generic 105-key (Intl) PC」を選択
- 「Japanese」を選択
- 「Japanese」を選択
- 「The default for the keyboard layout」を選択
- 「No compose key」を選択で終了。

#### 【余談】 isoからインストールするメリット
インストールOSがわかっているなら、isoからインストールすることをおすすめします。
VMwareやVirtual Boxイメージからインストールでもいいですが、isoからなら、キーボード設定、日本語表示設定（ロケール設定）、タイムゾーン設定を省略できます。

### ロケール設定
**isoインストールの場合、設定済み。**

キーボードレイアウト同様、設定変更する。

```
$ sudo apt install task-japanese task-japanese-desktop
```

※上記を実行するには、ネットワーク設定を先に実施する必要があるので、
　設定が必要な人は、先にネットワーク設定をしてください。

以降の選択肢。

- 「ja_JP.UTF-8 UTF-8」を選択
- 「ja_JP.UTF-8」を選択

一度ログアウトし、再度ログイン。設定が変わっているか確認。

```
$ sudo locale
```

・・・が、たぶん変わっていないと思うので、もう一度ログアウト・ログイン。
（なぜか2回ログアウト・ログインしないと日本語表示に変わらない）


### タイムゾーン設定
**isoインストールの場合、設定済み。**

今までと同じ。選択肢は…省略。

```
$ sudo dpkg-reconfigure tzdata
```

反映されているか確認。（JSTになっていればOK）

```
$ date
```

### ネットワーク設定
#### VMware Fusion側の設定
基本的に、ネットワークアダプタは2つ用意します。
１つ（NAT用）だけでも問題ないのですが、後から、Kaliの攻撃/診断対象となるマシンをVMware上に用意すると思うので、この時点で内部ネットワーク用のアダプタも用意してしまいます。
![スクリーンショット 2020-04-05 0.28.50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/411291/13d52c83-7348-bd23-c5bd-e625048bd0de.png)

NAT用
![スクリーンショット 2020-04-05 0.28.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/411291/77d8a8dc-c1ed-ead4-7085-bfaebdda2e14.png)

内部ネットワーク用（ホストオンリーアダプタ）
![スクリーンショット 2020-04-05 0.28.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/411291/0723ef8f-a4f6-46a7-72a5-ba755ff3b5b7.png)

ネットワークアダプタの設定を確認します。
Macのターミナルを開いて以下を実行。

```
$ vi /Library/Preferences/VMware\ Fusion/networking
```

以下のような設定になっていると思います。

```
VERSION=1,0
answer VNET_1_DHCP yes
answer VNET_1_DHCP_CFG_HASH C4AA1E564E56AFD6906C5EDBADE6C28B4F5EC85B
answer VNET_1_HOSTONLY_NETMASK 255.255.255.0
answer VNET_1_HOSTONLY_SUBNET 192.168.XXX.0
answer VNET_1_VIRTUAL_ADAPTER yes
answer VNET_8_DHCP yes
answer VNET_8_DHCP_CFG_HASH 72BF73E93DA2CBA122706D341E691B19EF8037B9
answer VNET_8_HOSTONLY_NETMASK 255.255.255.0
answer VNET_8_HOSTONLY_SUBNET 172.XXX.XXX.0
answer VNET_8_NAT yes
answer VNET_8_VIRTUAL_ADAPTER yes
```

固定IPにしたい方は、DHCPを切るなり、サブネットを変えるなりすればいいと思います。
特にこだわりもないので、あとで追加するであろう攻撃/診断対象の仮想マシンは「DHCPでIPが割り当てられること」という前提のものが多いと想定されるので、このままにします。

ここでは、

- vnet1: 内部ネットワーク用アダプタ（ホストオンリーアダプタ）
- vnet8: NAT用アダプタ

ということが確認できればOK。特に編集もせず閉じる。

#### Kali（ゲストOS）側の設定
ネットワーク・インターフェースの設定を編集します。

```
$ sudo vi /etc/network/interfaces
```

インターフェース設定を追記します。
ここでは、内部ネットワーク側はDHCPですが、Kali自身のIPが急に変わったりするのは嫌なので、固定IP払い出しとしました。

```
allow-hotplug eth0
iface eth0 inet dhcp

allow-hotplug eth1
iface eth1 inet dhcp
address 192.168.XXX.2
netmask 255.255.255.0
```

反映されているか確認。

```
sudo ifconfig
```

反映されていない場合は、NICを再起動してみる。

```
$ sudo ifdown eth0 eth1 && sudo ifup eth0 eth1

```


### 日本語入力設定

IMEをインストール。

```
$ sudo apt install ibus-anthy
```

IMEの設定で、ibus-anthyを選択。

```
$ sudo im-config
```
![im-config.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/411291/183a5831-e2fa-a54a-c456-5e7b233bcfb9.png)

#### IME切り替えのキー割り当て
"ibus"と検索し、ibusの設定を開く
![ibus.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/411291/40232bb8-4f6f-0c15-67dc-f24ad0f77bb1.png)

選択画面で、Anthyの設定を選択。
![スクリーンショット 2020-04-05 0.18.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/411291/7ee31de1-83d5-9f72-172d-f831208fc445.png)

キー割り当てタブで、以下の割当を追加

- latin_mode: `[Eisu_toggle]`
- hiragana_mode: `[Hiragana_Katakana]`

![スクリーンショット 2020-04-05 0.21.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/411291/87370851-1bf4-34f6-6273-da21d480e631.png)

右上の常駐アイコンのIMEの設定で、選択で`日本語 - Anthy`を選択
![スクリーンショット 2020-04-05 0.21.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/411291/0f8fdbdf-9733-3cbc-b324-a48128456625.png)


### パッケージアップデート
初期設定の最後にapt-updateを実行。
コマンドをいちいち打つのは面倒だし、今後も定期的に実施するので、シェルを作成。

```
$ sudo su -
# vi apt-update.sh　（シェル名はお好きなように） 
```

内容はこんな感じ。
それぞれのコマンドの詳細は、以下のリンクの記事がわかりやすいです。

```
apt update
apt full-upgrade
apt autoremove
apt autoclean
```

参考：[aptコマンドチートシート](https://qiita.com/SUZUKI_Masaya/items/1fd9489e631c78e5b007)

実行権限を付与。一応確認。rootユーザにだけ実行権限(x)がついていることを確認。

```
# chmod 744 apt-update.sh
# ls -l
```

実行。

```
# ./apt-update.sh
```

isoでインストールしているなら、一瞬で終了。
VMwareやVirtual Boxイメージでインストールしている場合は、それぞれのイメージファイルを作成した時点で、パッケージの更新が止まっているはずなので、かなり時間がかかるので、ここでコーヒーブレイク。


# VMware Toolsのセットアップ
## インストール
VMwareでもVirtual Boxでも、ホストOSとのフォルダ共有やクリップボード共有に必要なツール類をインストールする。
以下を参考にすれば、迷うことはないと思う。

### VMware Fusion側でやること
[VMware Tools のインストール方法 (1014294)](https://kb.vmware.com/articleview?docid=1014294&lang=ja)

### Kali（ゲストOS）側でやること
[Ubuntu 仮想マシンに VMware Tools をインストールする (1022525)](https://kb.vmware.com/articleview?docid=1022525&lang=ja)

## 共有フォルダを設定する
検証等でなにかと、ゲストOSとホストOS間でファイル共有したいことがあるので、有効化しておく。
（VMware Toolsを導入しただけでは、フォルダ共有はデフォルトでは未設定）

### VMware Fusion側でやること
`共有フォルダを有効にする`のチェックボックスにチェックを入れ、共有するフォルダを設定する。
![sharedfolder.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/411291/7af49cbd-e51b-be6e-2039-2cd53bd03676.png)

### Kali（ゲストOS）側でやること
何も起きない。。。ので、調べた。

[VMwareツールを使用してUbuntuで共有フォルダーをマウントするにはどうすればよいですか？](https://qastack.jp/ubuntu/29284/how-do-i-mount-shared-folders-in-ubuntu-using-vmware-tools)

#### 一時的にマウントするだけの場合

```
$ sudo vmhgfs-fuse -o allow_other -o auto_unmount .host:/ /mnt/hgfs
```

#### 常にマウントしておきたい場合
/etc/fstabに以下を書き込んで再起動する

```
.host:/    /mnt/hgfs/    fuse.vmhgfs-fuse    defaults,allow_other,auto_umount    0    0
```

正常にマウントされていたら、シンボリックリンクを作っておく（と便利）

```
$ ln -s /mnt/hgfs/ ~/デスクトップ
```

![kukklu_02.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/411291/2ede8f15-a4b6-4305-b112-2342c7f38e4c.gif)


# スクリーンロックをしない
VMがいちいち画面ロックするのは煩わしいので`電源管理`の設定で、画面をロックしないようにする。
<img width="693" alt="power.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/411291/02382378-dfda-33e6-eb38-e7ac979b5ee2.png">



# おわりに
最後のパッケージの更新も含めると、isoインストールした場合、インストールに時間はかかるけど、パッケージ更新は一瞬。
仮想マシンイメージでインストールした場合は、インストールは一瞬だけど、パッケージ更新に時間がかかる。

体感としては、どちらも作業時間はあまり変わらない。
それならば、途中の設定を省略（インストール時の選択で設定が完了）できる、isoイメージからのインストールが、操作数が減るという意味でオススメと思う。