2012-08-18 62 views
7

Tôi biết Redis Cluster vẫn không ổn định, nhưng nó đã vượt qua tất cả các bài kiểm tra đơn vị từ khá lâu nên tôi bắt đầu sử dụng nó.Làm thế nào để bảo mật Redis Cluster?

Tôi muốn biết liệu cụm Redis có hoạt động tốt không nếu các nút yêu cầu xác thực. Tôi muốn suy nghĩ có, bởi vì họ kết nối thông qua một cổng khác và sử dụng một giao thức khác, nhưng tôi không chắc chắn và không thể tìm thấy bất kỳ tài liệu hoặc bất cứ điều gì trên spec để xác nhận điều này.

Ngoài ra, nếu giao thức cụm redis bay qua hàng rào xác thực, đó có phải là lỗ hổng bảo mật không? Cơ sở dữ liệu của tôi có thể được truy cập bởi thế giới bên ngoài không? (ít nhất phải có cổng để có thể truy cập vào các nút khác)

+0

Cổng có thể chỉ truy cập được với các nút khác có thể trên cùng một mạng cục bộ. Bạn không nên cởi mở với thế giới bên ngoài. – seppo0010

+0

@ seppo0010 nó phải nếu bạn muốn có bản sao của các nút trên các trung tâm dữ liệu .. –

+1

@ JoãoPintoJerónimo, nếu bạn không thể làm điều này với ví dụ: Công cụ AWS, bạn chỉ có thể mở cổng từ một số địa chỉ IP nhất định. –

Trả lời

3

Nếu bất kỳ giao thức nào bay qua internet, bạn sẽ cần mã hóa ("ssl"), ví dụ trên các trung tâm dữ liệu. Điều này nói chung sẽ ảnh hưởng đến hiệu suất. Trong spec an ninh hiện tại của Redis -

http://redis.io/topics/security

nó được khuyên rằng ssl không được hỗ trợ và bạn sẽ yêu cầu một proxy SSL. Điều này nói chung sẽ gây ra hiệu suất hệ thống, ví dụ: độ trễ mà bạn sẽ phải tính đến.

Vì vậy, các nút cụm sao lý tưởng phải được đặt cùng vị trí. Nếu chúng không thể được thì cluster nên được thiết kế sao cho nó giới hạn việc truyền dữ liệu qua trang web hoặc thực hiện nó ngoài đường mà không có bất kỳ ràng buộc thời gian thực nào.

Tôi cũng đã chọn tắt/bật lệnh trên cơ sở chỉ cần cho mỗi nút (xem chi tiết trong thông số bảo mật ở trên). Tôi không chắc nó có được hỗ trợ trong chế độ cluster hay không.

+0

Bạn có ý tưởng về hit hiệu suất không? Nó thực sự rất tệ? Trong chế độ cụm, bạn chỉ có một tập con của các lệnh có sẵn cho một máy chủ redis truyền thống, chỉ các lệnh làm việc với một khóa duy nhất. Tôi nghĩ rằng hầu hết các giao tiếp giữa các cụm sẽ là dành cho pub/sub, và điều đó sẽ di chuyển qua proxy SSL ... –

+0

Lần truy cập hoàn thiện thường rất quan trọng đối với lượng dữ liệu được truyền vào proxy ssl, cách ssl proxy mạnh vv cách tốt nhất để chuyển tiếp là thiết lập một cụm và thực hiện một số bài kiểm tra khả năng và hoàn thiện. – NiladriBose

6

đường hầm SSH có thể là một giải pháp dễ dàng:

  1. Bạn không cần để lộ các cổng redis với thế giới bên ngoài. chỉ một ssh.
  2. Nén dữ liệu hỗ trợ SSH, điều này có thể giảm chuyển giữa các trung tâm dữ liệu.

nhanh Ví dụ: ssh -f -L 1234:localhost:6379 server.com -NC

Điều này sẽ lộ trình bất kỳ kết nối đến để localhost: 1234 đến server.com:6379 từ xa. Vì vậy, bạn có thể thay thế server.com:6379 bằng localhost: 1234 trong tệp cấu hình redis của bạn.

Bạn có thể kiểm tra man ssh để biết thêm thông tin.

+0

Điều đó sẽ chỉ hoạt động đối với Redis một nút, không phải Cụm.Từ tài liệu Redis kể từ năm 2016: "Hiện tại Redis Cluster không hỗ trợ môi trường NAT và trong môi trường chung nơi các địa chỉ IP hoặc cổng TCP được ánh xạ lại." Đường hầm sẽ phá vỡ giao thức liên nút mà nó sử dụng trên cổng 10000. – Ivan

Các vấn đề liên quan