Cách sử dụng LSOF để giám sát cổng trong thời gian thực

Cach Su Dung Lsof De Giam Sat Cong Trong Thoi Gian Thuc



LSOF (Liệt kê các tệp đang mở) là một công cụ giám sát dòng lệnh được sử dụng trong các hệ điều hành giống Linux/Unix. Lệnh LSOF cung cấp thông tin về các tệp và quy trình đang hoạt động hiện đang truy cập chúng.

Công cụ dòng lệnh LSOF rất có lợi cho quản trị viên và nhà phát triển hệ thống bằng cách cho phép họ:

  • Xác định các quy trình hiện đang sử dụng một tệp hoặc cổng cụ thể, đặc biệt quan trọng trong trường hợp xung đột cổng
  • Phát hiện các tập tin đã bị xóa nhưng vẫn được mở bởi các tiến trình có thể dẫn đến tiêu tốn dung lượng không cần thiết; lệnh LSOF dùng để xác định và giải quyết các trường hợp đó
  • Giúp khắc phục các lỗi như “cổng đã được sử dụng” một cách hiệu quả
  • Theo dõi hoạt động mạng và mở kết nối mạng cho mục đích giám sát
  • Điều tra các mẫu truy cập tệp, góp phần xác định các vi phạm bảo mật tiềm ẩn

Trong hướng dẫn này, bạn sẽ tìm hiểu cách sử dụng lệnh LSOF để giám sát các cổng thời gian thực.







Cú pháp cơ bản của lệnh LSOF

Cú pháp của lệnh LSOF như sau:



$ lsof [ tùy chọn ] [ tên ]

Tùy chọn là các cờ được sử dụng với lệnh LSOF. Tên đại diện cho tên tệp, PID (ID tiến trình), tên người dùng hoặc tệp mạng (IPv4, IPv6). Tùy thuộc vào các tùy chọn được cung cấp, lệnh LSOF sẽ hiển thị danh sách các tệp đang mở tương ứng với các tên này.



Giám sát các cổng trong thời gian thực bằng lệnh LSOF

LSOF được bao gồm theo mặc định trong nhiều hệ thống Linux. Bạn phải tải xuống và cài đặt thủ công một trong các gói có sẵn nếu nó chưa được cài đặt. Để kiểm tra cài đặt LSOF trên hệ thống của bạn, hãy sử dụng lệnh sau để hiển thị phiên bản đã cài đặt:





$ lsof -TRONG

Điều quan trọng cần lưu ý là để sử dụng lệnh LSOF với các quyền thích hợp, một số thông tin về quy trình và kết nối mạng có thể yêu cầu đặc quyền siêu người dùng nâng cao và bạn có thể cần sử dụng “sudo” để chạy lệnh với quyền quản trị.



Liệt kê các tập tin mạng

Khi bạn chạy lệnh LSOF với tùy chọn “-i”, nó sẽ hiển thị thông tin về các tiến trình có kết nối mạng như ổ cắm nghe hoặc kết nối đã thiết lập.

$ lsof –i

Lệnh trước hiển thị thông tin về tên quy trình (COMMAND), ID quy trình (PID), người dùng (USER), bộ mô tả tệp (FD), loại kết nối (TYPE), địa chỉ cục bộ và từ xa cũng như trạng thái kết nối. Bạn sẽ thấy đầu ra sau:

Liệt kê các kết nối TCP

Bạn có thể lọc đầu ra dựa trên các tiêu chí cụ thể, chẳng hạn như các loại kết nối hoặc cổng cụ thể. Ví dụ: bạn có thể sử dụng “lsof -i tcp” để chỉ liệt kê các quy trình được liên kết với kết nối TCP.

$ lsof -Tôi tcp: 1 - 1024

Lệnh trước lọc thông tin về các quy trình có kết nối TCP mở trong phạm vi cổng được chỉ định từ 1 đến 1024. Điều này có thể hữu ích để xác định quy trình nào đang sử dụng các cổng nổi tiếng được liên kết với các dịch vụ phổ biến.

Giám sát một cổng cụ thể trong thời gian thực

Sử dụng LSOF, bạn có thể giám sát một cổng cụ thể trong thời gian thực. Ví dụ: bạn muốn theo dõi các quy trình liên quan đến “HTTP” trên cổng 80, cổng này cập nhật 3 giây một lần. Để thực hiện việc này, hãy theo dõi cổng 80 trong thời gian thực bằng lệnh sau:

$ lsof -Tôi : 80 -r3

Giám sát cổng SSHD 22 trong thời gian thực

Để giám sát tất cả các kết nối SSHD chạy trên cổng 22, hãy chạy lệnh sau:

$ sudo lsof -Tôi : 22 -r3

Lệnh này liên tục giám sát và hiển thị thông tin thời gian thực về các kết nối mạng trên cổng 22 cứ sau 3 giây. Điều này đặc biệt hữu ích để theo dõi các thay đổi, chẳng hạn như kết nối SSH mới hoặc ngắt kết nối, vì chúng xảy ra trong thời gian thực.

Giám sát phạm vi cổng trong thời gian thực

Để theo dõi thông tin về các tiến trình trong thời gian thực có kết nối TCP mở trong phạm vi cổng được chỉ định từ 1 đến 1024, bạn có thể sử dụng lệnh sau:

$ lsof -Tôi tcp: 1 - 1024 -r3

Giám sát tất cả các cổng trong thời gian thực

Bạn có thể giám sát tất cả các kết nối mạng trong thời gian thực bằng lệnh LSOF. Ví dụ: bạn muốn chạy liên tục theo dõi và hiển thị thông tin thời gian thực về kết nối mạng cứ sau 5 giây.

$ lsof -Tôi -r5

Đầu ra sau đây bao gồm các chi tiết về các quy trình và ổ cắm mạng liên quan của chúng trong thời gian thực sau mỗi 5 giây:

Tương tự, bạn cũng có thể chỉ giám sát các kết nối “đã thiết lập” bằng lệnh LSOF:

$ lsof -Tôi -VÀ -r10

Phần kết luận

Trong hướng dẫn này, chúng ta đã học cách giám sát các cổng trong thời gian thực bằng lệnh LSOF. Lệnh này cũng có thể giúp quản trị viên hệ thống và những người dùng Linux khác giám sát các kết nối mạng, bao gồm tất cả các cổng đang hoạt động hoặc mở. Chúng tôi hy vọng rằng hướng dẫn này sẽ giúp bạn hiểu cách sử dụng lệnh LSOF với các tùy chọn khác nhau và giám sát các cổng và quy trình khác nhau trong thời gian thực.