Tôi có một thiết lập thử nghiệm trong phòng thí nghiệm với 4 máy:
- 2 máy P4 cũ (t1, t2)
- 1 Xeon 5420 DP 2,5 GHz RAM 8 GB (t3) Intel e1000
- 1 Xeon 5420 DP 2,5 GHz RAM 8 GB (t4) Intel e1000
để kiểm tra hiệu năng tường lửa linux vì chúng tôi đã bị cắn bởi một số cuộc tấn công đồng bộ trong những tháng qua. Tất cả các máy chạy Ubuntu 12.04 64 bit. t1, t2, t3 được kết nối với nhau thông qua công tắc 1GB / s, t4 được kết nối với t3 thông qua giao diện phụ. Vì vậy, t3 mô phỏng tường lửa, t4 là mục tiêu, t1, t2 đóng vai kẻ tấn công tạo ra một gói dữ liệu thorugh (192.168.4.199 là t4):
hping3 -I eth1 --rand-source --syn --flood 192.168.4.199 -p 80
t4 bỏ tất cả các gói đến để tránh nhầm lẫn với các cổng, các vấn đề về hiệu năng của t4, v.v. Tôi xem các số liệu thống kê gói trong iptraf. Tôi đã cấu hình tường lửa (t3) như sau:
- stock 3.2.0-31-kernel # 50-Ubuntu SMP kernel
- rhash_entries = 33554432 làm tham số kernel
sysctl như sau:
net.ipv4.ip_forward = 1 net.ipv4.route.gc_elasticity = 2 net.ipv4.route.gc_timeout = 1 net.ipv4.route.gc_interval = 5 net.ipv4.route.gc_min_interval_ms = 500 net.ipv4.route.gc_thresh = 2000000 net.ipv4.route.max_size = 20000000
(Tôi đã điều chỉnh rất nhiều để giữ cho t3 chạy khi t1 + t2 đang gửi càng nhiều gói càng tốt).
Kết quả của những nỗ lực này có phần kỳ lạ:
- t1 + t2 quản lý để gửi mỗi gói khoảng 200k / s. t4 trong trường hợp tốt nhất nhìn thấy tổng cộng 200 nghìn nên một nửa các gói bị mất.
- t3 gần như không sử dụng được trên bàn điều khiển mặc dù các gói đang chảy qua nó (số lượng lớn các phần mềm mềm)
- trình thu gom rác bộ đệm tuyến đường không thể dự đoán được và trong cài đặt mặc định bị quá tải bởi rất ít gói / s (<50k gói / s)
- kích hoạt các quy tắc iptables có trạng thái làm cho tốc độ gói đến trên t4 giảm xuống khoảng 100 nghìn gói / giây, mất hoàn toàn hơn 75% các gói
Và đây - đây là mối quan tâm chính của tôi - với hai máy P4 cũ gửi càng nhiều gói càng tốt - điều đó có nghĩa là gần như tất cả mọi người trên mạng đều có khả năng này.
Vì vậy, đây là câu hỏi của tôi: Tôi đã bỏ qua một số điểm nhập khẩu trong cấu hình hoặc trong thiết lập thử nghiệm của tôi? Có sự thay thế nào cho việc xây dựng hệ thống tường lửa đặc biệt là trên các hệ thống smp không?