はじめに
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