Điểm:1

Tỷ lệ hashlimit của iptables không hoạt động như mong đợi

lá cờ in

Tôi đã viết quy tắc tường lửa sau:

iptables -A INPUT -m hashlimit --hashlimit 1/hour --hashlimit-burst 3 --hashlimit-mode srcip,dstport --hashlimit-name ssh -j CHẤP NHẬN

Tôi đã mong đợi vụ nổ sẽ được sạc lại sau một giờ nhưng thực tế nó được sạc lại bởi một lần thậm chí sớm hơn một phút. Tôi đang gửi tin nhắn từ cùng một IP nguồn và cùng một cổng đích, vì vậy tôi đã mong đợi nó chấp nhận 3 kết nối và sau đó là 1 kết nối mỗi giờ. Nhưng nó đang chấp nhận nhiều hơn (cứ sau 20-30 giây một lần). nếu tôi sử dụng --giới hạn 1/giờ Tôi có thể quan sát hành vi dự kiến, nhưng tôi cần sử dụng hashlimit vì tôi cần lọc theo srcip và dstport. Tôi đang làm gì sai? Cảm ơn bạn!

lá cờ it
Hãy thử thêm `-p tcp --syn --dport 22` vào quy tắc - hiện tại, bạn đang khớp mọi thứ mà bạn có thể chỉ muốn khớp các gói TCP SYN đến cổng 22. Nếu đây là ý định của bạn, bỏ `dstport` trong `hashlimit-mode` vì nó thừa.
Điểm:0
lá cờ kz

Tôi nghĩ rằng bạn đang chạy vào các mục hết hạn. Miễn trừ khỏi trang:

  --hashlimit-số lượng bùng nổ
         Số gói tối đa ban đầu để khớp: số này được nạp lại bởi
         một mỗi khi không đạt đến giới hạn quy định ở trên, cho đến con số này;
         giá trị mặc định là 5. Khi yêu cầu so khớp tốc độ dựa trên byte, giá trị này
         tùy chọn chỉ định số lượng byte có thể vượt quá tốc độ đã cho.
         Tùy chọn này nên được sử dụng một cách thận trọng -- nếu mục nhập hết hạn, cụm
         giá trị cũng được thiết lập lại.

Và lượng thời gian bất kỳ mục băm nào được lưu được chỉ định với tùy chọn --hashlimit-htable-hết hạn. Tôi không biết giá trị mặc định cho mục nhập này là bao nhiêu, nhưng tôi đoán nó ngắn hơn một giờ rất nhiều, điều này giải thích tại sao bạn có thể kết nối nhanh hơn thời lượng dự kiến.

Bạn nên cân nhắc điều chỉnh thêm các giá trị đó, chẳng hạn như cho phép một giá trị mỗi phút - trong trường hợp này, máy chủ của bạn chỉ phải nhớ các IP của phút trước chứ không phải giá trị IP của giờ trước.

Harry avatar
lá cờ in
Cảm ơn bạn rất nhiều vì đã trả lời của bạn. Tôi vừa thử đặt `--hashlimit-htable-expire 999999999` để thời gian hết hạn là 16 phút, nhưng nó vẫn chấp nhận kết nối cứ sau 20-30 giây.
Martin avatar
lá cờ kz
Tôi đã thử nghiệm điều này với ```--hashlimit-above 1/minute --hashlimit-burst 3 --hashlimit-htable-expire 300000``` và nó hoạt động như mong đợi. Vì vậy, hoặc hạt nhân của bạn bị lỗi hoặc tôi không biết tại sao ví dụ của bạn không hoạt động... Vui lòng thử với tốc độ 1/phút thay vì 1/giờ và xem liệu nó có còn như vậy không.
Harry avatar
lá cờ in
Tôi đã thử sử dụng những gì bạn đề xuất nhưng nó vẫn không hoạt động như mong đợi (vẫn chấp nhận 1 kết nối cứ sau ~ 30 giây). Dù sao, tôi sẽ cần giới hạn kết nối nhiều hơn 1/phút, vì vậy tôi cần một số rất lớn làm giá trị hết hạn vì nó tính bằng mili giây.
Martin avatar
lá cờ kz
có lý do nào khiến bạn thích hashlimit hơn giới hạn không? nếu cái sau hoạt động như mong đợi, tôi khuyên bạn nên sử dụng cái này thay thế. Khá khó để tìm ra lý do tại sao nó không hoạt động, tôi nghĩ rằng chúng tôi đã loại trừ các lỗi sử dụng - cách bạn sử dụng nó sẽ hoạt động,, Vì nó không hoạt động - thay vào đó hãy sử dụng thứ khác.
Điểm:0
lá cờ cn

Một vấn đề là --hashlimit 1/giờ nên là --hashlimit-tối đa 1/giờ nếu sử dụng -j CHẤP NHẬN

xem man iptables-extensions

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.