☆☆ 新着記事 ☆☆

2018年12月17日月曜日

Linux の ログ格納場所一覧 と SSH アクセスログをみる


Linuxサーバーの各種ログの場所と役割と、ログ分析するのに便利なコマンドをまとめておきます。 実際に、ログをみてみると 'root' アカウントで進入を試みるアクセスが非常に多いことを再確認です。


1. Linuxに関するログ情報の概要

Linuxには、色々なログ情報が保存されますので、その主要なログの一覧をまとめておきます。

これらは、cat [ 該当ディレクトリ] で確認できます。

① /var/log/messages
内容:一般的なシステム・アクティビティー情報
用途:比較的重要ではないシステムメッセージ等
*Debian系システムでは、  /var/log/syslog に格納

② /var/log/auth.log
内容:DebianやUbuntu関連の認証に関する情報
用途:失敗したログインの履歴 等

③ /var/log/secure
内容:RedHat や CentOS関連の認証に関する情報
用途:sudo, SSH、その他の失敗したログインの履歴 等

④ /var/log/boot.log
内容:system initialization script, /etc/init.d/bootmisc.sh,などのからの情報レポジトリー
用途:予期しないシャットダウンなどの時に最初に調査する

⑤ /var/log/dmesg内容:カーネル・リング・バッファーのメッセージやデバイスとドライバー関連。
用途:ハードウェアが正しく認識されているか、等の確認

⑥/var/log/kern.log
内容:カーネル関連の情報
用途:カーネルに関連したトラブル・シュート。

⑦ /var/log/faillog
内容:ログインに失敗したアクセス情報
用途:ユーザ名、パスワードのハッキング、ブルート・フォース等の
   セキュリティー関連のチェック

⑧ /var/log/cron
内容:cronのjobに関する情報
用途:cronの実行、エラー情報の確認

⑨/var/log/yum.log
内容:yumコマンドで取得されたパッケージに関する情報
用途:インストールされたパッケージの確認 等

⑩ /var/log/maillog or /var/log/mail.log
内容:メールサーバーに関する情報
用途:送受信したメールの履歴 等

⑪ var/log/httpd/
内容:Apacheサーバーに関するログ
   – error_logaccess_log がある。
用途:エラー・ログには、メモリーに関連するhttpdのエラー情報も格納される。
   httpに関するApacheのログは、アクセス・ログに格納される。

⑫ /var/log/mysqld.log or /var/log/mysql.log
内容:MySQLに関連するログ
用途:[mysqld] や [mysqld_safe]に関する、全てのデバッグ・実行・エラー情報が確認できる。

CentOS7の ' var/log ' directoryのファイル一覧

[root@ log]# ls -a
.                  boot.log-20181215  dmesg.old         messages
..                 boot.log-20181216  firewalld         messages-20181216
anaconda           boot.log-20181217  httpd             secure
audit              btmp               lastlog           secure-20181216
boot.log           chrony             letsencrypt       tuned
boot.log-20181212  cron               maillog           wakame-init.log
boot.log-20181213  cron-20181216      maillog-20181216  wtmp
boot.log-20181214  dmesg              mariadb           yum.log

[root@8 log]# cd httpd
[root@ httpd]# ls -a
.   access_log           error_log           ssl_access_log  ssl_request_log
..  access_log-20181216  error_log-20181216  ssl_error_log
( *青字はディレクトリ


2. テキスト・データを見やすく加工するコマンド一覧

cutコマンド
テキストファイルを横方向に分割するコマンド

-d (オプション--delimiter):区切り文字を指定する
(-dオプションは、次の-fオプションと組み合わせて使用する。)
-f (オプション--fields):
-dオプションによって区切られた項目の中で取り出したい項目を項目数で指定する

Sort コマンド
ファイルの内容を並べ替えるコマンド
書式は、[$ sort ファイル名]だが、ファイルに書き出したい場合はリダイレクトして
[$ sort 並べ替え対象ファイル > 並べ替え出力ファイル]

-n(オプション--numeric-sort):数値として並べ替える。
-r(オプション--reverse):降順で並べ替える。
uniqコマンド
ファイルから重複する行を削除するコマンド
-cオプション:(--countオプション):重複した行数も表示する

wcコマンド
ファイルの大きさを確認する
書式は、[$ wc ファイル名]
行数、1白で区切られた単語数、ファイル容量(バイト数)の順で表示される。
( -l オプションは、行数のみ表示)

[root@ httpd]$ wc access_log
  1141  21934 206777 access_log

3. 'secure' に記録されたアクセス・データを見てみる

(1) 集計したいログのフォーマット
Dec 18 19:34:31 [localhost] sshd[29049]: Failed password for root from 122.194.229.48
port 35810 ssh2

[root@log]# grep 'Failed password ' /var/log/secure | grep 'Dec 18' | wc -l
5583
[root@ log]# grep 'maximum authentication attempts' /var/log/secure | grep 'Dec 18' | wc -l
1033
[root@ log]# grep 'maximum authentication attempts' /var/log/secure | grep 'Dec 17' | wc -l
9
[root@ log]# grep 'maximum authentication attempts' /var/log/secure | grep 'Dec 16' | wc -l
9

[root@ log]# grep 'Failed password' /var/log/secure | grep 'Dec' | cut -d ' ' -f 9 | sor
t -n | uniq -c | sort -nr
   5987 root
     77 invalid
      1 sshd
[root@ log]# grep 'maximum authentication attempts'  /var/log/secure | grep 'Dec' | cut -d ' ' -f 12 | sort -n | uniq -c | sort -nr
   1059 root  
     46 invalid
      2 adm
      1 ftp


4. 'secure' に記録されたアクセスに成功したログを見てみる

ログイン・アテンプトで失敗してるのは数えきれないので、こちらの方が大事ですね。

grep Accepted /var/log/secure




**(追記)6時間で 11,761回の同じIPアドレスからのアテンプト**

Last failed login: Wed Dec 19 00:51:50 JST 2018 from 122.194.229.48 on ssh:notty
There were 11761 failed login attempts since the last successful login.
Last login: Tue Dec 18 18:54:10 2018 from 210.160.37.26
[root@ ~]# cd /
[root@ /]# cd var/log
[root@ log]# grep 'Failed password' /var/log/secure | grep 'Dec' | cut -d ' ' -f 9 | sort -n | uniq -c | sort -nr
  16154 root
    127 invalid
      1 sshd
      1 nobody
      1 mysql

CentOS 7 Firewalld で特定のIPアドレスの接続を拒否する】で、早速、このIPアドレスを
ブロックしました。

** (追記終了) **
 
 

[root@log]# grep 'Failed password' /var/log/secure | grep 'Dec' | cut -d ' ' -f 11 | so
rt -n | uniq -c | sort -nr
   5944 122.194.229.48 ← 悪者!!
     31 61.188.189.7
     15 218.92.1.151
      6 114.225.67.138
      6 112.154.249.122
      6 106.215.87.44
      5 admin
      5 139.59.146.113
      3 user
      2 nfsnobod
      2 git

という感じです。

鍵認証をしているから、パスワードが破られることはないと思いますが。

強盗が家までやってきて、中にいるのはわかってるんだぞ!
と、鍵をガチャガチャやってる感じ。

rootは、狙われるということを再確認。

悪者情報!!: whois IP lookup
inetnum:        122.192.0.0 - 122.195.255.255
netname:        UNICOM-JS
descr:          China Unicom Jiangsu province network
descr:          China Unicom
country:        CN
中国からでした!!


参考)
https://www.eurovps.com/blog/important-linux-log-files-you-must-be-monitoring/
(Linuxコマンド)
https://eng-entrance.com/linux-command-cut
https://eng-entrance.com/linux-command-sort

0 件のコメント:

コメントを投稿