Kali Linux を GNOME Boxes にインストールする
サーバーのペネトレーションテストを実行するために Kali Linux をインストールした時の健忘録です。
近年、中国からのサイバー攻撃が深刻化しており、その為に MaxMind DB などを用いたアクセス制限を施していたのですが、VPN や AWS を経由した攻撃も増加しており、サーバーセキュリティを見直す必要性が出てきました。
そこで今回は、より一層の強化を行うためにペネトレーションテストが実行できる Kali Linux を仮想環境で構築しました。
Kali Linux の入手

GNOME Boxes にダウンロードする場合であれば、ISO イメージの方が簡単でした。仮想マシン用のイメージには「.qcow2」のインストール済みイメージがあるのですが、起動ディスクとして Boxes でも利用可能ですが、キーボードやロケールの設定が海外になっていますので、手動で設定し直す必要があります。
また、Kali Linux 自体が技術者向けであるために ISO イメージからインストールした場合でもコマンドによる変更が必須です。
もしも仮想マシンの QEMU 版を入手した場合は「~/.local/share/gnome-boxes/images/」に移動するのが良いかと思います。
インストール
Boxes を起動します。

それから左上の「+」ボタンを押して「Install from File」で「.iso」ファイル(または「.qcow2」)を選択します。

そして使用メモリと最大ディスク容量を指定します。

後は「作成」ボタンをおして作成し、起動します。
ここで ISO ファイルの場合は起動後に日本語の指定などを行うのですが、場所が日本になったくらいで、殆どが日本語化はされませんでした。
「/etc/resolv.conf」の編集
ping は通るにも関わらず apt-get コマンドが成功しなかったので、内容を次の様に変更しました。
nameserver 8.8.8.8
ネットワークの確認
ここで「ping 8.8.8.8」が通るのであればネットワークは問題ないかと思います。
一応確認しておきましょう。

もしも問題がある場合は、次を試してみて下さい。
# ifconfig eth0 up
# dhclient eth0
# systemctl restart NetworkManager
# systemctl staus NetworkManager
# ifconfig

問題が無ければ次へ
パッケージのアップデート
Kali Linux は Debian 系ですので、「dnf」ではなく「apt-get」です。
# apt-get update
# apt-get upgrade
日本語入力関連のインストール&設定
# apt-get install task-japanese task-japanese-desktop
# dpkg-reconfigure locales
# update-locale Lang=ja_JP.UTF-8
リブート
# systemctl reboot
日時設定の確認
# timedatectl

問題ない様だ。
日本語入力の確認
右下にパレットが表示されるのを確認。

歯車キーを押して「半角/全角」キーを入力切り替えに設定。

仮想マシンが稼働しているホストマシン
GNOME Boxes のバージョンは 45.0
少しシステム構成がいつの間にか変化していたので注意することがある。

いつの間にか v から始まる仮想マシンと物理マシンを繋ぐブリッジが無くなっていた。
しかも「libvirtd」も動作しなくても良い様だ。

ここで気が付いたのだが、パケットは Boxes が直接吐き出しているらしく、
別のホストに仮想マシンから接続要求をだすと、ホストマシンの IP アドレスが接続アドレスになった。
つまり、仮想マシンのアドレスである「10.0.2.15」は、Boxes 内だけのアドレスだったのだ。
仮想マシン内で VPN 接続でもしない限りは、意味の無いアドレスの様だ。
当然、別のホストで ACL(Access Control List) で「10.0.2.15」をアクセス禁止にしても素通りしてしまうので注意が必要だ。
ペネトレーションテスト的には微妙な結果になってしまった。


