はじめに
この実験では、LabEx VM内でDockerを使用してKali Linux環境をセットアップし、探索する方法を学びます。Kali Linuxは、ペネトレーションテストやサイバーセキュリティタスク向けに調整された、強力なDebianベースのディストリビューションです。Kali LinuxをDockerコンテナ内で実行することで、ホストシステムに影響を与えることなく、セキュリティツールを練習するための隔離された環境を作成できます。
まずはKali LinuxのDockerイメージをプルして起動し、ターミナルにアクセスしてセットアップを確認します。次に、基本的なターミナルコマンドを操作し、Kali Linuxでの apt の使用方法を確認し、Kaliのバージョンやシステム情報をチェックして、すべてが正しく構成されていることを確認します。無料枠の学習者の場合、この実験ではパッケージのダウンロードではなく、パッケージ管理のワークフローを理解することに重点を置いています。これは、VMが外部のパッケージミラーにアクセスできないためです。この実践的な経験は、コンテナ化された環境でKali Linuxを扱うための強固な基盤となります。
Kali Linux Dockerコンテナの起動
このステップでは、LabEx VM環境でKali Linux Dockerコンテナをプルして起動し、そのターミナルにアクセスします。Dockerを使用すると、アプリケーションを隔離されたコンテナ内で実行でき、Kali Linuxはサイバーセキュリティとペネトレーションテストに特化したLinuxディストリビューションです。コンテナ内でKaliを実行することで、学習や実験のためのクリーンでポータブルなセットアップが保証されます。
始める前に、初心者向けの基本的な概念を整理しておきましょう。
- Docker: Docker は、アプリケーションをコンテナ内で作成および実行するためのプラットフォームです。コンテナは、オペレーティングシステムと必要なツールを含む、軽量で隔離された環境です。
- Kali Linux: Kali Linux は、セキュリティテスト用に設計されたDebianベースのLinuxディストリビューションであり、ペネトレーションテストやデジタルフォレンジック用のツールがプリインストールされています。
- Dockerコンテナ: コンテナは、Dockerイメージの実行インスタンスです。まずは公式のKali Linuxイメージをプルし、そこからコンテナを作成します。
それでは、Kali Linuxイメージをプルし、コンテナを起動してターミナルにアクセスしましょう。すべての操作はデフォルトディレクトリ /home/labex/project で行います。以下の手順に注意深く従ってください。
LabEx VM環境でターミナルを開きます。Xfceデスクトップのターミナルアイコンをクリックするか、LabExインターフェースで提供されているターミナルを使用してください。
以下のコマンドを実行して、デフォルトの作業ディレクトリにいることを確認します。
pwd出力は以下のようになるはずです。
/home/labex/projectもし
/home/labex/projectにいない場合は、以下で移動してください。cd /home/labex/projectDocker Hubから公式のKali Linuxイメージをプルします。以下のコマンドを実行してください。
無料ユーザーへの注意: VMはDocker Hubにアクセスできないため、無料枠を使用している場合は以下のコマンドをスキップしてください。Kaliイメージはセットアップスクリプトですでにプルされています。
docker pull kalilinux/kali-rollingこのコマンドで最新のKali Linuxイメージがダウンロードされます。ターミナルにダウンロードの進捗が表示されます。

Kali Linuxイメージが正常にプルされたことを確認します。以下を実行してください。
docker images以下のような出力が表示されるはずです。
REPOSITORY TAG IMAGE ID CREATED SIZE kalilinux/kali-rolling latest xxxxxxxx X days ago XXXMB次に、Kali Linuxイメージから新しいコンテナを起動します。以下のコマンドを実行して、コンテナをバックグラウンドで開始します。
docker run -d --name kali-container -it kalilinux/kali-rolling /bin/bashこのコマンドの内訳は以下の通りです。
docker run: 新しいコンテナを作成して開始します。-d: コンテナをデタッチモード(バックグラウンド)で実行します。--name kali-container: コンテナに名前を付け、参照しやすくします。-it:-i(インタラクティブ)と-t(tty)を組み合わせ、コンテナのターミナルとの対話を可能にします。kalilinux/kali-rolling: 使用するイメージを指定します。/bin/bash: コンテナ内でBashシェルを開始します。
このコマンドを実行すると、ターミナルにコンテナIDが返され、コンテナがバックグラウンドで実行中であることが示されます。
以下のコマンドでコンテナの状態を確認します。
docker psコンテナがIDとともに実行されているのが確認できるはずです。
実行中のコンテナに接続します。
docker exec -it kali-container /bin/bashこれでコンテナのターミナル内に入りました。以降のステップでは、このコンテナのターミナル内に留まります。指示がない限り、コンテナから終了(exit)しないでください。誤って終了した場合は、上記の同じコマンドで再接続できます。

おめでとうございます。Kali Linux Dockerイメージのプル、コンテナの起動、およびターミナルへのアクセスが完了しました。次のステップでは、コンテナ内に留まったまま、環境が正しくセットアップされていることを確認します。
Kali Linuxターミナルの探索
このステップでは、Kali Linux Dockerコンテナ内のターミナルインターフェースを探索します。ターミナルはLinuxシステムと対話するための主要な手段であり、特にKali Linuxではほとんどのツールがコマンドラインベースです。このステップを通じて、基本的なコマンドとコンテナ環境に慣れていきましょう。
初心者向けの重要な概念をいくつか説明します。
- ターミナル: ターミナルは、オペレーティングシステムと対話するためのテキストベースのインターフェースです。コマンドの実行、ファイルの管理、設定の変更が可能です。
- Bashシェル: Bash (Bourne Again Shell) は、Kali Linuxのデフォルトのコマンドラインインタープリタです。入力したコマンドを処理します。
- rootユーザー:
rootユーザーは、Linuxにおいて完全な管理権限を持ちます。このコンテナ内ではrootとしてログインしているため、システムを完全に制御できます。
前ステップから引き続きKali Linuxコンテナ内にいるはずですので、基本的なコマンドを使ってターミナルの探索を始めましょう。以下の手順に注意深く従ってください。
コンテナ内の現在の場所を確認します。
pwd出力は以下のようになるはずです。
/これは、コンテナ内のファイルシステムのルートディレクトリにいることを示しています。
現在のディレクトリの内容をリスト表示して、ファイルシステムの構造を確認します。
ls以下のような出力が表示されるはずです。
bin boot dev etc home lib lib32 lib64 libx32 media mnt opt proc root run sbin srv sys tmp usr varこれらは標準的なLinuxディレクトリです。例えば、
binにはバイナリファイルが、etcには設定ファイルが含まれています。ユーザーIDを確認します。
whoami出力は以下のようになるはずです。
rootこれにより、コンテナ内で
rootユーザーとして操作していることが確認できます。
次のステップのために、コンテナのターミナル内に留まってください。
exitと入力しないでください。コンテナから切断されてしまいます。誤って終了した場合は、ホストターミナルからdocker exec -it kali-container /bin/bashを実行して再接続してください。
おめでとうございます。基本的なコマンドを使用してKali Linuxコンテナのターミナルインターフェースを探索しました。次のステップでは、システムを更新して最新のパッケージとセキュリティパッチを適用する方法を確認します。
Kali Linuxパッケージ管理の確認
このステップでは、Dockerコンテナ内でKali Linuxのパッケージ管理がどのように機能するかを確認し、システムの更新やセキュリティツールのインストールに使用するコマンドを学びます。Kali LinuxのベースDockerイメージには、デフォルトでセキュリティツールがインストールされていないことに注意してください。この設計により、ベースイメージを小さく保ち、ユーザーが必要なツールのみをインストールできるようになっています。
初心者向けの重要な概念をいくつか説明します。
- パッケージマネージャー: パッケージマネージャーは、ソフトウェアパッケージのインストール、更新、削除を処理します。DebianベースのKali Linuxでは、パッケージマネージャーとして
apt(Advanced Package Tool) を使用します。 - apt update: このコマンドは、オンラインリポジトリから最新のパッケージ情報を取得し、ローカルのパッケージインデックスを更新します。何もインストールせず、利用可能なパッケージのリストを更新するだけです。
- Kali Linuxツールコレクション: Kali Linuxには、ツールをインストールするための異なるメタパッケージが用意されています。
- 個別パッケージ: 特定のツールを個別にインストールします(例:
nmap,wireshark,metasploit-framework) - kali-linux-headless: ヘッドレスシステムに適した最小限のツールセットで、最も一般的なコマンドラインツールが含まれています
- kali-linux-large: Kali Linuxのほとんどのセキュリティツールを含む包括的なコレクション(約450ツール)
- 個別パッケージ: 特定のツールを個別にインストールします(例:
前ステップから引き続きKali Linuxコンテナのターミナル内にいますので、システムの更新やツールのインストールに使用するコマンドを確認しましょう。以下の手順に注意深く従ってください。
コンテナ内で
aptパッケージマネージャーが利用可能であることを確認します。apt --version以下のような出力が表示されます。
apt 2.x.x (amd64)これにより、ネットワークアクセスが可能な場合に、標準のKaliパッケージマネージャーがインストールされ、使用可能であることが確認できます。
パッケージインデックスを更新するために使用するコマンドを確認します。これは、インターネットアクセスが可能な場合にコンテナ内で実行するコマンドです。
apt update無料ユーザーへの注意: 無料枠のVMでは
apt updateを実行しないでください。コンテナは外部のKaliパッケージミラーにアクセスできないため、コマンドはタイムアウトします。この実験では、このコマンドが何をするかを理解するだけで十分です。ネットワークアクセスが可能な場合、以下のような出力が表示されます。
Get:1 http://kali.download/kali kali-rolling InRelease [30.5 kB] Get:2 http://kali.download/kali kali-rolling/main amd64 Packages [18.1 MB] ... Fetched 18.5 MB in 5s (3,700 kB/s) Reading package lists... Done Building dependency tree... Done Reading state information... Done All packages are up to date.ツールのインストールにはいくつかの選択肢があります。各アプローチを理解しましょう。
a. 個別のツールをインストールする(特定のツールのみが必要な場合):
apt -y install <package-name>例:
apt -y install nmap wiresharkb. ヘッドレスコレクションをインストールする(一般的なツールの最小セット):
## このコマンドを実行する必要はありません apt -y install kali-linux-headlessこれは基本的なセキュリティテストや、リソースが限られている場合に適しています。
c. ラージコレクションをインストールする(包括的なセキュリティテスト用):
## このコマンドを実行する必要はありません apt -y install kali-linux-largeこれにはほとんどのセキュリティツールが含まれますが、より多くのディスク容量とインストール時間が必要です。
この実験では、基本的なツールコレクションをインストールするコマンドを確認します。
apt -y install kali-linux-headless無料ユーザーへの注意: 無料枠のVMではこのコマンドを実行しないでください。Kaliミラーからパッケージをダウンロードする必要があり、この環境ではブロックされています。
-yフラグはプロンプトを自動的に確認し、中断することなくインストールを進めます。出力は以下のようになります。Reading package lists... Done Building dependency tree... Done Reading state information... Done The following additional packages will be installed: <package1> <package2> ... ... Setting up <package1> ... Setting up <package2> ...インターネットアクセスが可能な場合、多くのパッケージをダウンロードしてインストールするため、このプロセスには時間がかかります。
kali-linux-headlessメタパッケージは、Kali Linux用の実用的なコマンドラインセキュリティテストツールセットを提供します。インターネットアクセスが可能な有料環境を使用している場合は、コマンドを実行して完了を待つことができます。無料枠のVMでは、確認後に次に進んでください。
次のステップのために、コンテナのターミナル内に留まってください。
exitと入力しないでください。誤って終了した場合は、ホストターミナルからdocker exec -it kali-container /bin/bashで再接続してください。
おめでとうございます。Kaliコンテナで apt が利用可能であることを確認し、パッケージインデックスの更新や一般的なKaliツールコレクションのインストールに使用するコマンドを確認しました。次のステップでは、Kali Linuxのバージョンとシステム情報を確認します。
Kali Linuxのバージョンとシステム情報の確認
このステップでは、Dockerコンテナ内でKali Linuxのバージョンを確認し、基本的なシステム情報を収集します。バージョンやシステム詳細を知ることは、トラブルシューティングに役立ち、セキュリティツールとの互換性を確保するために重要です。
初心者向けの重要な概念をいくつか説明します。
- バージョン情報: Kali Linuxのバージョンは、使用しているリリースやビルドを示します。Kaliはローリングリリースモデルを採用しており、固定バージョンのリリースではなく、継続的な更新を受け取ります。
- システム情報: これには、カーネル(OSの核)、ハードウェアアーキテクチャ、その他のシステムデータに関する詳細が含まれます。コマンドやシステムファイルからこの情報を確認できます。
- コマンド出力: Linuxコマンドは、ターミナルに詳細な情報を表示することがよくあります。この出力を解釈する方法を学ぶことは、システムを理解する上で非常に有用です。
前ステップから引き続きKali Linuxコンテナのターミナル内にいますので、バージョンとシステム情報の確認に進みましょう。以下の手順に注意深く従ってください。
/etc/os-releaseファイルの内容を表示して、Kali Linuxのバージョンを確認します。cat /etc/os-release以下のような出力が表示されるはずです。
PRETTY_NAME="Kali GNU/Linux Rolling" NAME="Kali GNU/Linux" VERSION_ID="2023.3" VERSION="2023.3" VERSION_CODENAME="kali-rolling" ID=kali ID_LIKE=debian HOME_URL="https://www.kali.org/" SUPPORT_URL="https://forums.kali.org/" BUG_REPORT_URL="https://bugs.kali.org/" ANSI_COLOR="1;31"これには、バージョン(例:
2023.3)やコードネーム(kali-rolling)などの詳細が表示されます。正確なバージョンはイメージの更新によって異なる場合があります。カーネルとシステムアーキテクチャに関する情報を収集します。
uname -a出力は以下のようになります。
Linux xxxxxxxxxxxx 5.10.0-0.deb10.9-amd64 #1 SMP Debian 5.10.70-1 (2021-09-30) x86_64 GNU/Linuxこれにはカーネルバージョン(例:
5.10.0)とアーキテクチャ(例: 64ビット用のx86_64)が表示されます。正確な詳細は異なる場合があります。コンテナのホスト名を確認します。
hostname出力は以下のような一意の識別子になります。
xxxxxxxxxxxxこれはDockerによって自動生成されたコンテナのホスト名であり、各インスタンスで一意です。
さらに探索したい場合は、コンテナのターミナル内に留まってください。LabEx VMターミナルに戻る必要がある場合は、
exitと入力してください。後でいつでもdocker exec -it kali-container /bin/bashで再接続できます。
おめでとうございます。簡単なコマンドを使用してKali Linuxのバージョンとシステム情報を確認しました。これで、Dockerコンテナ内でのKali Linux環境の基本的なセットアップと探索は完了です。
まとめ
この実験では、LabEx VM内でDockerを使用してKali Linux環境をセットアップおよび管理する方法を学びました。Kali Linux Dockerコンテナのプルと起動、ターミナルへのアクセス、セットアップの確認から始めました。次に、基本的なコマンドを使用してターミナルインターフェースを探索し、環境を理解しました。また、Kaliがパッケージ管理に apt をどのように使用するかを確認し、無料枠の環境では外部のパッケージミラーにアクセスできないため、パッケージの更新やインストールは参考コマンドとして扱う必要があることを学びました。最後に、Kali Linuxのバージョンとシステム情報を確認してセットアップを完了しました。これらのステップを通じて、サイバーセキュリティタスクのためにコンテナ化された環境でKali Linuxを扱うための基礎知識を習得しました。


