1. Bộ lọc gói Berkeley (Berkeley Packet Filter – BPF)
BPF sử dụng ba loại bộ định lượng (qualifier) chính:
| Tên | Chức năng | Các dạng thường gặp |
| type | Xác định đối tượng được tham chiếu, ví dụ địa chỉ IP, mạng con hoặc cổng. |
host: biểu diễn tên máy chủ và địa chỉ IP net: biểu diễn mạng con port: biểu diễn cổng |
| dir | Biểu diễn hướng truyền của gói tin. |
src: địa chỉ nguồn dst: địa chỉ đích |
| proto | Biểu diễn loại giao thức khớp với gói tin. |
arp http dns |
Định dạng header IP
Header IP chứa nhiều trường quan trọng. Trong đó, địa chỉ nguồn nằm ở các byte 12–15 và địa chỉ đích nằm ở các byte 16–19. Việc nắm rõ vị trí các trường giúp viết bộ lọc BPF chính xác hơn.
Nếu cần thao tác chi tiết đến từng byte hoặc từng bit, BPF cũng hỗ trợ cú pháp proto[expr:size]. Trong đó, proto là giao thức, expr là độ lệch byte tương đối so với lớp giao thức đã cho, còn size là số byte cần thao tác. size là tùy chọn, có thể nhận giá trị 1, 2 hoặc 4; giá trị mặc định là 1.
Ví dụ, với dst host 192.168.1.1, địa chỉ đích nằm ở các byte 16–19 của header IP. Địa chỉ 192.168.1.1 chuyển sang hệ thập lục phân là 0xc0a80101, nên có thể viết:
ip[16:4] = 0xc0a80101
Nếu muốn lọc theo địa chỉ nguồn, ví dụ src host 192.168.1.1, địa chỉ nguồn nằm ở các byte 12–15, ta viết:
ip[12:4] = 0xc0a80101
2. Toán tử
and: và or: hoặc not: phủ định
3. Bộ lọc hiển thị
Bộ lọc hiển thị của Wireshark khác bộ lọc bắt gói ở hai điểm rõ rệt. Thứ nhất, bộ lọc hiển thị có thể được dùng sau khi Wireshark đã bắt dữ liệu. Thứ hai, cú pháp của bộ lọc hiển thị không giống cú pháp của bộ lọc bắt gói.
Trong Wireshark, khi dùng tên giao thức mạng trong bộ lọc hiển thị, các tên này phải viết thường, ví dụ arp, ip, icmp, tcp, udp, dns, http. Chẳng hạn, để chỉ hiển thị giao thức TCP, chỉ cần nhập tcp vào ô bộ lọc hiển thị.
Toán tử quan hệ
Wireshark hỗ trợ hai nhóm toán tử chính: toán tử so sánh và toán tử logic. Hầu hết các toán tử này đều có hai cách viết:
Toán tử so sánh: eq tương đương ==, ne tương đương !=, gt tương đương >, lt tương đương <, ge tương đương >=, le tương đương <=.
Toán tử logic: and tương đương &&, or tương đương ||, not tương đương !. Ngoài ra còn có hai toán tử đặc biệt là contains và matches. contains dùng để kiểm tra xem một giá trị có xuất hiện hay không; matches dùng để kiểm tra xem nội dung có khớp với một biểu thức hay không.
4. Bộ lọc bắt gói
Nếu bộ lọc được viết không hợp lệ, hộp văn bản sẽ chuyển sang màu hồng. Nếu hợp lệ, hộp văn bản sẽ có màu xanh.
Một số bộ lọc thường gặp:
- Bắt lưu lượng của một máy chủ chỉ định:
host 192.168.11.1 - Bắt lưu lượng của một dải mạng:
net 192.168.11.0/24hoặcnet 192.168.0.0 mask 255.255.255.0 - Bắt theo địa chỉ nguồn:
src net 192.168.11.0/24hoặcsrc net 192.168.0.0 mask 255.255.255.0 - Bắt theo địa chỉ đích:
dst net 192.168.11.0/24hoặcdst net 192.168.0.0 mask 255.255.255.0 - Bắt theo cổng:
port 53hoặcport dns - Bắt lưu lượng theo dải cổng:
Cổng nguồn: (tcp[0:2] > 1500 and tcp[0:2] < 1550)
Cổng đích: (tcp[2:2] > 1500 and tcp[2:2] < 1550)
tcp portrange 1501-1549