Linux

ハニーポットを自宅に設置しVPS経由で公開する

下記を読んで自分もハニーポットを植えてみたいと思いました。

tk-secu.hateblo.jp

どうせなら色々なハニーポット試したいし、攻撃の様子もいい感じに可視化したい。
だったらT-Potを植えればいいじゃない!ということで環境を構築してみました。

環境構成

環境構築のしやすさと運用コストの観点から下記の構成を取りました。
VPSを経由して自宅のサーバを公開する方法です。

f:id:segmentation-fault:20200510145227p:plain
T-Pot環境構成例

補足
・クラウドに設置するのが一番楽だが、T-Potの動作条件を満たそうと思ったらレンタル料が高額になってしまう。(RAMがネック)
・VPSを使わない場合、インターネット側から自宅サーバへの通信を通すのが難しい。

(参考)T-Potの動作条件(Standard Installation)
・6-8GB RAM
・128GB SSD
system-requirements

注意事項
・事前にVPSの利用規約をお確かめください。
・運用には細心の注意を払ってください。
・当サイトに掲載された内容によって生じた損害等の一切の責任を負いかねますので、ご了承ください。

T-Potのインストール

インストール方法はいくつか公開されており、ネットで検索した感じPrebuilt ISO Imageを使う方が多いようです。

が、自分の環境ではPrebuilt ISO Imageだとインストールが上手くいかなかった(パーティションを認識してくれずエラー終了する)ので、Post-Install Userでインストールしました。

サーバとして用意した実機はLiva-Zです。
8Gメモリ x 2枚、120GB SSDを追加しました。

Debianのインストール

T-PotのREADMEにはDebian 9.7 (Stretch)が要件に書いてありますが、私はDebian 10.3を使いました。(よく確認せず最新をダウンロードしてしまった)

余計なエラー等にハマりたくない方は、なるべく要件に合わせたほうがよいでしょう。

概要

(1)Debianのインストール用ISOイメージをダウンロードしてメディアに焼く。
(2)インストール用メディアを用意したサーバに接続してメディアからブート。
(3)インストールガイドに従ってインストール実施。

今回、インストール時のパーティション構成は”/”にディスクの全容量を割り当てました。

f:id:segmentation-fault:20200510154652p:plain

T-Potのハニーポットはdockerコンテナで構成されており、デフォルトでは実データが/var/lib/docker配下に格納されます。

何も考えず/varにパーティションをきると/varがすぐにディスク100%になってしまうので注意です。

Debianのインストールはこちらから。
Downloading Debian CD/DVD images via HTTP/FTP

T-Potのダウンロード&インストール

下記記載の手順にしたがって実行します。
gitが必要なので事前にインストールしましょう。

https://github.com/dtag-dev-sec/tpotce#post-install-user

エディションはStandardを選択しました。

f:id:segmentation-fault:20200510154723p:plain

WEBの管理画面(Kibana)にログインするためのユーザ名+パスワードを設定します。

f:id:segmentation-fault:20200510154733p:plain

実行したシェルスクリプトが終了し再起動すればT-Potの完成です。

f:id:segmentation-fault:20200510154831p:plain

VPS-IX2105間のIPsec-VPN

SoftEther(vpnserver)のインストールと設定

下記を参考にしてVPSにvpnserverをインストールします。
https://ja.softether.org/4-docs/1-manual/7/7.3

vpnserverを起動できたらVPNサーバの管理ツールを使って設定を行います。
https://ja.softether.org/4-docs/1-manual/2/2.4

EtherIP/IPsecの設定

EtherIP/L2TPv3 over IPsecサーバ機能を有効にして、IPsec事前共有鍵を入力し、サーバ機能の詳細設定からISAKMP Phase 1 IDを設定します。

IX2105のコンフィグレーション時に同じ値を使います。
(XXXXXX, YYYYYYはお使いの環境に置き換えてください)

VPSにLAN2用のインタフェースが必要となるのでローカルブリッジの設定からtapを作成します。

tapが作成できたらIPアドレスを付与します。

IX2105のコンフィグレーション

下記を参考にして同様に設定していきます。

NEC ルータ等からの EtherIP を用いた VPN 接続方法 – SoftEther VPN プロジェクト

コンフィグレーション例

疎通確認

正常にVPNが張れているかshowコマンドやping等で確認しましょう。

VPSからT-POTへの転送

VPSのポートフォワーディング設定

ひとまず、SSHのハニーポットであるCowrieだけ試したいので、T-Potへの転送は22番ポートだけ設定しています。

また、T-Potの管理用ポート(64294, 64295, 64297)へのアクセスはVPS経由 + VPS側で自宅のIPアドレスのみ受け付けるようにフィルタするようにしました。

この時、T-POTサーバのデフォルトゲートウェイはVPS側(192.168.1.1)にすることを忘れずに。

注意点

VPSの環境によってはローカルIPが既に使用している場合があります。
当方はさくらVPSを使用してますが、192.168.1.0/24は使用済みのようでした。(ping 192.168.1.1とかping 192.168.1.2を打つと応答が返ってくる)

VPS-自宅間のIPアドレスには他と被らないネットワークのアドレスにしましょう。
でないとポート転送が上手くいきません。

また、さくらVPSを使う場合はパケットフィルタの設定に注意が必要です。
パケットフィルタが有効になっている場合、ポート番号1~32767は通信の許可が必要となります(22のsshだけは最初から許可済み)。

さくらのVPSの管理画面からパケットフィルタの設定を行いましょう。

T-POTの動作確認

構築が終わったら、T-Potにアクセスできるか動作確認してみましょう。

下記は5日間程度動かしてみたときの様子です。

f:id:segmentation-fault:20200510162628p:plain

参考