Whonixで通信を匿名化しよう

# Whonixとは

>Debianベースのプライバシーを重視したLinuxディストリビューション。
全ての通信をTorネットワークを介して行うことで、ユーザーの通信を匿名化することが可能。
WhonixはWhonix-GatewayとWhonix-Workstationの2種類に分かれており、この2つを同時に使用することも可能であるが、VirtualBoxなどの仮想化ソフトウェアを用いることでWhonix-Gatewayと他ディストリビューション（OS）を用いることも可能で、この場合も全ての通信がTorを経由する。
>>[ウィキペディアより](https://ja.wikipedia.org/wiki/Whonix)

# 環境

- Whonix Version:     17.0.4.5
- Whonix Gateway:     NAT + 内部ネットワーク(Whonix)
- Whonix Workstation: 内部ネットワーク(Whonix)
- Kali Linux 2021:    内部ネットワーク(Whonix)

![環境.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/ca44b4c9-595c-4615-23bf-e550a267c900.png)

# Whonixのダウンロードとインポート

下記リンクからダウンロードする。

https://www.whonix.org/wiki/VirtualBox

ovaファイルがダウンロードされるのでVirtualBoxにインポートする。
GatewayとWorkstationがインポートされる。

![whonixインポート.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/b34d7237-c8b2-7cb5-6d72-94b3bd575955.png)

# Whonix Gatewayの設定

起動するとライセンスが同意画面が出るので、同意して進める。
進めると接続設定画面が出てくる。

そのままTorネットワークに接続するなら「**Connect**」を、プロキシを挟んだりするなら「**Configure**」を選択。
今回は「**Connect**」を選択しTorネットワークに接続する。

![起動後の接続設定.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/2970db41-1b20-f585-81d2-fd23dc70db85.png)

ログイン後、パッケージをアップデートするよう警告が出たのでアップデートする。

```bash
upgrade-nonroot
```

![gatewayのupdateしろエラー.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/cf9ed8cb-6579-24f0-1a39-d10b502fa0fa.png)

:::note info
デフォルトのユーザー名は`user`でパスワードは`changeme`になっている。
:::

# Workstation起動

最初はGatewayと同じ流れ。
起動するとライセンスが同意画面が出るので、同意して進める。
ログイン後、パッケージをアップデートするよう警告が出たのでアップデートする。

```bash
upgrade-nonroot
```

![workstationアップデート警告.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/8436795c-e26a-99bc-0f66-bb02beeb0cc6.png)

左上の「**Applications**」アイコンから「**Web Browser**」を選択しTorブラウザを起動する。

![torブラウザ起動.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/ee6af304-6eb5-2b64-8ead-7951b1e33622.png)

「**IP Check**」をクリックすると、Torを使用してブラウジングしているか判断できる。

![ipcheck.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/09484b8b-1185-68c2-d367-1766f8698b10.png)

この画面が表示されたら成功！
後はお好きにブラウジングしてください。

# Kali Linuxを匿名化

Whonix Workstationだけでなく他のVMもTorネットワーク経由にすることが可能で、今回はKali Linuxで設定する。

VMのネットワーク設定から「**内部ネットワーク**」の「**Whonix**」に設定する。

![kali linux 内部ネットワーク.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/c4ca7b8c-3e97-bbdb-ac57-257e519da8cf.png)

## Kali Linuxのネットワーク設定

内部ネットワーク(Whonix)に適したアドレスを設定する。
GatewayとDNSにはWhonix GatewayのIPアドレスを入力する。

- 手動設定
- IP 10.152.152.12/18
- Subnet Mask 255.255.192.0
- Gateway 10.152.152.10
- DNS 10.152.152.10

![kali linux ネットワーク設定.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/ea4251fc-60f9-b890-2e9d-2de91a635dfc.png)

設定後、ブラウザを開きTorネットワークに接続できているか下記リンクにアクセスしチェックする。

https://check.torproject.org

![kali tor チェック.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/a0b5e0f6-948e-d17a-b684-1cbab564a307.png)

これで他VMでもTorネットワーク経由でアクセスできる。

# おまけ

## Torブラウザの設定

Torの設定をカスタマイズすることでよりセキュリティを強くできる。
Torブラウザの右上にある「**≡**」から「**Add-ons Manager**」の「**Extensions**」を選択。
「**NoScript**」が入っているか確認する。(今回はデフォルトで入っていた)

![addons.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/84f45e18-cc55-1d60-8292-43e56297e9bf.png)

同じくTorブラウザの右上にある「**≡**」から「**Settings**」を選択し、左ペインの「**Privacy & Security**」を選択。「**Security**」の項目を「**Safest**」に設定。

![tor browser security.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/620703e9-c265-b0bb-4501-abf87c901bb3.png)

「**Security**」項目の下の「**Deceptive Content and Dangerous Software Protection**」項目を画像の通りチェックを付ける。

![tor browser check.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/23974ae2-af01-07e1-559e-12f0b2c699ba.png)

## torrcの設定

Whonix GatewayでTorrcファイルの編集をする。
nanoエディタがデフォルトで入っているが、個人的に使いやすいvimを追加でインストールし編集する。

```
sudo apt update
sudo apt install vim
sudo vi /usr/local/etc/torrc.d/50_user.conf
```

```/usr/local/etc/torrc.d/50_user.conf
# Tor user specific configuration file
#
# Add user modifications below this line:
############################################

ExcludeNodes {jp},{us},{gb},{ca},{au},{nz},{dk},{fr},{nl},{no},{cn},{ru},{de},{be},{it},{es},{il},{sg},{kr},{se},127.0.0.1,{??}
ExcludeExitNodes {jp},{us},{gb},{ca},{au},{nz},{dk},{fr},{nl},{no},{de},{be},{it},{es},{il},{sg},{kr},{se},{bg},{cz},{fi},{hu},{ie},{lv},{??}},{cn},{ru}
NumEntryGuards 5
StrictNodes 1
```

:::note info
所謂5アイズ、9アイズの国々やロシア、中国のノードは避けた方がいいのかもしれません。
:::

保存後に再起動。

```bash
sudo shutdown -r now
```

再起動後に構文チェックし、設定ファイルに問題がないかチェックする。

```bash
anon-verify
```

![cof check.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/a7747ef0-bffe-bc79-2a57-d4c7d3d15e58.png)

`No error detected in your Tor configuration`とあるので取り敢えず設定完了。
設定項目は他にもあるので興味があれば確認してみてください。

https://2019.www.torproject.org/docs/tor-manual.html.en

# 参考サイト

https://www.whonix.org/

https://no-voids.hatenablog.com/entry/20210926

https://nordvpn.com/ja/blog/five-eyes/

https://note.com/happychanse1/n/n9150b86a3a93