Việc kiểm tra lưu lượng trên mạng sẽ giúp chúng ta kiểm soát được dữ liệu và các máy tính. Hiểu cách thực hiện khắc phục sự cố mạng ở mức độ cơ bản giúp chúng ta tiết kiệm cả thời gian lẫn tiền bạc. Mỗi một hệ điều hành Linux đều có một số công cụ dòng lệnh giúp bạn có thể chuẩn đoán vấn đề mạng xảy ra. Thêm vào đó, còn có rất nhiều công cụ mã nguồn mở có thể giúp bạn tìm ra các vấn đề mạng.
Trong bài hướng dẫn này chúng tôi sẽ giới thiệu cho cá bạn một số công cụ kiểm tra mạng, từ những công cụ đơn giản như dòng lệnh đến các ứng dụng có giao điện đồ họa trực quan được cung cấp miễn phí. Biết được một số lệnh đơn giản và khi nào cần sử dụng chúng sẽ giúp bạn bắt đầu công việc chuẩn đoán mạng. Trong bài chúng tôi sử dụng máy tính Ubuntu 10.04 làm nền tảng để test, mặc dù vậy tất cả các công cụ được giới thiệu trong bài đều có thể làm việc trong các distro khác.
Ping
Nếu không thoải mái trong việc sử dụng dòng lệnh Linux từ một terminal, bạn có thể bỏ qua phần này để đến với các mục bên dưới. Mặc dù vậy vẫn có rất nhiều thứ giá trị có thể thực hiện từ dòng lệnh đơn giản này, đặc biệt khi nói đến việc chuẩn đoán vấn đề trong mạng. Hầu hết các lệnh sẽ hiển thị thông tin có thể giúp bạn xác định được điều gì đang xảy ra. Một số yêu cầu cho phép mức root hoặc tối thiểu cũng phải có thể phát lệnh sudo.
ping
Lệnh đầu tiên cần được giới thiệu là lệnh ifconfig. Khi sử dụng lệnh này trong nhắc lệnh, bạn sẽ được cung cấp các thông tin về tất cả thiết bị mạng đã được nhận dạng. Trong ví dụ, bạn có thể thấy eth0, lo và wlan0. Chúng tương ứng với thiết bị Ethernet chạy dây (được gán địa chỉ 192.168.1.2), kết nối lo hoặc loopback, thiết bị Ethernet không dây (địa chỉ 192.168.1.102). ifconfig cũng hiển thị địa chỉ MAC của thiết bị (HWaddr) và một số thống kê về lưu lượng. Có thể nói đây sẽ là lệnh đầu tiên bạn sử dụng khi gặp vấn đề về mạng để có thể thấy địa chỉ IP có hợp lệ hay không và xem các lỗi cũng như thống kê lưu lượng.
Lệnh ping chính là công cụ thứ hai trong số các công cụ dòng lệnh, lệnh này giúp bạn xác định xem máy tính hiện có đang truyền thông với Internet hay không. Khi ping đến một địa chỉ nào đó (chẳng hạn như 4.2.2.1), bạn sẽ thấy trạng thái của kết nối này. Thêm vào đó, lệnh này còn hiển thị cho bạn thời gian cần thiết để hoàn tất lệnh.
Sau hai lệnh đầu tiên ở trên là lệnh route. Lệnh này sẽ hiển thị cho bạn một danh sách các địa chỉ IP gồm có địa chỉ Destination và Gateway kết nối đến mỗi giao diện, cùng với đó là một số thông tin bổ sung nằm trong cột Flags. Cột này sẽ có ký tự G trên dòng liên quan với gateway mặc định. Bạn có thể sử dụng địa chỉ này trong lệnh ping để xác định xem máy tính của mình có kết nối với gateway hay không.
EtherApe
Etherape
EtherApe là một công cụ có thể download từ Ubuntu Software Center. Nó sử dụng GNOME và libpcap để hiển thị một bản đồ trực quan về lưu lượng mạng. Sau khi cài đặt, bạn có thể sử dụng biểu tượng EtherApe, bên dưới menu Applications / System Tools. Khi chạy theo cách này, chương trình sẽ không thể mở bất kỳ thiết bị mạng nào vì yêu cầu truy cập root. Chúng ta có thể thực hiện bằng cách chạy nó từ dòng lệnh thông qua lệnh sudo như sau:
$ sudo etherape
Khi chương trình được khởi chạy, nó sẽ hiển thị bản đồ trực quan về lưu lượng trên giao diện Ethernet mặc định. Bạn có thể chọn một thiết bị nào đó nếu máy tính có nhiều giao diện Ethernet bằng menu Capture / Interfaces. EtherApe cũng có khả năng xem dữ liệu từ một file pcap đã lưu và hiển thị lưu lượng theo giao thức.
Nmap
Nmap là một công cụ quét bảo mật được sử dụng rộng rãi từ những năm 1997. Nó sử dụng một loạt các gói dữ liệu đặc biệt để thăm dò mạng để từ đó tạo bản đồ các địa chỉ IP, xác định hệ điều hành của địa chỉ IP nào đó, thăm dò một loạt các cổng IP ở một địa chỉ cụ thể. Một trong những vấn đề cơ bản nhất là để thực hiện những gì được gọi là “ping sweep”, có nghĩa một loạt lệnh ping để xác định những địa chỉ nào máy tính được gắn với chúng. Thao tác này có thể được thực hiện qua cú pháp sau:
$ nmap -sP 192.168.1.1-255
Còn có một số ứng dụng đồ họa khác từ Ubuntu Software Center nhưng sử dụng nmap như một engine và sau đó hiển thị các kết quả theo cách thân thiện nhất. Những công cụ đó gồm có NmapSI4, công cụ sử dụng giao diện Qt4 và Zenmap.
Tcpdump
Capture lưu lượng mạng để thực hiện phân tích kỹ lưỡng hơn là chức năng chính của tcpdump. Thực sự, việc capture dữ liệu được thực hiện bởi libpcap trong khi việc trình diễn và phân tích được thực hiện bởi tcpdump. Dữ liệu Internet sẽ được lưu trong định dạng file pcap để kiểm tra về sau.
Lệnh tcpdump để capture lưu lượng cơ bản như sau:
$ sudo tcpdump nS
Yêu cầu lệnh sudo để tăng quyền truy cập vào thiết bị Ethernet mặc định. Lệnh này sẽ hiển thị các thông tin cơ bản gồm có thời gian, địa chỉ nguồn, địa chỉ đích và kiểu dữ liệu. Nó sẽ tiếp tục hiển thị thông tin trong terminal cho tới khi bạn nhấn control-C. Tcpdump là cách tốt nhất và nhanh nhất để có thể capture lưu lượng mạng vào một file. Lệnh điển hình để thực hiện là:
$ sudo tcpdump s w pktfile.pcap
Wireshark
Wireshark
Wireshark, trước đây được biết đến với cái tên Ethereal, đã trở thành một công cụ quan trọng trong tay các quản trị viên mạng Linux. (Người dùng Ubuntu có thể tìm thấy công cụ này trong Ubuntu Software Center ở tab Internet). Như một số công cụ khác, chúng ta phải khởi chạy Wireshark từ dòng lệnh bằng cách sử dụng sudo để nó hiển thị các thiết bị Ethernet có sẵn trong mạng. Khi đã khởi chạy, bạn sẽ thấy danh sách các giao diện có sẵn phía bên trái của màn hình chính. Trang hiển thị giao thức sẽ xuất hiện khi chúng ta chọn một trong các giao diện có sẵn hoặc giao diện ảo dùng để lựa chọn các gói dữ liệu từ tất cả các thiết bị Ethernet.
Wireshark
Wireshark cung cấp rất nhiều thông tin có giá trị về lưu lượng đã được capture, cùng với đó là các công cụ lọc và hiển thị dựa trên một số tiêu chuẩn như địa chỉ nguồn, đích, giao thức, hoặc trạng thái lỗi. Trang chủ của Wireshark có liên kết với các hướng dẫn bằng video, các trang tài liệu và dữ liệu mẫu để giúp bạn bắt đầu công việc chuẩn đoán mạng.
Kết luận
Linux có thể nói là một nền tảng tuyệt vời để nghiên cứu các kỹ thuật khắc phục sự cố mạng. Nó cung cấp rất nhiều các công cụ GUI và dòng lệnh giúp người dùng có thể phân tích những vấn đề liên quan đến lưu lượng.
#linux