Kết nối với MySQL an toàn - SSL của MySQL vs Stunnel vs SSH Tunneling


15

Chúng tôi có một ứng dụng PHP kết nối với máy chủ MySQL và chúng tôi muốn bảo mật các kết nối giữa máy chủ ứng dụng và web và cơ sở dữ liệu.

Vào thời gian cao điểm, các máy chủ web tạo ra hàng trăm kết nối đồng thời tới cơ sở dữ liệu và thực hiện rất nhiều lần đọc và ghi nhỏ. Tôi biết điều này không tối ưu và đang nỗ lực giảm số lượng kết nối cơ sở dữ liệu song song với điều này.

Hiện tại chúng tôi không có kết nối liên tục đến cơ sở dữ liệu và mặc dù trong tương lai chúng tôi muốn thực hiện điều này một cách độc lập.

Phần cứng khôn ngoan - máy chủ MySQL khá chunky (16 lõi) cũng như các máy chủ web. Họ là những máy chủ chuyên dụng.

Câu hỏi của tôi sau đó bao quanh cách hiệu quả nhất để bảo mật và mã hóa các kết nối đến máy chủ cơ sở dữ liệu.

Nghiên cứu của tôi cho đến nay đã đề xuất rằng chi phí hiệu năng chính là với việc thiết lập kết nối SSL - một khi SSL được kết nối, sẽ có rất ít hình phạt về hiệu suất. Và đây là những gì tôi có về mỗi phương pháp bảo mật kết nối:

  1. Chứng chỉ SSL MySQL - hoạt động giống như SSL thông thường. Có thể sử dụng chứng chỉ ứng dụng khách để ngăn chặn các kết nối trái phép. Không có kết nối liên tục với thiết lập hiện tại của chúng tôi. Vẫn phải có MySQL lắng nghe trên một cổng mở trên tường lửa.
  2. choáng. Thiết lập một cổng để đường hầm ssl cổng. Không phải cấu hình lại MySQL. Có thể đóng cổng nghe MySQL bình thường để ngăn chặn các nỗ lực kết nối MySQL độc hại. Không hỗ trợ các kết nối liên tục. Hiệu suất không rõ.
  3. SSH đường hầm. Tạo một đường hầm SSH giữa máy khách và máy chủ. Không phải cấu hình lại MySQL. Có thể đóng cổng nghe MySQL bình thường để ngăn chặn các nỗ lực kết nối MySQL độc hại. Hỗ trợ các kết nối liên tục, nhưng đôi khi bỏ qua. Hiệu suất không rõ.

Điều này là xa như tôi đã có thể nhận được. Tôi nhận thức được những hạn chế của điểm chuẩn - theo kinh nghiệm của tôi khi chạy chúng, rất khó để mô phỏng lưu lượng truy cập trong thế giới thực. Tôi đã hy vọng rằng ai đó có một số lời khuyên dựa trên kinh nghiệm của họ về bảo mật MySQL?

Cảm ơn


Bạn có loại kiến ​​trúc máy chủ / mạng nào? Loại kịch bản nào bạn đang cố gắng ngăn chặn? Nếu tất cả các giao tiếp từ máy chủ đến máy chủ của bạn nằm trên một công tắc / Vlan riêng biệt, thì bạn có thể không cần bảo vệ chống đánh hơi. Đối với hiệu suất, chạy openssl speedvà chọn mật mã phù hợp với nhu cầu của bạn để bảo vệ và thỏa hiệp hiệu suất.
Marcin

@Marcin - cảm ơn vì mẹo tốc độ openssl. Các tình huống tôi đang cố gắng ngăn chặn là các kết nối trái phép tới mysql và để mã hóa liên lạc giữa các máy chủ. Bất kỳ trợ giúp nào khác mà bạn có thể đưa ra so sánh ba phương pháp sẽ được nhận một cách biết ơn.
dastra

1
đến 3) sử dụng autossh để giảm hiệu ứng bỏ học. Nó sẽ tự động kết nối lại trong trường hợp ngắt kết nối. Hoạt động tốt ở đây trong rất nhiều tình huống.
ansi_lumen

Câu trả lời:


5

Tôi sẽ đi với đường hầm ssh và làm điều đó với autosshthay vì ssh. Về hiệu suất tôi sẽ nói, giao thức SSH có khả năng tùy biến cao và bạn có thể tinh chỉnh kết nối của mình, nếu cần.

Nhưng tôi không mong đợi một chi phí đáng chú ý sau khi kết nối được thiết lập.


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.