2025-11-10 17:00:40 +03:00
|
|
|
|
# Oltalama Test Yönetim Paneli
|
|
|
|
|
|
|
|
|
|
|
|
Güvenlik farkındalık eğitimleri için basit ve etkili phishing test yönetim sistemi.
|
|
|
|
|
|
|
|
|
|
|
|
## ✨ Özellikler
|
|
|
|
|
|
|
|
|
|
|
|
- 🏢 **Şirket Bazlı Yönetim** - Her şirket için ayrı tracking
|
|
|
|
|
|
- 📧 **Gmail Entegrasyonu** - App Password ile kolay mail gönderimi
|
|
|
|
|
|
- 💬 **Telegram Bildirimleri** - Gerçek zamanlı tıklama bildirimleri
|
2025-11-10 21:13:58 +03:00
|
|
|
|
- 🤖 **Ollama AI Entegrasyonu** - AI ile otomatik mail şablonu oluşturma
|
2025-11-10 17:00:40 +03:00
|
|
|
|
- 📊 **Detaylı İstatistikler** - IP, konum, cihaz bilgileri
|
|
|
|
|
|
- 💾 **SQLite** - Tek dosya, kolay yedekleme
|
|
|
|
|
|
- 🎨 **Modern UI** - React ile responsive admin paneli
|
2025-11-10 21:13:58 +03:00
|
|
|
|
- ✉️ **Mail Şablonları** - HTML editör, önizleme ve test gönderimi
|
2025-11-10 17:00:40 +03:00
|
|
|
|
|
|
|
|
|
|
## 🚀 Hızlı Başlangıç
|
|
|
|
|
|
|
|
|
|
|
|
### Backend ✅ TAMAMLANDI
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
cd backend
|
|
|
|
|
|
npm install # ✅ Yapıldı
|
|
|
|
|
|
npm run db:migrate # ✅ Yapıldı
|
|
|
|
|
|
npm run db:seed # ✅ Yapıldı
|
|
|
|
|
|
npm run dev # ✅ Çalışıyor (background)
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
**API:** http://localhost:3000
|
2025-11-10 20:01:41 +03:00
|
|
|
|
**Default Admin:** Kurulum sırasında oluşturulur
|
2025-11-10 17:00:40 +03:00
|
|
|
|
|
|
|
|
|
|
### Frontend ✅ TAMAMLANDI
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
cd frontend
|
|
|
|
|
|
npm install # ✅ Yapıldı
|
|
|
|
|
|
npm run dev # ✅ Çalışıyor (background)
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
**UI:** http://localhost:5173
|
2025-11-10 20:01:41 +03:00
|
|
|
|
**Default Admin:** Kurulum sırasında oluşturulur
|
2025-11-10 17:00:40 +03:00
|
|
|
|
|
|
|
|
|
|
## 📂 Proje Yapısı
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
oltalama/
|
|
|
|
|
|
├── backend/ ✅ TAMAMLANDI (100%)
|
|
|
|
|
|
│ ├── src/
|
|
|
|
|
|
│ │ ├── controllers/ ✅ 7 dosya (auth, company, token, vb.)
|
|
|
|
|
|
│ │ ├── models/ ✅ 6 model + ilişkiler
|
|
|
|
|
|
│ │ ├── routes/ ✅ 7 route dosyası
|
2025-11-10 21:13:58 +03:00
|
|
|
|
│ │ ├── services/ ✅ Mail, Telegram, Token, Ollama AI
|
2025-11-10 17:00:40 +03:00
|
|
|
|
│ │ ├── utils/ ✅ GeoIP, User-Agent, Token Generator
|
|
|
|
|
|
│ │ └── app.js ✅
|
|
|
|
|
|
│ └── database/ ✅ oltalama.db (3 şirket, 2 şablon)
|
|
|
|
|
|
├── frontend/ ✅ TAMAMLANDI (100%)
|
|
|
|
|
|
│ ├── src/
|
|
|
|
|
|
│ │ ├── services/ ✅ 5 servis (auth, company, token, stats, template)
|
|
|
|
|
|
│ │ ├── context/ ✅ Auth context
|
2025-11-10 17:27:19 +03:00
|
|
|
|
│ │ ├── pages/ ✅ 6 sayfa (Login, Dashboard, Companies, Tokens, Templates, Settings)
|
2025-11-10 17:00:40 +03:00
|
|
|
|
│ │ └── components/ ✅ Layout + Navigation
|
|
|
|
|
|
└── devpan.md ✅ Detaylı plan
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
## ✅ Backend Tamamlandı (Faz 1-7)
|
|
|
|
|
|
|
|
|
|
|
|
### 1️⃣ Authentication ✅
|
|
|
|
|
|
- [x] Session-based auth
|
|
|
|
|
|
- [x] Login/Logout endpoints
|
|
|
|
|
|
- [x] bcrypt password hashing
|
|
|
|
|
|
- [x] Auth middleware
|
|
|
|
|
|
|
|
|
|
|
|
### 2️⃣ Company Management ✅
|
|
|
|
|
|
- [x] CRUD operations
|
|
|
|
|
|
- [x] Company stats (auto-update)
|
|
|
|
|
|
- [x] Company tokens listing
|
|
|
|
|
|
- [x] Validators & routes
|
|
|
|
|
|
|
|
|
|
|
|
### 3️⃣ Token Management ✅
|
|
|
|
|
|
- [x] Unique token generation (crypto)
|
|
|
|
|
|
- [x] Create with/without mail
|
|
|
|
|
|
- [x] Company stats auto-update
|
|
|
|
|
|
- [x] Click history
|
|
|
|
|
|
|
|
|
|
|
|
### 4️⃣ Tracking Endpoint ✅
|
|
|
|
|
|
- [x] `/t/:token` public endpoint
|
|
|
|
|
|
- [x] IP address capture
|
|
|
|
|
|
- [x] GeoIP location (geoip-lite)
|
|
|
|
|
|
- [x] User-Agent parsing
|
|
|
|
|
|
- [x] Landing page redirect
|
|
|
|
|
|
|
|
|
|
|
|
### 5️⃣ Telegram & Mail ✅
|
|
|
|
|
|
- [x] Telegram real-time notifications
|
|
|
|
|
|
- [x] Gmail + Nodemailer integration
|
|
|
|
|
|
- [x] Handlebars template rendering
|
|
|
|
|
|
- [x] Test buttons in settings
|
|
|
|
|
|
|
|
|
|
|
|
### 6️⃣ Templates & Settings ✅
|
|
|
|
|
|
- [x] Mail templates (2 seeded)
|
|
|
|
|
|
- [x] Template preview
|
|
|
|
|
|
- [x] Settings CRUD
|
|
|
|
|
|
- [x] Gmail/Telegram config
|
|
|
|
|
|
|
|
|
|
|
|
### 7️⃣ Stats & Analytics ✅
|
|
|
|
|
|
- [x] Dashboard stats
|
|
|
|
|
|
- [x] Recent clicks
|
|
|
|
|
|
- [x] Company-based stats
|
|
|
|
|
|
- [x] Click logs with full details
|
|
|
|
|
|
|
|
|
|
|
|
## 📡 API Endpoints (35+)
|
|
|
|
|
|
|
|
|
|
|
|
**Backend API çalışıyor:** http://localhost:3000
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
✅ /api/auth/* - 4 endpoints
|
|
|
|
|
|
✅ /api/companies/* - 7 endpoints
|
|
|
|
|
|
✅ /api/tokens/* - 8 endpoints
|
|
|
|
|
|
✅ /api/templates/* - 3 endpoints
|
|
|
|
|
|
✅ /api/settings/* - 5 endpoints
|
|
|
|
|
|
✅ /api/stats/* - 3 endpoints
|
|
|
|
|
|
✅ /t/:token - Public tracking
|
|
|
|
|
|
✅ /health - Health check
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
## 🗄️ Database (SQLite)
|
|
|
|
|
|
|
|
|
|
|
|
**Lokasyon:** `backend/database/oltalama.db`
|
|
|
|
|
|
|
|
|
|
|
|
**6 Tablo - Tamamen İlişkili:**
|
|
|
|
|
|
- ✅ companies (3 örnek: Türk Telekom, İş Bankası, PTT)
|
|
|
|
|
|
- ✅ tracking_tokens (company_id FK)
|
|
|
|
|
|
- ✅ click_logs (IP, GeoIP, User-Agent)
|
|
|
|
|
|
- ✅ mail_templates (2 şablon: Banka, E-Devlet)
|
|
|
|
|
|
- ✅ settings (Gmail, Telegram)
|
|
|
|
|
|
- ✅ admin_user (admin/admin123)
|
|
|
|
|
|
|
|
|
|
|
|
## 🧪 Backend Test
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
# Health check
|
|
|
|
|
|
curl http://localhost:3000/health
|
|
|
|
|
|
|
|
|
|
|
|
# Login
|
|
|
|
|
|
curl -X POST http://localhost:3000/api/auth/login \
|
|
|
|
|
|
-H "Content-Type: application/json" \
|
|
|
|
|
|
-d '{"username":"admin","password":"admin123"}'
|
|
|
|
|
|
|
|
|
|
|
|
# Get companies
|
|
|
|
|
|
curl http://localhost:3000/api/companies
|
|
|
|
|
|
|
|
|
|
|
|
# Get dashboard stats
|
|
|
|
|
|
curl http://localhost:3000/api/stats/dashboard
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
## 📊 Durum
|
|
|
|
|
|
|
2025-11-10 17:09:35 +03:00
|
|
|
|
**Backend:** ✅ 100% Tamamlandı (37 dosya)
|
|
|
|
|
|
**Frontend:** ✅ 100% Tamamlandı (15 dosya)
|
|
|
|
|
|
**Dokümantasyon:** ✅ 4 dosya (README.md, devpan.md, KULLANIM.md, QUICKSTART.md)
|
|
|
|
|
|
**Toplam Kaynak Kod:** 58 dosya
|
|
|
|
|
|
**Toplam Satır:** 6677+ satır
|
|
|
|
|
|
**Toplam İlerleme:** ✅ 100% Production Ready
|
2025-11-10 17:00:40 +03:00
|
|
|
|
|
|
|
|
|
|
### ✅ Tamamlanan Frontend Sayfaları
|
|
|
|
|
|
|
|
|
|
|
|
**Core Pages:**
|
|
|
|
|
|
- ✅ Login (Session-based auth)
|
|
|
|
|
|
- ✅ Dashboard (Stats, recent clicks)
|
2025-11-10 17:27:19 +03:00
|
|
|
|
- ✅ Companies (CRUD, grid view + detail)
|
|
|
|
|
|
- ✅ Tokens (Create & send, detail & history)
|
|
|
|
|
|
- ✅ Mail Şablonları (HTML editör + önizleme)
|
2025-11-10 17:00:40 +03:00
|
|
|
|
- ✅ Settings (Gmail, Telegram config)
|
|
|
|
|
|
|
|
|
|
|
|
**Components:**
|
|
|
|
|
|
- ✅ Layout (Sidebar, header, mobile responsive)
|
|
|
|
|
|
- ✅ Auth Context (Global auth state)
|
|
|
|
|
|
- ✅ API Services (5 services)
|
|
|
|
|
|
|
|
|
|
|
|
### 🚀 Proje Hazır!
|
|
|
|
|
|
|
|
|
|
|
|
Sistem kullanıma hazır. Gmail ve Telegram ayarlarını yaparak phishing testlerinizi başlatabilirsiniz.
|
|
|
|
|
|
|
2025-11-10 20:01:41 +03:00
|
|
|
|
## 🚀 Sunucu Kurulumu (Production)
|
|
|
|
|
|
|
|
|
|
|
|
### Otomatik Kurulum
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
cd /opt/oltalama
|
|
|
|
|
|
sudo ./deploy.sh
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2025-11-11 04:31:25 +03:00
|
|
|
|
### 🐳 Docker ile Deployment (Önerilen)
|
2025-11-10 20:01:41 +03:00
|
|
|
|
|
2025-11-11 04:31:25 +03:00
|
|
|
|
Docker kullanarak tek komutla deploy edin (tüm platformlarda çalışır):
|
2025-11-10 20:01:41 +03:00
|
|
|
|
|
|
|
|
|
|
```bash
|
2025-11-11 04:31:25 +03:00
|
|
|
|
# 1. .env dosyası oluştur
|
|
|
|
|
|
nano .env
|
|
|
|
|
|
# SESSION_SECRET, GMAIL, TELEGRAM ayarlarını girin
|
|
|
|
|
|
|
|
|
|
|
|
# 2. Servisleri başlat
|
|
|
|
|
|
docker compose up -d
|
|
|
|
|
|
|
|
|
|
|
|
# 3. Admin kullanıcı oluştur
|
|
|
|
|
|
docker compose exec backend node scripts/create-admin.js
|
|
|
|
|
|
|
|
|
|
|
|
# 4. Erişim
|
|
|
|
|
|
# Frontend: http://localhost:4173
|
|
|
|
|
|
# Backend: http://localhost:3000
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
**Development Modu (Hot Reload):**
|
|
|
|
|
|
```bash
|
|
|
|
|
|
docker compose -f docker-compose.dev.yml up
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
**Detaylı Döküman:** `DOCKER.md` 📦
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
### 🖥️ Native Deployment (Linux Sunucu)
|
|
|
|
|
|
|
|
|
|
|
|
Otomatik deployment scripti ile:
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
sudo bash deploy.sh # Tüm Linux dağıtımları desteklenir
|
2025-11-10 20:01:41 +03:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
**Önemli dosyalar:**
|
|
|
|
|
|
- `DEPLOYMENT.md` - Detaylı sunucu kurulum kılavuzu
|
2025-11-11 04:31:25 +03:00
|
|
|
|
- `deploy.sh` - Otomatik kurulum scripti (apt & dnf/yum)
|
|
|
|
|
|
- `DOCKER.md` - Docker deployment kılavuzu 🐳
|
2025-11-10 20:01:41 +03:00
|
|
|
|
- `systemd/` - Systemd servis dosyaları
|
|
|
|
|
|
- `nginx/` - Nginx konfigürasyon örneği
|
|
|
|
|
|
|
2025-11-11 04:31:25 +03:00
|
|
|
|
**Desteklenen Sistemler:**
|
|
|
|
|
|
- ✅ Ubuntu, Debian, Oracle Linux, RHEL, CentOS, Fedora
|
|
|
|
|
|
|
2025-11-10 20:01:41 +03:00
|
|
|
|
**Portlar:**
|
|
|
|
|
|
- Backend: `3000` (değiştirilebilir)
|
|
|
|
|
|
- Frontend: `4173` (değiştirilebilir)
|
|
|
|
|
|
|
|
|
|
|
|
**Domain Seçenekleri:**
|
|
|
|
|
|
- ✅ **Tek Domain** (önerilen): `yourdomain.com` - Path-based routing
|
|
|
|
|
|
- ✅ **İki Domain**: `api.yourdomain.com` + `panel.yourdomain.com` - CORS aktif
|
|
|
|
|
|
|
|
|
|
|
|
**Process Manager:**
|
|
|
|
|
|
- ✅ PM2 (önerilen - otomatik restart, monitoring)
|
|
|
|
|
|
- ✅ Systemd (native Linux service)
|
|
|
|
|
|
|
|
|
|
|
|
**Reverse Proxy:**
|
|
|
|
|
|
- ✅ Nginx Proxy Manager (önerilen - GUI)
|
|
|
|
|
|
- ✅ Nginx (manuel konfig: `nginx/oltalama.conf`)
|
|
|
|
|
|
|
|
|
|
|
|
## 🛠️ Yardımcı Scriptler
|
|
|
|
|
|
|
|
|
|
|
|
### Admin Kullanıcı Yönetimi
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
# Yeni admin kullanıcısı oluştur
|
|
|
|
|
|
node scripts/create-admin.js
|
|
|
|
|
|
|
|
|
|
|
|
# Admin şifresini değiştir
|
|
|
|
|
|
node scripts/change-password.js
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
**Özellikler:**
|
|
|
|
|
|
- ✅ İnteraktif kullanıcı oluşturma
|
|
|
|
|
|
- ✅ Şifre güvenlik validasyonu (min 8 karakter, harf+rakam)
|
|
|
|
|
|
- ✅ Benzersiz kullanıcı adı kontrolü
|
|
|
|
|
|
- ✅ Güvenli bcrypt hash'leme
|
|
|
|
|
|
|
2025-11-10 17:00:40 +03:00
|
|
|
|
## 📚 Dokümantasyon
|
|
|
|
|
|
|
2025-11-10 17:09:35 +03:00
|
|
|
|
- **Ana Doküman:** `README.md` (bu dosya)
|
2025-11-11 04:31:25 +03:00
|
|
|
|
- **Docker Deployment:** `DOCKER.md` 🐳 (Docker kurulum ve yönetim)
|
|
|
|
|
|
- **Sunucu Kurulumu:** `DEPLOYMENT.md` 🚀 (Native Linux kurulum)
|
2025-11-10 21:13:58 +03:00
|
|
|
|
- **Ollama AI Entegrasyonu:** `OLLAMA_SETUP.md` 🤖 (AI mail şablon oluşturma)
|
2025-11-10 20:01:41 +03:00
|
|
|
|
- **Domain Yapılandırma:** `docs/DOMAIN_SETUP.md` 🌐 (Tek/İki domain)
|
|
|
|
|
|
- **Nginx Proxy Manager:** `docs/NGINX_PROXY_MANAGER.md` 🔄 (Reverse proxy)
|
|
|
|
|
|
- **Güvenlik Rehberi:** `SECURITY.md` 🔒 (Güvenlik en iyi uygulamaları)
|
2025-11-10 17:09:35 +03:00
|
|
|
|
- **Hızlı Başlangıç:** `QUICKSTART.md` ⚡ (5 dakika)
|
|
|
|
|
|
- **Kullanım Kılavuzu:** `KULLANIM.md` 📖 (Detaylı)
|
|
|
|
|
|
- **Development Plan:** `devpan.md` 🏗️ (Teknik detay)
|
|
|
|
|
|
- **Backend API:** `backend/README.md`
|
|
|
|
|
|
- **Frontend Guide:** `frontend/README.md`
|
|
|
|
|
|
- **Gmail Setup:** `devpan.md` içinde
|
|
|
|
|
|
- **Telegram Setup:** `devpan.md` içinde
|
2025-11-10 17:00:40 +03:00
|
|
|
|
|
|
|
|
|
|
## ⚠️ Güvenlik Uyarısı
|
|
|
|
|
|
|
|
|
|
|
|
Bu sistem yalnızca yasal ve etik phishing testleri için tasarlanmıştır. Kötü niyetli kullanım yasaktır.
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
**Versiyon:** 1.0.0
|
|
|
|
|
|
**Durum:** ✅ Production Ready
|
|
|
|
|
|
**Son Güncelleme:** Backend ve Frontend tamamlandı - Sistem kullanıma hazır!
|