とりあえずブログ

SEとして働く会社員の雑多なブログ

SSHハニーポットのCowrieをインストールしてみた

以前から気づいていたのですが、僕のハニーポットのauth.logにものすごい量のSSH認証失敗ログが記録されています。

インターネットの世界はHTTPだけでなく、SSHアタックも多いことと、最近Glastopfの攻撃アクセスが偏っていて、面白くなくなってきたので、SSHハニーポットのCrowrieをインストールしてみました。

github.com

ほぼほぼ公式ドキュメントどおりにインストールすることができましたが、だいたいの手順をご紹介します。 OSは公式ドキュメントどおりUbuntuです。

1. 各種パッケージのインストール

まずは下記コマンドでパッケージのインストールします。

$ sudo apt-get install git python-virtualenv libssl-dev libffi-dev build-essential libpython-dev python2.7-minimal authbind

2. ユーザー作成

次に下記コマンドでユーザーを作成します。

$ sudo adduser --disabled-password cowrie
Adding user `cowrie' ...
Adding new group `cowrie' (1002) ...
Adding new user `cowrie' (1002) with group `cowrie' ...
Changing the user information for cowrie
Enter the new value, or press ENTER for the default
Full Name []:
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n]

$ sudo su - cowrie

入力するところは、そのままEnterで問題ないです。

3. ソースコードのチェックアウト

次にCowrieのソースコードGitHubからクローンします。

$ git clone http://github.com/micheloosterhof/cowrie
Cloning into 'cowrie'...
remote: Counting objects: 2965, done.
remote: Compressing objects: 100% (1025/1025), done.
remote: Total 2965 (delta 1908), reused 2962 (delta 1905), pack-reused 0
Receiving objects: 100% (2965/2965), 3.41 MiB | 2.57 MiB/s, done.
Resolving deltas: 100% (1908/1908), done.
Checking connectivity... done.

$ cd cowrie

再度にディレクトリを移動しておきます。

4. 仮想環境を設定

次に仮想環境の設定を行っていきます。 とはいっても簡単で下記コマンドを実行するだけです。

$ virtualenv cowrie-env
New python executable in ./cowrie/cowrie-env/bin/python
Installing setuptools, pip, wheel...done.

その後、仮想環境をアクティブな状態にして、パッケージをインストールしていきます。

$ source cowrie-env/bin/activate

(cowrie-env) $ pip install --upgrade pip

(cowrie-env) $ pip install --upgrade -r requirements.txt

5. 設定ファイルの作成

次に設定ファイルを作成するのですが、僕はめんどくさかったので、下記コマンドでデフォルトの設定ファイルを作成しました。

$ cp cowrie.cfg.dist cowrie.cfg

6. 起動

上記5まで終えたら、いよいよCowrieを起動します。

起動は下記コマンドを実行します。

$ bin/cowrie start
Activating virtualenv "cowrie-env"
Starting cowrie with extra arguments [] ...

7. NATの設定

起動まではできたのですが、このままではCrowieがlistenしているデフォルトの2222番ポートにアクセスが来てくれないので、下記コマンドでNATの設定を入れてあげます。

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

これをやるとこれまでSSH接続を22番ポートでログインしていた方はログインできなくなる可能性があるので、必要に応じて管理用のポートをリダイレクトしてあげるようにしてあげましょう。

下記コマンドは3333番ポートを22番ポートにリダイレクトする設定コマンドです。

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

これで3333番ポートにアクセスすれば、ひとまずSSH接続できるようになります。

ひとまずこれでSSH攻撃を観察してみようと思います。