Xin chào ! Nếu đây là lần đầu tiên bạn đến với diễn đàn, xin vui lòng danh ra một phút bấm vào đây để đăng kí và tham gia thảo luận cùng VnPro.
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Hiển thị Các Tệp và Kết Nối Đang Mở trong Linux với lsof

    Hiển thị Các Tệp và Kết Nối Đang Mở trong Linux với lsof


    Khi phân tích sự cố hoặc điều tra bảo mật trên hệ thống Linux, một trong những công cụ mạnh mẽ nhất là lsof (list open files).
    Trong Linux, mọi thứ được coi là tệp – từ file dữ liệu, thư mục, thiết bị cho đến kết nối mạng – nên lsof cho phép bạn quan sát rất nhiều thông tin chỉ với một lệnh. 1. Khái niệm cơ bản
    • lsof liệt kê tất cả tệp đang mở bởi các tiến trình trong hệ thống.
    • Có thể hiển thị: file dữ liệu, thư mục, socket mạng, thiết bị khối (block device), pipe, v.v.
    • Đầu ra mặc định rất lớn, vì vậy cần kết hợp các tùy chọn lọc để dễ đọc hơn.
    • Hầu hết các trường hợp, cần chạy với quyền root hoặc sudo vì lsof truy cập thông tin tiến trình hệ thống.

    2. Cấu trúc đầu ra của lsof


    Ví dụ kiểm tra tiến trình đang sử dụng file /var/log/syslog:

    sudo lsof /var/log/syslog

    Đầu ra gồm các cột:
    • COMMAND – Tên tiến trình
    • PID – ID tiến trình
    • USER – Tài khoản đang chạy tiến trình
    • FD – File descriptor (kèm ký tự trạng thái, ví dụ w = ghi, u = đọc/ghi)
    • TYPE – Loại tệp (REG = file thường, DIR = thư mục, IPv4/IPv6 = socket mạng, BLK = thiết bị khối…)
    • DEVICE – Mã thiết bị
    • SIZE/OFF – Kích thước tệp hoặc offset
    • NODE – Số inode (định danh duy nhất trong hệ thống tệp)
    • NAME – Đường dẫn hoặc thông tin kết nối

    3. Các tình huống sử dụng thực tế

    3.1. Liệt kê tệp trong một thư mục


    Tùy chọn +D sẽ tìm tất cả tệp đang mở trong thư mục /var/log:

    sudo lsof +D /var/log

    Rất hữu ích khi cần biết tiến trình nào đang ghi vào log. 3.2. Xem tệp một tiến trình cụ thể đã mở


    Tùy chọn -p kèm PID:

    sudo lsof -p 892

    Thích hợp khi điều tra một PID nghi ngờ. 3.3. Kiểm tra dịch vụ đang lắng nghe cổng TCP

    sudo lsof -i TCP -s TCP:LISTEN
    • Xác định dịch vụ nào đang lắng nghe kết nối.
    • Giúp phát hiện dịch vụ lạ hoặc trái phép trên máy chủ.
    3.4. Xem kết nối TCP đã thiết lập

    sudo lsof -i TCP -s TCP:ESTABLISHED
    • Hiển thị IP nguồn/đích và cổng đang kết nối.
    • Hữu ích để điều tra kết nối bất thường hoặc phiên kết nối từ bên ngoài.

    4. Tips cho kỹ sư mạng và bảo mật
    • Kết hợp với grep để lọc theo tên tiến trình hoặc cổng:
    sudo lsof -i :443 | grep ESTABLISHED
    • Trong điều tra sự cố, thường dùng lsof kết hợp netstat, ss, tcpdump để xác minh nhanh tình trạng kết nối.
    • Trên hệ thống bận rộn, tránh chạy lsof không kèm lọc vì sẽ trả về lượng dữ liệu khổng lồ.


    Tóm lại:
    lsof là công cụ quan trọng trong bộ “vũ khí” của quản trị viên và chuyên gia SOC khi cần quan sát trạng thái file/kết nối thời gian thực, hỗ trợ nhanh trong điều tra xâm nhập (forensics), giám sát bảo mậtkhắc phục sự cố hệ thống.
    Attached Files
    Đặng Quang Minh, CCIE#11897 (Enterprise Infrastructure, Wireless, Automation, AI), CCSI#31417

    Email : dangquangminh@vnpro.org
    https://www.facebook.com/groups/vietprofessional/
Working...
X