公開しているRaspberryPiにちょっかいを出してくる怪しい奴らを蹴るためにBan4ipをインストールした

What’s Ban4ip

disco-v8/Ban4ip

RaspberryPiにちょっかいを出してきた(ログにerrorやfailを残した)奴らのアクセス元IPアドレスをiptablesに登録してバッサリ蹴ってやろうというツール

設定メモ

インストールした環境

$ cat /etc/os-release
PRETTY_NAME="Raspbian GNU/Linux 9 (stretch)"
NAME="Raspbian GNU/Linux"
VERSION_ID="9"
VERSION="9 (stretch)"
ID=raspbian
ID_LIKE=debian

Ban4ipを動作させるための環境を準備する

$ sudo apt update
$ sudo apt -y upgrade

$ sudo apt -y install php php-cli php-common php-dev php-pear
$ sudo apt -y install sqlite3 php7.0-sqlite3
$ sudo apt -y install php7.0-mbstring
$ php -r "phpinfo();" | grep sqlite
PDO drivers => sqlite

$ sudo apt -y autoremove

$ sudo pecl install inotify
$ sudo nano /etc/php/7.0/mods-available/inotify.ini
extension=inotify.so

$ cd /etc/php/7.0/cli/conf.d/
$ sudo ln -s ../../mods-available/inotify.ini ./20-inotify.ini

$ php -r "var_dump(function_exists('inotify_init'));"
bool(true)

Ban4ipをインストールする

$ cd ~
$ mkdir Ban4ip
$ cd Ban4ip

$ wget 'https://github.com/disco-v8/Ban4ip/archive/master.zip' -O Ban4ip-master.zip
$ unzip Ban4ip-master.zip
$ cd ./Ban4ip-master

$ chmod 700 ./ban4ipd
$ chmod 700 ./ban4ipc
$ chmod 755 ./init.d/ban4ip

$ sudo mkdir /etc/ban4ip
$ sudo mkdir /var/lib/ban4ip

$ sudo cp ./ban4ipd.conf /etc/
$ sudo cp ./ban4ip/sshd.conf /etc/ban4ip/

$ sudo cp ./ban4ipc /usr/bin/
$ sudo cp ./ban4ipd /usr/bin/
$ sudo cp ./ban4ipd_*.php /usr/bin/
$ sudo cp ./logrotate.d/ban4ip /etc/logrotate.d/
$ sudo cp ./systemd/ban4ip.service /etc/systemd/system/

$ sudo cp ./ban4ip/sshd.conf /etc/ban4ip/でsshdを監視するための設定ファイルをコピー(=監視が有効になる)している
Ban4ip-master/ban4ipにある設定ファイルは必要なものだけをコピーするようにする

sshd.confを書き換える

$ sudo nano /etc/ban4ip/sshd.conf
# target_log = '/var/log/secure'
target_log = '/var/log/auth.log'

Ban4ipを起動する

$ sudo systemctl daemon-reload
$ sudo systemctl enable ban4ip
Created symlink /etc/systemd/system/multi-user.target.wants/ban4ip.service → /etc/systemd/system/ban4ip.service.

$ sudo systemctl start ban4ip

まとめ

  • うちのRaspberryPiにちょっかいを出してくる怪しい奴らが少しでも減ったはず
    →1時間に15-30件ほどBanされている→Banされている間は手出しできない
  • $ sudo ban4ipc listでBanしたIPアドレスのリストを確認できる
  • $ sudo cat /var/log/ban4ipd.logもたまに見ておこう
  • Banまで至らない(5アウトでBan)ものも多い:3アウトでも良いかもしれない
    →厳しくしすぎると自分がアクセスに失敗してBanされる可能性も否定はできない
  • ban4ipd.confWhite IP address listにローカルのIPアドレスを登録しておいてもよいかもしれない