LoginSignup
4
2

More than 3 years have passed since last update.

[GCP]Compute Engineにハニーポット(T-Pot)を構築する手順

Last updated at Posted at 2020-02-06

はじめに

GCPのCompute EngineにハニーポットであるT-Potを構築する手順を備忘録としてまとめました。

手順

1. GCP側のファイアウォールの設定

インスタンス作成の前にファイアウォールルールの設定をしておきます。
全ての設定が完了するまでは接続を許可するIPアドレスを絞っておきます。

VPCネットワーク -> ファイアウォールルール を開き[ファイアウォールルールを作成]をクリックします。
以下の項目を入力した後、[作成]をクリックします。

変更する項目 変更内容
名前 適当に入力します。
ターゲットタグ 適当に入力します。
私は上記の[名前]と同じにしています
ソースIPの範囲 接続元のIPアドレスを入力します。
プロトコルとポート 全て許可を選択します。
(必要なポートのみ選択しても構いません)

2. インスタンス作成

T-Potのドキュメントに以下のように記載されています。

・Debian 9.7 or newer as host system (others may work, but remain untested)
・4GB of free memory
・32GB of free storage
https://github.com/dtag-dev-sec/tpotce/blob/master/README.md#create-your-own-iso-image

ということで以下を指定してインスタンスを作成します。

  • n1-standard-2(2 vCPU, 7.5GBメモリ)
  • Debian GNU/Linux 9 (stretch)
  • 100GB
  • ネットワークタグの項目に、前の手順で作成したターゲットタグの内容を入力

3. インスタンス上での操作

作成したインスタンスにSSHで接続したのち、以下の設定をします。

アップデート

sudo apt update
sudo apt -y upgrade

ユーザ追加

GCPの場合、多分これをしないとWeb管理画面にログインできません。

sudo adduser username
sudo gpasswd -a username sudo

SSH鍵作成

新規作成したユーザでSSH鍵を作成します。

su username
ssh-keygen -t rsa

鍵の名前とパーミッション変更

cd ~/.ssh
chmod 600 id_rsa.pub
mv id_rsa.pub authorized_keys

秘密鍵をローカル端末にコピー

scpやcatでコピペなどでid_rsaをローカル端末にコピーします。

ローカル端末からSSH接続可能か確認

ローカル端末の.sshフォルダ以下に適当な名前でid_rsaを保存します。
今回はgcp.pemという名前で保存します。
その後、以下のコマンドを実行して接続確認を行います。

# パーミッション変更
chmod 600 gcp.pem

# 接続確認
ssh -i .ssh/gcp.pem username@ipaddr

無事に接続できたら次の手順に進んでください。

gitインストール

私の場合、gitの最新版をインストールしないとT-Potインストールに失敗しました。
そのためapt installではなくtar.gzからインストールします。
最新版は以下で確認できます。
https://github.com/git/git/releases

sudo apt install make libssl-dev libghc-zlib-dev libcurl4-gnutls-dev libexpat1-dev gettext unzip
cd /usr/src/
sudo wget https://github.com/git/git/archive/v2.25.0.tar.gz -O git.tar.gz
sudo tar -xf git.tar.gz
cd git-*
sudo make prefix=/usr/local all
sudo make prefix=/usr/local install
git --version

T-Potインストール

ドキュメントの通りに以下のコマンドを実行します。
https://github.com/dtag-dev-sec/tpotce/blob/master/README.md#postinstall

cd ~
git clone https://github.com/dtag-dev-sec/tpotce
cd tpotce/iso/installer/
sudo ./install.sh --type=user

途中で「T-Potのエディション選択」と「Webブラウザでログを確認する画面のユーザ名指定とパスワード指定」の画面が表示されますので、適当に入力します。
インストール完了後に自動でOS再起動されます。

4. T-Potに接続

Web管理画面

「ユーザ追加」の項目で設定したユーザとパスワードでログインできます。

https://<your.ip>:64294

Webログ確認画面

「T-Potインストール」の項目で設定したユーザとパスワードでログインできます。

https://<your.ip>:64297

※何もログが表示されない場合はOSの時刻がずれている可能性があります(GCPでずれていることはないですが)

SSH接続

「SSH鍵作成」の項目で作成した鍵でログインできます。

ssh -p 64295 -i .ssh/gcp.pem username@ipaddr

必要な項目の設定が完了したら次の項目に進んでください。

5. GCP側のファイアウォールの再設定

「1. GCP側のファイアウォールの設定」で送信元IPアドレスの制限をしていますので、これを外部からでも接続できるようにします。
ただし64294、64295、64297番ポートだけは外部から接続できないようにしておきます。

変更する項目 変更内容
名前 適当に入力します。
ターゲットタグ 適当に入力します。
私は上記の[名前]と同じにしています。
ソースIPの範囲 0.0.0.0/0と入力します。
プロトコルとポート 「指定したプロトコルとポート」を選択し、
tcpにチェックを入れ0-64293,64296,64298-65535を入力します。
udpにもチェックをいれます

※もちろん「全て許可」にして64294、64295、64297番ポートだけ拒否にしても構いません。最初の設定と合わせるために上記のように設定しました
※T-Potとバレないようにするには少し工夫した方が良いと思います

参考

How to Install Git on Debian 9
https://linuxize.com/post/how-to-install-git-on-debian-9/

tpotce/README.md
https://github.com/dtag-dev-sec/tpotce/blob/master/README.md

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2