Giới thiệu công cụ Netstat
Công cụ netstat để thực hiện tra cứu, thống kê thông tin về tình trạng kết nối mạng, như thông tin về router, thông tin các cổng và dịch vụ chạy trên cổng, các IP kết nối vào server …
Công cụ netstat, cài đặt
Netstat là tiện ích quản lý, thống kê kết nối mạng, nó có trên Linux và Windows (Một số option của lệnh khác nhau giữa Windows, Linux). Phần này tìm hiểu sử dụng netstat trên Linux (CentOS, Ubuntu …). Nếu gõ lệnh netstat không có thì cài đặt:
Cài đặt trên CentOS/RHEL
# Tìm gói có lệnh netstat # yum whatprovides */netstat net-tools-2.0-0.22.20131004git.el7.x86_64 : Basic networking tools Repo : @base Matched from: Filename : /bin/netstat
Tìm được gói có tên net-tools, tiến hành cài đặt
# yum install net-tools -y
Cài đặt trên Ubuntu
# sudo apt-get install net-tools
Các thiết lập lệnh netstat
Khi chạy lệnh netstat có nhiều thiết lập, đầu tiên gõ lệnh sau để xem thông tin sử dụng lệnh và danh sách các tùy chọn:
# netstat -h
Chúng ta thấy có rất nhiều thiết lập, một số có thể quan tâm là:
- -l hiện thị các socket đang lắng nghe
- -t kết nối tcp
- -u kết nối udp
- -n xem địa chỉ số (không phân giải)
- -p Hiện thị chương trình (PID) cho từng socket
Các chỉ thị lệnh trên được kết hợp lại với nhau, ví dụ (-ltu), như các lệnh Linux khác chuỗi kết quả có thể lọc để tìm kiếm bằng cách thêm vào sau | grep -w ‘chuỗi’
Sử dụng netstat, kiểm tra, thống kê quản lý kết nối mạng
Kiểm tra các tiến trình, đang lắng nghe trên các cổng
# netstat -ltnp
Nếu muốn kiểm tra một cổng cụ thể, ví dụ “22″
# netstat -ltnp | grep -w ':22'
Kiểm tra tất cả các cổng được mở (kể cả đang không hoạt động – listening)
# netstat -tulpn
Hiện thị tất cả các loại kết nối (socket)
netstat -a
// Chỉ các kết nối TCP, UDP netstat -at
Thông tin thống kế network
netstat -s
Thông tin router
netstat -r
Hiện thị các IP và số kết nối của IP đến cổng nào đó, ví dụ cổng 443
netstat -tn | grep ':443 ' | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr | head
Giải thích lệnh:
- netstat -tn tham số -t lấy kết nối TCP, -n không phân giải dịch vụ
- grep ‘:443 ‘ lọc cổng 443, nếu gộp cả cổng 80 thay bằng grep ‘:443 \|:80 ‘
- awk ‘{print $5}’, in cột số 5 thôi (cột IP:PORT)
- cut -d: -f1 chia các dòng kết quả thành các cột, điểm phân chia là ký tự : sau đó lấy thông tin cột 1 (các IP không có cổng)
- sort sắp xếp kết quả
- uniq -c nhóm các IP giống nhau lại (cột đầu số lượng gộp)
- sort -nr sắp xếp kết quả theo số, cao xuống thấp (số kết nối)
- head hiện thị 10 kết quả đầu tiên, bỏ head thì hiện thị hết, head -n thay n bằng số
Hiện thị số kết nối của mỗi IP đến Server
netstat -anp |grep 'tcp\|udp' | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
Chúc các bạn thành công.