/var/log/btmp とは、肥大化する理由と対策方法

目次

スポンサードリンク

/var/log/btmp は 不正なログイン試行に関する情報を記録するファイルです。ブルートフォースアタックなど、Linuxサーバーに不正なログイン試行があった場合、短時間に大量のログが書き込まれ、ファイルサイズが肥大化することがあります。

対策1:/var/log/btmp のローテーション設定を確認・修正する

Linuxにはログファイルが一定サイズを超えないようローテーション(古いログをアーカイブしたり削除したりする仕組み)の仕組みが備わっています。/var/log/btmp をローテーションする設定を加えることでサイズの肥大化を防ぐことができます。

設定ファイルは /etc/logrotate.d/btmp (または /etc/logrotate.conf) にあります。 以下は設定のサンプルです。サンプルではサイズが 1GB を超えたらローテーションし、過去 5世代のログを保持するようにできます。

/var/log/btmp {
    size 1G
    rotate 5
    missingok
    create 0600 root utmp
    # compress  # 必要であれば圧縮を有効にする
}

設定を加えたら以下のコマンドを実行してローテーションを強制的に実行し、設定が有効になるか確認します。

# logrotate -v /etc/logrotate.d/btmp

対策2:/var/log/btmp を手動で空にする

ローテーション設定を変更してもすぐにディスク容量が回復するわけではありません。一時的な対処方法ですが、以下のコマンドで /var/log/btmp を空にすることができます。ただし、この操作を行うとそれまでの不正なログイン試行の記録がすべて失われますので、事前にファイルをバックアップするなど注意してください。

# truncate -s 0 /var/log/btmp

環境によっては以下のエラーが出ることがあります。システムが truncate コマンドを見つけられないことを意味します。

-bash: truncate: command not found

以下コマンドで truncate コマンドを利用できるようにしましょう。

# Debian/Ubuntu 系の場合
apt install coreutils

# Red Hat/CentOS/Fedora 系の場合
dnf install coreutils

truncate コマンドをインストールできない場合、代替手段として下記コマンドでも /var/log/btmp をクリアすることができます。権限の問題などで失敗する可能性があり、推奨される方法ではありません。あくまで他に方法が無い場合の代替手段です。

sudo sh -c '> /var/log/btmp'



Linuxコマンドについて学べるおすすめ書籍
Linuxコマンドの知識は、プログラマにとって長く役立つ知識です。 私はこちらの書籍で一通り知識を抑えました。基本から丁寧に解説されています。

Linux教科書 図解でパッとわかる LPIC/LinuC
はじめてLPICを受ける方向け、手を動かしながらLinuxについて学びたい方におすすめ。30日間の無料体験もできる『Kindle Unlimited』でも読むことができます。

Linuxコマンドについて徹底的に学べるUdemy講座
もう絶対に忘れない Linux コマンド【Linux 100本ノック+名前の由来+丁寧な解説で、長期記憶に焼き付けろ!】 icon