公開しているRaspberryPiにちょっかいを出してくる怪しい奴らを蹴るためにBan4ipをインストールしたの抜粋版です
What's Ban4ip
インストールした環境
$ 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
にある設定ファイルは必要なものだけをコピーするようにする
/etc/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