MySQL에 안전하게 연결-MySQL의 SSL 및 Stunnel 및 SSH 터널링


15

MySQL 서버에 연결되는 PHP 응용 프로그램이 있으며 웹 및 응용 프로그램 서버와 데이터베이스 간의 연결을 보호하려고합니다.

피크 타임에 웹 서버는 데이터베이스에 수백 개의 동시 연결을 수행하고 많은 작은 읽기 및 쓰기를 수행합니다. 이것이 최적이 아니라는 것을 알고 있으며 이와 병렬로 데이터베이스 연결 수를 줄이기 위해 노력하고 있습니다.

현재 데이터베이스에 대한 지속적인 연결이 설정되어 있지 않으며 앞으로도이를 독립적으로 구현하려고합니다.

하드웨어 현명한-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

@Marcin-openssl 속도 팁에 감사드립니다. 내가 막으려는 시나리오는 mysql에 대한 무단 연결 및 서버 간의 통신을 암호화하는 것입니다. 세 가지 접근 방식을 비교할 수있는 추가 도움을 받으면 감사하겠습니다.
dastra

1
3) 드롭 아웃 효과를 줄이려면 autossh 를 사용하십시오 . 연결이 끊어지면 자동으로 다시 연결됩니다. 많은 상황에서 잘 작동합니다.
ansi_lumen

답변:


5

나는 ssh-tunnel과 함께 autossh대신에 그것을 할 것이다 ssh. 성능에 대해 SSH 프로토콜은 사용자 정의가 가능하며 필요한 경우 연결을 미세 조정할 수 있습니다.

그러나 연결이 설정된 후 눈에 띄는 오버 헤드는 기대하지 않습니다.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.