dataiotech Labs
dbaguidedbaguideDBAdataxtoolsdataopsphere
Runbook #19
mysql
SecuritySEV2 · DEGRADATION15-30 dakika / 15-30 minsSUPER / CONNECTION_ADMIN / RELOAD / REPLICATION CLIENT

MySQL Failed Connections Spike: Authentication and Network Investigation

Classifies rising Aborted_connects as credential errors, TLS/network trouble or possible abuse; safely investigates source accounts and clients.

Related Metrics:M19
Related Scripts:S35S28
#aborted-connects#authentication#host-cache#tls

Operational Safety & Risk Notice

This runbook contains operational intervention steps; several are write-impacting (KILL, terminate, DROP, RESIZE). Verify in a staging environment first, and apply sequentially in production with verification.

🟢 Salt Okunur (Read-Only)·🟡 Geri Alınabilir (Reversible)·🔴 Yüksek Etkili / Geri Alınamaz (High Impact)

1. Symptom & Signals

- M19 (`Aborted_connects`) artışı, `Access denied`, `Host ... is blocked` veya uygulamada bağlantı reddi.

2. Business & Technical Impact

Meşru bağlantılar kesilir; yanlış parola dağıtımı, auth eklentisi uyumsuzluğu, TLS veya brute-force ihtimali vardır. `Aborted_connects` her zaman saldırı demek değildir.

3. Diagnosis & Root-Cause Analysis

🟢 Read-Only1. İki örnek alıp farkı ve host cache hata sınıflarını (varsa) kaydedin:
sql
SHOW GLOBAL STATUS WHERE Variable_name IN ('Aborted_connects','Connection_errors_max_connections','Uptime');
SELECT IP, HOST, SUM_CONNECT_ERRORS, COUNT_AUTHENTICATION_ERRORS,
       COUNT_HOST_BLOCKED_ERRORS, COUNT_HANDSHAKE_ERRORS, COUNT_SSL_ERRORS,
       FIRST_SEEN, LAST_SEEN
FROM performance_schema.host_cache
ORDER BY SUM_CONNECT_ERRORS DESC LIMIT 20;

Host cache ve error log kayıtları sürüme/yapılandırmaya göre sınırlı olabilir; varsa firewall/LB loguyla eşleştirin.

🟢 Read-Only2. S35 ile hesabın host eşleşmesi, kilitli oluşu, süresi ve auth plugin'ini; S28 ile mevcut bağlantıların kaynak dağılımını inceleyin. Parola/hash değerlerini log'a veya rapora koymayın.
🟢 Read-Only3. `SHOW GLOBAL VARIABLES LIKE 'require_secure_transport';` ve istemci sürümünü karşılaştırın. MySQL 8.0'da `caching_sha2_password` kullanan hesabın eski istemciyle uyumsuzluğunu araştırın.
🟢 Read-Only4. `max_connect_errors` eşiği aşılmışsa `host_cache` içindeki engellenen IP'yi doğrulayın; altta yatan ağ/handshake nedenini çözmeden açmak kalıcı değildir.

4. Remediation & Action Plan

🟡 Reversible1. Meşru servis ise yapılandırma dağıtımını düzeltin, doğru host/port/TLS ve yetkileri uygulama ekibiyle doğrulayın. Parolayı güvenli secret yönetimi üzerinden döndürün, bu runbook'a değer yazmayın.
🟡 Reversible2. Kötü niyetli kaynak doğrulanmışsa firewall/LB üzerinden kısıtlayın ve güvenlik ekibine bildirin; paylaşılan NAT IP'sini körlemesine bloklamayın.
🟡 Reversible3. `FLUSH HOSTS;` **tüm host cache engellerini temizler**, yalnızca geçici/yanlış engellemeyi doğruladıktan sonra ve etkisini anlayarak uygulayın; sürümde desteklenen `TRUNCATE TABLE performance_schema.host_cache;` de benzer yan etkiye sahiptir.
🔴 HIGH RISK / IRREVERSIBLE4. `skip-grant-tables` ile kimlik doğrulamayı devre dışı bırakmayın; tüm veritabanını riske atar.

5. Verification & Health Checks

- İlgili uygulama yeniden bağlanır; M19/baz çizgi, auth ve handshake hataları normale döner.

- Kaynak IP/kullanıcı eşleşmesi belgelenir; saldırı şüphesinde denetim kayıtları korunur.

6. Rollback & Contingency Plan

- Firewall kuralını yalnızca gerçekten yanlış engelleme varsa geri alın; geçici hesap/host değişikliklerini eski değerlere döndürün.

- `FLUSH HOSTS` ile temizlenen sayaçlar ve kayıtlar geri getirilemez; öncesinde kanıtı saklayın.

More MYSQL Runbooks