Raspbian(Jessie)にCowrieをインストールする

Mon Aug 15, 2016 in server using tags raspberrypi , jessie , cowrie

Raspbian(jessie)にCowrieをインストールしてSSHハニーポットを構築するメモです。 はじめはKippoを使用する予定だったのですが、Kippoの改良版であるCowrieを使用することにしました。

個人のメモですので、もし本メモを参考にハニーポットを構築する際は自己責任でお願いします。

Raspbianの初期設定

Raspbianの初期設定として以下を行いました。

パッケージの最新化

$ sudo apt-get update
$ sudo apt-get upgrade

IPアドレスの固定化

$ sudo vi /etc/dhcpcd.conf
#Add the following line
interface eth0
static ip_address=192.168.10.10/24
static routers=192.168.10.254
static domain_name_servers=192.168.100.1
#static domain_name=
#static domain_search=

NTP設定

NTP同期先を設定する。

$ sudo vi /etc/ntp.conf
#Add the line
server ntp.nict.jp iburst
server ntp.jst.mfeed.ad.jp iburst
# comment out
#server 0.debian.pool.ntp.org iburst
#server 1.debian.pool.ntp.org iburst
#server 2.debian.pool.ntp.org iburst
#server 3.debian.pool.ntp.org iburst

NTPサーバを再起動する。

$ sudo systemctl restart ntp

時刻同期の状態を確認する。

$ ntpq -p

raspi-config関連

$ sudo raspi-config
  • ディスク拡張
  • 文字コード設定
  • タイムゾーン設定
  • Wifiの国設定
  • ホスト名変更

公開鍵認証方式の設定

$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/pi/.ssh/id_rsa): 
Created directory '/home/pi/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/pi/.ssh/id_rsa.
Your public key has been saved in /home/pi/.ssh/id_rsa.pub.

$ cd ~/.ssh/
$ cat id_rsa.pub >> authorized_keys
$ chmod 600 authorized_keys

Raspbianで作成した秘密鍵をローカルPCにコピーする。

$ scp pi@192.168.10.10:~/.ssh/id_rsa ~/.ssh/

公開鍵認証方式でsshログインできることを確認する。

$ ssh -i ~/.ssh/id_rsa pi@192.168.10.10

SSHサーバの設定

Cowrieで22/tcpを使用しているため、SSHサーバのポートを変更します。またログイン設定も変更します。

$ sudo vi /etc/ssh/sshd_config
#Port 22
Port 20022

#PermitRootLogin without-password
PermitRootLogin no

ChallengeResponseAuthentication no

#PasswordAuthentication yes
PasswordAuthentication no

SSHサーバの設定を再起動する。

$ sudo systemctl restart ssh

SSHサーバのポートを変更しているため、以降の手順でSSHログインするためにはポート番号を指定する。

$ ssh -i ~/.ssh/id_rsa -p 20022 pi@192.168.10.10

ユーザ設定

rootユーザが無効化されていることを確認する(2列目がLであることを確認)。

$ sudo passwd -S root
root L 05/27/2016 0 99999 7 -1

Cowrieユーザを作成する。

$ sudo adduser --disabled-password cowrie
ユーザ `cowrie' を追加しています...
新しいグループ `cowrie' (1001) を追加しています...
新しいユーザ `cowrie' (1001) をグループ `cowrie' として追加しています...
ホームディレクトリ `/home/cowrie' を作成しています...
`/etc/skel' からファイルをコピーしています...
cowrie のユーザ情報を変更中
新しい値を入力してください。標準設定値を使うならリターンを押してください
	フルネーム []: 
	部屋番号 []: 
	職場電話番号 []: 
	自宅電話番号 []: 
	その他 []: 
以上で正しいですか? [Y/n] y

Cowrieのインストール

Cowrienの公式サイトのINSTALL.mdを参考にインストールを行う。

$ sudo apt-get install python-twisted python-crypto python-pyasn1 python-gmpy2 python-mysqldb python-zope.interface

$ sudo su - cowrie
$ git clone http://github.com/micheloosterhof/cowrie
$ cd cowrie/
$ cp cowrie.cfg.dist cowrie.cfg

Cowrieの設定

$ vi cowrie.cfg
#sensor_name=myhostname
sensor_name=rpicowrie

#hostname = svr04
hostname = cowrie01

Cowrieの起動と終了

起動するときは以下のコマンドを実行する。

$ ./start.sh

終了するときは以下のコマンドを実行する。

$ ./stop.sh

Cowrieポートのポートフォワード

Cowrieでは2222/tcpでポート待ち受けをしているため、iptablesで22/tcpにポートフォワードする。

$ sudo iptables -t nat -A PREROUTING -p tcp --dport 22 -j REDIRECT --to-port 2222
$ sudo iptables -t nat -n -L

iptables設定の保存

再起動時にもポートフォワード設定が有効になるようにiptablesの設定を保存する。

$ sudo apt-get install iptables-persistent
$ sudo systemctl enable netfilter-persistent

以上