CentOS7にkippoを導入してみた

こんにちは。今回はCentOS7にkippoを導入していこうと思います。

経緯

なぜCentOS7に導入しようかと思ったのかというと、バージョンのCentOS6に導入した際にpythonのバージョンが古くモジュールのインストールなど色々面倒で時間がかかったため、python2.7系が標準インストールされているCentOS7ならば簡単に導入できるのではないかと思いCentOS7にも導入してみました!

環境

CentOS Linux release 7.2.1511 (Core)

kippo導入に必要なライブラリなど

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

#easy_install pip

pip install pyasn1 pycrypto

ここでハマった。新しいバージョンのtwisted(CentOS7の場合16.0)だとkippoが動かないので古いバージョンを指定してあげる。

pip install twisted==15.2.0

作業用のsshのポート番号を22から10022に変更

Firewalldを使って10022へのsshを許可するように変更する。

#cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/service/ssh_alt.xml

エディタでssh_alt.xmlを開き、port="22"をport="10022"に変更する。

#vi ssh_alt.xml

<?xml version="1.0" encoding="utf-8"?>
<service>
  <short>SSH</short>
  <description>Secure Shell (SSH) is a protocol for logging into and executing commands on remote machines. It provides secure encrypted communications. If you plan on accessing your machine remotely via SSH over a firewalled interface, enable this option. You need the openssh-server package installed for this option to be useful.</description>
  <port protocol="tcp" port="10022"/>
</service>

設定ファイルを読み込む

firewalld-cmd --reload

設定を永続的に設定する。

# firewall-cmd --permanent --add-service=ssh-alt

エディタで設定ファイルを開きsshのポートを変更する

#vi /etc/ssh/sshd_config

#Port 22 

Port10022

設定を反映させるために、sshdを再起動する

#sytemctl restart sshd

これで.....やっとポート変更でsshができると思ったが port 10022: Connection refused wwwww おそらくSELinuxの仕業かなと思いSELinuxの設定を以下のように変更。

SELinuxの設定変更

よくよく考えるとハニーポットって侵入させるものだし、SELinux無効にしてもいいのではとも思ったが無効にせずに設定してみる。

SELinuxのポリシーを変更するために、semanageをインストールする。

#yum install policycoreutils-python

待ち受けポートとして、TCPの10022番ポートを許可。

#semanage port -a -t ssh_port_t -p tcp 10022

設定を反映させるためもう一度sshdを再起動

#systemctl restart sshd

これで22から10022へ、sshのポートを変更完了です。

kippoのインストール

インストールをする前に、ポート 22 に来た通信をkippoのデフォルト稼働ポートの 2222 にリダイレクトするように再度以下のようにFirewalldを設定する。

#firewall-cmd --permanent --add-forward-port="port=22:proto=tcp:toport=2222"

kippo起動用のユーザを作成し、kippoのソースコードを取得する。

#useradd kippo
#su kippo
$cd
$git clone https://github.com/desaster/kippo.git
$cd kippo
$cp kippo.cfg.dist kippo.cfg
$vi kippo.cfg

後は起動するだけだが、参考記事通りに設定ファイルを編集し、ログを有効にする。

[database_textlog]
logfile = kippo-textlog.log

起動

$./start.sh

これで正常に起動できます!あとはお好みでkippoの設定を弄るだけです。

前にCentOS7を使った際は、Firewalld使いづらいと思っていたけど、慣れるとiptablesより簡単ですね。直感的な操作できるように作られたみたいなので当たり前っちゃ当たり前ですが、、、一時期頑張って学んだiptablesが使われなくなるのも悲しい...

参考文献

CentOS7徹底入門 -firewalld- 2-2 | Nedia What's Up!

CentOS 6.5 に kippo をインストールしてみる - akishin999の日記