LinuxのSSHアクセス履歴を確認する方法|不正アクセスの早期発見にも有効!

Linux

Linuxサーバーを運用していると、こんな心配をしたことはありませんか?

  • 「もしかして、知らない間に誰かがログインしてない?」
  • 「不正アクセスされても気づけるかな…」
  • 「セキュリティの状況をちゃんと把握したい」

SSH(Secure Shell)でサーバーにアクセスできるということは、とても便利な反面、セキュリティのリスクもあるんです。

でも安心してください!Linuxには、SSHのアクセス履歴をしっかりと記録する仕組みが最初から備わっています。

この記事では、LinuxでSSHアクセス履歴を確認する方法を、初心者の方にも分かりやすく説明していきます。

「ログって難しそう…」と思っている方でも大丈夫。一緒に学んでいきましょう!


スポンサーリンク

SSHアクセスのログはどこに保存されているの?

Linuxでは、SSHのアクセス記録が自動的にログファイルに保存されています。

ログファイルの場所

Linuxの種類ログファイルの場所
Debian/Ubuntu系/var/log/auth.log
RedHat/CentOS/RHEL系/var/log/secure

確認方法

自分のサーバーがどちらか分からない場合は:

# Debian/Ubuntu系かチェック
ls /var/log/auth.log

# RedHat/CentOS系かチェック
ls /var/log/secure

どちらかのファイルが存在すれば、それがあなたのサーバーのSSHログファイルです。


基本のログ確認コマンドを覚えよう

では、実際にSSHのアクセス履歴を見てみましょう。

Debian/Ubuntu系の場合

sudo cat /var/log/auth.log | grep sshd

RedHat/CentOS系の場合

sudo cat /var/log/secure | grep sshd

コマンドの意味

  • sudo:管理者権限でファイルを読み取り
  • cat:ファイルの内容を表示
  • grep sshd:SSH関連の行だけを抽出

このコマンドを実行すると、SSH関連の接続・切断・認証失敗などのログが一覧で表示されます。

ちょっとしたコツ: 情報が多すぎる場合は、| tail -20 を付けると最新の20行だけを表示できます。

この章のまとめ: grep sshd でSSH関連のログだけを抽出できる。次は、ログの読み方を覚えてみましょう!


ログの読み方・重要なキーワードを覚えよう

ログには色々な情報が含まれていますが、特に重要なキーワードを覚えておきましょう。

よく見るログの例

Jan 23 14:30:15 server1 sshd[1234]: Accepted password for user1 from 192.168.1.10 port 54321 ssh2
Jan 23 14:35:22 server1 sshd[1235]: Failed password for invalid user root from 203.0.113.5 port 34567 ssh2
Jan 23 14:40:10 server1 sshd[1234]: Disconnected from 192.168.1.10 port 54321

重要なキーワード一覧

キーワード意味注意レベル
Accepted passwordパスワード認証でログイン成功正常(でも確認は必要)
Failed password認証失敗要注意(不正アクセスの可能性)
Invalid user存在しないユーザー名でアクセス試行危険(攻撃の可能性大)
Disconnectedセッション終了正常

読み方のコツ

  • 日時:いつアクセスがあったか
  • IPアドレス:どこからアクセスされたか
  • ユーザー名:誰がアクセスしようとしたか
  • 結果:成功したか失敗したか

この章のまとめ: 「Failed password」や「Invalid user」が多い場合は要注意!次は、もっと簡単にログイン履歴を確認する方法をご紹介します。


最近のSSHログイン履歴を簡単に確認する方法

「ログが読みにくい…」という場合は、lastコマンドが便利です。

last -ai | grep ssh

このコマンドの便利な点

  • ユーザー名IPアドレスログイン日時が分かりやすく表示される
  • 過去のログイン履歴を時系列順で確認できる
  • ログイン時間の長さも分かる

表示例

user1    ssh:192.168.1.10  Tue Jan 23 14:30 - 15:45 (01:15)
admin    ssh:192.168.1.20  Mon Jan 22 09:00 - 18:30 (09:30)

応用編: 特定のユーザーだけを確認したい場合:

last user1 | grep ssh


今現在ログインしているユーザーを確認しよう

「今、誰がサーバーにログインしているんだろう?」という時に使えるコマンドです。

現在のログインユーザーを確認

who

より詳しい情報を確認

w

表示される情報

  • ユーザー名:誰がログインしているか
  • ターミナル:どの接続経路か
  • ログイン時刻:いつからログインしているか
  • IPアドレス:どこからアクセスしているか
  • 実行中のコマンド:何をしているか(wコマンドの場合)

セキュリティチェックのポイント:

  • 知らないIPアドレスからのログインがないか
  • 見覚えのないユーザー名がないか
  • 不自然な時間のログインがないか


ログイン失敗回数をカウントして攻撃を検知しよう

「最近、ログイン失敗が多いような気がする…」という時は、数値で確認してみましょう。

ログイン失敗回数をカウント

grep "Failed password" /var/log/auth.log | wc -l

特定のIPアドレスからの攻撃回数をチェック

grep "Failed password" /var/log/auth.log | grep "203.0.113.5" | wc -l

今日の失敗回数だけを確認

grep "Failed password" /var/log/auth.log | grep "$(date +%b\ %d)" | wc -l

危険度の目安

  • 1日に10回以下:正常範囲(タイプミスなど)
  • 1日に50回以上:要注意(組織的な攻撃の可能性)
  • 1日に100回以上:危険(ブルートフォース攻撃の可能性大)

失敗回数が異常に多い場合は、fail2banなどの自動ブロックツールの導入を検討しましょう。


リアルタイムでSSHログを監視しよう

「攻撃を受けている最中に、すぐに気づきたい!」という場合は、リアルタイム監視が有効です。

リアルタイムログ監視コマンド

sudo tail -f /var/log/auth.log | grep sshd

このコマンドの便利な点

  • リアルタイムでログが画面に流れる
  • 怪しい接続を即座に発見できる
  • Ctrl+Cで監視を停止できる

応用編:失敗ログだけを監視

sudo tail -f /var/log/auth.log | grep "Failed password"

監視中に注意すべきサイン

  • 短時間に大量の「Failed password」
  • 見覚えのないIPアドレスからのアクセス
  • 存在しないユーザー名での試行

実用的なヒント: tmuxやscreenを使えば、監視を背景で続けながら他の作業もできます。


過去のログも忘れずにチェックしよう

Linuxでは、ログファイルが大きくなりすぎないように、定期的に古いログが圧縮保存される仕組みがあります。

ログローテーションとは

  • 現在のログ:/var/log/auth.log
  • 1つ前のログ:/var/log/auth.log.1
  • 2つ前のログ:/var/log/auth.log.2.gz(圧縮済み)

圧縮されたログを確認する方法

zcat /var/log/auth.log.2.gz | grep sshd

過去1週間のログをまとめて確認

# 現在のログ
cat /var/log/auth.log | grep sshd

# 1つ前のログ
cat /var/log/auth.log.1 | grep sshd

# 圧縮されたログ
zcat /var/log/auth.log.*.gz | grep sshd

注意点: ログの保存期間はシステム設定によって異なります。
重要なログは別途バックアップを取ることをおすすめします。


まとめ

SSHアクセス履歴の確認は、サーバーを守るうえで欠かせない基本中の基本です。

日常的にログを確認する習慣を持つことで、不審なアクセスを早期に発見し、適切に対処できる体制が整います。

ポイントおさらい

  • SSHログは決まった場所に保存されている(/var/log/auth.log または /var/log/secure
  • grep sshdでフィルタすると接続情報が見やすい
  • lastコマンドでログイン履歴を分かりやすく表示
  • whowコマンドで現在のログイン状況をチェック
  • 失敗回数をカウントして攻撃規模を把握
  • tail -fでリアルタイム監視も可能
  • 過去の圧縮ログzcatで確認できる

コメント

タイトルとURLをコピーしました