Linux OS で記録されるセキュリティログ・セキュアログについて解説します。
サーバーへの SSH 接続、ログイン操作が記録されるファイルです。
過去に遡って履歴を調べることで、不正ログインの有無などが調査できます。
Linux のセキュリティログ・セキュアログとは
/var/log/secure
に格納されているテキストファイルです。
ログローテーションが設定されていると、複数ファイルに分かれている場合もあります。
認証に関するログが記録されており、初期状態では root ユーザーでしか開けません。
以下の操作が行われると、時刻と合わせてファイルに書き込まれます。
- サーバーにログインしたとき
- su コマンドで root に昇格したとき
- sudo コマンドを使用したとき
- SSH デーモンが起動・停止したとき
- パスワード入力を間違えたとき
- SSH 接続を切断したとき
基本的にはシステムが書き込むためのファイルです。
自分の操作で編集してしまわないように、注意しましょう。
secure ログで不正アクセスを確認する
前述の通り、SSH やログインに関する捜査が記録されているため、
不正アクセスの有無を確認する用途でも活用できます。
secure ログに対して grep 検索を掛けることで、SSH ログイン履歴を抽出します。
以下の例では、2時間ほどサーバーにログインしていたことが分かります。
$ cat /var/log/secure | grep "sshd" | grep "from"
Sep 23 14:04:26 centos sshd[2544]: Accepted password for hoge from 10.0.0.20 port 56661 ssh2
Sep 23 16:02:23 centos sshd[2545]: Received disconnect from 10.0.0.20 port 56661:11: disconnected by server request
Sep 23 16:02:23 centos sshd[2545]: Disconnected from 10.0.0.20 port 56661
ログローテートされた過去ファイルも一括で検索できます。
$ cat /var/log/secure* | grep "sshd" | grep "from"
ローテート時に gzip で圧縮している場合は、zcat
コマンドで展開できます。
$ zcat /var/log/secure-* | grep "sshd" | grep "from"
サーバーへの不正ログインを防ぐための SSH 対策
サーバーへの不正ログインを防ぐためには様々な方法があります。
公開鍵認証を使う
効果が高い方法の一つは、SSH ログイン時に公開鍵暗号を使って認証することです。
パスワード認証よりも安全性が高く、破られる可能性が低くなります。
SSH ポート番号を変える
安全面での効果は薄いものの、「SSH のポート番号を22番以外にする」対策があります。
ポートスキャンをされると意味がありませんが、22番を狙い撃ちしてくる攻撃を避けられます。
踏み台サーバーを利用する
サーバーが多数存在する場合は、SSH を中継する踏み台サーバーを用意しましょう。
各サーバーでは、踏み台経由のログインのみを許可するように設定します。
SSH の入口を踏み台サーバーに限定することで、ログイン経路の絞り込みが可能です。
インターネットから各サーバーに直接入れないため、各種アタックも防ぎやすくなります。
まとめ
Linux OS で記録されるセキュリティログ(セキュアログ)を解説しました。
サーバーへのログインや root に関する操作が記録されています。
ログイン履歴の調査にも使えるため、トラブル発生時などに重要な情報となります。
【関連記事】
⇒ Webサイトの不正アクセス対策
⇒ AWS WAF で DoS 攻撃をブロックする
⇒ エックスサーバーのセキュリティを強化