MySQL, açık kaynaklı bir ilişkisel veritabanı yönetim sistemidir ve popüler LAMP yığınının bir parçasıdır. bu mysql_secure_installation
komut dosyası, MySQL sunucu güvenliğini önemli ölçüde geliştirmenize olanak tanır.
Bu kılavuzda, bir MySQL sunucusunun güvenliğini sağlamayı öğreneceksiniz.
Not: MariaDB, MySQL’in popüler bir çatalıdır. Bu makalede verilen bilgiler MariaDB için de geçerlidir.
Önkoşullar
Not: Üstün performans için önceden yapılandırılmış Bare Metal Bulut bulut sunucularımızdan birinde bir MySQL veritabanı bulut sunucusunu dağıtın. sadece 0,10 $/saat.
mysql_secure_installation Komutu
Kurulumdan sonra, makinenizdeki MySQL sunucusu örneği güvensizdir ve saldırılara açıktır. mysql_secure_installation
Unix sistemlerde MySQL sunucu kurulumunun güvenliğini sağlamak için geliştirilmiş bir kabuk betiğidir. Komut dosyası, güvenlik ayarlarını yapılandırır ve şunları yapmanızı sağlar:
bu [option]
bağımsız değişkenler isteğe bağlıdır ve aşağıdaki bölümde ele alınmıştır.
1. Yürütün mysql_secure_installation
aşağıdaki sözdizimini kullanarak komut dosyası:
sudo mysql_secure_installation [option]
2. Parolanızı yazın ve tuşuna basın. Y
ayarlamak için VALIDATE PASSWORD
yeni parolanın yeterince güçlü olup olmadığını kontrol eden bileşen.
3. Ardından, girin 0
, 1
veya 2
ayarlamak istediğiniz şifre gücüne bağlı olarak:
0
– Düşük. Parola en az 8 karakterden oluşur.1
– Orta. Parola en az 8 karakterden oluşur (sayısal, büyük/küçük harf karışık ve özel karakterler dahil).2
– Güçlü. Parola en az 8 karakterden oluşur (sayısal, büyük/küçük harf ve özel karakterler dahil ve parolayı bir sözlük dosyasıyla karşılaştırır).
4. Gerekli gücü belirledikten sonra, girin ve tekrar girin şifre.
5. Program, parolanızın gücünü değerlendirir ve Y
devam etmek.
6. Ardından, aşağıdaki güvenlik özelliklerini yanıtlamanız gerekir:
- Anonim kullanıcılar kaldırılsın mı?
- Kök girişine uzaktan izin verilsin mi?
- Test veritabanı kaldırılsın ve ona erişilsin mi?
- Ayrıcalık tabloları şimdi yeniden yüklensin mi?
Komut dosyasını varsayılan ayarlarla çalıştırmak için tüm bu sorulara önerilen yanıt şudur: Y
.
mysql_secure_installation Seçenekleri
bu mysql_secure_installation
komut dosyası, MySQL güvenlik yapılandırmalarını özelleştiren belirli seçenekleri kabul eder. Seçenekleri komut satırında veya [client]
seçenek dosyasının grubu.
Not: MySQL, seçenek dosyalarından (yapılandırma dosyaları olarak da adlandırılır) başlangıç seçeneklerini okuyabilir. Programın seçenek dosyalarını okuyup okumadığını kontrol etmek için, mysql --help
emretmek. Program seçenek dosyalarını okursa, çıktıda dosyaların adı ve hangi seçenek gruplarını tanıdığı belirtilir. Dosyayı açın ve istenen seçenekleri dosyaya ekleyin. [client]
grup. Tüm MySQL istemcileri tarafından okunacak ve belirtilen seçenekler tüm istemciler için geçerli olacaktır.
En sık kullanılan mysql_secure_installation
seçenekler --host
Ve --port
.
Örneğin, MySQL’i 3307 numaralı bağlantı noktasını kullanarak yerel sunucuya bağlanan istemciler tarafından IPv6 bağlantılarına izin verecek şekilde yapılandırabilirsiniz. ::1
yerel ana bilgisayar adresini seçin ve varsayılan bağlantı noktasını (3306) 3307 olarak değiştirin.
Bu nedenle, kurulum komut dosyasını çalıştırırken şu komutu kullanırsınız:
mysql_secure_installation --host=::1 --port=3307
Diğer desteklenen seçenekler şunları içerir:
--basedir=dir |
Temel dizini belirtin. |
--print-defaults |
Program bağımsız değişken listesini yazdırın ve çıkın. |
--no-defaults |
Komut dosyasının herhangi bir seçenek dosyasından varsayılan seçenekleri okumasını engeller. |
--defaults-file=# |
Komut dosyasına yalnızca belirtilen seçenek dosyasını okumasını söyler # . |
--defaults-extra-file=# |
Belirtilen dosyayı okur # olağan seçenek dosyalarını okuduktan sonra. |
--defaults-group-suffix=str |
Olağan seçenek gruplarını okur, ancak aynı zamanda olağan adlara ve a’ya sahip grupları da okur. str sonek |
--help |
Bir yardım mesajı görüntüler ve çıkar. |
--host=host_name |
Belirtilen ana bilgisayardaki MySQL sunucusuna bağlanır. |
--no-defaults |
Komut dosyasının seçenek dosyalarını okumasını engeller (hariç .mylogin.cnf dosya). |
--password |
Komut dosyası bu seçeneği kabul eder ancak her zaman yok sayar. Bu nedenle, komut dosyası her çağrıldığında bir parola ister. |
--port=# |
Bağlanılacak TCP/IP bağlantı noktası numarasını belirtin. |
--print-defaults |
Program adını ve varsayılan seçenekleri yazdırır. |
--protocol={#} |
Sunucuya bağlanmak için kullanılacak bir aktarım protokolü belirtin {TCP | SOCKET | PIPE | MEMORY} . |
--socket=path |
Unix soket dosyasını veya Windows’u belirtin named_pipe bağlanılacak değişken localhost . |
--ssl=[1 | 0] |
Sırasıyla bağlantı şifrelemeyi etkinleştirir veya devre dışı bırakır. ile başlayan seçenekler --ssl giden yolu da gösterebilir. SSL anahtarları ve sertifikaları. |
--ssl-ca=filename |
Güvenilir SSL Sertifika Yetkilileri listesini içeren dosyayı belirtin. |
--ssl-capath=dir |
Güvenilir SSL Sertifika Yetkilisi sertifika dosyalarını içeren dizin yolunu belirtin. |
--ssl-cert=filename |
İstemci SSL ortak anahtar sertifikasını içeren dosyanın yolu. |
--ssl-cipher=list |
Bağlantı şifreleme için izin verilen şifrelerin listesi. |
--ssl-crl=filename |
Sertifika iptal listelerini içeren dosyanın yolu. |
--ssl-crlpath=dir |
Sertifika iptal listesi dosyalarını içeren dizin. |
--ssl-key=filename |
İstemci SSL özel anahtar sertifikasını içeren dosyanın yolu. |
--ssl-mode=mode |
Artan katılık sırasına göre sunucu bağlantısı güvenlik durumlarından birini belirtin: [DISABLED | PREFERRED | REQUIRED | VERIFY_CA | VERIFY_IDENTITY] . |
--ssl-verify-server-cert |
İstemciye, Ortak Ad kimliğini içeren sunucu sertifikasına göre ana bilgisayar adı kimliğini doğrulamasını söyleyin. |
--tls-version=list |
İzin verilen TLS protokollerinin virgülle ayrılmış bir listesini belirtin Şifreli bağlantılar için. |
--use-default |
Komut dosyası etkileşim olmadan yürütülür. |
--user=username |
Sunucuya bağlanmak için MySQL hesabı kullanıcı adını belirtin. |
Çözüm
Bu kılavuz, Linux’ta MySQL sunucu güvenliğinin nasıl iyileştirileceğini gösterdi. MySQL’i güvenli hale getirdikten sonra, sorunsuz bir sunucu işlemi sağlamak için MySQL performansını iyileştirmenizi öneririz.
İndirilebilir bir hile sayfası içeren önemli MySQL komutları hakkındaki makalemizde MySQL hakkında bilgi edinmeye devam edin.