Безпечне підключення до MySQL - SSL MySQL проти Stunnel проти SSH Tunneling


15

У нас є програма PHP, яка підключається до сервера MySQL, і ми хочемо забезпечити з'єднання між веб-серверами та серверами додатків та базою даних.

У піковий час веб-сервери здійснюють багато сотень одночасних підключень до бази даних та виконують безліч невеликих читання та запису. Я знаю, що це не оптимально, і я працюю над зменшенням кількості підключень до бази даних паралельно цьому.

Наразі у нас не ввімкнені стійкі зв’язки з базою даних, і хоча ми маємо намір в майбутньому, я хотів би це реалізувати незалежно від цього.

Апаратне забезпечення - сервер MySQL досить кумедний (16 ядер), як і веб-сервери. Вони - виділені сервери.

Тоді моє запитання оточує найефективніший спосіб забезпечення та шифрування з'єднань із сервером бази даних.

Поки що моє дослідження свідчить про те, що основні показники продуктивності - це встановлення з'єднання SSL - коли SSL підключений, штрафи за продуктивність є незначними. І ось що я маю про кожен спосіб закріплення з'єднання:

  1. MySQL SSL сертифікати - працює як звичайний SSL. Може використовувати сертифікати клієнта для запобігання несанкціонованого з'єднання. Немає стійких зв’язків з нашими наявними налаштуваннями Ми все ще повинні слухати MySQL на відкритому порті на брандмауері.
  2. оглушення. Налаштувати порт для порту ssl тунель. Не потрібно переналаштовувати MySQL. Можна закрити звичайний порт прослуховування MySQL, щоб запобігти шкідливим спробам підключення MySQL. Не підтримує стійкі з'єднання. Невідомий хіт виступу.
  3. SSH тунелювання. Створіть тунель SSH між клієнтом та сервером. Не потрібно переналаштовувати MySQL. Можна закрити звичайний порт прослуховування MySQL, щоб запобігти шкідливим спробам підключення MySQL. Підтримує стійкі зв’язки, але вони іноді випадають. Невідомий хіт виступу.

Це стільки, скільки мені вдалося дістати. Я знаю обмеження орієнтирів - на моєму досвіді їх використання дуже складно імітувати реальний світовий трафік. Я сподівався, що хтось матиме поради, засновані на власному досвіді забезпечення MySQL?

Спасибі


Яка у вас архітектура сервера / мережі? Який сценарій ви намагаєтеся запобігти? Якщо весь зв’язок між сервером і сервером знаходиться на окремому комутаторі / VLAN, можливо, вам не знадобиться захист від обнюхування. Що стосується продуктивності, запускайте openssl speedта вибирайте шифри, які відповідають вашим потребам щодо компромісу захисту та ефективності.
Марцін

@Marcin - спасибі за підказку швидкості openssl. Сценарії, які я намагаюся запобігти, - це несанкціоноване підключення до mysql та шифрування зв'язку між серверами. Будь-яка подальша допомога, яку ви можете надати порівнявши три підходи, буде вдячно отримана.
dastra

1
до 3) використовувати autossh для зменшення ефекту випадання. У разі відключення він підключиться автоматично. Тут добре працює в багатьох ситуаціях.
ansi_lumen

Відповіді:


5

Я б пішов з ssh-тунелем і зробив це autosshзамість цього ssh. Щодо продуктивності, я б сказав, що протокол SSH дуже настроюється, і ви можете добре налаштувати ваше з'єднання, якщо потрібно.

Але я б не очікував помітних накладних витрат після встановлення з'єднання.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.