Temos um aplicativo PHP que se conecta a um servidor MySQL e desejamos garantir conexões entre os servidores de aplicativos e web e o banco de dados.
Nos horários de pico, os servidores da Web fazem muitas centenas de conexões simultâneas com o banco de dados e executam várias pequenas leituras e gravações. Estou ciente de que isso não é o ideal e estou trabalhando para reduzir o número de conexões com o banco de dados paralelamente a isso.
Atualmente, não temos conexões persistentes com o banco de dados ativadas e, embora pretendamos no futuro, eu gostaria de implementar isso independentemente disso.
Em termos de hardware - o servidor MySQL é bastante robusto (16 núcleos), assim como os servidores web. Eles são servidores dedicados.
Minha pergunta envolve a maneira mais eficiente de proteger e criptografar as conexões com o servidor de banco de dados.
Até agora, minha pesquisa sugeriu que a principal sobrecarga de desempenho está na configuração da conexão SSL - depois que o SSL é conectado, há pouca penalidade no desempenho. E aqui está o que eu tenho sobre cada método de segurança da conexão:
- Certificados SSL do MySQL - funciona como SSL normal. Pode usar certificados de cliente para impedir conexões não autorizadas. Não há conexões persistentes com nossa configuração existente. Ainda é preciso ter o MySQL escutando em uma porta aberta no firewall.
- stunnel. Configure uma porta para o túnel ssl da porta. Não precisa reconfigurar o MySQL. Pode fechar a porta de escuta normal do MySQL para impedir tentativas maliciosas de conexão do MySQL. Não suporta conexões persistentes. Sucesso de desempenho desconhecido.
- Túnel SSH. Crie um túnel SSH entre o cliente e o servidor. Não precisa reconfigurar o MySQL. Pode fechar a porta de escuta normal do MySQL para impedir tentativas maliciosas de conexão do MySQL. Suporta conexões persistentes, mas elas às vezes desaparecem. Sucesso de desempenho desconhecido.
Isto é até onde eu pude entender. Estou ciente das limitações dos benchmarks - na minha experiência de executá-los, é muito difícil simular o tráfego no mundo real. Eu esperava que alguém tivesse algum conselho baseado em suas próprias experiências de segurança do MySQL?
obrigado
openssl speede escolha cifras que atendam às suas necessidades de proteção versus comprometimento do desempenho.