Download app

Quét mã QR để tải về ứng dụng

QR code

tcpdump là gì?

27/05/2021, 10:00 am
10,455

Nếu bạn sử dụng phiên bản hệ điều hành unix/linux, tcpdump sẽ giúp bạn kiểm tra lưu lượng mạng và lưu lại những gói tin bắt được. Bài viết dưới đây sẽ giúp các bạn hiểu hơn về tcpdump là gìcách cài đặt một số lệnh cơ bản tcpdump trên Linux. Hãy cùng theo dõi nhé!

1. Tcpdump là gì?

 
Tcpdump là công cụ hỗ trợ phân tích các gói dữ liệu mạng theo dòng lệnh, cho phép khách hàng chặn và lọc các gói tin TCP/IP được truyền đi hoặc được nhận trên một mạng mà máy tính có tham gia. tcmpdump sẽ lưu lại những gói tin đã bắt được, sau đó dùng để phân tích.

Hiểu đơn giản, Tcmpdump là công cụ dò mạng tìm Netwwork,  có vai trò trong việc gỡ rối và kiểm tra các vấn đề liên quan đến bảo mật và kết nối mạng.

>> Xem thêm:  MySQL là gì? Tổng quan từ A - Z MySQL

2. Tcpdump tồn tại ở hình thức nào?

Để lựa chọn gói tin phù hợp với biểu thức logic mà khách hàng nhập vào, tcmpdump sẽ xuất ra màn hình một gói tin chạy trên card mạng mà máy chủ đang lắng nghe.  

Tùy vào các lựa chọn khác nhau khashc hàng có thể xuất mô tả này ra một gói tin thành một file “pcap” để phân tích và có thể đọc nội dung “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.

Đối với những trường hợp không có tùy chọn, lệnh tcpdump sẽ được chạy cho đến khi nhận được một tín hiệu ngắt từ khách hàng. Sau khi kết thúc việc bắt các gói tin, tcmpdump 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.

3. Định dạng chung của một dòng giao thức Tcpdump

Định dạng chung của một dòng giao thức tcmpdump cụ thể là: 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.

>> Xem thêm: Lamp là gì? Tại sao Lamp được gọi là giải pháp mạnh nhất cho máy chủ

4. Lợi ích sử dụng Tcpdump

 Tcpdump sẽ giúp bạn phân các gói dữ liệu phù hợp với dòng lệnh mang theo, cụ thể:

- Bắt bản tin và lưu bằng định dạng PCAP (có thể đọc bởi wireshark)

- Nhìn thấy 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 và tcmpdump 

- Có thể nhìn thấy các bản tin trên DUMP trên terminal

- Tạo các bộ lọc Filter để bắt bản tin cần thiết như : http, ssh, fpt…

- Ngoài ra tcmpdump còn sử dụng nhiều option khác nhau nữa

5. Cài đặt một số lệnh sử dụng Tcpdump cơ bản trên Linux

Cài đặt Tcpdump trên Linux

Nếu muốn sử dụng được lệnh tcpdump trên Linux bạn phải cài một gói tên như dưới đây: 

Ubuntu, ta dùng lệnh

sudo apt-get install tcpdump -y

CentOS

yum install tcpdump -y

Một số lệnh cơ bản sử dụng tcmpdump trên Linux

- Bắt gói tin theo địa chỉ nguồn 

tcpdump -i emp0s3 src 192.168.100.1

- Bắt gói tin theo địa chỉ đích

tcpdump -i emp0s3 dst 192.168.100.1

- Xem các interface đang hoạt động

- Bắt gói tin trên interface

tcpdump -i

- Bắt các gói theo port

tcpdump -i enp0s3 port 22 -c 5 -n

 -n: Hiển thị số port thay cho tên giao thức, IP thay cho Hostname

- Bắt theo các gói TCP giữa hai host

tcpdump -i enp0s3 tcp -c 5

 Ngoài ra còn có thể bắt theo  UDP, IMCP,...

- Bắt gói tin với tùy chọn -c

Mặc định, tcmpdump sẽ bắt liên tiếp các gói tin. Thao tác tổ hợp phím Ctrl + C. Nhưng với tùy chọn -c, chúng ta có thể chỉ cho tcpdump biết là "Tôi chỉ muốn bắt n gói."

n - là số gói tin cần bắt

 Cú pháp như sau:

tcpdump -c n -i enp0s3

 - Đọc các gói tin nhỏ hơn N byte

Bạn có thể chỉ nhận những gói tin nhỏ hơn N byte thông qua bộ lọc “less”.

$ tcpdump -w l_1024.pcap  less 1024

- Lưu file .pcap (Wireshark)

tcpdump -i enp0s3 -w /opt/capture.pcap

tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes

4 packets captured

4 packets received by filter

0 packets dropped by kernel

- Đọc file PCAP

- Hiển thị các gói tin được bắt trong hệ ASCII thông qua Tcpdump -A

$ tcpdump -A -i eth0

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode

listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes

14:34:50.913995 IP valh4.lell.net.ssh > yy.domain.innetbcp.net.11006: P 1457239478:1457239594(116) ack 1561461262 win 63652

E.....@.@..]..i...9...*.V...]...P....h....E...>{..U=...g.

......G..7+KA....A...L.

14:34:51.423640 IP valh4.lell.net.ssh > yy.domain.innetbcp.net.11006: P 116:232(116) ack 1 win 63652

E.....@.@....i...9...*.V..*]...P....h....7......X..!....Im.S.g.u:*..O&....^#Ba...

E..(R.@.|.....9...i.*...]...V..*P..OWp........

- Hiển thị các gói tin được bắt dưới dạng HEX và ASCII thông qua Tcpdump -XX

$tcpdump -XX -i eth0

18:52:54.859697 IP zz.domain.innetbcp.net.63897 > valh4.lell.net.ssh: . ack 232 win 16511

        0x0000:  0050 569c 35a3 0019 bb1c 0c00 0800 4500  .PV.5.........E.

        0x0010:  0028 042a 4000 7906 c89c 10b5 aaf6 0f9a  .(.*@.y.........

        0x0020:  69c4 f999 0016 57db 6e08 c712 ea2e 5010  i.....W.n.....P.

        0x0030:  407f c976 0000 0000 0000 0000            @..v........

18:52:54.877713 IP 10.0.0.0 > all-systems.mcast.net: igmp query v3 [max resp time 1s]

        0x0000:  0050 569c 35a3 0000 0000 0000 0800 4600  .PV.5.........F.

        0x0010:  0024 0000 0000 0102 3ad3 0a00 0000 e000  .$......:.......

        0x0020:  0001 9404 0000 1101 ebfe 0000 0000 0300  ................

        0x0030:  0000 0000 0000 0000 0000 0000            ............

- Đọc các gói tin từ một file thông qua Tcmpdump -r

$tcpdump -tttt -r data.pcap

2010-08-22 21:35:26.571793 00:50:56:9c:69:38 (oui Unknown) > Broadcast, ethertype Unknown (0xcafe), length 74:

        0x0000:  0200 000a ffff 0000 ffff 0c00 3c00 0000  .............).....

        0x0020:  0000 0000 ffff ffff ad00 996b 0600 0050  ...........k...P

        0x0030:  569c 6938 0000 0000 8e07 0000            V.i8........

2010-08-22 21:35:26.571797 IP valh4.lell.net.ssh > zz.domain.innetbcp.net.50570: P 800464396:800464448(52) ack 203316566 win 71

2010-08-22 21:35:26.571800 IP valh4.lell.net.ssh > zz.domain.innetbcp.net.50570: P 52:168(116) ack 1 win 71

2010-08-22 21:35:26.584865 IP valh5.lell.net.ssh > 11.154.12.255.netbios-ns: NBT UDP PACKET(137): QUERY; REQUEST; BROADC

- Bắt các gói tin với các dấu thời gian thông qua Tcpdump -tttt

$ tcpdump -n -tttt -i eth0

2010-08-22 15:10:39.162830 IP 10.0.19.121.52497 > 11.154.12.121.ssh: . ack 49800 win 16390

2010-08-22 15:10:39.162833 IP 10.0.19.121.52497 > 11.154.12.121.ssh: . ack 50288 win 16660

2010-08-22 15:10:39.162867 IP 10.0.19.121.52497 > 11.154.12.121.ssh: . ack 50584 win 16586

- Bắt gói tin với địa chỉ IP thông qua Tcmpdump -n

$ tcpdump -n -i eth0

15:01:35.170763 IP 10.0.19.121.52497 > 11.154.12.121.ssh: P 105:157(52) ack 18060 win 16549

15:01:35.170776 IP 11.154.12.121.ssh > 10.0.19.121.52497: P 23988:24136(148) ack 157 win 113

15:01:35.170894 IP 11.154.12.121.ssh > 10.0.19.121.52497: P 24136:24380(244) ack 157 win 113

- Bắt gói tin và ghi vào một file thông qua Tcmdump -w

$ tcpdump -w 08232010.pcap -i eth0

tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes

32 packets captured

32 packets received by filter

6. Biểu thức Tcpdump

Biểu thức của lệnh tcmdump cung cấp cho bạn cơ hội thêm lập trình  vào lựa chọn gói. Bộ hướng dẫn này được viết thành một dòng, khác với một chương trình thông thường. Nếu bạn thường xuyên sử dụng Unix hoặc Linux, bạn sẽ nhanh chóng quen ngay với các biểu thức quen thuộc của kịch bản lệnh shell và hạn chế sự cố khi hiểu định dạng các bộ lọc này.

Các gói đáp ứng bài kiểm tra đều được hệ thống lưu lại, vì vậy kết quả của mỗi biểu thức đề mang giá trị đúng.

Dưới đây là một vài biểu hiện rất ít gặp trong kịch bản lệnh shell :

len

Điều này trả về độ dài của một gói. Ví dụ sử dụng: len! = 5.

- proto [expr: size]

Trong đối tượng này:

nguyên sinh là tên của một lớp giao thức. Nó có thể:

 ête

fddi

ip

arp

hiếm

tcp

udp

icmp

expr là phần bù byte. Điều này cần được đưa vào, nhưng nó có thể được đưa ra là 0 để lấy giá trị từ đầu đối tượng.

kích thước là tùy chọn và nó đại diện cho số byte trong tùy chọn. Giá trị mặc định là 1, nhưng cũng có thể là 2, 3 hoặc 4.

Ví dụ sử dụng:

ether [0] & 1! = 0 đúng với tất cả lưu lượng truy cập phát đa hướng.

ip [0] & 0xf! = 5 đúng với tất cả các gói IP với các tùy chọn.

ip [6: 2] & 0x1fff = 0 đúng với các datagram không phân mảnh và các số 0 của các datagram bị phân mảnh.

7. Các thông số thường gặp trong Tcpdump

Tham số tcmdump còn được gọi là nguyên thủy, được lấy dữ liệu từ các máy chủ chỉ định. Các tham số này được biểu thị dưới dạng các điều kiện bằng cách sử dụng các toán tử Boolean và, hoặc là, và không phải. Bạn sẽ không cần đặt dấu (=) và đặt tham số khoảng trắng có dấu chấm câu giữa tên tham số và giá trị của nó.

Hiện nay, có rất nhiều thông số phổ biến, thông số hay sử dụng nhất là máy chủ lưu trữ cho phép người dùng giới hạn việc chụp để truyền đi từ nguồn. Tùy vào trường hợp khác nhau, tên thiết bị làm gía trị tham số có thể được thay bằng địa chỉ khác nhau. 

Tham số có một dst phiên bản, biến thể đó sẽ giới hạn đầu ra của các gói tin có thuộc tính đó cho đích của nó. Các thông số src tìm kiếm các gói có giá trị cho trong dữ liệu liên quan đến cốt lõi của chúng.

Dưới đấy là một số tùy chọn tham số thường gắp trong tcmdump :

- thư mục             

 thư mục – chụp nếu hướng khung hình 802.11 802.11 là thư mục, đó là một số hoặc:

- gật đầu

- tods

- từ

- dstods

- wlan addr2    ehost – chụp nếu địa chỉ IEEE 802.11 thứ hai là ehost

- wlan addr3    ehost – chụp nếu địa chỉ IEEE 802.11 thứ ba là ehost

- wlan addr4    ehost – nếu địa chỉ IEEE 802.11 thứ tư là ehost. Chỉ được sử dụng cho WDS

- ête                  ehost – giá trị từ / etc / ethers hoặc một số. Cũng thế ether src và số phận ether.

- cửa ngõ         tổ chức – nhận các gói được truyền qua cổng tổ chức

- mạng lưới     tên mạng – IP nguồn hoặc IP đích bao gồm mạng_num. Cũng thế mạng dst và mạng src

- hải cảng       số | tên – cũng thế cổng dst và cổng src. Có thể với tcp hoặc là udp để hạn chế giao thức

- ip proto         giao thức – chụp các gói IP của giao thức được đặt tên. Tên phải trong / etc / giao thức

8. Sử dụng Tcpdump cho Windows

Ngoài Linux, còn có bản chuyển thể của tcmdump trên Windows được gọi là Windump và dựa vào Wincap để chụp gói tương tự như tcmpdump sử dụng chức năng pcap của lipcap.

Wincap thuộc sở hữu của Riverbed Technology, đây cũng là nhà tài trợ cho Wireshark được cho là gói nổi tiếng và được sử dụng rộng rãi trên khắp thế giới. Phiên bản không dây của Wincap được gọi là Aircap. Bạn có thể tải xuống Windump, Wincap và aircap miễn phí từ trang web của Wincap.

9. Lời kết

Như vậy, qua bài viết trên Nhân Hòa đã giúp bạn hiểu rõ hơn về tcmdump, hy vọng bạn sẽ sử dụng công cụ này một cách hữu ích. Chúc bạn thành công!

Khách hàng có nhu cầu đăng ký tên miền, đăng ký email doanh nghiệp, hosting wordpress giá rẻ, vps, ssl... xin vui lòng đăng ký tại Nhân Hòa để được hưởng ưu đãi giá rẻ nhất. Trân trọng!

+ Fanpage: https://www.facebook.com/nhanhoacom

+ Chỉ đường: https://g.page/nhanhoacom

+ Chương trình khuyến mãi mới nhất: https://nhanhoa.com/khuyen-mai.html

————————————————————

CÔNG TY TNHH PHẦN MỀM NHÂN HÒA

https://nhanhoa.com

Hotline: 1900 6680

Trụ sở chính: Tầng 4 - Tòa nhà 97-99 Láng Hạ, Đống Đa, Hà Nội

Tel: (024) 7308 6680 – Email: sales@nhanhoa.com

Chi nhánh: 270 Cao Thắng (nối dài), Phường 12, Quận 10, Tp.HCM

Tel: (028) 7308 6680 – Email: hcmsales@nhanhoa.com

Bài viết liên quan
20/11/2024
Các fan cứng của Nhân Hòa đã biết Chương trình Black Friday 2024 sẽ có mức ưu đãi khủng là bao nhiêu % và áp dụng cho những...
19/11/2024
Đừng để website của bạn bị "tắt đèn" vì hết hạn tên miền! Hãy chủ động gia hạn tên miền để đảm bảo sự liên...
16/11/2024
Không phải bàn cãi việc WordPress đang là một trong những nền tảng hàng đầu trong việc xây dựng website hiện nay. Và giải...
Chuyên nghiệp và tận tình
Hỗ Trợ Trực Tuyến 24/7
Đội ngũ chuyên gia giúp xử lý vấn đề kỹ thuật để website của bạn luôn hoạt động tốt và chạy nhanh. Bất kỳ lúc nào.
Kết nối với Nhân Hoà

Map Tầng 4 - Toà nhà 97 - 99 Láng Hạ, Quận Đống Đa, Thành Phố Hà Nội

Phone Điện thoại: 1900 6680 - (024) 7308 6680

Mail Mail: sales@nhanhoa.com

Hotline Phản ánh chất lượng dịch vụ: 091 140 8966

Map 927/1 CMT8, Phường 7, Quận Tân Bình, Thành phố Hồ Chí Minh

Phone Điện thoại: 1900 6680 - (028) 7308 6680

Mail Mail: hcmsales@nhanhoa.com

Hotline Phản ánh chất lượng dịch vụ: 091 140 8966

Map Tầng 2 Tòa nhà Sài Gòn Sky, ngõ 26 Nguyễn Thái Học, phường Đội Cung, TP. Vinh, Nghệ An

Phone Điện thoại: 1900 6680 - (024) 7308 6680 - nhánh 6

Mail Mail: contact@nhanhoa.com

Hotline Phản ánh chất lượng dịch vụ: 091 140 8966

Kết nối với Nhân Hoà
Gọi lại cho tôi
Gọi miễn phí
Gọi miễn phí
×
Thông báo

Đăng nhập thành công!