akishin999の日記

調べた事などを書いて行きます。

CentOS 6.5 に kippo をインストールしてみる

digitalOceanクラウド上に安く簡単にkippoハニーポットを構築する | 徳丸浩の日記
http://blog.tokumaru.org/2014/01/digitaloceankippo.html

sshハニーポットをkippoで作ってみる - ろば電子が詰まっている
http://d.hatena.ne.jp/ozuma/20130829/1377703104

さくらのVPSに来る悪い人を観察する その2
http://www.slideshare.net/ozuma5119/vps-28984029

この辺りの記事を読んでとても面白そうだったので、SSH ハニーポットの kippo を CentOS 6.5 環境にインストールしてみました。

依存ライブラリのインストール

まずは kippo を動かすためのライブラリ等をインストールしていきます。
yum から gcc, python-devel, setuptools をインストール。

# yum install -y gcc python-devel python-setuptools

setuptools を入れると使えるようになる easy_install コマンドで pip をインストールします。

# easy_install pip

pip から pyasn1, pycrypto, twisted パッケージをインストール。

# pip install pyasn1 pycrypto twisted

これで必要なライブラリは一通り入りました。

SSH ポート番号の変更

SSH の標準ポート 22 番は kippo で使用したいので、本来の sshd が使用するポート番号を変更します。

# vi /etc/ssh/sshd_config

ここでは徳丸さんの記事に習って 10022 番ポートに変更しました。

#Port 22
Port 10022

変更したら sshd を再起動します。

# service sshd restart

※ 手元の TeraTerm ではここで sshd を再起動しても特に問題なく作業を続行できましたが、VPS などで試している場合、もし不安なら先に以下を実行して、iptables で変更後の SSH ポートを空けておいた方が無難かも知れません。

iptables の設定

iptables で変更後の sshd 用ポートと kippo の LISTEN ポートを開放します。
ここでは CentOS のデフォルトのルールをそのままにしてあるので、-A で末尾に追加しても上手く動きません。
なので -I で先頭にルールを追しています。

# iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 2222 -j ACCEPT
# iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 10022 -j ACCEPT

ポート 22 を kippo のデフォルトポート 2222 にリダイレクトするように以下のルールを追加します。

# iptables -t nat -A PREROUTING -p tcp --dport 22 -j REDIRECT --to-port 2222

kippo のインストール

いよいよ kippo をインストールします。
まずは kippo の起動用ユーザを追加します。

# useradd kippo

作成した kippo ユーザになり、ダウンロードして展開します。

# su - kippo
$ wget https://kippo.googlecode.com/files/kippo-0.8.tar.gz
$ tar xzf kippo-0.8.tar.gz
$ cd kippo-0.8

ログを有効にするため、設定ファイルを編集します。

$ vi kippo.cfg

ファイル末尾の以下の行のコメントアウトを解除。

[database_textlog]
logfile = kippo-textlog.log

また、kippo でログインを可能とするユーザが以下のファイルで定義されています。

$ cat data/userdb.txt
root:0:123456

デフォルトでは上記のように root ユーザがパスワード「123456」で定義されています。
このファイルを変更することでユーザを追加したり、パスワードを変更したりといった事ができます。

準備ができたら kippo を起動してみます。

$ ./start.sh
Starting kippo in background...Loading dblog engine: textlog
Generating RSA keypair...
done.

無事起動できました。

起動で来たら先ほど設定ファイルで有効にした以下のログを tail しておきます。

$ tail -f ./kippo-textlog.log

この状態で別の SSH クライアントを起動してポート 22 に接続し、root / 123456 でログインすることができます。
ログイン後、コマンドを実行してみると kippo-textlog.log に以下のように何を実行したかが記録されている事が分かります。

$ tail -f ./kippo-textlog.log
b52fc974918911e3b432000c29ca5f43 [2014-02-09 21:57:18]: New connection: 192.168.81.1:50270
b52fc974918911e3b432000c29ca5f43 [2014-02-09 21:57:26]: Login succeeded [root/123456]
b52fc974918911e3b432000c29ca5f43 [2014-02-09 21:57:26]: Terminal size: 150x45
b52fc974918911e3b432000c29ca5f43 [2014-02-09 21:57:29]: Command [w]
b52fc974918911e3b432000c29ca5f43 [2014-02-09 21:57:32]: Command [ls]
b52fc974918911e3b432000c29ca5f43 [2014-02-09 21:57:37]: Command [ls -l]

取りあえず試したのはここまで。
CentOS でも結構簡単に導入出来る事が分かったので、いろいろ遊んでみたいと思います。