TCPDUMP là gì?
TCPDUMP thực chất là công cụ được phát triển nhằm mục đích nhận diện và phân tích các gói dữ liệu mạng theo dòng lệnh. TCPDUMP cho phép khách hàng chặn và hiển thị các gói tin được truyền đi hoặc được nhận trên một mạng có sự tham gia của máy tính.
Hiểu đơn giản, TCPDUMP là phần mềm bắt gói tin trong mạng làm việc trên hầu hết các phiên bản hệ điều hành unix/linux. Tcpdump cho phép bắt và lưu lại những gói tin bắt được, từ đó chúng ta có thể sử dụng để phân tích.
TCPDUMP được xem là trụ cột trong việc gỡ rối và kiểm tra vấn đề kết nối mạng và bảo mật.
TCPDUMP tồn tại dưới hình thức nào?
TCPDUMP xuất ra màn hình nội dung các gói tin (chạy trên card mạng mà máy chủ đang lắng nghe) phù hợp với biểu thức logic chọn lọc mà khách hàng nhập vào. Với từng loại tùy chọn khác nhau khách hàng có thể xuất những mô tả về gói tin này ra một file “pcap” để phân tích sau, và có thể đọc nội dung của file “pcap” đó với option –r của lệnh tcpdump, hoặc sử dụng các phần mềm khác như là : Wireshark.
Trong trường hợp không có tùy chọn, lệnh tcpdump sẽ tiếp tục chạy cho đến khi nào nó nhận được một tín hiệu ngắt từ phía khách hàng. Sau khi kết thúc việc bắt các gói tin, tcpdump sẽ báo cáo các cột sau:
- Packet capture: số lượng gói tin bắt được và xử lý.
- Packet received by filter: số lượng gói tin được nhận bởi bộ lọc.
- Packet dropped by kernel: số lượng packet đã bị dropped bởi cơ chế bắt gói tin của hệ điều hành.
TCPDUMP giúp bạn làm gì?
Như định nghĩa ở trên, TCPDUMP giúp bạn phân gói các dữ liệu mang theo dòng lệnh. Cụ thể TCPDUMP giúp bạn:
- Nhìn thấy được các bản tin DUMP trên terminal
- Bắt các bản tin và lưu vào định dạng PCAP (có thể đọc được bởi Wireshark)
- Tạo được các bộ lọc Filter để bắt các bản tin cần thiết, ví dụ: http, ftp, ssh, …
- Có thể nhìn được trực tiếp các bản tin điều khiển hệ thống Linux sử dụng wireshark, xem chi tiết Remote packet capture using WireShark and TCPDUMP
- Và nhiều các options khác nữa, chi tiết xem tại đây.
TCPDUMP là một công cụ vô cùng hữu ích đối với khả năng capturing packets khá mạnh mẽ. Nó hoạt động trên network layer và có thể capture tất cả các packets ra vào máy tính. Ngoài ra, có thể sử dụng TCPDUMP để capture và save các packets tới một file nào đó và phân tích sau.
Định dạng chung của một dòng giao thức TCPDUMP
time-stamp src > dst: flags data-seqno ack window urgent options
Time-stamp: hiển thị thời gian gói tin được capture.
Src và dst: hiển thị địa IP của người gởi và người nhận.
Cờ Flag thì bao gồm các giá trị sau:
- S(SYN): Được sử dụng trong quá trình bắt tay của giao thức TCP.
- .(ACK): Được sử dụng để thông báo cho bên gửi biết là gói tin đã nhận được dữ liệu thành công.
- F(FIN): Được sử dụng để đóng kết nối TCP.
- P(PUSH): Thường được đặt ở cuối để đánh dấu việc truyền dữ liệu.
- R(RST): Được sử dụng khi muốn thiết lập lại đường truyền.
Data-sqeno: Số sequence number của gói dữ liệu hiện tại.
ACK: Mô tả số sequence number tiếp theo của gói tin do bên gởi truyền (số sequence number mong muốn nhận được).
Window: Vùng nhớ đệm có sẵn theo hướng khác trên kết nối này.
Urgent: Cho biết có dữ liệu khẩn cấp trong gói tin
Các thủ thuật sử dụng TCPDUMP
- Hiển thị tất cả các interface trên máy tính mà tcpdump có thể lắng nghe được.
# tcpdump -D - Lọc các gói tin trên card mạng eth0, có địa chỉ đích là 192.168.1.0 hoặc địa chỉ nguồn là 192.168.1.0
# tcpdump –i eth0 host 192.168.1.0
# tcpdump –i eth0 src 192.168.1.0 or host 192.168.1.0 - Lọc các gói tin ARP chạy trên card mạng eth0, xuất phát từ dãy mạng 192.168.1.0/24
# tcpdump –i eth0 arp src net 192.168.1.0/24 - Lọc các gói tin ICMP chạy trên mạng eth0, đi đến máy đích có địa chỉ MAC là 00-23-14-43-E8-08. Khi xuất ra màn hình không cho phân giải tên miền, cũng như không sử dụng số relative sequence. Lưu output vào file test.cap. Khi đọc file đó lên: không hiển thị số sequence number, không phân giải hostname.
# tcpdump –i eth0 –w test.cap ether dst host 00:23:14:42:E8:08
# tcpdump –Snnr test.cap - Lọc gói tin ICMP request and reply: sử dụng option icmp[icmptype]# tcpdump icmp[icmptype] != icmp-echo and icmp[icmptype] != icmp-echoreply
- Lọc một số cờ TCP bằng tcpdump: sử dụng option tcp[tcpflags] && tcp-syn!=0. (Giá trị của các cờ TCP lần lượt là U (32) – A (16) – P (8) – R (4) – S (2) – F (1)).
- Lọc các gói tin TCP có cờ URG được bật:
# tcpdump tcp[13] & 2 != 0 hay #tcpdump tcp[tcpflags] & tcp-urg != 0 - Lọc các gói tin TCP có cờ ACK được bật:
# tcpdump tcp[13] & 16 != 0 hay #tcpdump tcp[tcpflags] & tcp-ack != 0 - Lọc các gói tin TCP có cờ PSH được bật:
# tcpdump tcp[13] & 8 != 0 hay #tcpdump tcp[tcpflags] & tcp-push != 0 - Lọc các gói tin TCP có cờ SYN/ACK được bật:
# tcpdump tcp[13]=18
Tuỳ vào tính chất, nhu cầu sử dụng mà bạn cần tìm hiểu kĩ hơn để chọn cách sử dụng thích hợp với mình. Mọi thắc mắc và góp ý liên quan, xin vui lòng liên hệ ngay TinoHost để được tư vấn chi tiết nhé!
Hỗ trợ 24/7/365 – “đúng doanh nghiệp – đúng dịch vụ – đúng khả năng”
Với đội ngũ nhân viên chuyên môn cao, trang thiết bị tối tân cùng tinh thần tận tâm hỗ trợ 24/7/365, TinoHost tự tin cung cấp dịch vụ tên miền, hosting tối ưu và hệ thống máy chủ mạnh mẽ với chi phí tốt nhất cho doanh nghiệp của bạn.
Chỉ cần để lại thông tin cá nhân của bạn, chuyên viên tư vấn của TinoHost sẽ giúp bạn chọn được giải pháp tốt nhất cho tên miền và hosting. Đừng để công nghệ trở thành rào cản quá trình phát triển công ty bạn.
Với bề dày kinh nghiệm hơn 5 năm cung cấp hosting, dịch vụ cho thuê máy chủ, các dịch vụ liên quan đến tên miền và bảo mật website, hãy để TinoHost đồng hành cùng bạn khẳng định thương hiệu trên bản đồ công nghệ toàn cầu!
CÔNG TY CỔ PHẦN TẬP ĐOÀN TINO
- Trụ sở chính: L17-11, Tầng 17, Tòa nhà Vincom Center, Số 72 Lê Thánh Tôn, Phường Bến Nghé, Quận 1, Thành phố Hồ Chí Minh
Văn phòng đại diện: Tầng 31, Tòa L2, Vinhomes Central Park, 720A Điện Biên Phủ, P.22, Q.Bình Thạnh, Thành phố Hồ Chí Minh - Điện thoại: 0364 333 333
Tổng đài miễn phí: 1800 6734 - Email: [email protected]
- Website:www.tinohost.com