CentOS8 に denyhosts を導入する

(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

これにて起動完了です。

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください