AWSでHoneypot構築してみた
2021年12月17日時点での動作確認済み
・構成図
・EC2作成
1.リージョン選択
以下の場所からリージョンを変更してください。 今回は東京リージョンで進めます。
2.インスタンス作成
3.「Debian 10」を選択
4.「t2.xlarge」を選択して次のステップへ
xlarge以下で試しましたがまともに動かなかったので、xlarge以上推奨です。
5.ステップ3はそのままで次のステップへ
6.ステップ4でサイズを「30」GBにして次のステップへ 7.ステップ5はそのまま次のステップへ
8.ステップ6でセキュリティグループの設定をする
セキュリティグループの割り当て「新しいセキュリティグループを作成」 セキュリティグループ名「T-Pot」、説明「T-Pot」 ソースを「マイIP」、説明には「SSH」 これらを変更し「確認と作成」へ
9.ステップ7で設定を確認し問題なければ「起動」
10.キーペアの作成
「新しいキーペアの作成」を選択し、キーペアタイプは「RSA」を選択 キーペア名に適当な名前(今回は「T-Pot-key-pair」)をつけて「キーペアのダウンロード」をする ※キーペアは再ダウンロードできないため注意 11.インスタンス作成画面に戻り、インスタンスができていれば完了です。
12.設定を間違えて作成してしまった場合
「インスタンスの状態」から「インスタンスの停止」、「インスタンスの終了」を押し、2から作り直してください。
・T-Potのインストール
まずTera termを起動します。 (Tera termをインストールしてない方はこちらからhttps://ja.osdn.net/projects/ttssh2/ )
1.Tera termの接続
ホストに先ほど作成したインスタンスの「パブリックIPアドレス」を入力 ※今回はElastic IP アドレスを使用していないので、インスタンスを開始するたびに「パブリックIPアドレス」は変わります。 TCPポートは「22」、「SSH」で接続します。 2.SSH認証
ユーザ名には「admin」、認証方式は「RSA/DSA/ECDSA/ED25519鍵を使う」を選択し秘密鍵をEC2作成の10でダウンロードした鍵を使用し接続。 3.セットアップしていきます。 パスワードを求められた場合は任意で、Y/nはすべてYで進めていきます。
USERNAME=honey # ユーザ名の設定します sudo apt update && sudo apt upgrade -y #パッケージの更新 sudo apt install git #Gitのインストール sudo adduser honey #ユーザの追加 sudo gpasswd -a honey sudo #sudoグループに追加 sudo su honey #ユーザ切り替え
4.SSHの設定
cd #ホームディレクトリへ移動 mkdir .ssh #ディレクトリの作成 chmod 777 .ssh #権限設定
今回はWin SCPを使い公開鍵を.shhディレクトリに入れます。 (Win SCPのインストールはこちらからhttps://winscp.net/eng/download.php) WinSCPを起動します。 ホスト名にインスタンスの「パブリックIPアドレス」、ユーザ名に「admin」を入力し、設定を押す。 SSHの認証に移動し秘密鍵(EC2作成の10)を選択する。 ここで公開鍵を表示し「authorized_keys.」で保存をし、OKして接続する。 先ほど作成した「authorized_keys」を/home/honey/.shh/に入れる。 (.shhが表示されない場合はWinSCPの「オプション」→「環境設定」→「パネル」→「隠しファイルを表示する」にチェックを入れてください。) Tera termに戻り、以下のコマンドを入力
chmod 700 .ssh
5.TPotインストール
git clone https://github.com/dtag-dev-sec/tpotce cd tpotce/iso/installer/ cp tpot.conf.dist tpot.conf vim tpot.conf # myCONF_WEB_USER と myCONF_WEB_PW に管理画面のユーザ名とパスワードを指定します。 sudo ./install.sh --type=auto --conf=tpot.conf sudo reboot
6.管理用ポートの開放
T-Pot をインストール後に再起動した時点で SSH のポートが変更され 22 番ポートで SSH 接続ができなるため管理用途で使うポートを開放します。 AWSのセキュリティグループの「インバウンドルールを編集」から設定します。 「ルールの追加」をし以下のポートを追加して「ルールの保存」をします。 ・ 64295 (SSH 用) ・ 64297 (Web 管理画面用) ※「インバウンドルール」の「ソース」の値は管理画面にアクセスするIPアドレスになるので、「マイIP」での設定を推奨しますが、その場合、接続するPCのIPアドレスが変更される毎にセキュリティグループの設定を更新する必要があります。 7.管理画面のアクセス
webブラウザで https://(IPアドレス):64297/
にアクセスします。
「この接続ではプライバシーが保護されません」と表示されたら、「詳細設定」→「<IPアドレス> にアクセスする(安全ではありません)」を選択してアクセスしてください。
以下のような画面が表示されればOKです。
8.攻撃を受けるためのポート開放
「セキュリティグループ」→「インバンドルールを編集」→「ルールの追加」から以下を追加し、「ルールを保存」。 ・タイプ「カスタムTCP」、ポート範囲「1-64000」、ソース「カスタム」「0.0.0.0/0」 ・タイプ「カスタムUDP」、ポート範囲「1-64000」、ソース「カスタム」「0.0.0.0/0」
設定し終わったら管理画面で実際に攻撃されていることを確認してください。
・まとめ
今回最初はubuntuで構築しようと試しましたが、バージョン16.04はPythonエラーで20.06はサポート対象外であったためDebianで構築しました。 この構築手順が参考になりましたら幸いです。