Giới thiệu về Tcpdump

Nếu bạn điều hành một máy chủ, chắc chắn bạn sẽ đến một điểm mà bạn cần khắc phục một số vấn đề liên quan đến mạng. Tất nhiên sẽ rất dễ dàng khi chỉ cần gửi một bức thư đến bộ phận hỗ trợ, nhưng đôi khi bạn cần phải làm bẩn tay mình. Trong trường hợp này, tcpdumplà công cụ cho công việc đó. Tcpdump là một bộ phân tích gói mạng chạy dưới dòng lệnh.

Bài viết này sẽ được chia thành ba phần:

  • Tính năng cơ bản.
  • Lọc dựa trên các đặc điểm giao thông nhất định.
  • Một đoạn ngắn của các tính năng nâng cao hơn (như biểu thức logic, lọc theo cờ TCP).

Vì tcpdump không được bao gồm trong hầu hết các hệ thống cơ sở, bạn sẽ cần phải cài đặt nó. Tuy nhiên, gần như tất cả các bản phân phối Linux có tcpdump trong kho lưu trữ cốt lõi của chúng. Đối với các bản phân phối dựa trên Debian, lệnh để cài đặt tcpdump là:

apt-get install tcpdump

Đối với CentOS / RedHat, sử dụng lệnh sau:

yum install tcpdump

FreeBSD cung cấp gói dựng sẵn có thể được cài đặt bằng cách phát hành:

pkg install tcpdump

Ngoài ra còn có một cổng có net/tcpdumpthể được cài đặt thông qua:

cd /usr/ports/net/tcpdump
make install clean

Nếu bạn chạy tcpdumpmà không có bất kỳ đối số, bạn sẽ bị vùi dập với kết quả. Chạy nó trên một ví dụ mới xuất hiện ở đây trên Vultr trong chưa đầy năm giây cho kết quả như sau:

2661 packets captured
2663 packets received by filter
0 packets dropped by kernel

Trước khi đi vào chi tiết hơn về cách lọc đầu vào, bạn nên xem qua một số tham số có thể được truyền cho tcpdump:

  • -i- Chỉ định giao diện bạn muốn nghe, ví dụ : tcpdump -i eth0.
  • -n- Đừng cố thực hiện tra cứu ngược trên các địa chỉ IP, ví dụ: tcpdump -n(nếu bạn thêm một ntcpdump khác sẽ hiển thị cho bạn số cổng thay vì tên).
  • -X- Hiển thị nội dung của các gói được thu thập : tcpdump -X.
  • -c- Chỉ chụp các xgói, xlà một số tùy ý, ví dụ tcpdump -c 10bắt chính xác 10 gói.
  • -v- Tăng lượng thông tin gói bạn được hiển thị, càng nhiều vs càng thêm độ dài.

Mỗi tham số được đề cập ở đây có thể được kết hợp với nhau. Nếu bạn muốn chụp 100 gói, nhưng chỉ trên giao diện VPN tun0, thì lệnh tcpdump sẽ như thế này:

tcpdump -i tun0 -c 100 -X

Có hàng tá (nếu không phải hàng trăm) tùy chọn ngoài số ít đó, nhưng chúng là những lựa chọn phổ biến nhất. Vui lòng đọc trang chủ của tcpdump trên hệ thống của bạn.

Bây giờ bạn đã có hiểu biết cơ bản về tcpdump, đã đến lúc xem xét một trong những tính năng tuyệt vời nhất của tcpdump: biểu thức. Biểu hiện sẽ làm cho cuộc sống của bạn dễ dàng hơn rất nhiều. Chúng còn được gọi là Bộ lọc gói BPF hoặc Berkeley. Sử dụng biểu thức cho phép bạn hiển thị có chọn lọc (hoặc bỏ qua) các gói dựa trên các đặc điểm nhất định - chẳng hạn như nguồn gốc, đích, kích thước hoặc thậm chí số thứ tự TCP.

Cho đến nay bạn đã quản lý để giới hạn tìm kiếm của mình ở một số lượng gói nhất định trên một giao diện nhất định, nhưng hãy trung thực ở đây: vẫn để lại quá nhiều nhiễu nền để hoạt động hiệu quả với dữ liệu được thu thập. Đó là nơi biểu hiện phát huy tác dụng. Khái niệm này khá đơn giản, vì vậy chúng tôi sẽ bỏ qua lý thuyết khô khan ở đây và hỗ trợ sự hiểu biết bằng một số ví dụ thực tế.

Các biểu thức mà có lẽ bạn sẽ sử dụng nhiều nhất là:

  • host - Tìm kiếm lưu lượng dựa trên tên máy chủ hoặc địa chỉ IP.
  • srchoặc dst- Tìm kiếm lưu lượng truy cập từ hoặc đến một máy chủ lưu trữ cụ thể.
  • proto- Tìm kiếm lưu lượng của một giao thức nhất định. Hoạt động cho tcp, udp, icmp và những người khác. Bỏ qua prototừ khóa cũng có thể.
  • net - Tìm lưu lượng đến / từ một dải địa chỉ IP nhất định.
  • port - Tìm kiếm lưu lượng đến / từ một cổng nhất định.
  • greaterhoặc less- Tìm lưu lượng truy cập lớn hơn hoặc nhỏ hơn một lượng byte nhất định.

Mặc dù trang này tcpdumpchỉ chứa một vài ví dụ, nhưng trang pcap-filternày có các giải thích rất chi tiết về cách mỗi bộ lọc hoạt động và có thể được áp dụng.

Nếu bạn muốn xem cách giao tiếp của bạn với một máy chủ nhất định, thì bạn có thể sử dụng hosttừ khóa, ví dụ (bao gồm một số tham số ở trên):

tcpdump -i eth0 host vultr.com

Đôi khi, có những máy tính trên mạng không tôn trọng MTU hoặc spam bạn với các gói lớn; lọc chúng ra đôi khi có thể khó khăn. Biểu thức cho phép bạn lọc ra các gói lớn hơn hoặc nhỏ hơn một số byte nhất định:

tcpdump -i eth0 -nn greater 128
or
tcpdump -i eth0 -nn less 32

Có lẽ chỉ một cổng nhất định là quan tâm cho bạn. Trong trường hợp này, sử dụng portbiểu thức:

tcpdump -i eth0 -X port 21

Bạn cũng có thể xem ra phạm vi cổng:

tcdump -i eth0 -X portrange 22-25

Vì các cổng NAT khá phổ biến, bạn chỉ có thể tìm kiếm các cổng đích:

tcpdump dst port 80

Nếu bạn đang xem lưu lượng truy cập đến máy chủ web của mình, bạn có thể chỉ muốn xem lưu lượng TCP đến cổng 80:

tcpdump tcp and dst port 80

Có lẽ bạn đang tự hỏi những gì các từ khóa andđang làm ở đó. Câu hỏi hay. Điều đó đưa chúng ta đến phần cuối của bài viết này.

tcpdump cung cấp hỗ trợ cơ bản cho các biểu thức logic, cụ thể hơn:

  • and/ &&- Hợp lý "và".
  • or/ ||- Hợp lý "hoặc".
  • not/ !- Hợp lý "không".

Cùng với khả năng nhóm các biểu thức lại với nhau, điều này cho phép bạn tạo các tìm kiếm rất mạnh mẽ cho lưu lượng đến và đi. Vì vậy, hãy lọc lưu lượng truy cập đến từ vultr.com trên cổng 22 hoặc 443:

tcpdump -i eth0 src host vultr.com and (dst port 22 or 443)

Chạy cái này trên dòng lệnh sẽ cho bạn lỗi sau:

bash: syntax error near unexpected token `('

Đó là bởi vì có một cảnh báo: bashcố gắng đánh giá mọi nhân vật có thể. Điều này bao gồm (và các )nhân vật. Để tránh lỗi đó, bạn nên sử dụng các trích dẫn đơn xung quanh biểu thức kết hợp:

tcpdump -i eth0 'src host vultr.com and (dst port 22 or 443)'

Một ví dụ hữu ích khác: Khi gỡ lỗi các sự cố SSH với một trong những người dùng của bạn, bạn có thể muốn bỏ qua mọi thứ liên quan đến phiên SSH của mình:

tcpdump '!(host $youripaddress) && port 22)'

Một lần nữa, các trường hợp sử dụng là vô tận, và bạn có thể chỉ định vào độ sâu cực kỳ loại lưu lượng truy cập mà bạn muốn xem. Lệnh sau sẽ chỉ hiển thị cho bạn các gói SYNACK của bắt tay TCP:

tcpdump -i eth0 'tcp[13]=18'

Điều này hoạt động bằng cách nhìn vào phần bù thứ mười ba của tiêu đề TCP và byte thứ mười tám trong nó.

Nếu bạn thực hiện tất cả các cách ở đây, thì bạn đã sẵn sàng cho hầu hết các trường hợp sử dụng sẽ phát sinh. Tôi chỉ có thể chạm vào bề mặt mà không đi vào quá nhiều chi tiết. Tôi đặc biệt khuyên bạn nên thử nghiệm với các tùy chọn và biểu thức khác nhau một chút nữa; và như thường lệ: tham khảo trang web khi bạn bị lạc.

Cuối cùng nhưng không kém phần quan trọng - một cái nhìn nhanh chóng trở lại. Hãy nhớ phần đầu của bài viết này? Với hàng ngàn gói được chụp trong vài giây? Sức mạnh của tcpdumpcó thể cắt giảm rất nhiều:

tcpdump -i eth0 tcp port 22

Kết quả là ngay bây giờ:

81 packets captured
114 packets received by filter
0 packets dropped by kerne

Điều này là nhiều saner và dễ dàng hơn để gỡ lỗi. Chúc mừng mạng!



Leave a Comment

ReactOS: Đây có phải là tương lai của Windows?

ReactOS: Đây có phải là tương lai của Windows?

ReactOS, một hệ điều hành mã nguồn mở và miễn phí đã có phiên bản mới nhất. Liệu nó có thể đáp ứng đủ nhu cầu của người dùng Windows hiện đại và hạ gục Microsoft? Hãy cùng tìm hiểu thêm về trải nghiệm hệ điều hành kiểu cũ nhưng mới hơn này.

Liệu AI có thể chiến đấu với số lượng các cuộc tấn công bằng Ransomware ngày càng tăng

Liệu AI có thể chiến đấu với số lượng các cuộc tấn công bằng Ransomware ngày càng tăng

Các cuộc tấn công ransomware đang gia tăng, nhưng liệu AI có thể giúp đối phó với loại virus máy tính mới nhất? AI có phải là câu trả lời? Đọc ở đây biết là AI boone hay cấm

Luôn kết nối thông qua Ứng dụng WhatsApp Desktop 24 * 7

Luôn kết nối thông qua Ứng dụng WhatsApp Desktop 24 * 7

Whatsapp cuối cùng đã ra mắt ứng dụng Máy tính để bàn cho người dùng Mac và Windows. Giờ đây, bạn có thể truy cập Whatsapp từ Windows hoặc Mac một cách dễ dàng. Có sẵn cho Windows 8+ và Mac OS 10.9+

Làm thế nào AI có thể đưa quá trình tự động hóa lên cấp độ tiếp theo?

Làm thế nào AI có thể đưa quá trình tự động hóa lên cấp độ tiếp theo?

Hãy đọc phần này để biết Trí tuệ nhân tạo đang trở nên phổ biến như thế nào đối với các công ty quy mô nhỏ và làm thế nào nó đang tăng khả năng khiến họ phát triển và giúp đối thủ cạnh tranh của họ có thể cạnh tranh.

Bản cập nhật bổ sung macOS Catalina 10.15.4 đang gây ra nhiều vấn đề hơn là giải quyết

Bản cập nhật bổ sung macOS Catalina 10.15.4 đang gây ra nhiều vấn đề hơn là giải quyết

Gần đây Apple đã phát hành macOS Catalina 10.15.4 một bản cập nhật bổ sung để khắc phục các sự cố nhưng có vẻ như bản cập nhật đang gây ra nhiều vấn đề hơn dẫn đến việc máy mac bị chai. Đọc bài viết này để tìm hiểu thêm

13 Công cụ trích xuất dữ liệu thương mại của Dữ liệu lớn

13 Công cụ trích xuất dữ liệu thương mại của Dữ liệu lớn

13 Công cụ trích xuất dữ liệu thương mại của Dữ liệu lớn

Hệ thống tệp nhật ký là gì và nó hoạt động như thế nào?

Hệ thống tệp nhật ký là gì và nó hoạt động như thế nào?

Máy tính của chúng tôi lưu trữ tất cả dữ liệu một cách có tổ chức được gọi là hệ thống tệp Ghi nhật ký. Đây là một phương pháp hiệu quả cho phép máy tính tìm kiếm và hiển thị các tệp ngay khi bạn nhấn tìm kiếm. Https://wethegeek.com/? P = 94116 & preview = true

Điểm kỳ dị về công nghệ: Tương lai xa của nền văn minh nhân loại?

Điểm kỳ dị về công nghệ: Tương lai xa của nền văn minh nhân loại?

Khi Khoa học phát triển với tốc độ nhanh chóng, chiếm rất nhiều nỗ lực của chúng ta, những rủi ro của việc phục tùng bản thân trước một Điểm kỳ dị không thể giải thích cũng tăng lên. Hãy đọc, điểm kỳ dị có thể có ý nghĩa gì đối với chúng ta.

Hiểu rõ hơn về 26 kỹ thuật phân tích dữ liệu lớn: Phần 1

Hiểu rõ hơn về 26 kỹ thuật phân tích dữ liệu lớn: Phần 1

Hiểu rõ hơn về 26 kỹ thuật phân tích dữ liệu lớn: Phần 1

Tác động của trí tuệ nhân tạo trong chăm sóc sức khỏe 2021

Tác động của trí tuệ nhân tạo trong chăm sóc sức khỏe 2021

AI trong lĩnh vực chăm sóc sức khỏe đã có những bước tiến nhảy vọt so với những thập kỷ trước. Vì vậy, tương lai của AI trong Chăm sóc sức khỏe vẫn đang phát triển từng ngày.