サーバを管理する際にはsshでIDとパスワードを使ってログインを行うのですが、
そのIDとパスワードを総当たり攻撃(brute force attack)してパスワードを割り出すというのが
古典的にあるサーバーを乗っ取る方法。

人手でやると気の遠くなる単純作業ですが、コンピュータにやらせる分にはルールを書いてしまえばあとは動かしたまま放っておくだけなので総当たり攻撃にはむいてるんですね。

で、借りてるサーバーにたいしてここらへんのセキュリティ設定を怠けていたので、
この機会にちゃんとやっておきました。
***
方法はdenyhostsというものを導入するもの
参考 http://www.omnioo.com/record/ubuntudebian/ubuntudebian-ssh-denyhosts/

まず、sshのアクセス履歴は/var/log/auth.logに入っているのでそれを見てみる。
grep 'Accepted' /var/log/auth.log
で正常にログインされた( Accepted が含まれた行)を表示させると、
自分がsshでサーバーにログインした履歴が見えます.
(ここで、自分の知らないIPアドレスからのログイン情報が見えていたらもう手遅れ)

次に、
grep 'Bye' /var/log/auth.log
ではじかれたアクセス(Byeが含まれた行)を表示させると、
知らないIPアドレスから10秒おきくらいにめっちゃアクセスされてる。100回以上。
この記事を書いている段階だとどこにもIPアドレスとかURLを公開していないですが、めっちゃブルートフォースアタックを受けてます。
参考程度にそのIPアドレスから住所を検索してみると、メキシコとかカリブ海とかブラジルとかいろいろ

で、その対策にdenyhostsをインストール。
apt-get install denyhosts
その後、設定ファイルを編集
vim /etc/denyhosts.conf
編集の際の各パラメータの意味は参考ページを見るとわかりやすいです。
何回ログインに失敗したら一定期間アクセスできないようにするか、とか、
denyhostsのパラメータをいろいろ設定します。
(デフォルトのままでも大丈夫だけど、単純に自分のログインミスですぐにブラックリストに入れられたら困るので少し緩めに変更)
設定が終わったら再起動
service denyhosts restart
ログの確認は以下で
cat /var/log/denyhosts

これで、失敗し続ければアクセスできなくなるので
何度もアクセスしてパスワードを割る総当たり攻撃に耐性がつけられる。

追記...
ホワイトリストを追加するには
vim /etc/hosts.allow
を編集して
sshd: 111.111.111.111
という感じに許可するIPアドレスを書いておく
この後に、sshのポート番号変更もやっておいた