(2019/10/21 現在) CentOS8 に denyhost を導入しようとすると、dnf や yum ではいくらインストールを試みても導入できないようです。
#dnf --enablerepo=epel-playground install denyhosts
一致した引数がありません: denyhosts
エラー: 一致するものが見つかりません
#dnf --enablerepo=epel install denyhosts
一致した引数がありません: denyhosts
エラー: 一致するものが見つかりません
うーん、困った。という訳でソースからインストールを試みました。ベースはPythonなので比較的カンタンです。denyhosts は ipaddr が必要なので、まずはそちらを導入します。
# wget "https://github.com/google/ipaddr-py/archive/master.zip"
# unzip master.zip
# cd ipaddr-py-master/
# python3 ./setup.py install
running install
running build
running build_py
running install_lib
running install_egg_info
Removing /usr/local/lib/python3.6/site-packages/ipaddr-git-py3.6.egg-info
Writing /usr/local/lib/python3.6/site-packages/ipaddr-git-py3.6.egg-info
次に、denyhosts のソースを取得してから同様にセットアップします。
# wget "https://excellmedia.dl.sourceforge.net/project/denyhost/denyhost-3.1/denyhosts-3.1.tar.gz"
# tar zxvf denyhosts-3.1.tar.gz
# cd denyhosts
# python3 ./setup.py install
(略)
これで一通りのファイルは導入されました。しかしこのままだと、systemctl でコントロールできないので、.service をソースからコピーして設定します。
# ln -s /usr/local/bin/denyhosts.py /usr/bin/denyhosts.py
# cp ./denyhosts.service /usr/lib/systemd/system/
# chmod 644 /usr/lib/systemd/system/denyhosts.service
# chown root /usr/lib/systemd/system/denyhosts.service
# systemctl link /usr/lib/systemd/system/denyhosts.service
# systemctl enable /usr/lib/systemd/system/denyhosts.service
# systemctl is-enabled denyhosts.service
enabled
# systemctl stop denyhosts.service
これで登録できました。最初にシンボリックリンクを貼っているのは、.serviceファイルに書かれている .py 先が /usr/bin だからです。ここを書き換えてもいいのですが、自分はシンボリックリンクを貼りました。
次に denyhosts.conf を編集します。
# vi /etc/denyhosts.conf
SECURE_LOG = /var/log/auth.log
↓
#SECURE_LOG = /var/log/auth.log
#SECURE_LOG = /var/log/secure
↓
SECURE_LOG = /var/log/secure
CentOS8 は /var/log/secure を利用しているので、そちらを参照するようにします。他の設定は denyhosts.conf のままなので、他のサイトを見て回ってください(笑)
PURGE_DENY = 1w
PURGE_THRESHOLD = 5
DENY_THRESHOLD_VALID = 5
DENY_THRESHOLD_ROOT = 2
自分はこの辺を変えておけばいいんじゃないかと思います。メール通知の設定もあるのですが、ほっとくと異常な程、中●とか韓●からsshdアタックが来るので見ないようにしています。正しくブロックしてくれればそれで良しとします。
# systemctl restart denyhosts
# ps ax | grep "denyhosts"
33974 ? S 0:00 /bin/python3 /usr/bin/denyhosts.py --daemon --config=/etc/denyhosts.conf
33977 pts/0 R+ 0:00 grep --color=auto denyhosts
これにて起動完了です。