Hướng dẫn sử dụng netstat để phân tích kết nối mạng, phát hiện bất thường, hỗ trợ chống tấn công. Lưu ý: netstat (net-tools) đã deprecated, thay thế bằng ss (iproute2) – nhanh hơn, cú pháp tương tự.
Xem tất cả kết nối TCP
# netstat -ant
# ss -ant (khuyến khích)
- -a: All (listening + established).
- -n: Numeric (không resolve DNS – nhanh hơn).
- -t: TCP only.
- -u: UDP (thêm
-ucho UDP). - -p: Show PID/Program name (cần root).
Phân tích kết nối port 80 (HTTP)
# netstat -ant | grep :80
# ss -ant '( sport = :80 or dport = :80 )' # ss filter mạnh hơn
Đếm số kết nối theo trạng thái
# netstat -ant | awk '{print $6}' | sort | uniq -c | sort -n
# ss -ant | awk '{print $1}' | sort | uniq -c | sort -n # ss output khác cột
Kết quả mẫu:
1 LISTEN
4 FIN_WAIT2
8 CLOSE_WAIT
16 ESTABLISHED
409 TIME_WAIT
Ý nghĩa các trạng thái TCP quan trọng
| Trạng thái | Ý nghĩa | Hành động nếu quá nhiều |
|---|---|---|
| ESTABLISHED | Kết nối đang hoạt động | Kiểm tra xem có flood không, giới hạn connection/app |
| TIME_WAIT | Đóng kết nối chờ gói trễ (2*MSL ~60s) | Bình thường nếu nhiều request ngắn. Tune: net.ipv4.tcp_tw_reuse=1 |
| CLOSE_WAIT | App chưa close socket (passive close) | BUG APP – app không gọi close(). Cần fix code. |
| FIN_WAIT1/2 | Đang đóng kết nối (active close) | Thường ít, nếu nhiều check firewall/app |
| SYN_RECV | Đã nhận SYN, chờ ACK (handshake chưa xong) | Có thể SYN Flood – bật SYN cookies |
| LISTEN | Đang lắng nghe | Bình thường |
Top IP kết nối nhiều nhất (phát hiện DDoS/brute force)
# netstat -ant | grep :80 | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr | head -20
# ss -ant '( dport = :80 )' | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr | head -20
Xem process sở hữu kết nối (cần root)
# netstat -antp | grep :80
# ss -antp '( dport = :80 )'
So sánh netstat vs ss
| Đặc điểm | netstat | ss |
|---|---|---|
| Gói | net-tools (deprecated) | iproute2 (modern) |
| Nguồn dữ liệu | /proc/net/tcp (chậm, đọc file) | Netlink socket (nhanh, kernel direct) |
| Lọc biểu thức | grep/awk pipe | Built-in filter: ss '( dport = :80 )' |
| Hiển thị cgroup/SELinux | Không | Có |
Công cụ giám sát nâng cao
- iftop / nethogs: Băng thông theo process/kết nối real-time.
- tcpdump / wireshark: Gói tin sâu (packet capture).
- bmon / nload: Băng thông interface.
- Prometheus + node_exporter + Grafana: Metric hệ thống, alert.