Назад | Перейти на главную страницу

зачем использовать ssh-туннелирование для сервера mysql?

у меня есть сервер ubuntu, выступающий в качестве моего сервера лампы для моих php-сайтов.

Сервер mysql установлен и открыт для порта localhost.

Я читал о том, как туннелировать через ssh на мой сервер mysql.

но я не понял, почему это лучше, чем открывать сервер mysql непосредственно для интернет-порта.

Причина в любом случае, хакер может подобрать порт для паролей. либо порт mysql (3306), если он открыт для публики, либо ssh (22), если используется туннелирование.

Так почему же лучше использовать ssh-туннелирование для mysql (и многих других серверных приложений)?

Если вы используете SSH-туннелирование, тогда ваши пароли SSH и MySQL шифруются во время связи, а также все данные, которые проходят через туннель. Если вы не используете SSH-туннель и не используете поддержку SSL в MySQL, шифрование отсутствует, и третья сторона-злоумышленник может использовать анализ пакетов или другие гнусные средства для прослушивания ваших сообщений.

Кроме того, если вы используете SSH-туннелирование, вы будете предупреждены об изменении SSH-ключа удаленной машины. Этого не произойдет со стандартным MySQL, а это означает, что злоумышленник может использовать спуфинг IP или Атака человека посередине чтобы нарушать / мешать / подслушивать ваше общение.

Для получения дополнительной информации см .:

но я не понял, почему это лучше, чем открывать сервер mysql непосредственно для интернет-порта. потому что в любом случае хакер может подобрать порт для паролей

Простой ответ заключается в том, что существует культура, которая доверяет SSH обеспечивать безопасность лучше, чем MySQL. Сторонник подхода SSH может утверждать, что протокол обмена паролями MySQL был скомпрометирован в прошлом, поэтому лучше полагаться на SSH.

Но ты прав. Пароль SSH можно взломать почти так же легко, как пароль MySQL.

К счастью, SSH поддерживает несколько методов аутентификации, и пароли являются лишь одним из них. Для хостов с выходом в Интернет я видел, как системные администраторы полностью отключали аутентификацию по паролю, выбирая вместо этого более сильные методы, такие как аутентификация с открытым ключом. См. RSAAuthentication в sshd_config (5), а также ssh-keygen (1) для получения дополнительной информации об аутентификации с открытым ключом.

Надеюсь это поможет!

Я бы не стал использовать SSH-туннелирование для трафика приложений, если у вас нет на то веской причины. Если приложение работает на том же сервере, что и база данных, вам, вероятно, следует использовать сокет MySQL и отключить сеть для MySQL. Это особенно верно, если сервер работает непосредственно в Интернете.

Если у вас несколько серверов, вы можете использовать SSL изначально в MySQL для шифрования транзитного трафика.

Я подозреваю, что вы имеете в виду разработчиков в более крупных средах, использующих SSH-туннелирование для клиентских подключений. Обычно это происходит из-за того, что доступ к брандмауэру не предоставляется напрямую MySQL, но разрешен для SSH, где SSH позволяет обходиться без увеличения размера MySQL.

MySQL с использованием SSL для безопасных подключений

Поскольку вы можете использовать аутентификацию сертификата до аутентификации MySQL.