DenyHostでssh攻撃を防ぐ

インストール



wget http://jaist.dl.sourceforge.net/sourceforge/denyhosts/DenyHosts-2.6.tar.gz
tar zxvf ./DenyHosts-2.6.tar.gz
cd DenyHosts-2.6
python setup.py install


設定


cd /usr/share/denyhosts/
cp denyhosts.cfg-dist denyhosts.cfg


  • SECURE_LOG = /var/log/secure

  • セキュリティログの場所。
    特に、sshdのエラー関係が記録されるログファイル。
  • HOSTS_DENY = /etc/hosts.deny

  • 拒否ホストの情報が書かれているファイル。
  • PURGE_DENY =

  • 一旦拒否アドレスに追加したとき、その拒否を解除するまでの時間。
    m(分)h(時間)d(日)w(週間)y(年間)のオプションを付けます。
  • PURGE_THRESHOLD =

  • 何回拒否アドレスに追加されたら、「永久拒否アドレス」(解除しない)にするか。
  • BLOCK_SERVICE =

  • どのサービスへのアクセスを拒否するか。
    ALLにすれば、全てのサービス、sshdにすれば、sshでのアクセスを拒否。
  • DENY_THRESHOLD_INVALID =

  • 何回認証失敗したら拒否リストへ入れるか。
    これは、システムに登録されていないユーザを使った場合の設定。
  • DENY_THRESHOLD_VALID =

  • これは、システムに存在するユーザ(つまり、パスワードが違う)を使った場合。
    あまり少なくすると、パスワード打ち間違いが何度かあったときに自分までロックされる。
  • DENY_THRESHOLD_ROOT =

  • これは、rootで認証に失敗した場合。
    rootでいきなりログインできるようにはしていないと思いますが・・・。
    ここを1にしておくと、間違えてrootで認証かけてしまったときに、自分が拒否リストに入ってしまう。
  • ADMIN_EMAIL =

  • 拒否リストへ追加されたホストの情報をメールで送信する場合、その送信先アドレス。
  • SMTP_HOST =

  • SMTP_PORT =

  • 上記メールの送信サーバとポート番号
  • SMTP_USERNAME=

  • SMTP_PASSWORD=

  • メール送信にユーザ名とパスワードが必要な場合。
  • SMTP_FROM =

  • メールの差出人
  • SMTP_SUBJECT =

  • メールのタイトル(件名)
  • AGE_RESET_VALID =

  • 認証失敗(拒否アドレスにはまだ追加されていない)からここで設定した日数経過すると、カウントが0になって、また1回目の認証になる。
    これは、システムに登録されているユーザ名での場合。
  • AGE_RESET_ROOT =

  • これは、rootの場合。
  • AGE_RESET_INVALID =

  • これは、システムに登録されていないユーザ名での場合。
  • RESET_ON_SUCCESS =

  • ここをyesにしておくと、認証失敗しても、(拒否アドレスに追加されるまでなら)認証に成功したら認証失敗のカウントがリセットされる。
    noにしておくと、認証に成功しても先回の認証失敗は指定(AGE_RESET_XXX)期間中カウントされている。


起動



cp daemon-control-dist daemon-control
chown root daemon-control
chmod 700 daemon-control
cd /etc/rc.d/init.d/
ln -s /usr/share/denyhosts/daemon-control denyhosts
/etc/rc.d/init.d/denyhosts start

0 コメント: