【Linux】TryHackMe攻略:Docker コンテナのKali LinuxからOpenVPN接続する方法【Docker】【Mac M2】

目次

概要

tryhackme(ハッキング練習サイト)で遊ぶにはKali Linuxが欲しくなりますね。

Mac だとUTM(仮想環境ソフト)を使うのがお手軽でしょうか。無料だし

しかし、今回はdockerで遊んでみることにします。

tryhackmeで遊ぶには、VPNに接続する必要があります。

DockerコンテナからOpenVPNに接続するには、一手間必要なのでそちらを紹介します!

OpenVPN接続できるコンテナ作成方法

Docker環境の構築方法記事にしております。
こちも参考にしてみください。

まずは、Kali Linuxのイメージをダウンロードします。

docker pull kalilinux/kali-rolling

下記コマンドを実行し、コンテナを作成します。

docker run -it --cap-add=NET_ADMIN --device=/dev/net/tun --name kalilinux kalilinux/kali-rolling

上記コマンド 補足
docker run -it –cap-add=NET_ADMIN –device=/dev/net/tun –name コンテナ名 dockerイメージ

作成が完了したらコンテナに入ります。

docker exec -it kalilinux /bin/bash

下記コマンドでアップデート後、OpenVPNをインストールします。

apt update
apt-get upgrade

OpenVPNのインストール

apt install openvpn

そしたらホストのターミナルより、XXXXX.ovpnファイルコンテナに転送します。
XXXXX.ovpnがあるディレクトリに移動後(cdコマンド)、下記コマンドを実行します。
homeに転送することにします。

★XXXXX.ovpファイルの入手方法★

XXXXX.ovpnは、try hack meのAccessページよりダウンロード入手できます。

1.右上のアカウントアイコンを押す

2.XXXXX.ovpnをダウンロード!

下記リンクの公式ページでも解説しているので、参考にしてみると良いでしょう。

docker cp ./XXXXX.ovpn kalitest:/home

下記コマンドで接続します!

openvpn ./XXXXX.ovpn

成功!
メッセージ:Protocol options: explicit-exit-notify 3
接続状態になります。

あとは別のターミナルを立ち上げ、そこから同じコンテナに入れば色々できるというわけです。

色々やっちゃってください〜

ちゃんと接続できるかは、なんでも良いのでtry hack me でマシンを立ち上げpingを送信してみてください。

※pingを実行するのにパッケージのインストールが必要なので注意!

apt-get install iputils-ping net-tools

失敗例

下記コマンドで作成したコンテナからOpenVPNに接続してみます。

docker run -it -d --name  kalitest -p 80:80 -p 443:443 -p 1194:1194 kalilinux/kali-rolling

作成が完了したらコンテナに入ります

docker exec -it kalitest /bin/bash

下記コマンドでアップデート後、OpenVPNをインストールします。

apt update
apt-get upgrade

OpenVPNのインストール

apt install openvpn

そしたらホストのターミナルより、XXXXX.ovpnファイルコンテナに転送します。
XXXXX.ovpnがあるディレクトリに移動後、下記コマンドを実行します。
homeに転送することにします。

docker cp ./XXXXX.ovpn kalitest:/home

下記コマンドで接続を開始しますが、、、

openvpn ./XXXXX.ovpn

エラーメッセージ
 ERROR: Cannot open TUN/TAP dev /dev/net/tun: No such file or directory (errno=2)

接続に失敗です。

デフォルトだとブリッジモードになるので、ホストのネットワークから隔離されるため発生するエラーです。

ブリッジモード(デフォルト): コンテナは仮想ブリッジネットワークに接続され、他のコンテナやホストネットワークとの通信が可能になります。

ホストモード: コンテナはホストマシンのネットワーク名前空間を共有するため、ホストのネットワークインターフェースとIPアドレスに直接アクセスできます。

なしモード: コンテナは他のコンテナとホストネットワークから隔離され、ネットワーク接続は明示的に設定されない限り行われません。

カスタムネットワーク: コンテナはユーザー定義のネットワークに接続され、ネットワーク設定と通信に関するより詳細な制御が可能になります。

Gemini

bridge : デフォルトのネットワーク・ドライバです。ネットワーク作成時にドライバを指定しなければ、このネットワークになります。 通常、ブリッジ・ネットワークは、アプリケーションがスタンドアロン・コンテナ内で動作する時、このコンテナが通信するために使います 。詳しくは ブリッジ・ネットワーク をご覧ください。

https://docs.docker.jp/index.html

まとめ

仮想環境もいいのですが、個人的にはdockerの方が手軽なので今回紹介してみました!
try hack meはセキュリティについて楽しく学べるのでおすすめです。

一応注意ですが、ハッキングは犯罪なので悪用厳禁です。(try hack meで遊ぶのはOK)
管理人は一切の責任を持ちません。

よかったらシェアしてね!
  • URLをコピーしました!
目次