DenyHostsのブロックをIPアドレス指定で解除するスクリプト

 2024年8月9日

denyhosts

自分用メモです。

タイトルの通りで、DenyHosts で自分の IP アドレスがブロックされちゃった!なんて時に、特定アドレスだけブロックを解除する方法です。

※2012/8/28 ソースの体裁を改善

調べてみると、

DenyHosts FAQ : How can I remove an IP address that DenyHosts blocked?

という事なんですが、いちいちこれをするのは面倒そうなんで調べたらこんなスクリプトを書いている方がおられる…。

Aquarionics » To remove a host that denyhosts has banned

以下、引用。これならペペッと出来そうでお便利。

#/bin/sh
REMOVE=$1

/etc/init.d/denyhosts stop

cd /var/lib/denyhosts
for THISFILE in hosts hosts-restricted hosts-root hosts-valid users-hosts;
do
mv $THISFILE /tmp/;
cat /tmp/$THISFILE | grep -v $REMOVE > $THISFILE;
rm /tmp/$THISFILE;
done;

mv /etc/hosts.deny /tmp/
cat /tmp/hosts.deny | grep -v $REMOVE > /etc/hosts.deny;
rm /tmp/hosts.deny

/etc/init.d/denyhosts start

denyhosts.conf 内の WORD_DIR の場所によっては書き換えが必要です。

使い方は以下。

# denyhostsremove.sh 解除したいIPアドレス

IP アドレス決め打ちでずっと許可するなら /var/lib/denyhosts/allowed-hosts への追加も要検討でしょう。

しかし、grep –v なんてオプションあるのか…。

検索用キーワード:制限解除, 削除

Hatena Pocket Line

コメントを記入