【Mac&Docker】 TryHackMe用のCUI/GUIに対応したKali Linux環境を作る
はじめに
この記事は、以下の人のために書かれています:
Macを使用している
TryHackMeでサイバーセキュリティの学習を始めたい
簡単に学習環境を構築したい(コピペだけでできます!)
この記事を読むとできるようになること
簡単なKali Linux環境の構築
Dockerの詳しい知識がなくても、コピー&ペーストだけでKali Linuxの環境を用意できます。
Kali Linuxの柔軟な利用
コマンドライン(CUI)環境でサクサク作業
必要に応じてグラフィカル(GUI)環境も利用可能
TryHackMeへの接続
VPN接続を設定し、TryHackMeの課題にすぐに取り組めるようになります。
忙しい人向け
このセクションでは細かい話しをすべて飛ばして、コピペだけで環境を用意する方法をご説明します。
必要なファイルの準備
TryHackMeのサイトからVPNファイルをダウンロードします。
ダウンロードしたファイル名を `tryhackme.ovpn` に変更します。
新しいディレクトリを作成し、以下のファイルを配置します:
`Dockerfile`(後述)
`docker-compose.yaml`(後述)
`tryhackme.ovpn`(ダウンロードしたもの)
Dockerfileの作成
以下の内容で`Dockerfile`を作成します:
FROM kalilinux/kali-rolling
RUN apt update && DEBIAN_FRONTEND=noninteractive apt install -y kali-linux-headless
RUN apt update && apt install -y \
kali-defaults \
kali-tools-web \
kali-desktop-xfce \
x11vnc \
xvfb \
novnc \
dbus-x11 \
tigervnc-standalone-server
RUN apt update && apt install -y \
neovim \
htop \
fish \
inetutils-ping
# VPN用のディレクトリを作成
RUN mkdir -p /dev/net && mknod /dev/net/tun c 10 200 && chmod 600 /dev/net/tun
# 環境変数の設定
ENV DISPLAY=:1
# ユーザーの追加
RUN useradd -m -s /bin/bash kali && \
echo "kali:kali" | chpasswd && \
usermod -aG sudo kali
# ユーザーの切り替え
USER kali
# ユーザーのホームディレクトリに移動
WORKDIR /home/kali
docker-compose.yamlの作成
以下の内容で`docker-compose.yaml`を作成します:
services:
kali:
build: .
volumes:
- kali-data:/home/kali
- ./tryhackme.ovpn:/home/kali/tryhackme.ovpn:rw
tty: true
stdin_open: true
cap_add:
- NET_ADMIN
devices:
- /dev/net/tun
ports:
- "5905:5901"
volumes:
kali-data:
環境の構築と起動
ターミナルで以下のコマンドを実行します:
# イメージを作成
docker compose build
# コンテナを起動
docker compose up -d
Kali Linuxへの接続
docker compose exec kali /bin/bash
VPN接続の確立
Kali Linux内で以下のコマンドを実行:
sudo openvpn tryhackme.ovpn
"Initialization Sequence Completed" と表示されれば接続成功です。
ここまででTryHackMeを利用するための最低限のセットアップが完了しました。 これから、Kali LinuxをGUIでも利用できるようにするためのセットアップを行います。
GUI環境のセットアップ
Kali LinuxのGUI環境をMac上で表示するために、以下の手順を実行します。
VNCパスワードの設定
Kali Linuxに接続した状態で以下のコマンドを入力します:
echo -e "kalilinux\nkalilinux\n" | vncpasswd
このコマンドは、VNCパスワードを `kalilinux` に設定します。
VNCサーバの起動
vncserver -localhost no
Mac側でのVNC接続
Finderを起動し、「移動」 > 「サーバへ接続」を選択
`vnc://localhost:5905` と入力
パスワードを聞かれたら `kalilinux` と入力
これで、Mac上でKali LinuxのGUI環境が表示されます。
上級者向けカスタマイズ
ここからは、「あったら便利」くらいのツールを導入していきます。
Tmuxの導入と設定
Tmuxは、ターミナルセッションを管理するための強力なツールです。複数の作業を並行して行う際に特に便利です。
Tmux設定ファイルの作成
プロジェクトのルートディレクトリに `.tmux.conf` ファイルを作成し、以下の内容を記述します:
# enable mouse control
set -g mouse on
# change pane border color
set -g pane-border-style fg=#0078d7
set -g pane-active-border-style fg=#0078d7
# change statusbar color
set -g status-style bg=#0078d7,fg=white
docker-compose.yamlの更新
`docker-compose.yaml` ファイルを編集し、Tmux設定ファイルをコンテナにマウントします:
services:
kali:
build: .
volumes:
- kali-data:/home/kali
- ./tryhackme.ovpn:/home/kali/tryhackme.ovpn:rw
- ./.tmux.conf:/home/kali/.tmux.conf:ro # この行を追加
# ... 他の設定は変更なし
5.1.3 Tmuxの使用方法
主な操作方法:
水平分割: `Ctrl+b` → `"`
垂直分割: `Ctrl+b` → `%`
ペイン間の移動: `Ctrl+b` → 矢印キー
新しいウィンドウ作成: `Ctrl+b` → `c`
ウィンドウ間の移動: `Ctrl+b` → ウィンドウ番号
また、マウスを使用してペインのサイズ変更や選択も可能です。
追加ツールのインストール
必要に応じて、さらにツールを追加インストールすることができます。
Dockerfileの更新
`Dockerfile` に以下のような行を追加することで、ビルド時に新しいツールをインストールできます:
RUN apt update && apt install -y \
tool1 \
tool2 \
tool3
例えば、`nmap`や`gobuster`などのツールを追加する場合:
RUN apt update && apt install -y \
nmap \
gobuster
環境の再ビルド
新しいツールを追加した後は、環境を再ビルドする必要があります:
docker compose down
docker compose build
docker compose up -d
おわりに
夏休みの自由研究がてら、TryHackMeで勉強しようとしたら環境のセットアップに時間をむしり取られたので、誰かのお役に立てればと思い記事を書きました。
私は今、komichi という休日のプランを作ってくれるアプリを制作しています。
このアプリの制作に関する記事も書いたので、よろしければ読んでみてください!