Linuxのサーバーを運用していると、ログの確認は非常に重要な作業のひとつです。とくにセキュリティ面で重要となるのが「認証ログ」です。ユーザーのログイン情報、不正なアクセスの試行、sudoコマンドの使用履歴など、重要な手がかりがすべて記録されているのが /var/log/auth.log
ファイルです。この記事では、auth.log
の場所や確認方法、読み方のポイント、活用の仕方までをわかりやすく解説します。Linux初心者の方から、日常的に管理を行うサーバー管理者の方まで役立つ内容を目指しています。
/var/log/auth.logとは何か?
/var/log/auth.log
は、Linuxで発生した「認証」に関する記録を保管しているログファイルです。Debian系(Ubuntuなど)のディストリビューションで使用されており、Red Hat系(RHEL、CentOSなど)では secure
というファイルが同様の役割を果たします。
このファイルには、以下のような情報が含まれています。
- SSHログインの成否
- su、sudoコマンドの使用履歴
- PAM(Pluggable Authentication Modules)による認証プロセス
- ログイン失敗(認証エラー)の記録
- システムへのアクセス試行の記録
つまり、システムに「誰が」「いつ」「どこから」「どうやって」アクセスしようとしたのかがわかるため、不正アクセスの調査やトラブルシューティングに不可欠なファイルです。
認証ログを確認する基本的な方法
まず、認証ログを確認するにはコマンドラインで以下のコマンドを実行します。
sudo less /var/log/auth.log
less
コマンドを使うことで、ログをスクロールしてじっくり確認することができます。リアルタイムで確認したい場合には、tail -f
コマンドが便利です。
sudo tail -f /var/log/auth.log
特定のキーワードで検索したいときには、grep
を組み合わせて使います。
sudo grep "Failed" /var/log/auth.log
これは、ログイン失敗のログを抽出する例です。他にも「Accepted」「sudo」「session opened」など、目的に応じて検索ワードを変更しましょう。
認証ログの主な記録内容とその意味
では、実際にログに出力される内容を具体的に見ていきましょう。
SSHログイン成功の記録
Mar 30 09:12:45 server-name sshd[12345]: Accepted password for user1 from 192.168.1.100 port 53422 ssh2
このログからは以下の情報が読み取れます。
user1
がログインに成功した- ログイン方法は「パスワード認証」
- アクセス元IPは
192.168.1.100
- 接続元ポートは
53422
- SSHプロトコルはバージョン2
SSHログイン失敗の記録
Mar 30 09:15:02 server-name sshd[12346]: Failed password for invalid user testuser from 192.168.1.200 port 42101 ssh2
このログは不正なログイン試行があったことを示しています。重要な点は「invalid user」となっていることで、存在しないユーザー名でアクセスを試みた痕跡です。不正アクセスの兆候と判断できます。
sudoコマンドの使用
Mar 30 09:17:01 server-name sudo: user1 : TTY=pts/0 ; PWD=/home/user1 ; USER=root ; COMMAND=/bin/ls
このログからは、user1
が sudo
を使って /bin/ls
コマンドを root
権限で実行したことがわかります。
セッションの開始と終了
Mar 30 09:20:00 server-name sshd[12347]: pam_unix(sshd:session): session opened for user user1 by (uid=0)
Mar 30 09:25:10 server-name sshd[12347]: pam_unix(sshd:session): session closed for user user1
このように、セッションが開始された時間と終了した時間が明確に記録されています。誰がどれくらいログインしていたかを把握できます。
よく使うログ確認コマンドの例
最後のログイン成功を確認する
sudo grep "Accepted" /var/log/auth.log
不正ログインの試行を確認する
sudo grep "Failed password" /var/log/auth.log
sudoの使用履歴を確認する
sudo grep "sudo" /var/log/auth.log
ログを日付順に並べて確認する
ログのファイルサイズが大きい場合、zcat
コマンドで圧縮ログも確認可能です。
zcat /var/log/auth.log.*.gz | grep "Failed password"
ログをローテーションしている場合の注意点
Linuxでは、ログファイルが肥大化しないように「ログローテーション」という仕組みが導入されています。これにより、auth.log
は一定期間ごとにバックアップされ、以下のようなファイル名で保存されます。
/var/log/auth.log.1
/var/log/auth.log.2.gz
.gz
は圧縮されているファイルなので、zcat
や zless
で内容を確認しましょう。
zless /var/log/auth.log.2.gz
古いログを調査する際には、このように過去のファイルもチェックすることが重要です。
異常なログを見抜くポイント
認証ログを見るとき、特に以下のような内容があれば注意が必要です。
- 1秒間に複数回のログイン失敗 → ブルートフォース攻撃の可能性
- 深夜や通常使われない時間帯のログイン
- 存在しないユーザーでのアクセス試行
- 同一IPから複数ユーザーでのアクセス
これらが継続的に記録されている場合、ファイアウォールやfail2banなどの対策を検討する必要があります。
ログを定期的に監視するには
人の目で毎日ログを確認するのは現実的ではありません。そこで、以下のような手法が有効です。
logwatch
を使ってメールでログサマリーを受け取るfail2ban
を導入して不正アクセスを自動でブロック- 自作スクリプトでログの異常検出を自動化
- ZabbixやPrometheusなどの監視ツールと連携
システムの規模や用途に応じて、定期監視の仕組みを整えておくことでセキュリティリスクを大幅に減らすことができます。
まとめ
/var/log/auth.log
は、Linuxシステムにおける「認証」の動きをすべて記録している重要なログファイルです。正しく活用すれば、不正アクセスの兆候を早期に発見したり、トラブル時の原因追及に役立ったりします。今回ご紹介した確認方法や読み方のポイントを押さえ、日常的なサーバー管理に役立ててください。
認証ログは「システムの健康診断書」ともいえる存在。ときどきでいいので中身を見て、「何か変なことは起きていないか?」とチェックする習慣をつけることが、セキュリティの第一歩です。