Chúng ta sẽ biên dịch và chạy D-WARD trên các router R2-D, R3-D, R4-D và R5- D theo topo đã đưa ra ở phần trên. Đầu tiên, chúng ta download mã nguồn D-WARD mới nhất tại địa chỉ: http://lasr.cs.ucla.edu/ddos/dward.tgz . Sau đó, giải nén mã nguồn và biên dịch. Mã nguồn sử dụng sử dụng thư viện lập trình của kernel 2.4 cho nên hệ điều hành được sử dụng là Red Hat 8. Ngoài ra để biên dịch mã nguồn cần phải cài trình biên dịch GCC. Mã nguồn D-WARD bao gồm cả module module ứng dụng và module kernel. Module ứng dụng sẽ thực hiện phát hiện các cuộc tấn công và tính toán các giới hạn băng thông trong khi module kernel sẽ thực hiện điều khiển chính sách lưu lượng. Sau khi biên dịch xong mã nguồn, chúng ta có thể thấy 2 module “gst.o” và “rl.o”. Module “rl.o” sẽ đặt các giới hạn băng thông cho các traffic đi ra ngoài và module “gst.o” kiểm tra những gói tin trong đường truyền và đưa thông tin tiêu đề đến module ứng dụng để tổng hợp và thống kê.
Quá trình biên dịch D-WARD:
Chúng ta xem xét 2 file “Makefile” và “kernel/Makefile” các giá trị tham số được sử dụng để biên dịch một cách kỹ lưỡng. Sau đó, chỉnh sửa file cấu hình trong “prefix.config” và “dward.config” để tùy chỉnh hệ thống phù hợp với mạng triển khai.
Sau khi đã chỉnh sửa các tham số cần thiết, chúng ta di chuyển vào thư mục dward
và gõ 3 lệnh:
make depend make
35 Khởi tạo các thiết bị thành phần cho D-WARD. Chúng ta chạy các câu lệnh sau:
mkdir /dev/dward mkdir /dev/sniff
mknod /dev/dward c 146 0 // Tạo một thiết bị dward mknod /dev/sniff c 147 0 // Tạo một thiết bị sniff
Cài đặt module kernel gst.o và rl.o Chạy 2 câu lệnh:
insmod kernel/gst.o plen=20
insmod kernel/rl.o drop=1 mark=255 LOCAL_ADDRESS=x.x.x.x LOCAL_MASK=y
(trong đó x.x.x.x là địa chỉ mạng mà hệ thống dward của chúng ta sẽ triển khai, y là độ dài của số bit phần host trong địa chỉ IP).
Module “gst” có plen là một tham số tùy chọn chỉ ra xem có bao nhiêu bytes trong một gói tin sẽ được đưa tới ứng dụng để thực hiện việc thống kê tổng hợp. Mặc định giá trị này là 40.
Module “rl” có các tham số tùy chọn drop, mark và LOCAL_MASK. Các giá trị mặc định của nó là 1, 255 và 0. LOCAL_ADDRESS phải được định nghĩa nếu không module sẽ không được nạp vào nhân. LOCAL_ADDRESS và LOCAL_MASK định nghĩa không gian địa chỉ mạng nguồn. Tham số drop quy định việc có hay không hủy gói tin. Nếu
tham số này được đặt bằng 1 (giá trị mặc định) các gói tin bị nghi là tấn công sẽ bị hủy. Nếu tham số này được đặt bằng 0, các gói tin sẽ không bị hủy. Tham số mark có tác dụng nếu bạn chạy các thí nghiệm D-WARD và muốn đo hiệu quả của nó. Khi phát sinh một traffic tấn công đặt một số vào trường TOC của gói tin tấn công (với câu lệnh trên thì đó là 255). D-WARD sẽ không sử dụng giá trị của trường này để đưa ra quyết định nhưng sẽ tổng hợp xem có bao nhiêu gói tin hợp lệ hay không hợp lệ. Thống kê này có thể tìm thấy trong file “stats.txt” trong thư mục “stats”.
Chạy hệ thống D-WARD
Sau khi hoàn thành quá trình biên dịch, bạn có thể chạy ứng dụng D-WARD. Tài liệu hướng dẫn cụ thể bạn có thể đọc trong “man dward”.
36