DBAtlas · Veritabanı operasyon atlası

Oracle Database güvenlik sıkılaştırma (denetim, ağ, TLS, kimlik, yetki, Unified Auditing, TDE)

OracleSeviye: İleriSüre: 5 dk (denetim) – 4 saat (tam sıkılaştırma)

Kurulum rehberi değildir: çalışan bir Oracle 19c / 23ai (26ai) veritabanının (tek instance, Oracle Restart ya da RAC; CDB/PDB) açıklarını bulur ve kapatır. Önce salt-okur Durum denetimi açıkları önem sırasıyla listeler ve her bulgunun hangi karta götürdüğünü söyler; sonra alanları tek tek ya da hepsini sırayla kapatırsınız: listener ve TCP.VALIDNODE_CHECKING, firewall, TCPS (wallet) ya da native network encryption, 12C parola doğrulayıcısı ve profiller, varsayılan hesapların kilitlenmesi, rol tasarımı ve PUBLIC'ten UTL_* yetkilerinin alınması, Unified Auditing ve AUDSYS temizliği, TDE, şifreli yedek, işletim sistemi ve RU takibi. TDE ile RMAN/Data Pump şifrelemesi Advanced Security lisansı ister; diğer her şey lisanssızdır. Sonda denetim tekrar çalışır.

Yapı: Tek instance / Oracle Restart / RAC (2–8 node), CDB + PDB; uygulama sunucusu (istemci doğrulaması)

Senaryolar

  • Durum denetimi: açıklarım neler? (salt-okur) — İlk çalıştırılacak tarama: varsayılan parolalı ve açık hesaplar, eski parola doğrulayıcıları, profil, DBA/ANY yetkileri, PUBLIC'e açık UTL_ PL/SQL package'ları, audit, TDE, şifresiz oturumlar, listener ve dosya izinleri; hiçbir şeyi değiştirmez.
  • Tam sıkılaştırma (hepsi sırayla) — Yeni kurulmuş ya da hiç sıkılaştırılmamış veritabanı: tüm alanlar güvenli sırayla uygulanır; listener ve veritabanı bir-iki kez yeniden başlatılır (bakım penceresi gerekir).
  • Ağ ve bağlantı: kim nereden bağlanabilir? (listener, TCP.VALIDNODE_CHECKING, firewall) — Listener her adrese açık, invited nodes tanımlı değil, 1521/5500 herkese açık. Listener yeniden başlatılır (açık oturumlar etkilenmez).
  • Bağlantıyı şifrele (TCPS wallet ya da native network encryption) — Ağ trafiği şifresiz; TLS (TCPS, wallet, sertifika, istemcide SSL_SERVER_DN_MATCH) ya da sertifikasız native encryption (SQLNET.ENCRYPTION_SERVER=REQUIRED). İki yol da lisanssızdır; listener yeniden başlatılır, açık oturumlar etkilenmez.
  • Kimlik doğrulama ve parola (12C doğrulayıcı, profil, varsayılan hesaplar) — 10G/11G parola doğrulayıcıları, parola profili yok, varsayılan parolalı ya da örnek hesaplar açık; kişisel DBA hesabı. Kesinti yok.
  • En az yetki: roller, PUBLIC ve uygulama hesabı — Uygulama hesabında DBA/RESOURCE/ANY yetkileri, PUBLIC'e açık UTL_FILE/UTL_TCP/UTL_HTTP; şema sahibi, okuma/yazma rolleri ve yetki raporu. Kesinti yok.
  • Audit: kim ne yaptı? (Unified Auditing, AUDSYS temizliği) — Denetçi giriş, hesap ve şema değişikliği kayıtlarını istiyor; unified audit politikaları, AUDSYS'in saklama süresiyle temizlenmesi ve kayıtların syslog'a/merkeze gönderilmesi. Unified Auditing lisanssızdır.
  • Veriyi diskte şifrele (TDE) — Datafile, yedek ya da disk kopyasının okunmasına karşı TDE: WALLET_ROOT, keystore, master key, tablespace şifreleme (online). Advanced Security lisansı gerekir; WALLET_ROOT için bir yeniden başlatma.
  • Yedeklerin güvenliği (RMAN şifreleme, parolasız otomasyon, izinler) — RMAN/Data Pump yedekleri şifresiz, betiklerde düz parola, yedek dizini herkese açık; RMAN encryption, ENCRYPTION_PWD_PROMPT, wallet (SEPS) ve dizin izinleri. RMAN ve Data Pump şifrelemesi Advanced Security lisansı gerektirir.
  • İşletim sistemi tarafı (oracle hesabı, dosya izinleri, core dump, SELinux) — oracle hesabının parolası açık, parola dosyası/network admin/wallet izinleri gevşek, SELinux kapalı. Core dump sınırı yeni oturumda/yeniden başlatmada geçerli olur.
  • Yama ve sürüm: son RU'da mıyım? — Kurulu RU, datapatch durumu ve destek takvimi; uygulama için RU patch rehberine bağlanır. Salt-okur.

Başlamadan önce

  • oracle kullanıcısının profilinde ORACLE_HOME=…, ORACLE_SID… (node'a göre instance adı)… ve PATH tanımlı; sqlplus / as sysdba parolasız (işletim sistemi kimliği) çalışıyor. Adımlar sudo -iu oracle ile login shell'de çalışır, profil yüklenir.… Listener Grid Infrastructure home'undan (…) … ile yönetilir.… Çıktıdaki Türkçe karakterler ? görünüyorsa profile export NLS_LANG=AMERICAN_AMERICA.AL32UTF8 ekleyin (yalnız görüntü; veriye etkisi yoktur).
  • Sunucuda iki ayrı oturum açık; birinde sqlplus / as sysdba açık kalır. Yerel / as sysdba (bequeath) bağlantısı listener'dan, sqlnet.ora ağ kurallarından ve profillerden etkilenmez: listener, invited nodes ya da şifreleme hatasında her zaman geri dönüş yoludur. Erişimi kısan her adımdan sonra yeni bağlantıyı ayrı oturumda (uygulama sunucusundan) deneyin.
  • Bakım penceresi: listener yeniden başlatılacak (yeni bağlantılar birkaç saniye reddedilir, açık oturumlar etkilenmez)…; TDE için WALLET_ROOT ve audit için UNIFIED_AUDIT_SYSTEMLOG statik parametreleri veritabanının yeniden başlatılmasını ister….… RAC'te veritabanı yeniden başlatması node node (rolling) yapılabilir: srvctl stop instance -db … -node <node> / start.…
  • TDE, RMAN yedek şifrelemesi ve Data Pump şifrelemesi Oracle Advanced Security lisansı gerektirir (Enterprise Edition + ek lisans; Oracle Cloud / Exadata Cloud'da dahil). Lisansınız yoksa bu adımları uygulamayın; disk düzeyinde şifreleme (LUKS) ya da depolama şifrelemesi kullanın. Native Network Encryption ve TLS ise tüm sürümlerde lisanssızdır (11gR2'den beri).
  • Veritabanına bağlanan uygulamaların, Data Guard/OEM/yedek sunucularının adres listesi ve istemci sürümleri. Denetim adımı şu anki oturumları gösterir.
  • Güncel ve geri dönüşü denenmiş RMAN yedeği var (RMAN yedek stratejisi). TDE'den önce alınan yedek keystore'suz açılabilir: TDE'den sonra keystore yedeği olmadan yeni yedekler açılamaz.

Rehberin aşamaları

  • Durum denetimi (salt-okur) — Veritabanı içi bulguları listele · İşletim sistemi ve Net tarafını denetle
  • Başlamadan: geri dönüş noktası — Net dosyalarını ve parametreleri kaydet · Kullanıcıların, profillerin ve yetkilerin dökümünü al
  • Yetki — 1. Teşhis — Uygulama hesaplarının yetkilerini ve PUBLIC'e açık PL/SQL package'larını göster
  • Yetki — 2. Güvenlik ağı — PUBLIC yetkisine bağımlı nesneleri bul
  • Yetki — 3. Uygulama — Şema sahibini, rolleri ve hesapları oluştur · Rollere tablo yetkilerini ver · Uygulama hesabından fazla yetkileri al · PUBLIC'ten UTL_* ve tehlikeli PL/SQL package yetkilerini geri al · Yetki raporu
  • Yetki — 4. Doğrulama — Uygulama hesabının etkin yetkilerini doğrula · Uygulama sunucusundan DDL denemesi
  • Kimlik — 1. Teşhis — Hesap durumlarını, doğrulayıcıları ve profilleri göster
  • Kimlik — 2. Güvenlik ağı — İstemci sürümlerini kontrol et
  • Kimlik — 3. Uygulama — Varsayılan parolalı, örnek ve kullanılmayan Oracle hesaplarını kilitle · Parola profillerini oluştur · CDB root'ta DEFAULT profilini sıkılaştır · Parola doğrulayıcısını 12C'ye zorla (sqlnet.ora) · Uygulama hesaplarına parola ver · Kişisel DBA hesabını oluştur …
  • Kimlik — 4. Doğrulama — Hesap ve doğrulayıcı durumunu doğrula · Uygulama sunucusundan girişi dene (yeni oturum)
  • Ağ şifreleme — 1. Teşhis — Oturumların şifreleme durumunu göster
  • Ağ şifreleme — 3. Uygulama — Native network encryption'ı zorunlu kıl · Sunucu wallet'ını oluştur · CA'dan dönen sertifikaları wallet'a ekle · Wallet'ı listener sahibine aç… ve diğer node'lara kopyala… · Listener için TLS ayarlarını yaz · Veritabanı home'u için TLS ayarlarını yaz …
  • Ağ şifreleme — 4. Doğrulama — Yeni bağlantının şifreli olduğunu doğrula
  • Ağ şifreleme — 5. Sonrası — Şifresiz 1521'i kapatma ve sertifika yenileme
  • Ağ — 1. Teşhis: kim nereden bağlanıyor? — Listener'ı ve bağlantı kaynaklarını göster
  • Ağ — 3. Uygulama — Listener'a yalnız izinli adresleri kabul ettir (valid node checking) · Listener'ı yeniden başlat · Firewall'da portları yalnız izinli ağlara aç
  • Ağ — 4. Doğrulama — Uygulama sunucusundan bağlantıyı dene (yeni oturum)
  • Audit — 1. Teşhis — Audit modunu, politikaları ve AUDSYS boyutunu göster
  • Audit — 3. Uygulama — Audit politikalarını tanımla ve etkinleştir · AUDSYS'i ayrı tablespace'e al ve temizliği zamanla · CDB root'ta hazır politikaları ve temizliği etkinleştir · Audit özetini syslog'a yaz (UNIFIED_AUDIT_SYSTEMLOG) · rsyslog: local3'ü merkezi sunucuya ilet · rsyslog'u yeniden başlat ve veritabanını yeniden başlat
  • Audit — 4. Doğrulama — Bir değişiklik yapıp kaydı gör
  • İşletim sistemi — 1. Teşhis — oracle hesabı, dosya izinleri, core dump ve SELinux
  • İşletim sistemi — 3. Uygulama — oracle hesabının parolasını kilitle · Parola dosyası ve Net dosyalarının izinlerini düzelt · oracle kullanıcısının core dump'ını kapat · SELinux'u Enforcing tut
  • İşletim sistemi — 4. Doğrulama — Değişiklikleri doğrula
  • TDE — 1. Teşhis — Keystore ve tablespace şifreleme durumunu göster
  • TDE — 2. Güvenlik ağı — TDE öncesi yedek ve alan kontrolü
  • TDE — 3. Uygulama — WALLET_ROOT'u ayarla · WALLET_ROOT için veritabanını yeniden başlat · Keystore'u oluştur, aç ve master key'i ayarla · Keystore'u diğer RAC node'larına kopyala · Tablespace'i şifrele · Keystore'u yedekle
  • TDE — 4. Doğrulama — Keystore ve şifreli tablespace'i doğrula
  • Yedek — 1. Teşhis — RMAN şifreleme ayarını ve yedeklerin durumunu göster
  • Yedek — 3. Uygulama — RMAN yedek şifrelemesini aç · Şifreli yedeği dene · Data Pump dışa aktarımını şifrele · Betikler için parolasız bağlantı (Secure External Password Store) · Yedek ve wallet dizini izinlerini düzelt
  • Yama ve sürüm — 1. Teşhis — Kurulu RU'yu ve datapatch durumunu göster
Ortamına göre adım adım planı aç →