Bölüm 10 · IT yöneticisi / Geliştirici · 20 dk
Teknik referans — IT'ye derinlemesine
Bu bölüm IT yöneticileri ve geliştiriciler için. Network port listesi, API entegrasyonu, webhook, sertifika yönetimi, sistem gereksinimleri.
Sistem gereksinimleri
Çalışan bilgisayarı (agent)
- OS: Windows 10 (1909+) veya Windows 11
- İşlemci: x86-64 (Intel/AMD), ARM64 desteklenmiyor (Faz 9'da)
- RAM: Minimum 4 GB (sistem geneli — agent 50-100 MB kullanır)
- Disk: 200 MB boş alan
- .NET Framework: 4.8+ (Windows 10/11'de zaten var)
- İnternet: Outbound HTTPS 443 + 8443 erişimi
- Yetki: İlk kurulumda local administrator (sonra silinmesin diye normal kullanıcı yeterli)
AD Connector sunucusu (opsiyonel)
- OS: Windows Server 2016+ veya Windows 10/11
- .NET: 8.0 runtime
- AD erişimi: Domain'e join veya LDAPS bağlantı yapabilen network konumu
- Service account: AD'de read-only LDAP yetkili kullanıcı
- RAM: 1 GB ayrılmış
- Disk: 500 MB (cache + log)
IT yönetici tarayıcısı
- Chrome: 100+ (en iyi performans)
- Firefox: 100+
- Edge: 100+ (Chromium tabanlı)
- Safari: 15+
- JavaScript açık olmalı, cookies izin verilmeli
Network port listesi
Corporate firewall yönetiyorsanız aşağıdaki outbound bağlantılara izin gerekli:
| Bileşen | Hedef | Port | Protokol | Neden |
|---|---|---|---|---|
| Agent | agents.veritadlp.com | 8443 | TCP/HTTPS (mTLS) | Agent enrollment + telemetri |
| Agent | api.veritadlp.com | 443 | TCP/HTTPS | Public API erişimi |
| Connector | api.veritadlp.com | 443 | TCP/HTTPS (mTLS) | AD sync push |
| Browser (admin) | app.veritadlp.com | 443 | TCP/HTTPS | Dashboard erişimi |
| Browser (admin) | relay.veritadlp.com | 443 | TCP/HTTPS+WSS | Uzaktan destek web viewer |
| Agent (uzaktan destek) | relay.veritadlp.com | 21115-21117 | TCP+UDP | Uzaktan destek relay (P2P) |
| Connector (AD'ye) | Kendi DC'niz | 636 | TCP/LDAPS | AD okuma |
Veri akışı diyagramı
Veri nereden nereye gidiyor netleşsin:
┌─────────────────────────────────────────────────────────────────┐
│ ÇALIŞAN BİLGİSAYARI (Windows) │
│ ┌─────────┐ ┌─────────────┐ ┌──────────────┐ │
│ │ Dosya │ → │ Agent │ → │ Yerel │ │
│ │ transfer│ │ (RAM içeri- │ │ Policy │ │
│ │ (USB) │ │ ği işler) │ │ engine │ │
│ └─────────┘ └──────┬──────┘ └──────┬───────┘ │
│ │ │ │
│ Sadece HASH + maskeli özet + sayım │ │
│ │ │ │
└──────────────────────┼──────────────────┼───────────────────────┘
│ │
HTTPS 8443 (mTLS) │
│ │
┌──────────────────────▼──────────────────▼───────────────────────┐
│ VERİTADLP BULUT (Almanya — Contabo) │
│ ┌────────────────┐ ┌──────────────────┐ ┌─────────────────┐ │
│ │ Olay log │ │ Audit log │ │ Politika store │ │
│ │ (90 gün) │ │ (2 yıl) │ │ (versiyonlu) │ │
│ └────────────────┘ └──────────────────┘ └─────────────────┘ │
│ │
│ Ham dosya İÇERİĞİ ASLA buraya İNMEZ │
└──────────────────────────────────────────────────────────────────┘ API anahtarı + programmatic erişim
SIEM, dashboard'unuza ek panel yazma, monitoring entegrasyonu için API kullanın.
API key oluşturun
Ayarlar → API Anahtarları → "Yeni Anahtar" → Scope seç:
events:read— Olayları okumaevents:write— Olay oluşturma (genelde kullanılmaz)policies:read— Politikaları okumapolicies:write— Politika düzenlemeagents:read— Agent envanteri okumausers:read— Kullanıcı listesi okumaaudit:read— Audit log okuma
Anahtar formatı: vt_live_a1b2c3d4... (Stripe pattern). Bu anahtar
bir kez gösterilir — kasaya kaydedin.
API kullanım örneği
curl -X GET https://api.veritadlp.com/v1/events?limit=10 \
-H "Authorization: Bearer vt_live_a1b2c3d4..." \
-H "Content-Type: application/json" Yanıt JSON:
{
"results": [
{
"id": "uuid...",
"occurred_at": "2026-05-20T10:30:00Z",
"user_email": "ayse@firma.local",
"host": "PC-MUH-042",
"event_type": "usb_transfer",
"risk_score": 92,
"decision": "BLOCKED",
"detections": { "tc": 47, "iban": 12 }
}
],
"total": 248,
"limit": 10
} Rate limit
- Per API key: 100 istek/dakika, 1000 istek/saat
- Aşılırsa: HTTP 429 +
Retry-Afterheader - Enterprise plan: özel rate limit (talep üzerine)
Tüm API endpoint'leri
Tam API dokümantasyonu: api.veritadlp.com/docs (Swagger UI). Tüm endpoint'ler OpenAPI 3.0 spec'inde dokümante.
Webhook — olay bildirimi
Olay olduğunda dashboard'da görmek yerine sizin sistemize push edilmesini istiyorsanız:
Webhook URL'inizi belirleyin
Kendi sunucunuzda bir POST endpoint açın (örn. https://api.firma.local/dlp-events).
HTTPS olmalı (HTTP kabul etmiyoruz).
VeritaDLP'ye webhook kaydedin
Ayarlar → Webhook'lar → "Yeni Webhook":
- URL: Endpoint'iniz
- Secret: Otomatik üretilir — bunu da kaydedin (signature doğrulama için)
- Hangi event'ler:
event.created— Yeni olay tespit edildievent.blocked— Olay engellendipolicy.changed— Politika düzenlendiagent.enrolled— Yeni agent kurulduagent.offline— Agent 1 saatten fazla offline
Webhook payload örneği
POST https://api.firma.local/dlp-events
Headers:
Content-Type: application/json
X-VeritaDLP-Signature: sha256=a1b2c3d4...
X-VeritaDLP-Event: event.blocked
Body:
{
"event_type": "event.blocked",
"occurred_at": "2026-05-20T10:30:00Z",
"tenant_slug": "abc-sigorta",
"data": {
"event_id": "uuid...",
"user_email": "ayse@firma.local",
"host": "PC-MUH-042",
"channel": "usb_transfer",
"risk_score": 92,
"detections": { "tc": 47, "iban": 12 }
}
} Signature doğrulama
Her webhook'ta HMAC-SHA256 signature gönderiyoruz. Doğrulama (Python örnek):
import hmac, hashlib
secret = "your_webhook_secret"
payload = request.body # raw bytes
signature = request.headers["X-VeritaDLP-Signature"]
expected = "sha256=" + hmac.new(
secret.encode(), payload, hashlib.sha256
).hexdigest()
if not hmac.compare_digest(expected, signature):
return 401 # signature mismatch Bu kontrol kritik — yoksa kimse webhook URL'inize sahte event gönderebilir.
Retry policy
- HTTP 2xx alırsak başarılı, retry yok
- 4xx/5xx/timeout: 5 deneme — 1 dk, 5 dk, 30 dk, 2 saat, 12 saat sonra
- 5 deneme de başarısız → webhook "Failed" durumuna geçer, sizden manuel reactivation
Sertifika yönetimi
Tenant intermediate CA
Her tenant için ayrı bir intermediate CA oluşturulur (signup'ta otomatik). Bu sayede:
- Sizin agent'larınız sadece sizin CA'nızla imzalı
- Başka tenant'ın CA'sı sizi tanımaz, size erişemez
- CA sızdırılsa sadece sizin tenant'ınız etkilenir
Agent sertifikası
- Her agent kendi cert'i alır (90 gün geçerli)
- 60. günde otomatik yenileme (agent kendi başlatır)
- 120 gün hiç heartbeat gelmeyen agent: cert revoke + suspended
- Manuel revoke: Agent'lar → ilgili agent → "Revoke Cert"
CRL (Certificate Revocation List)
Her tenant kendi CRL'sini yönetir. Agent her saatte CRL'i çeker. Revoke edilen bir agent 1 saat içinde durur.
CRL URL: https://api.veritadlp.com/v1/ca/{tenant_slug}/crl.pem
Code signing (MSI imzalama)
Production'da MSI dosyaları EV Code Signing sertifikası ile imzalanır (SSL.com EV cert, FIPS 140-2 HSM korunmalı). Bu sayede:
- Windows SmartScreen uyarısı yok
- Microsoft Defender direkt güvenir
- MSI değiştirilmediğinin matematiksel ispatı
Şu an MSI'lar imzasız (test sürümü). EV Code Signing sertifikası alındığında otomatik imzalama devreye girecek.
Encryption — şifreleme detayları
In-transit (taşımada)
- TLS 1.3 minimum (TLS 1.2 backward compat)
- Cipher suite: AES-256-GCM, ChaCha20-Poly1305
- Perfect Forward Secrecy (ECDHE)
- HSTS preload (browser otomatik HTTPS)
At-rest (sunucuda)
- PostgreSQL: pgcrypto + LUKS disk encryption (XTS-AES-256)
- ClickHouse: Native ZSTD compression + LUKS
- Yedek arşivleri: GPG symmetric (AES-256) + Object Lock
- Anahtarlar: AES-256-GCM, KEK environment'tan, plaintext kayıtsız
Hassas alanlar (field-level)
Bu alanlar veritabanında her zaman şifrelidir:
- SMTP2GO API key, SMS provider key, B2 storage key
- GPG backup passphrase
- Webhook secret'ları
- 2FA backup kodlarının hash'leri
SSO / SAML / OIDC (Enterprise — Faz 7)
Şu an v1'de bulunmuyor. Sonraki sürümlerde gelecek:
- SAML 2.0 (Okta, Azure AD, Google Workspace)
- OpenID Connect (Auth0, Cognito)
- SCIM 2.0 (otomatik user provisioning)
O zamana kadar VeritaDLP'nin kendi parola + 2FA sistemini kullanın.
Multi-tenant izolasyon
Birden fazla şirket aynı sunucumuzu kullanır ama veriler tamamen izole:
- Her tenant ayrı PostgreSQL schema (
tenant_abc,tenant_xyz) - Her tenant ayrı ClickHouse database
- Connection seviyesinde
SET search_pathile schema kilitli — tenant_id WHERE filtresine güvenmiyoruz - Her tenant ayrı CA hiyerarşisi (sertifika seviyesi izolasyon)
- Her tenant ayrı Redis prefix (
tenant:abc:*)
Backup ve disaster recovery
Yedekleme stratejisi (Bölüm 8 KVKK ile entegre):
- Günlük yedek (gece 02:00 UTC) — PostgreSQL + ClickHouse
- Haftalık yedek (Pazar) — 12 hafta saklama (GFS)
- Aylık yedek (ayın 1'i) — 12 ay saklama
- Yıllık arşiv (31 Aralık) — 7 yıl (KVKK + GDPR uyumu)
- S3 Object Lock compliance mode — ransomware'e karşı silinmez
- GPG encryption — sadece sizin passphrase açar
RPO + RTO hedefleri
- RPO (Recovery Point Objective): 24 saat — en kötü 1 günlük data kayıp riski
- RTO (Recovery Time Objective):
- App sunucusu kaybı: ~30 dakika (DR runbook'tan)
- DB sunucusu kaybı: ~4-6 saat (full restore)
- Tüm bölge kaybı: 24 saat (cross-region failover, Faz 9)
Monitoring + observability
Sistemimizin metrik'leri:
- status.veritadlp.com — public uptime
- Prometheus + Grafana (iç monitoring, müşteri görmez)
- GlitchTip (error tracking, Sentry alternatifi)
- Uptime Kuma (her servisin probe'u)
Performans + ölçeklenebilirlik
- Pilot kapasitesi: 100 tenant × 50 PC = 5000 agent
- Vertical scale: Bigger Contabo VPS (up to 32 vCPU, 128 GB RAM)
- Horizontal scale (Faz 9): DB sharding (db1.veritadlp.com, db2..., db_shards tablo üzerinden routing)
- Olay throughput hedefi: 1000 event/saniye (her tenant başına)
Compliance certifications (yol haritası)
- KVKK — Çekirdek tasarım, ürünle gelir ✅
- ISO 27001 — Pilot sonrası 6-12 ay (3. taraf audit)
- ISO 27701 — Privacy management (ISO 27001 üzerine)
- SOC 2 Type II — Yıllık audit, US müşteriler için
- GDPR — DPA + standart sözleşme hükümleri ✅
Sık sorulan sorular
API key sızdı, ne yapacağım?
Hemen Ayarlar → API Anahtarları → ilgili key → "Revoke". Anlık iptal olur, sızıntı sahibi artık kullanamaz. Sonra yeni key oluşturun + sistemlerinizde değiştirin. Audit log'da hangi IP'den kullanıldığı görünür — forensic için.
Sertifika expire olursa agent ne yapıyor?
Agent 90 gün cert ömrü, 60. günde otomatik yenileme isteği gönderir. Cloud reddedilen durumlar:
- Tenant suspended (ödeme gecikmesi vb.) → renewal red
- Agent revoke edildiyse → renewal red, agent durur
- Normal akışta otomatik yenilenir, kullanıcı fark etmez
Aynı sunucuda diğer müşterilerin verisini görebilir miyim — bug ile?
Hayır — multi-tenant izolasyonumuzun her katmanı bunu engelliyor:
- JWT token'da tenant claim var → header'da değişiklik yapsa cert auth bozulur
- DB query'leri search_path ile schema kilitli → SQL injection bile başka tenant'a sızdırmaz
- Redis key'leri tenant prefix'li → cache erişim ayrı
- Audit log'da her query tenant_id ile mark edilir → ihlal denerseniz görünür
Çoklu bağımsız audit yapıldı. Bulgular için güvenlik sayfası.
On-premise (kendi sunucumda) kurabilir miyim?
Hayır, VeritaDLP sadece SaaS. On-premise kurulum karmaşıklığı + sürekli güncel tutma maliyeti KOBİ pazarı için doğru değil. Tüm yatırımımız multi-tenant SaaS'a.
İstisnai durumlar için (büyük kurumsal, regulatory zorunluluk) Enterprise plan içinde "Private Cloud" seçeneği var — sizin için ayrı VPS, ayrı DB, ayrı CA hiyerarşisi. Fiyat 5x SaaS.
Veri sunucularınızı denetleyebilir miyim?
Doğrudan VPS'lerimize erişiminiz olmaz (güvenlik). Ama:
- ISO 27001 audit raporlarımızı (gelince) inceleyebilirsiniz
- 3. taraf penetration test raporlarını NDA altında paylaşıyoruz
- DPA içinde "denetim yetkisi" maddesi var — talebiniz üzerine müşteri auditörü ile koordineli denetim mümkün
🎉 Kılavuzu tamamladınız!
10 bölümü okuduysanız, VeritaDLP'nin %95'ini bilirsiniz. Geri kalanı kullanırken öğrenilir.