Giám sát hệ thống Linux với netstat

Tác giả admin+, T.Ba 14, 2011, 06:31:56 CHIỀU

« Chủ đề trước - Chủ đề tiếp »

0 Thành viên và 2 Khách đang xem chủ đề.

Netstat là một công cụ hữu ích của Linux cho phép bạn kiểm tra những dịch vào nào đang kết nối đến hệ thống của bạn. Nó rất hữu ích trong việc phân tích cái gì đang xảy ra trên hệ thống của bạn khi bạn cố gắng ngăn chặn một cuộc tấn công nhằm vào nó.

Bạn có thể tìm thêm thông tin như có bao nhiêu kết nối được tạo ra trên một cổng, địa chỉ IP nào đang kết nối đến và nhiều thông tin khác nữa.

Netstat đi kèm trong hầu hết các bản phân phối của Linux vì vậy nó nên được cài đặt trên hệ thống của bạn.

Khởi động một shell terminal trên hệ thống của bạn và chạy câu lệnh sau:

    # netstat -ant

    Active Internet connections (servers and established)
    Proto Recv-Q Send-Q Local Address Foreign Address State
    tcp 0 0 ::ffff:192.168.1.19:80 ::ffff:192.168.1.240:63049 TIME_WAIT
    tcp 0 0 ::ffff:192.168.0.19:80 ::ffff:192.168.1.240:62793 TIME_WAIT
    tcp 0 0 ::ffff:192.168.1.19:80 ::ffff:192.168.1.240:62795 TIME_WAIT

Những thông tin xuất ra hầu hết đều rất dài. Như ở trên là một ví dụ về thông tin xuất ra. Như bạn có thể thấy trong dữ liệu ở trên có một kết nối được tạo ra từ 192.168.1.240 đến máy tính của chúng ta ở cổng 80 sử dụng giao thức TCP và kết nối đang ở trạng thái TIME_WAIT. Những thông tin xuất ra này sẽ cho bạn biết thông tin về tất cả các cổng trên hệ thống của bạn, không chỉ riêng cổng 80.

Điều đầu tiên bạn cần nhận thức là những thông tin này rất lớn nhưng không được dùng nhiều. Vì vậy chúng ta cần phải tổ chức lại nó. Ở đây có một vài thủ thuật chúng ta dùng để phân tích trạng thái tự nhiên của kết nối được tạo ra bởi hệ thống của chúng ta. Điều đầu tiên chúng ta cần làm là suy nghĩ xem những dịch vụ nào mà chúng ta muốn phân tích. Thông thường, cổng 80 là cổng mặc định cho web server, và cổng 3306 là cổng mặc định của MySQL. Vì vậy chúng ta sẽ dùng lệnh sau để xem cái gì đang diễn ra trên cổng 80:

    # netstat -ant | grep 80

Bây giờ chúng ta sẽ có một danh sách các kết nối, nhỏ hơn lần trước, nhưng vẫn quá lớn để có thể nắm bắt hết. Vì vậy chúng ta sẽ dùng thêm lệnh "Wc -l" để đếm số dòng xuất ra để xem có bao nhiêu kết nối đến cổng 80:

    # netstat -ant | grep 80 | wc -l

    625

    # netstat -ant | grep 3306 | wc -l

    61

Bây giờ nếu muốn có một bức tranh toàn cảnh về những gì đang diễn ra trên hệ thống về các kết nối, chúng ta làm như sau:

    # netstat -ant | awk '{print $6}' | sort | uniq -c | sort -n

    1 established)
    1 Foreign
    4 FIN_WAIT2
    8 LISTEN
    16 CLOSE_WAIT
    134 ESTABLISHED
    409 TIME_WAIT

Như trên nói cho chúng ta biết có bao nhiêu loại trạng thái kết nối và số kết nối của mỗi trạng thái đó. Chúng ta cũng có thể chạy một câu lệnh tương tự để xem trạng thái kết nối được tạo ra bởi webserver như sau:

    # netstat -ant | grep 80 | awk '{print $6}' | sort | uniq -c | sort -n

    1 FIN_WAIT1
    4 LISTEN
    6 FIN_WAIT2
    17 CLOSE_WAIT
    94 ESTABLISHED
    534 TIME_WAIT

Bạn có thể làm được nhiều việc phức tạp hơn bằng cách sử dụng lệnh Netstat kết hợp với các câu lệnh khác của Linux. Có thể rất hữu ích khi biết rõ một số thủ thuật của việc sử dụng Netstat, đặc biệt khi bạn đối mặt với một cuộc tấn công nhắm vào hệ thống của bạn.

8)