Scaleway上にHoneypot(T-Pot)をインストールする

はじめに

マルウェアとじゃれたり、攻撃者の足跡を観察してみたいと思ったのでハニーポットの運用をしてみることにした。ハニーポットって聞いたことはあるけど使ったことがなかったので、何か簡単にセットアップできてサクッと見れるのないかなーと思っていたら、 T-Pot というお菓子の詰め合わせみたいなものがあったので、それを使ってみることにしました。ただ、 T-Pot は要求するスペックが高い(メモリ4GB以上、DISK64GB以上)

f:id:kyonta1022:20181024000055j:plain

GitHub - dtag-dev-sec/tpotce: T-Pot Universal Installer and T-Pot ISO Creator

※ 2018/10/29 自動的にプロビジョニングする playbook を作成したので、以下の手順を実行しなくても構築可能

github.com

環境選定

ハニーポットを構築するにあたり、VPSの利用か自宅で鯖を立てるかのどちらにしようか悩んだ結果、以下の理由からVPSを使うことにした。

VPSを選んだ理由

  • 賃貸だから固定IPを取るのめんどくさい(申請)
  • T-Potに耐えられるスペックのマシンが一台しかない
  • 固定IP + 電気代を考えるならクラウド使うのと料金変わらなかったりする?
  • 単純に旬のVPS使ってみたい

利用するVPS

当初はAWS一択(それ以外全然知らないし意識してなかった)だったが、友人から安いVPS Scaleway があることを教えてもらい、急遽そちらを使うことにした。 ざっくり料金を見積もるとこんな感じになりそうだったので、お小遣い制の自分からするとどちらを使うべきかは明白。

※ Kibana が重いため最終的には 1-L のタイプ(約2,000円)を利用。

VPS インスタンスタイプ 値段
EC2 t2.mediam 約5,000円
Scaleway Start 1-M 約1,000円

www.scaleway.com

Scaleway利用の流れ

早速 Scaleway を利用してみる。

支払い情報入力

ログイン情報を入力してアカウント作成 f:id:kyonta1022:20181023105059p:plain

同意 f:id:kyonta1022:20181023105115p:plain

メールアドレスの確認 f:id:kyonta1022:20181023105143p:plain

電話番号の入力(この後確認コードが飛んでくる)。81日本 + 090の先頭を削除した 90 から番号を入力する。 f:id:kyonta1022:20181023105321p:plain

最後にクレジットカード(必須)と住所情報を入力して完了(画面違うけど) f:id:kyonta1022:20181023105512p:plain

サーバーインスタンス作成

左上の Create Server ボタンを押してサーバーインスタンス作成画面に飛ぶ。今回はT-Potのスペックを満たす以下のサーバーを選択。ちなみにロケーションは Amsterdam の方がレスポンスが早かった。

f:id:kyonta1022:20181024225833p:plain

OSは Ubuntu 16.04.x(Xenial)を選択

f:id:kyonta1022:20181023110030p:plain

ディスクの選択(ちなみに 150GB volumeが付いてきてるが、サーバーインスタンス起動時はマウントされてない状態なので、別途マウントする必要がある。マウントしないとシステムボリュームの 50GB だけしか使えない)

f:id:kyonta1022:20181024225940p:plain

あとはそのままで、一番下の方にあるlaunchで完了する

f:id:kyonta1022:20181023231534p:plain

アタッチメントされたディスクのマウント

これをやってなかったので、一日立たずに無事死亡しました。なので絶対やりましょう。公式にマウントまでの手順があるので、これを実施する。

How to attach and detach additional volumes to an existing server - Scaleway

fdisk -l で追加でアタッチメントされているディスクを調べる(今回のは /dev/vdb: 139.7 GiB

# fdisk -l
Disk /dev/vda: 46.6 GiB, 50000000000 bytes, 97656250 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 217FDD50-4437-4A58-8524-09728E4353CA

Device      Start      End  Sectors  Size Type
/dev/vda1  206848 97656216 97449369 46.5G Linux filesystem
/dev/vda15   2048   206847   204800  100M EFI System

Partition table entries are not in disk order.


Disk /dev/vdb: 139.7 GiB, 150000000000 bytes, 292968750 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

フォーマット

# mkfs -t ext4 /dev/vdb

マウント

# mkdir /data
# mount /dev/vdb /data

再起動してもマウントされるようにする

# vi /etc/systemd/system/data.mount
[Unit]
Description=Mount NDB Volume at boot

[Mount]
What=UUID="a0630171-a6c0-4f61-ab75-caeb55982eb2"
Where=/data
Type=ext4
Options=defaults

[Install]
WantedBy=multi-user.target

リロードと有効化

# systemctl daemon-reload
# systemctl start data.mount
# systemctl enable data.mount

T-Potが使えるようになるまで

ハニーポッターとして、群がってくる奴らを観察できるようにする。

インストール

サーバーにログインする

ssh root@xx.xx.xx.xx

Gitコマンドインストール

apt-get update
apt-get install -y git

console-setup のインストール。これがないと cp: cannot stat '/usr/share/consolefonts/Uni2-Terminus12x6.psf.gz': No such file or directory というエラーがゴール手前で発生する。

apt-get install console-setup

ユーザを追加する(tpotユーザはこの中で使われるため避ける)

# adduser honeypotter
# mkdir /home/honeypotter/.ssh
# cp /home/ubuntu/.ssh/authorized_keys /home/honeypotter/.ssh/
# chown -R honeypotter:honeypotter /home/honeypotter/.ssh

T-Potのインストーラ実行

# git clone https://github.com/dtag-dev-sec/t-pot-autoinstall.git
# cd t-pot-autoinstall
# sudo su
# ./install.sh

T-Potで使用するユーザを尋ねられるので、上で作成したユーザ honeypotter を指定する

Make sure the SSH login for your normal user is working!

Which user do you usually work with? This script is invoked by root, but what is your normal username?
Enter username: honeypotter

インストールタイプの選択

##########################################################
#                                                        #
#     How do you want to proceed? Enter your choice.     #
#                                                        #
#     Required: 4GB RAM, 64GB disk                       #
#     Recommended: 8GB RAM, 128GB SSD                    #
#                                                        #
# 1 - T-Pot's STANDARD INSTALLATION                      #
#     Standard Honeypots, Suricata & ELK                 #
#                                                        #
# 2 - T-Pot's HONEYPOTS ONLY                             #
#     Honeypots only, w/o Suricata & ELK                 #
#                                                        #
# 3 - T-Pot's INDUSTRIAL EDITION                         #
#     Conpot, eMobility, Suricata & ELK                  #
#                                                        #
# 4 - T-Pot's FULL INSTALLATION                          #
#     Everything                                         #
#                                                        #
##########################################################

Your choice: 1

webアクセスするときのパスワード設定を求められるので適当な情報を入力

### Removing NGINX default website. 
### Please enter a password for your user honeypotter for web access. 
Password: xxxx
Repeat password: xxxx
Adding password for user honeypotter

全てのセットアップが正常に終了すると、サーバーが再起動する。

webから状況を観察する

再起動したら以下のURLにアクセスすると、無事 Kibana のUIが表示される。

https://xx.xx.xx.xx:64297

f:id:kyonta1022:20181023234706p:plain

SSHでログインする

ポートが22番から64295に変更されている

ssh root@xx.xx.xx.xx -p 64295