# önder online
Teknoloji ve siber güvenlik dünyasına hoş geldiniz Güncel siber tehditler ve korunma yöntemleri Yapay zekâ ve otomasyonun güvenliğe etkileri Microsoft 365 ve Active Directory güvenlik rehberleri Yazılım geliştirmede güvenlik odaklı yaklaşımlar Teknoloji ve siber güvenlik dünyasına hoş geldiniz Güncel siber tehditler ve korunma yöntemleri

Menu

SQL Notları: SSL Bağlantı Kurulumu

SQL Notları: SSL Bağlantı Kurulumu

MySQL'de SSL bağlantıları kurmak ve sunucu değişkenlerini yönetmek, veritabanı güvenliği ve performansı açısından oldukça önemlidir. SSL bağlantıları, veri iletişimini şifreleyerek güvenli hale getirirken, `SHOW VARIABLES` ve `SHOW STATUS` komutları, sunucu yapılandırması ve performansı hakkında değerli bilgiler sağlar. Bu araçları doğru bir şekilde kullanarak, veritabanı yönetimini daha güvenli ve verimli hale getirebilirsiniz.

### MySQL'de SSL Bağlantı Kurulumu ve Değişkenlerin Gösterilmesi

MySQL, güvenli bağlantılar kurmak ve sunucu değişkenlerini yönetmek için çeşitli araçlar sunar. Bu yazıda, **SSL bağlantı kurulumu** ve **SHOW VARIABLES** komutu ile ilgili temel bilgileri ve kullanım örneklerini ele alacağız.

---

### SSL Bağlantı Kurulumu

MySQL'de SSL bağlantıları, veri iletişimini şifreleyerek güvenli hale getirir. Bu özellik, özellikle hassas verilerin iletilmesi gereken durumlarda önemlidir.

#### Debian Tabanlı Sistemlerde SSL Kurulumu
1. **OpenSSL ve Gerekli Kütüphanelerin Kurulumu:**
  ```bash
  apt-get -y install openssl
  apt-get -y install libssl-dev
  ```

2. **SSL Sertifikalarının Oluşturulması:**
  ```bash
  mkdir /home/ubuntu/mysqlcerts
  cd /home/ubuntu/mysqlcerts

  openssl genrsa 2048 > ca-key.pem
  openssl req -new -x509 -nodes -days 3600 -key ca-key.pem -out ca.pem

  openssl req -newkey rsa:2048 -days 3600 -nodes -keyout server-key.pem -out server-req.pem
  openssl rsa -in server-key.pem -out server-key.pem
  openssl x509 -req -in server-req.pem -days 3600 -CA ca.pem -CAkey ca-key.pem -set_serial 01 -out server-cert.pem

  openssl req -newkey rsa:2048 -days 3600 -nodes -keyout client-key.pem -out client-req.pem
  openssl rsa -in client-key.pem -out client-key.pem
  openssl x509 -req -in client-req.pem -days 3600 -CA ca.pem -CAkey ca-key.pem -set_serial 01 -out client-cert.pem
  ```

3. **MySQL Yapılandırma Dosyasına SSL Ayarlarının Eklenmesi:**
  ```bash
  vi /etc/mysql/mysql.conf.d/mysqld.cnf
  ```
  `` bölümüne aşağıdaki satırları ekleyin:
  ```ini
  ssl-ca = /home/ubuntu/mysqlcerts/ca.pem
  ssl-cert = /home/ubuntu/mysqlcerts/server-cert.pem
  ssl-key = /home/ubuntu/mysqlcerts/server-key.pem
  ```

4. **MySQL'in Yeniden Başlatılması:**
  ```bash
  service mysql restart
  ```

5. **SSL Bağlantısının Test Edilmesi:**
  ```bash
  mysql --ssl-ca=ca.pem --ssl-cert=client-cert.pem --ssl-key=client-key.pem -h 127.0.0.1 -u superman -p
  ```

  Bağlantının güvenli olduğunu doğrulamak için:
  ```sql
  SHOW VARIABLES LIKE '%ssl%';
  ```

#### CentOS/RHEL 7'de SSL Kurulumu
CentOS/RHEL 7'de SSL kurulumu benzer adımları içerir, ancak sertifikaların konumu ve dosya yolları farklı olabilir. Örneğin, sertifikalar `/etc/pki/tls/certs/mysql/` dizinine yerleştirilir ve MySQL yapılandırma dosyası (`/etc/my.cnf`) güncellenir.

---

### SHOW VARIABLES ve SHOW STATUS Komutları

MySQL'de sunucu değişkenlerini ve durum bilgilerini görüntülemek için `SHOW VARIABLES` ve `SHOW STATUS` komutları kullanılır.

#### SHOW VARIABLES Örneği
Sunucu değişkenlerini görüntülemek için:
```sql
SHOW VARIABLES;
```

Belirli bir değişkeni filtrelemek için:
```sql
SHOW VARIABLES LIKE 'max_join_size';
```

Veya joker karakterler kullanarak:
```sql
SHOW VARIABLES LIKE '%size%';
```

#### SHOW STATUS Örneği
Sunucu durum bilgilerini görüntülemek için:
```sql
SHOW STATUS;
```

Belirli bir durum değişkenini filtrelemek için:
```sql
SHOW STATUS LIKE 'Threads_connected';
```

#### GLOBAL ve SESSION Modifikatörleri
- `GLOBAL`: Sunucunun genel değişkenlerini ve durum bilgilerini gösterir.
- `SESSION`: Mevcut oturum için geçerli değişkenleri ve durum bilgilerini gösterir.

Örnek:
```sql
SHOW GLOBAL VARIABLES;
SHOW SESSION STATUS;
```

---

### Sonuç

MySQL'de SSL bağlantıları kurmak ve sunucu değişkenlerini yönetmek, veritabanı güvenliği ve performansı açısından oldukça önemlidir. SSL bağlantıları, veri iletişimini şifreleyerek güvenli hale getirirken, `SHOW VARIABLES` ve `SHOW STATUS` komutları, sunucu yapılandırması ve performansı hakkında değerli bilgiler sağlar. Bu araçları doğru bir şekilde kullanarak, veritabanı yönetimini daha güvenli ve verimli hale getirebilirsiniz.