Việc chặn tất cả các kết nối bên ngoài Hoa Kỳ, ngoài cổng 80 có gây ra tải máy chủ cao không?


16

Giống như hầu hết các máy chủ (tôi giả sử), chúng tôi có những người cố gắng vũ trang dịch vụ của chúng tôi 24/7. Tôi có danh sách đen cpHulk IP của họ, nhưng có vẻ như sẽ tốt hơn nếu họ không đạt được điều đó ngay từ đầu. Chính tôi và chủ nhà của tôi là những người duy nhất kết nối với máy chủ trên các cổng ngoài 80, vì vậy tôi muốn chặn kết nối từ tất cả các quốc gia bên ngoài Hoa Kỳ, ngoại trừ cổng 80. Tôi đã liên hệ với máy chủ của mình để thiết lập điều này, nhưng họ đã do dự bởi vì họ nói rằng nó sẽ tạo ra một tải máy chủ đặc biệt cao. Đó là máy chủ Xeon 1230 chuyên dụng với RAM 32 GB chạy CentOS 6.6 và iptables.

Đầu tiên, lý do nào để không làm điều này? Thứ hai, là những gì chủ nhà của tôi nói với tôi chính xác? Thứ ba, có cách nào để thực hiện điều này mà không có tác động hiệu suất cao?


12
Thật không may là liên hệ lưu trữ của bạn đã không đề cập "Nhưng có một cách tiêu chuẩn công nghiệp để làm điều tương tự bạn muốn với ít bảo trì hơn, bảo mật tốt hơn và tải máy chủ thấp có tên là Explicit Deny All. Đưa cho tôi danh sách IP bạn cần đưa vào danh sách trắng và tôi sẽ thiết lập nó cho bạn sau 20 phút nữa. " - Đó là những gì tôi mong đợi được nghe từ bất kỳ sysadmin nào xứng đáng với chiếc ghế họ ngồi.
corsiKa

chỉ chặn chúng khi chúng lạm dụng ... bảo trì là tối thiểu theo cách này ... với một bảng đầy đủ, bạn phải cập nhật nó
Skaperen 14/2/2015

Câu trả lời:


33

Thiết lập các quy tắc cụ thể để chặn mọi phạm vi IP (bằng cách liệt kê mọi phạm vi) là cách tiếp cận sai.

Đặt quy tắc mặc định trong iptables để thả tất cả lưu lượng truy cập vào các cổng quản lý của bạn. Sau đó thêm quy tắc để chỉ cho phép truy cập từ các IP đáng tin cậy của bạn (của bạn và máy chủ của bạn).

Chặn mọi thứ theo mặc định và chỉ cho phép lưu lượng truy cập được phê duyệt thường được gọi là "từ chối rõ ràng tất cả" và được coi là cách thực hành tốt nhất. Trong trường hợp này cũng giúp tránh tác động hiệu suất mà máy chủ của bạn quan tâm.


Tại sao, nếu bạn biết, đó có phải là một sự từ chối rõ ràng khi bạn từ chối tất cả mọi người bằng cách chỉ cho phép một vài IP thông qua tường lửa?
Ben

Không có gì ngầm hiểu về nó thực sự ...
mr-sk

Một mối quan tâm tiềm năng cho danh sách trắng là truy cập từ xa. Bạn sẽ cần một VPN đáng tin cậy (tách biệt với máy chủ này) và cũng cho phép phạm vi IP của nó.
Foo Bar

9

Để làm điều này, bạn sẽ phải thêm hàng chục nghìn quy tắc tường lửa, một quy tắc cho mỗi netblock, trong đó một quốc gia có thể có bất kỳ nơi nào từ một đến vài nghìn netblocks được liên kết với nó.

Khi có yêu cầu, nó sẽ phải được kiểm tra theo mọi quy tắc , sẽ mất rất ít thời gian cho vài chục hoặc thậm chí vài trăm quy tắc, nhưng với nhiều quy tắc bạn cần sử dụng, (1) mỗi quy tắc yêu cầu sẽ bị chậm lại đáng kể và (2) nó sẽ sử dụng rất nhiều CPU.

Cách để thực hiện việc này mà không có tác động hiệu suất đáng kể là thực hiện những gì bạn đang làm: chỉ chặn những địa chỉ cụ thể đang gặp sự cố.


Cảm ơn bạn đã trả lời, Michael. Không có cách nào chỉ cho phép IP của Hoa Kỳ, do đó chỉ cần kiểm tra một quy tắc?
Big Iron

2
@BigIron Tất nhiên là không. Ngoài ra còn có hàng chục ngàn netblocks ở Mỹ. Bạn thua một trong hai cách.
Michael Hampton

1
@SamuelEdwinWard Không, không. Mặc dù chúng được trải rộng khắp mọi nơi, nhưng nhìn chung các danh sách chặn như vậy không có số lượng nhiều hơn vài trăm mục.
Michael Hampton

1
Bạn có một tài liệu tham khảo cho sự chậm lại đáng kể như thế nào? Một tìm kiếm tuyến tính mặc dù tất cả các quy tắc nghe có vẻ không hiệu quả, nhưng ít nhất một tìm kiếm nhị phân có nghĩa là việc tìm kiếm bảng quy tắc 60.000 sẽ chỉ đưa 16 đầu dò vào bảng và điều đó có thể nhanh hơn việc cho phép lưu lượng truy cập đến máy chủ web có thể phải thực thi I / O đĩa để phục vụ yêu cầu. Tôi không thể tìm thấy bất kỳ số liệu nào về các quy tắc lớn trong iptables.
Johnny

1
@Johnny netfilter (iptables) xử lý các quy tắc của nó một cách không may tuyến tính: serverfault.com/questions/334885/ợi
Ross Ridge

5

Những gì bạn cần là một công cụ gọi là ipsets

Các bộ IP là một khung bên trong nhân Linux, có thể được quản lý bởi tiện ích ipset. Tùy thuộc vào loại, hiện tại một bộ IP có thể lưu trữ địa chỉ IP, số cổng (TCP / UDP) hoặc địa chỉ IP theo địa chỉ MAC, đảm bảo tốc độ nhanh khi khớp với mục nhập so với bộ.

Điều quan trọng cần lưu ý ở đây là nó nhanh như chớp! Đó là bởi vì số lượng lớn các mạng ip có thể được biểu diễn bằng một hàm băm duy nhất thay vì hàng trăm hoặc hàng nghìn dòng quy tắc iptables.

Đối với các quốc gia chặn, xem ví dụ này :


1

Bỏ qua một chút về việc có hay không làm theo cách này là một ý tưởng tốt, bạn có thể làm những gì bạn yêu cầu với mô-đun GeoIP cho iptables.

Sau khi xây dựng và cài đặt mô-đun (và giữ cho danh sách IP của bạn được cập nhật hàng tháng), bạn có thể thực hiện những thứ như thế này để chặn từng quốc gia:

iptables -I INPUT -m geoip --src-cc CN -j DROP

Hoặc sử dụng --src-cc US -j ACCEPTvà nếu bạn muốn chỉ định những quốc gia mà bạn muốn giữ.


Đó sẽ không phải là một thảm họa hiệu suất ngay cả khi sử dụng "từ chối rõ ràng tất cả" và chỉ cho phép một quốc gia duy nhất?

@ AndréDaniel, tôi thừa nhận rằng tôi đã không nhìn vào mã GeoIP, nhưng giả sử rằng họ sử dụng một triển khai không ngây thơ thông minh hơn so với tuần tự so sánh một loạt các netblocks (ví dụ: một trie), thì không cần thiết.
Scott Dudley

Và nếu bạn đang nói về IPv4 và bạn có 512 Mb để dự phòng theo quy tắc, thì việc triển khai lý thuyết bằng cách sử dụng bảng tra cứu có thể hoàn thành công việc trong O (1).
Scott Dudley

1

Nếu bạn muốn duy trì khả năng kết nối từ bất cứ đâu mà không cần duy trì danh sách đen / danh sách trắng vị trí địa lý, bạn có thể thực hiện gõ cổng . Nó sẽ dừng hầu hết các nỗ lực tự động trong khi cho phép bạn vẫn kết nối từ bất kỳ địa chỉ nào.

Lưu ý: Không đặt cổng để gõ liền kề với cổng để mở, nếu không, quét cổng tuần tự sẽ kích hoạt quy tắc của bạn.


0

Nếu bạn có một bộ định tuyến hỗ trợ BGP hoặc hai trong ngăn xếp của bạn VÀ có một số ý tưởng bạn đang làm gì / làm việc với ai đó biết họ đang làm cái quái gì, hoặc là có thể đằng sau một nhà cung cấp phòng chống DDoS đủ mát mẻ để hỗ trợ thực hiện việc này, có một phương pháp tương đối mới để hạn chế lưu lượng truy cập vào các khu vực địa lý được gọi là bọc đen chọn lọc mà tôi nghĩ là đáng xem.

https://ripe68.ripe.net/presentations/176-RIPE68_JSnijder_DDoS_Damage_Control.pdf

http://mailman.nanog.org/pipermail/nanog/2014-F / 02 / 064381.html

http: //www.i INTERNetsociety.org/deploy360/blog/2014/07/video-selective-blackholing-at-ripe-68/

Vì phương pháp này hoạt động dựa trên thao tác của các tuyến, nó bỏ qua mọi vấn đề tải máy chủ.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.