last: btmp: File too large
lastb
コマンドを実行したらlast: btmp: File too large
というエラーが返ってきた場合の対処方法。
$ lastb
last: btmp: File too large
ログファイル
ログファイルの確認
btmpファイルのサイズを確認すると非常に大きいサイズになっている。
$ ls -lah /var/log/btmp
-rw------- 1 root utmp 2.8G 1月 1 00:00 /var/log/btmp
splitでファイル分割
split
コマンドで大きくなりすぎたログファイルを分割 1
$ cd /var/log
$ split -b 500m btmp btmp_
$ ls -lah /var/log/btmp*
-rw------- 1 root utmp 2.8G 1月 1 00:00 btmp
-rw-r--r-- 1 root root 500M 1月 1 00:05 btmp_aa
-rw-r--r-- 1 root root 500M 1月 1 00:05 btmp_ab
-rw-r--r-- 1 root root 500M 1月 1 00:05 btmp_ac
-rw-r--r-- 1 root root 500M 1月 1 00:05 btmp_ad
-rw-r--r-- 1 root root 500M 1月 1 00:05 btmp_ae
-rw-r--r-- 1 root root 300M 1月 1 00:05 btmp_af
分割ファイルの参照確認
lastb
コマンドでの参照を確認。2
$ lastb -5 -f /var/log/btmp_af -adx
root ssh:notty Tue Jan 1 00:00 - 00:00 (00:00) 107.30.65.218.broad.xy.jx.dynamic.163data.com.cn
root ssh:notty Tue Jan 1 00:00 - 00:00 (00:00) 107.30.65.218.broad.xy.jx.dynamic.163data.com.cn
root ssh:notty Tue Jan 1 00:00 - 00:00 (00:00) 107.30.65.218.broad.xy.jx.dynamic.163data.com.cn
root ssh:notty Tue Jan 1 00:00 - 00:00 (00:00) 107.30.65.218.broad.xy.jx.dynamic.163data.com.cn
root ssh:notty Tue Jan 1 00:00 - 00:00 (00:00) 107.30.65.218.broad.xy.jx.dynamic.163data.com.cn
肥大化したログのクリア
ファイルを削除、再作成して権限を変更。3
$ rm /var/log/btmp
$ touch /var/log/btmp
$ chmod 600 /var/log/btmp
$ chown root:utmp /var/log/btmp
$ ls -lah /var/log/btmp
-rw------- 1 root utmp 0 1月 1 00:10 btmp
対策
公開鍵認証
SSH接続は公開鍵認証にしてパスワード認証を止める。
ポート番号の変更
22番ポートは狙われやすいので、他のポート番号に変更するだけでかなり変わる。
ログ監視とIP制限
Fail2banやDenyHosts、SshguardなどでSSHへのブルートフォースアタックを拒否する。4
Fail2banがデファクトスタンダードの模様。5