【Ubuntu】不正アクセスの痕跡を調べる方法 – ログの確認からプロセス・ネットワークの監視まで

この記事は約8分で読めます。

Ubuntuサーバーを運用していると、セキュリティ上の懸念から不正アクセスの有無を確認したい場合があります。ここでは、不正アクセスの痕跡を調べるための具体的な方法をステップバイステップで解説します。

目次:

  1. ログイン履歴の確認
  2. 認証ログ(auth.log)の確認
  3. 不審なプロセスの確認
  4. ネットワークの監視
  5. 不正アクセス発見時の対応
  6. まとめ

ステップ1: ログイン履歴の確認

lastlogとlastコマンドを使ってログイン履歴をチェックしよう

  1. コマンド「lastlog」で全ユーザーの最終ログイン日時を確認します。
    $ lastlog
    Username         Port     From             Latest
    root             pts/0    192.168.1.100    Tue Apr 25 15:30:02 +0900 2023
    user1            pts/1    192.168.1.101    Mon Apr 24 10:15:23 +0900 2023
    user2                                      **Never logged in**
    

    未知のユーザーや、想定外の時間帯のログインがないか確認します。

  2. 特定ユーザーの最終ログインは以下のコマンドで確認できます。
    $ lastlog -u user1
    Username         Port     From             Latest
    user1            pts/1    192.168.1.101    Mon Apr 24 10:15:23 +0900 2023
    
  3. コマンド「last」で直近のログイン履歴を確認します。
    $ last
    user1    pts/1    192.168.1.101    Mon Apr 24 10:15   still logged in
    root     pts/0    192.168.1.100    Mon Apr 24 09:30 - 10:15  (00:45)
    reboot   system boot  5.4.0-1104-gcp  Mon Apr 24 09:28   still running
    

    直近n回分を確認するにはlast -n [n]を使用します。

  4. コマンド「who」で現在ログイン中のユーザーを確認します。
    $ who
    user1    pts/1    2023-04-24 10:15 (192.168.1.101)
    

    who -qでログイン中ユーザー数も確認できます。

    $ who -q
    user1
    # users=1
    

ステップ2: 認証ログ(auth.log)の確認

auth.logを確認して不審なログイン試行を見つけよう

Ubuntuでは、認証に関するログは「/var/log/auth.log」に記録されます。

  1. ログイン失敗の記録を確認するには以下のコマンドを実行します。
    $ grep "sshd.*Failed" /var/log/auth.log
    Apr 23 15:20:12 ubuntu sshd[1234]: Failed password for root from 192.168.1.200 port 12345 ssh2
    Apr 23 18:45:01 ubuntu sshd[5678]: Failed password for invalid user test from 192.168.1.201 port 54321 ssh2
    
  2. ログイン成功の記録は以下のコマンドで確認できます。
    $ grep "sshd.*Accepted" /var/log/auth.log
    Apr 24 09:30:15 ubuntu sshd[1234]: Accepted password for root from 192.168.1.100 port 12345 ssh2
    Apr 24 10:15:23 ubuntu sshd[5678]: Accepted password for user1 from 192.168.1.101 port 54321 ssh2
    

    知らないIPアドレスからrootなどの権限でログイン成功している形跡がある場合、不正アクセスの可能性が高いです。

ステップ3: 不審なプロセスの確認

psとtopコマンドで不審なプロセスをチェックしよう

  1. psコマンドで現在実行中のプロセス一覧を表示します。
    $ ps aux
    USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
    root         1  0.0  0.1 225704  9416 ?        Ss   Apr24   0:03 /sbin/init
    root         2  0.0  0.0      0     0 ?        S    Apr24   0:00 [kthreadd]
    ...
    

    覚えのないプロセスがないか確認します。

  2. topコマンドでリアルタイムにプロセスを監視することもできます。
    $ top
    top - 16:20:30 up 6 days, 22:50,  1 user,  load average: 0.08, 0.02, 0.01
    Tasks: 109 total,   1 running, 108 sleeping,   0 stopped,   0 zombie
    %Cpu(s):  0.3 us,  0.3 sy,  0.0 ni, 99.3 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
    MiB Mem :   3937.0 total,   3298.0 free,    243.0 used,    396.0 buff/cache
    MiB Swap:      0.0 total,      0.0 free,      0.0 used.   3506.0 avail Mem
    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
    1 root      20   0  225704   9416   7752 S   0.0   0.2   0:03.53 systemd
    2 root      20   0       0      0      0 S   0.0   0.0   0:00.02 kthreadd
    ...
    

    CPU使用率やメモリ使用量が異常に高いプロセスがあれば、調査が必要です。

ステップ4: ネットワークの監視

netstatとtcpdumpでネットワーク接続状況を確認しよう

  1. netstatコマンドでネットワーク接続状況を確認します。
    $ netstat -tupn
    Active Internet connections (w/o servers)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
    tcp        0      0 192.168.1.10:22         192.168.1.101:54321     ESTABLISHED 1234/sshd: user1
    tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      5678/master
    ...
    

    不審なポートの開放や、知らない通信先への接続がないか確認します。

  2. tcpdumpなどのパケットキャプチャツールを用いて、通信内容を詳しく調査することもできます。
    $ tcpdump -i eth0 -n
    tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
    listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
    16:25:20.123456 IP 192.168.1.101.54321 > 192.168.1.10.22: Flags [P.], seq 1234567890:1234568000, ack 9876543210, win 65535, length 110
    16:25:20.123457 IP 192.168.1.10.22 > 192.168.1.101.54321: Flags [.], ack 110, win 65535, length 0
    ...
    

ステップ5: 不正アクセス発見時の対応

不正アクセスが見つかったら速やかに対策を講じよう

万が一不正アクセスの形跡が見つかった場合は、以下のような対策を速やかに講じましょう。

  1. パスワードの変更
  2. 不要なアカウントの削除
  3. 脆弱性の修正
  4. 状況によっては新しいサーバーへの移行
  5. 定期的なバックアップの取得

まとめ

Ubuntuサーバーの不正アクセスチェックのポイント

以上のステップを実行することで、Ubuntuサーバーへの不正アクセスの有無をある程度把握できます。ログの定期的なチェックに加え、ファイル改ざん検知ツールの導入なども検討し、多角的にサーバーの安全性を確保していくことが重要です。

セキュリティはシステム運用における重要な課題です。定期的な監視と適切な対策を継続して行うことで、安全で信頼できるサーバー環境を維持していきましょう。

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