Kami memiliki aplikasi PHP yang terhubung ke server MySQL, dan kami ingin mengamankan koneksi antara server web & aplikasi dan database.
Pada masa puncaknya, server web membuat ratusan koneksi bersamaan ke database, dan melakukan banyak membaca dan menulis kecil. Saya sadar ini tidak optimal, dan saya sedang berupaya mengurangi jumlah koneksi database secara paralel dengan ini.
Kami tidak memiliki koneksi terus-menerus ke basis data yang dihidupkan saat ini, dan meskipun kami bermaksud di masa depan saya ingin menerapkan ini secara independen dari itu.
Dari segi perangkat keras - server MySQL cukup tebal (16 inti) seperti halnya server web. Mereka adalah server khusus.
Pertanyaan saya kemudian mengelilingi cara paling aman untuk mengamankan & mengenkripsi koneksi ke server database.
Penelitian saya sejauh ini telah menyarankan bahwa overhead kinerja utama adalah dengan mengatur koneksi SSL - setelah SSL terhubung ada sedikit penalti kinerja. Dan inilah yang saya miliki tentang setiap metode mengamankan koneksi:
- Sertifikat SSL MySQL - berfungsi seperti SSL normal. Dapat menggunakan sertifikat klien untuk mencegah koneksi yang tidak sah. Tidak ada koneksi terus-menerus dengan pengaturan kami yang ada. Masih harus memiliki MySQL mendengarkan pada port terbuka di firewall.
- stunnel. Mengatur port ke port ssl tunnel. Tidak perlu mengkonfigurasi ulang MySQL. Dapat menutup port normal mendengarkan MySQL untuk mencegah upaya koneksi MySQL berbahaya. Tidak mendukung koneksi persisten. Hit kinerja tidak dikenal.
- Tunneling SSH. Buat terowongan SSH antara klien dan server. Tidak perlu mengkonfigurasi ulang MySQL. Dapat menutup port normal mendengarkan MySQL untuk mencegah upaya koneksi MySQL berbahaya. Mendukung koneksi terus-menerus, tetapi ini terkadang putus. Hit kinerja tidak dikenal.
Ini sejauh yang saya bisa dapatkan. Saya menyadari keterbatasan tolok ukur - dalam pengalaman saya menjalankannya, sangat sulit untuk mensimulasikan lalu lintas dunia nyata. Saya berharap seseorang memiliki saran berdasarkan pengalaman mereka sendiri dalam mengamankan MySQL?
Terima kasih
sumber
openssl speed
dan pilih cipher yang sesuai dengan kebutuhan Anda untuk perlindungan vs kompromi kinerja.Jawaban:
Saya akan pergi dengan ssh-tunnel dan melakukannya dengan
autossh
alih - alihssh
. Tentang kinerja saya akan mengatakan, bahwa protokol SSH sangat dapat dikustomisasi dan Anda dapat menyesuaikan koneksi Anda, jika diperlukan.Tapi saya tidak akan mengharapkan overhead yang terlihat setelah koneksi diatur.
sumber
Dengan melihat tolok ukur artikel ini (Blog Kinerja MySQL), Anda harus benar-benar menghindari kemampuan SSL asli MySQL.
sumber