Điểm:0

Chỉ cho phép các gói SYN đến cổng 80 khớp với ipset

lá cờ in

tôi có một ipset đặt tên danh sách cho phép.

Tôi muốn cho phép mọi kết nối với máy của mình trên mọi cổng trừ cổng 80, ở đó tôi chỉ muốn cho phép kết nối với ipset: danh sách cho phép.

Tôi chỉ muốn nhắm mục tiêu đồng bộ hóa các gói từ cổng 80 cho hiệu quả, để có thể:

  1. nếu cờ tcp = đồng bộ hóa
  2. nếu cổng là 80
  3. nếu nó khớp với ipset có tên danh sách cho phép

Sau đó cho phép kết nối, nếu không thì bỏ gói (nếu gói đồng bộ hóa 80 và không phù hợp với danh sách cho phép).

Thứ tự rất quan trọng đối với hiệu quả, vì tôi không muốn lọc hoặc làm chậm kết nối đã thiết lập.

Tôi đang cố gắng viết các quy tắc iptables cho nó.

Nikita Kipriyanov avatar
lá cờ za
Bạn đang gặp một trường hợp thực tế hay bạn chỉ đang đùa giỡn với những suy đoán lý thuyết? Nếu bạn gặp trường hợp thực tế, hãy cho chúng tôi biết các phép đo của bạn cho thấy quá trình xử lý iptables chậm (với các quy tắc thông thường, không có điểm kỳ quặc), trong khi không có iptables thì quá trình xử lý cực kỳ nhanh. Mặt khác, câu hỏi của bạn không có chủ đề trên ServerFault, bởi vì chúng tôi nói về các trường hợp kinh doanh thực tế ở đây, không phải về các suy đoán lý thuyết. Trong trường hợp đó, nó sẽ bị đóng cửa.
Điểm:0
lá cờ za

Có thể triển khai kết hợp tuần tự như vậy bằng cách sử dụng các chuỗi tùy chỉnh:

iptables -N c1
iptables -N c2
iptables -A INPUT -p TCP --syn -j c1
iptables -A c1 -p tcp --dport 80 -j c2
iptables -A c2 -m set --match-set allowList src -j CHẤP NHẬN
iptables -A c2 -j THẢ

Tuy nhiên, tôi nghi ngờ bạn sẽ đạt được không tí nào đạt được hiệu quả rõ rệt từ điều này. Ngoài ra, quản trị viên tiếp theo sẽ phụ trách hỗ trợ điều này sau khi bạn chắc chắn sẽ nguyền rủa bạn, ít nhất.

Tốt hơn là đừng cố gắng tối ưu hóa quá sớm và kết hợp tất cả các kết quả phù hợp thành một quy tắc duy nhất. Tôi chắc chắn rằng có một số điểm trong hệ thống của bạn có thể được tối ưu hóa với mức tăng đáng chú ý hơn nhiều.

iTaMaR avatar
lá cờ in
Tôi không sử dụng cổng 80 cho `HTTP`, những người kết nối vẫn kết nối và đã ở trên kết nối `đã thiết lập`, tôi không muốn thực hiện `tra cứu` cho các gói đó..
iTaMaR avatar
lá cờ in
Có cách nào để đạt được nó mà không cần thay đổi không? cái này có hoạt động không: `iptables -A INPUT -p tcp --syn --dport 80 -m set --match-set alowList src -j CHẤP NHẬN` `iptables -A INPUT -p tcp --dport 80 -j DROP`
Ginnungagap avatar
lá cờ gu
@iTaMaR, bạn đã thực hiện bất kỳ loại đo điểm chuẩn hoặc thu thập số liệu nào để đo lường tác động của quy tắc thông thường (tức là "Tôi đã tối ưu hóa") chưa? Chúng ta đang nói về loại yếu tố nào?
Nikita Kipriyanov avatar
lá cờ za
Loại quy tắc này rõ ràng là tốt hơn, vì nó dễ hiểu hơn nhiều. Công việc của con người tốn kém hơn nhiều so với công việc của máy tính. Tôi không chắc liệu nó có kiểm tra tất cả các mô-đun của nó "theo thứ tự" hay không, nhưng tôi nghĩ rằng nó sẽ ngừng khớp khi điều kiện sai được đáp ứng. I E. nó có thể kiểm tra cổng 80 trước hoặc đồng bộ hóa trước hoặc thậm chí được đặt trước, nhưng một khi thứ gì đó trả về "không khớp", nó sẽ không bận tâm kiểm tra những thứ khác. Tôi muốn nói lại lần nữa, bạn đang tối ưu hóa quá sớm và rất có thể là không đúng chỗ (vì trường hợp tối ưu hóa quá sớm luôn xảy ra).
iTaMaR avatar
lá cờ in
@NikitaKipriyanov điều gì sẽ xảy ra nếu tập hợp chứa hàng triệu ip.. bạn không thể mong đợi hiệu suất giống nhau nếu quá trình truyền tải sẽ bắt đầu từ khớp tập hợp và rơi vào các tập hợp khác
Nikita Kipriyanov avatar
lá cờ za
Đặt trong tường lửa Linux có thể chứa tối đa 65536 bản ghi.Hiệu suất của nó không phụ thuộc vào số lượng mục trong đó, bởi vì nó là khối địa chỉ liền kề hoặc hàm băm, tức là nó luôn có độ phức tạp thuật toán O(1).
iTaMaR avatar
lá cờ in
@NikitaKipriyanov tất cả là về hiệu quả, cho dù đó là "Manwork" hay bất cứ thứ gì khác .. ngay bây giờ, vấn đề là triển khai iptables, thứ tự có thể mang lại sự cải thiện đáng kể trong các điều kiện như chúng ta thấy trong mọi ngôn ngữ lập trình, nói rằng điều đó không quan trọng, nó quá kiêu ngạo.. điều gì sẽ xảy ra nếu có hàng tỷ ip có trong tập hợp và `quy tắc` có thể bị từ chối sớm hơn trong điều kiện đơn giản hơn nhiều không??
iTaMaR avatar
lá cờ in
@NikitaKipriyanov `set` là một `mô-đun` và các mô-đun đang mở và có thể thay đổi độ phức tạp của chúng, thứ tự luôn có thể tối ưu hóa `quy tắc`!

Đă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.