6 câu lệnh linux hay dùng trong phân tích log

Tram Ho

Hôm nay mình chia sẻ cho mọi người 1 số câu lệnh linux mình hay dùng trong phân tích log trên server.

1. Các usecase hay dùng

  • Muốn điều tra nguyên nhân khi số lượng access đến server tăng dột biến
  • Đã phát hiện trên server có lỗ hổng và muốn điều tra xem đã có ai xâm nhập vào hay chưa

2. Các câu lệnh linux hay dùng

Command lineGiải thích
grepTìm các dòng chứa chuỗi được chỉ định
awkPhân tách cột và tìm kiếm hàng có điều kiện
sortSắp xếp dòng
uniqLoại bỏ các hàng trùng lặp và đếm
wcĐếm số ký tự, số dòng
sedThay thế điều kiện quy định

3. Đối tượng phân tích

Trong đó:

  • 203.0.113.0/24 là địa chỉ ip đúng từ người dùng
  • 198.51.100.0/24 là địa chỉ ip từ nguồn đáng ngờ

4. Áp dụng

4.1. Tìm kiếm đặc biệt (grep)

・Điều tra cuộc tấn công vào thư mục

・Điều tra chèn script đáng ngờ

・Điều tra chèn thẻ tag html đáng ngờ

Giải thích về option trong grep:

optionGiải thích
-nHiển thị số dòng của dòng match
-iKhông phân biệt chữ hoa và chữ thường
–colorHiển thị màu đối với từ đã match
-oHiển thị phần đã match
-ESử dụng biểu thức regex

4.2. Loại bỏ log không cần thiết

・Loại bỏ log từ nguồn chuẩn

Giải thích về option trong grep:

optionGiải thích
-vKhông hiển thị dòng match

4.3. Trích xuất phần tử(awk)

・Trích xuất ra địa chỉ ip client

・Trích xuất ra User Agent của client

Giải thích về option trong awk:

optionGiải thích
{print $1}Hiển thị ra cột đầu tiên được phân tách bằng dấu phân cách
-FChỉ định dấu phân cách (mặc định là khoảng trắng)

4.4. Thống kê và sắp xếp (sort/uniq/wc)

・Hiển thị ra số lượng của mỗi địa chỉ ip client

・Tổng số lượng của địa chỉ duy nhất ip client

Giải thích:

command line, optionGiải thích
uniq -cHiển thị số trùng lặp (yêu cầu sắp xếp để so sánh trước và sau)
sort -nSắp xếp các trường số theo giá trị số học
sort -rSắp xếp theo thứ tự giảm dần (mặc định là thứ tự tăng dần)
wc -lHiển thị ra số dòng

4.5. Thay thế (sed)

・Ẩn danh địa chỉ IP nguồn để truy cập bình thường

Giải thích:

optionGiải thích
s/string A/string B/gThay chuỗi A bằng chuỗi B. Thay thế tất cả bằng cách thêm g.

Kết luận

Nếu sử dụng 6 câu lệnh mình bảo bên trên thì chúng ta có thể phân tích log 1 cách dễ dàng.

Hơn nữa, thông thường hay sử dụng kí tự pipe line | để phân tích log 1 cách hiệu quả hơn.

Ví dụ:

==============

Để nhận thông báo khi có bài viết mới nhất thì các bạn có thể like fanpage của mình ở bên dưới nhé:

→→→ Nghệ thuật Coding Fanpage Facebook

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo