Files
balikci/OLLAMA_SETUP.md
salvacybersec af0510e486 feat: Add Ollama AI integration for automatic mail template generation
 New Features:
- 🤖 AI-powered mail template generation with Ollama
- 📧 Test mail sending with preview
- 🔧 Ollama server and model management
- 🎨 Beautiful AI generation dialog in Templates page
- ⚙️ Ollama settings panel with connection test

Backend:
- Add ollama.service.js - Ollama API integration
- Add ollama.controller.js - Template generation endpoint
- Add ollama.routes.js - /api/ollama/* routes
- Support for multiple Ollama models (llama3.2, mistral, gemma)
- JSON-formatted AI responses with subject + HTML body
- Configurable server URL and model selection

Frontend:
- Settings: Ollama configuration panel
  - Server URL input
  - Model selection
  - Connection test with model listing
- Templates: AI generation dialog
  - Company name, scenario, employee info inputs
  - Custom prompt for AI instructions
  - Auto-save to database
  - Test mail sending functionality

Documentation:
- OLLAMA_SETUP.md - Comprehensive setup guide
- Installation instructions
- Model recommendations
- Usage examples
- Troubleshooting

Tech Stack:
- Ollama API integration (REST)
- Axios HTTP client
- React dialogs with MUI
- Self-hosted AI (privacy-friendly)
- Zero external API dependencies

Example Usage:
  Company: Garanti Bankası
  Scenario: Account security warning
  → AI generates professional phishing test mail in seconds!
2025-11-10 21:13:58 +03:00

7.5 KiB
Raw Permalink Blame History

🤖 Ollama AI Entegrasyonu

Genel Bakış

Phishing Test Yönetim Paneli, Ollama AI entegrasyonu ile otomatik mail şablonları oluşturabilir. Bu özellik, gerçekçi ve özelleştirilebilir phishing test maillerini dakikalar içinde üretmenizi sağlar.

🚀 Özellikler

1. AI ile Mail Şablonu Oluşturma

  • Şirket adı, senaryo ve hedef bilgilerine göre otomatik mail oluşturma
  • HTML formatında profesyonel mail içeriği
  • Özelleştirilebilir placeholder'lar ({{company_name}}, {{employee_name}}, {{tracking_url}})
  • Otomatik konu satırı (subject) oluşturma

2. Test Mail Gönderimi

  • Oluşturulan şablonları test etme
  • Placeholder'ları doldurarak gerçek görünüm
  • Herhangi bir mail adresine test gönderimi

3. Ollama Yönetimi

  • Ollama sunucu bağlantı testi
  • Mevcut modelleri listeleme
  • Model seçimi ve yönetimi

📋 Gereksinimler

1. Ollama Kurulumu

Linux

curl -fsSL https://ollama.com/install.sh | sh

macOS

brew install ollama

Windows

Ollama Windows İndirme

2. Model İndirme

Önerilen modeller:

# Llama 3.2 (Önerilen - hızlı ve etkili)
ollama pull llama3.2

# Alternatifler:
ollama pull mistral        # Hızlı, compact
ollama pull gemma         # Google'ın modeli
ollama pull llama2        # Eski ama stabil

3. Ollama Servisini Başlatma

# Servis olarak başlat
ollama serve

# Veya systemd ile (Linux)
systemctl start ollama
systemctl enable ollama

⚙️ Yapılandırma

1. Panel Ayarları

  1. Ayarlar sayfasına gidin
  2. 🤖 Ollama AI Ayarları bölümünde:
    • Ollama Server URL: http://localhost:11434 (varsayılan)
    • Model: llama3.2 (veya tercih ettiğiniz model)
  3. Bağlantıyı Test Et butonuna tıklayın
  4. Mevcut modelleri görün
  5. Kaydet butonuna tıklayın

2. Ortam Değişkenleri (Opsiyonel)

.env dosyasında varsayılan değerleri ayarlayabilirsiniz:

OLLAMA_URL=http://localhost:11434
OLLAMA_MODEL=llama3.2

🎯 Kullanım

AI ile Şablon Oluşturma

  1. Mail Şablonları sayfasına gidin
  2. AI ile Oluştur butonuna tıklayın
  3. Formu doldurun:
    • Şablon Adı: Şablona verilecek isim
    • Template Type: Şablon tipi (örn: bank, hr, it_support)
    • Şirket Adı: Hedef şirket (örn: "Acme Corporation")
    • Senaryo: Mail senaryosu (örn: "Şifre sıfırlama maili")
    • Çalışan Bilgisi (opsiyonel): Hedef çalışan hakkında bilgi
    • Ek Talimatlar (opsiyonel): AI'ya özel talimatlar
  4. Oluştur butonuna tıklayın
  5. AI, birkaç saniye içinde profesyonel bir mail şablonu oluşturacak
  6. Şablon otomatik olarak veritabanına kaydedilir

Senaryo Örnekleri

Banka Şablonu

Senaryo: "Hesap güvenlik uyarısı - şüpheli aktivite tespit edildi ve doğrulama gerekiyor"
Şirket: Garanti Bankası
Çalışan Bilgisi: Bireysel müşteri

İK Şablonu

Senaryo: "Yıllık performans değerlendirme formu doldurulması gerekiyor"
Şirket: Acme Tech
Çalışan Bilgisi: Yazılım geliştirici
Ek Talimat: Resmi ve profesyonel dil kullan

IT Destek Şablonu

Senaryo: "Sistem güncellemesi için kullanıcı bilgilerinin doğrulanması"
Şirket: XYZ Corporation
Çalışan Bilgisi: Ofis çalışanı
Ek Talimat: Teknik terimler kullan, aciliyet vurgusu yap

Test Mail Gönderme

  1. Şablonlar listesinde istediğiniz şablonun yanındaki Test Mail butonuna tıklayın
  2. Test mail adresini girin
  3. Placeholder değerlerini düzenleyin:
    • Şirket Adı
    • Çalışan Adı
  4. Gönder butonuna tıklayın
  5. Test maili belirttiğiniz adrese gönderilir

🔧 Teknik Detaylar

API Endpoints

Ollama Bağlantı Testi

GET /api/ollama/test

Mevcut Modelleri Listeleme

GET /api/ollama/models

AI ile Şablon Oluşturma

POST /api/ollama/generate-template
Content-Type: application/json

{
  "company_name": "Acme Corp",
  "scenario": "Şifre sıfırlama",
  "employee_info": "IT personeli",
  "custom_prompt": "Aciliyet vurgusu yap",
  "template_name": "Acme Şifre Sıfırlama",
  "template_type": "it_support"
}

Test Mail Gönderme

POST /api/ollama/send-test-mail
Content-Type: application/json

{
  "test_email": "test@example.com",
  "subject": "Test Subject",
  "body": "<html>...</html>",
  "company_name": "Test Company",
  "employee_name": "John Doe"
}

Ollama Servisi Yapılandırması

Backend servisi Ollama'yı otomatik olarak yapılandırır:

// backend/src/services/ollama.service.js
class OllamaService {
  constructor() {
    this.serverUrl = 'http://localhost:11434';
    this.model = 'llama3.2';
  }
}

AI Prompt Yapısı

AI'ya gönderilen prompt:

System: Sen profesyonel bir güvenlik uzmanısın ve phishing test maileri oluşturuyorsun.

User: Aşağıdaki bilgilere göre bir phishing test mail şablonu oluştur:
- Şirket: [company_name]
- Senaryo: [scenario]
- Çalışan Bilgisi: [employee_info]
- Ek Talimatlar: [custom_prompt]

Yanıt JSON formatında:
{
  "subject": "Mail konusu",
  "body": "<html>Mail içeriği</html>"
}

🛠️ Troubleshooting

Ollama bağlantı hatası

Hata: Ollama sunucusuna bağlanılamadı

Çözüm:

# Ollama servisinin çalıştığını kontrol edin
curl http://localhost:11434/api/tags

# Servis çalışmıyorsa başlatın
ollama serve

Model bulunamadı hatası

Hata: Model not found

Çözüm:

# Modeli indirin
ollama pull llama3.2

# Mevcut modelleri listeleyin
ollama list

Yavaş yanıt süresi

Çözüm:

  • Daha küçük bir model kullanın (mistral, llama3.2:1b)
  • GPU kullanımını etkinleştirin (CUDA destekli sistem gerekir)
  • RAM ve CPU kaynaklarını artırın

Timeout hatası

Hata: AI yanıt veremedi: timeout

Çözüm:

  • Backend ollama.service.js dosyasında timeout süresini artırın:
    timeout: 180000, // 3 dakika
    

📊 Performans

Model Karşılaştırması

Model Boyut Hız Kalite RAM
llama3.2 2GB 8GB
mistral 4GB 8GB
gemma 2GB 6GB
llama2 4GB 8GB

Yanıt Süreleri (Ortalama)

  • CPU: 30-60 saniye
  • GPU (CUDA): 5-15 saniye
  • Apple Silicon (M1/M2): 10-25 saniye

🔒 Güvenlik Notları

  1. Ollama Erişimi: Ollama sunucusu varsayılan olarak localhost:11434 üzerinde çalışır. Production'da bu portu dışarıya açmayın.

  2. API Rate Limiting: Backend API'sinde rate limiting aktiftir, kötüye kullanımı önler.

  3. Model Seçimi: Güvenilir ve test edilmiş modeller kullanın.

  4. Veri Gizliliği: AI'ya gönderilen veriler Ollama sunucusunda işlenir, dışarıya gönderilmez (self-hosted).

📚 Kaynaklar

🆘 Destek

Sorun yaşıyorsanız:

  1. Ollama servisinin çalıştığını kontrol edin
  2. Model indirildiyse kontrol edin
  3. Panel Ayarlar sayfasında bağlantı testini yapın
  4. Backend loglarını kontrol edin: backend/logs/

Not: Ollama entegrasyonu tamamen opsiyoneldir. Sistemi Ollama olmadan da kullanabilir, manuel olarak mail şablonları oluşturabilirsiniz.