Skip to main content

DenyHostsでサーバを守ろう!

サーバ運用してると色んな所から攻撃されたりアクセスしてきたりと困ったこと多々ありますよね。
そういうとき便利なのがこの「DenyHosts」

自分の設定で不要なアクセスを排除してくれます。
原理はというと指定したサービスのログを取り設定したしきい値を超えるとIPアドレスをhosts.denyに書き込んでくれます。

ただhosts.denyアプリケーションレベルで動作するので必ずiptablesとセットで使って下さい。
(まぁiptables設定してない人なんていないと思うけど・・・)

インストール

yum install denyhosts

CentOS使っているので簡単インストール

IP許可リスト

cp -p /var/lib/denyhosts/allowed-hosts{,.orig}
vi /var/lib/denyhosts/allowed-hosts

IP許可リストです。
ここに登録したIPはDenyHostsの対象外になります。

設定ファイル

cp -p /etc/denyhosts.conf{,.orig}
vi /etc/denyhosts.conf

設定項目

# ログインに失敗したユーザーをブロックする期間
PURGE_DENY = 2h

# ログインに失敗してブロックしたユーザーをBANするまでのしきい値
PURGE_THRESHOLD = 5

# 監視するサービス名
BLOCK_SERVICE  = sshd

# ログイン失敗時ブロックを開始するまでのしきい値

# 存在しないユーザー
DENY_THRESHOLD_INVALID = 5

# 存在するユーザー
DENY_THRESHOLD_VALID = 5

# root
DENY_THRESHOLD_ROOT = 1

# WORK_DIR/restricted-usernamesファイルに書かれているユーザー
DENY_THRESHOLD_RESTRICTED = 1

# ログイン失敗時ブロックをした回数をリセットするまでのしきい値

# 存在するユーザー
AGE_RESET_VALID=5d

# root
AGE_RESET_ROOT=25d

# WORK_DIR/restricted-usernamesファイルに書かれているユーザー
AGE_RESET_RESTRICTED=25d

# 存在しないユーザー
AGE_RESET_INVALID=10

# ログイン成功時ログイン失敗した回数をリセット
RESET_ON_SUCCESS = yes

あんまり厳しく設定し過ぎると自分すらBANされてしまうので要注意!