kobalt’s log

k08a1tの備忘録

Amazon LighsailにT-pot 22.04.0を構築した

はじめに

今回は、Amazon LightsailにT-pot22.04.0をインストールしたので、その手順を本記事にまとめました。(2023/04/10更新)

インスタンスの準備

T-pot 22.04.0のシステム要件

T-pot 22.04.0のシステム要件についてはSystem requirementsに記載されています。

T-potのインストールには最低8〜16GBのRAMと128GBのディスク、及び動作可能なインターネット接続が必要になります。

また、インストールドキュメント(Tecnical Concept, Post install)には以下のように記載されており、Debian11で動作することを前提としています。

T-Pot is based on the Debian 11 (Bullseye) Netinstaller and utilizes docker and docker-compose to reach its goal of running as many tools as possible simultaneously and thus utilizing the host's hardware to its maximum.

In some cases it is necessary to install T-Pot after you install Debian.

インスタンスの生成

AWSのサービスからLightSailを選択し、「インスタンスの生成」ボタンを押します。

リージョン

どこでも問題ないようですが、今回はTokyoを選択しました。

インスタンスイメージの選択

プラットフォームは「Linux/Unix」を選択、設計図は「OSのみ」「Debian10.8」「Debian11.4」を選択します。

インスタンスプランの選択

$80(CPU:4core、RAM:16GB、SSD:320GB、HDD:6TB)を選択します。$40でもインストールはできましたが、可視化ツールが正常に動作しませんでした。

インスタンス名の設定

インスタンス名は「T-pot」にしました。

インスタンスの生成が完了しました。

SSH接続

どのタイミングかは確認していませんが、途中でブラウザベースのSSH接続ができなくなってしまうため、Tera TermなどのターミナルエミュレータやコマンドからSSH接続して作業を行います。

まず、インスタンス接続タブからsshキーファイルをダウンロードしておきます。

Tera Term

インストールはこちらから:https://ja.osdn.net/projects/ttssh2/releases/

この時点では、接続ポートは22です。 ユーザ名に「admin」を指定し、認証方式で「RDS/DSA/ECDSA/ED25519鍵を使う」を選択し、ダウンロードしたsshキーを指定して接続します。

sshコマンド

コマンドで接続する場合は以下のコマンドを実行します。

sudo su -
chmod 600 <sshキーのパス>
ssh -p 22 -l admin -i <sshキーのパス> <インスタンスのpublic IP>

Debian10からDebian11へアップグレード(現在はDebian11.4を選択できるためここは飛ばしてください。)

T-pot22.04.0はDebian11(bullseye)での動作が前提となっているので、T-potをインストールする前にアップグレードします。

バージョン確認

LInux,OSのバージョン

lsb_release -a

Linuxカーネルのバージョン

uname -mrs

Debianのバージョン

cat /etc/debian_version
既存のパッケージの更新

アップデートの過程でerrorを引き起こさないように、すべてのセキュリティパッチと保留中のアップグレードをDebian10に適応させ、システムを再起動します。

sudo apt-mark showhold | more

sudo apt-mark unhold package_name

sudo apt-get update
sudo apt-get upgrade
sudo apt-get full-upgrade
sudo apt-get --purge autoremove

sudo systemctl reboot
/etc/apt/souces.listの更新

/etc/apt/sources.listで指定されたサーバからパッケージを取得しているようなので、アップグレードする前にこちらを書き換える必要があります。

before
deb http://cdn-aws.deb.debian.org/debian buster main
deb-src http://cdn-aws.deb.debian.org/debian buster main

deb http://security.debian.org/debian-security buster/updates main
deb-src http://security.debian.org/debian-security buster/updates main

deb http://cdn-aws.deb.debian.org/debian buster-updates main
deb-src http://cdn-aws.deb.debian.org/debian buster-updates main

deb http://cdn-aws.deb.debian.org/debian buster-backports main
deb-src http://cdn-aws.deb.debian.org/debian buster-backports main
after
deb http://cdn-aws.deb.debian.org/debian bullseye main
deb-src http://cdn-aws.deb.debian.org/debian bullseye main

deb http://security.debian.org/debian-security bullseye-security/updates main
deb-src http://security.debian.org/debian-security bullseye-security/updates main

deb http://cdn-aws.deb.debian.org/debian bullseye-updates main
deb-src http://cdn-aws.deb.debian.org/debian bullseye-updates main

deb http://cdn-aws.deb.debian.org/debian bullseye-backports main
deb-src http://cdn-aws.deb.debian.org/debian bullseye-backports main
最小限のシステムアップグレード

まず、最小のシステムインストールを行います。

sudo apt update
sudo apt upgrade --without-new-pkgs

こちらの画面が出てきた場合は「はい」を選択します。

フルアップグレード

問題がなければ以下のコマンドでシステム全体のアップグレードを行います。

sudo apt full-upgrade

このような画面が出てきた場合は「keep the local version currently installed」を選択します。

Linuxシステムの再起動

システムの再起動を行い、アップグレードできていることを確認します。

sudo systemctl reboot

lsb_release -a
uname -mrs
cat /etc/debian_version

T-pot 22.04.0のインストール

いよいよT-potのインストールに入ります。

Gitインストール

まずはじめにGitのインストールを行います。後に必要になるのでパスワードの設定も行います。

sudo su -
apt-get update -y && apt-get upgrade -y
passwd admin

apt-get install git
T-potインストール

今回はこちらからクローンしました。

インストーラーのあるディレクトリに移動し、設定ファイルのdistributionを同名でコピーします。

管理画面のユーザ名とパスワードを設定する場合は、このファイルを編集します。

git clone https://github.com/telekom-security/tpotce

cd tpotce/iso/installer/
cp tpot.conf.dist tpot.conf
vim tpot.conf

default

myCONF_WEB_USER :webuser
myCONF_WEB_PW :w3b$ecret

以下のコマンドでT-potをインストールします。

sudo ./install.sh --type=auto --conf=tpot.conf

※インストールの途中で中断してしまったり、エラーがでてしまった場合にはもう一度インスタンスを生成し直す必要があります。


インストールが完了すると再起動を促すメッセージが表示されるので、以下のコマンドで再起動を行います。

reboot

再起動するとT-potが起動できています。

アクセスポートの設定

管理用途のアクセス(管理画面、SSH接続、Cockpit)ができるように、Light SailのインスタンスネットワーキングタブからIPv4ファイアウォールを編集します。

  • 64294(Cockpit用ポート)
  • 64295(SSH接続用ポート)
  • 64297(webUI用ポート)

上記のポートは安全のため、DHCPサーバによって割り当てられているIPアドレスのみに限定すると良いかと思います。

DHCPにより割り当てられているIPアドレスはこちらのサイトから調べることができます。

www.cman.jp

※T-potのインストールを行い再起動すると、SSH接続のポートが変わっているので22番ポートでは接続できなくなります。

管理画面(webUI)の確認

Webブラウザhttps://<インスタンスのpublic IP>:64297を開きます。

「この接続ではプライバシーが保護されません」もしくは「潜在的なセキュリティリスクあり」と表示されますが、 「詳細情報」から「<IPアドレス> にアクセスする(安全ではありません)」もしくは「危険性を承知で続行」を選択します。

ポップアップでWebユーザ名とパスワードを求められるので、tpot.confで設定したものを入力します。

成功すると以下のような画面が表示されます。

この時点ではポートを開いていないので攻撃は観測できません。

SSH接続

次に、SSH接続を行います。

Tera Term

ここでは接続ポートは64295に設定します。 ユーザ名、sshキーを選択して接続します。

sshコマンド

こちらも接続ポートを変更する以外は先程と同様です。

sudo su -
#chmod 600 <SSHキーのパス> //permissionが変更されていなければ
ssh -p 64295 -l admin -i <SSHキーのパス> <インスタンスのpublic IP>
Cockpitにアクセス

先程の管理画面からCockpitを選択すると、再びセキュリティのリスクがある旨のメッセージが表示されますが、 「詳細情報」から続行します。

以下のような画面が表示され、マシンのユーザ名とパスワードを求められるので入力します。

通るとこのようにマシンの状態を視覚的に確認できます。

アクセスポートの開放

最後に、攻撃を受けるために1-64000のアクセスポートを開放します。

詳しいアクセスポートについてはRequired Portから確認できます。

少し時間をおいてWebUIからkibanaを開くと以下の様に攻撃が観測できました。

参考記事・サイト

qiita.com

zenn.dev

www.fireturtle.net

How to upgrade Debian 10 to Debian 11 Bullseye using the CLI - nixCraft