Wireshark là một công cụ phân tích gói tin mạng, có thể được đặt ở nhiều vị trí khác nhau trong mô hình mạng tùy thuộc vào mục đích sử dụng. Nếu ta muốn phân tích gói tin trên một máy tính cụ thể, ta có thể cài đặt Wireshark trực tiếp trên máy tính đó. Còn nếu muốn phân tích trên một mạng lớn, ta có thể đặt Wireshark trên một máy tính chuyên dụng hoặc một thiết bị mạng như một switch hoặc router.
Nguyên tắc cơ bản là xác định thiết bị cần giám sát, kết nối máy vào cùng switch, và cấu hình một port miror hoặc bộ phân tích cổng (port monitor) để giám sát thiết bị đó. Ở hình trên, ta muốn giám sát server S2. Một số nhà cung cấp switch LAN cũng cho phép các tính năng như:
- Giám sát toàn bộ VLAN
- Giám sát nhiều port đến một bộ phân tích duy nhất
- Lọc lưu lượng đi vào, đi ra hoặc cả hai.
Vị trí đặt Wireshark
Giám sát server
Nếu các bạn muốn giám sát một server cụ thể bằng Wireshark (số 1 như trong hình trên), ta có thể đặt Wireshark trực tiếp trên server đó hoặc trên một máy tính khác trong cùng mạng LAN với server đó. Trong trường hợp đặt Wireshark trực tiếp trên server, ta có thể giám sát tất cả các gói tin được gửi và nhận trên server đó tuy nhiên điều này có thể ảnh hưởng đến hiệu suất của server và làm giảm khả năng xử lý.
Giám sát router
Trường hợp 1: Giám sát switch port mà router kết nối tới
Trường hợp này ứng với số 2 trên mô hình trên. Ta sẽ kết nối laptop của mình vào switch mà router được kết nối đến. Trên switch, cấu hình port monitoring từ port kết nối vào router tới port mà laptop được kết nối đến.
Trường hợp 2: Sử dụng switch module
Trong trường hợp này, được đánh số 5 và 6 trong hình, chúng ta có một module switch trên router (ví dụ như Cisco EtherSwitch hoặc các module HWIC), ta có thể sử dụng nó giống với switch tiêu chuẩn (được đánh số 5 cho cổng LAN và 6 cho cổng WAN).
Nhìn chung, router không hỗ trợ tính năng port mirror hoặc SPAN. Trong các router Home/SOHO đơn giản sẽ không có tùy chọn này. Tùy chọn port mirror có sẵn trong một số router như Cisco 2800 hoặc 3800 và tất nhiên trên các router quy mô lớn như Cisco 6800 và các router khác. Trong trường hợp này, ta chỉ có thể giám sát các port được kết nối với module switch trên router.
Trường hợp 3: Router không tích hợp switch module
Trong trường hợp này, ta kết nối một switch giữa port của router và ISP, và cấu hình bộ port monitor trên switch này, như trong hình bên dưới:
Trường hợp 4: Router được tích hợp packet capture
Trong những năm gần đây, các router đời mới cũng được cung cấp tính năng bắt gói tin trực tiếp trên router. Ví dụ như trong Cisco IOS Release 12.4 (20) T hoặc mới hơn, Cisco IOS-XE Release 15.2 (4) S-3.7.0 hoặc mới hơn, và cũng từ các router SRX/J-Series của Juniper, Stealhead của Riverbed và nhiều thương hiệu khác.
Giám sát firewall
Theo hình bên dưới, port số 1 gọi là port internal, port số 2 gọi là port external.
Trên port internal, ta sẽ thấy tất cả các IP bên trong và tất cả lưu lượng được khởi tạo bởi mạng bên trong. Còn tại port external, ta sẽ thấy các IP bên ngoài mà chúng ta đi ra nhưng sẽ không thấy các lưu lượng từ mạng nội bộ bị chặn bởi firewall.
Test access points và hubs
- Test Access Point (TAPs): Thay vì kết nối một switch vào mạng mà ta muốn giám sát, ta có thể kết nối một thiết bị gọi là TAP, nó sẽ vai trò tương tự như switch trong trường hợp này. Lợi thế của TAP so với switch là tính đơn giản và giá rẻ hơn.
- Hubs: Có thể kết nối một hub song song với interface muốn giám sát và vì hub là một thiết bị bán duplex nên mọi gói tin được gửi giữa router và thiết bị ISP sẽ được theo dõi trên Wireshark. Nhược điểm lớn nhất của phương pháp này là hub chính nó làm chậm lưu lượng, do đó nó ảnh hưởng đến khả năng vận hành. Nếu muốn giám sát các port 1 Gbps thì hub chưa hỗ trợ. Giải pháo là sẽ phải giảm tốc độ xuống 100 Mbps do đó gây ảnh hưởng đến lưu lượng. Vì lí do đó nên hub không được sử dụng phổ biến cho mục đích này.
Port monitoring hoạt động như thế nào
Để hiểu cách port monitoring hoạt động, trước tiên ta phải hiểu cách mà một switch LAN hoạt động. Một switch LAN chuyển tiếp các gói tin như sau:
- Switch LAN liên tục học địa chỉ MAC của các thiết bị được kết nối với nó.
- Nếu một gói tin được gửi đến một địa chỉ MAC đích, nó sẽ được chuyển tiếp đến cổng vật lý mà switch đã học được rằng địa chỉ MAC này đến từ đó.
- Nếu một gói tin broadcast được gửi đi, nó sẽ được chuyển tiếp đến tất cả các cổng của switch.
- Nếu một gói tin multicast được gửi đi và CGMP hoặc IGMP bị tắt, nó chuyển tiếp đến tất cả các cổng của switch (CGMP và IGMP là các giao thức cho phép các gói tin multicast được chuyển tiếp chỉ đến các thiết bị trong một nhóm multicast cụ thể).
- Nếu một gói tin được gửi đến một địa chỉ MAC mà switch chưa học được (điều này rất hiếm xảy ra), nó sẽ được chuyển tiếp đến tất cả các cổng của switch.
Dưới đây là một ví dụ về cách mạng hoạt động trên layer-2. Mỗi thiết bị kết nối với mạng sẽ gửi các broadcast định kỳ, như ARP request hay NetBIOS advertisements. Khi một broadcast được gửi đi, nó sẽ được chuyển tiếp qua toàn bộ mạng layer-2 (được biểu diễn bằng các mũi tên đứt trong sơ đồ). Ví dụ trong hình minh họa cho thấy tất cả các switch đều học địa chỉ MAC M1 trên cổng mà chúng đã nhận được nó.
Khi PC2 muốn gửi một frame tới PC1, nó sẽ gửi frame đến switch mà nó được kết nối tới, SW5. SW5 đã học địa chỉ MAC M1 trên cổng thứ năm từ trái sang, và đó là nơi mà frame được chuyển tiếp. Tương tự như vậy, mỗi switch chuyển tiếp frame đến cổng mà nó đã học được, và cuối cùng frame được chuyển tiếp đến PC1.
Do đó, khi bạn cấu hình port monitor cho một cổng cụ thể, các bạn sẽ thấy toàn bộ lưu lượng đi vào và ra khỏi cổng đó. Nếu các bạn kết nối laptop của mình vào mạng mà không cấu hình gì cả thì các bạn sẽ chỉ thấy lưu lượng đi vào và ra khỏi laptop của chính bạn cùng với các traffic broadcast và multicast.
Khi giám sát mạng VLAN, có một số vấn đề quan trọng mà ta cần phải lưu ý. Vấn đề đầu tiên là khi chúng ta giám sát một VLAN, các gói tin vẫn phải được chuyển tiếp vật lý qua switch mà ta đang kết nối để có thể xem chúng. Do đó, nếu giám sát một VLAN được cấu hình trên toàn mạng, ta phải xác định rõ các switch mà toàn bộ lưu lượng của VLAN đó đi qua và kết nối đến một trong những switch đó để giám sát toàn bộ lưu lượng trên VLAN.
Trong các mạng tòa nhà, người dùng thường được kết nối đến các switch của tầng, ở một hoặc nhiều vị trí trên tầng đó, và các switch này lại được kết nối đến switch trung tâm của toà nhà (hoặc hai switch dự phòng). Do đó, nếu chúng ta đang kết nối đến một switch của tầng, ta sẽ không thể xem được lưu lượng mà đi từ các switch khác đến các server trên switch trung tâm của toà nhà.
Trong mô hình trên, nếu ta kết nối Wireshark với Switch SW2 và cấu hình monitor cho VLAN30, ta sẽ theo dõi tất cả các gói tin đi vào và ra khỏi P2, P4 và P5, bất kể chúng đi vào hoặc ra khỏi switch. Tuy nhiên sẽ không thể thấy các gói tin được truyền giữa các thiết bị trên SW3, SW1 hoặc giữa SW1 và SW3.
Một vấn đề khác khi giám sát một VLAN là khả năng xảy ra các gói tin trùng lặp. Lý do cho điều này được giải thích trong hình bên dưới. Ví dụ, khi S4 gửi một gói tin đến S2 và cấu hình cổng mirror cho VLAN30, ta sẽ thấy gói tin được gửi từ S4 đến switch và đi vào VLAN30, sau đó lại đi ra khỏi VLAN30 đến S2.
Bắt gói tin trên Virtual Machine
Phần cứng của máy ảo như hình bên dưới:
Để bắt gói tin, chúng ta có hai lựa chọn: cài đặt Wireshark trên thiết bị mà chúng ta muốn giám sát hoặc cấu hình cổng mirror cho switch LAN mà NIC được kết nối vào. Trong sơ đồ trên, ta kết nối máy tính vào một port trống trên switch, với một port mirror đến các port 1 và 2. Topology này được gọi là Link Aggregation (LAG), teaming hoặc nếu sử dụng switch Cisco, là EtherChannel. Khi giám sát server, cần kiểm tra xem nó đã được cấu hình failover chưa. Nếu rồi, cần cấu hình cổng mirror đến interface LAG, tức là cổng mirror đến interface ảo giữa hai hoặc nhiều cổng vật lý. Thông thường nó được gọi là interface Port-Group hoặc Port-Channel.
Tiêu chuẩn phổ biến nhất là 802.3ad (LAG), sau đó được thay thế bằng 802.3AX LAG. Ngoài ra còn có Cisco EtherChannel và các nhà cung cấp gọi nó là teaming hoặc NIC teaming (Microsoft), bonding (các hệ thống Linux), Load Based Teaming (LBT) và các thuật ngữ khác.
Ta có 3 trường hợp dưới đây:
Cấu hình hai port mirror từ card mạng trên máy tính đến hai interface trên switch LAN cùng một lúc. Dưới đây là sơ đồ của ba trường hợp:
Comments 1