Skip to content

Latest commit

 

History

History
259 lines (192 loc) · 6.29 KB

File metadata and controls

259 lines (192 loc) · 6.29 KB

Production Deployment Checklist

✅ Hazır Olan Özellikler

Teknik Altyapı

  • WireGuard-Go: Enterprise-grade VPN implementasyonu
  • Askeri Seviye Şifreleme: ChaCha20-Poly1305 (256-bit)
  • Cross-Platform: macOS (utun) + Linux (tun) desteği
  • No-Log: RAM-only storage (tmpfs)
  • DoS Koruması: Rate limiting + auto-ban
  • API Authentication: Token-based güvenlik
  • Docker: Production-ready containerization
  • Health Check: Otomatik sağlık kontrolü

Güvenlik

  • Perfect Forward Secrecy
  • Anti-replay protection
  • Pre-shared keys (quantum resistance)
  • Security headers (XSS, clickjacking koruması)
  • Read-only container filesystem
  • No-new-privileges security option

📋 Production Deployment Adımları

1. Sunucu Hazırlığı

Gereksinimler:

  • Linux sunucu (Ubuntu 22.04+ / Debian 11+ önerilir)
  • Minimum 1 CPU, 1GB RAM
  • Docker ve Docker Compose kurulu
  • Açık portlar: 8443 (API), 51820-51830 (UDP)

Kurulum:

# Sunucuya bağlan
ssh root@your-server-ip

# Projeyi klonla
git clone <your-repo-url> /opt/vaultex-vpn
cd /opt/vaultex-vpn

# Docker kur (yoksa)
curl -fsSL https://get.docker.com | sh

2. Ortam Değişkenlerini Yapılandır

.env dosyasını düzenle:

# Gerçek sunucu IP'si
SN_PUBLIC_IP=YOUR_SERVER_PUBLIC_IP

# API portu
SN_API_PORT=8443

# CORS (production domain)
SN_CORS_ORIGIN=https://yourdomain.com

# TLS sertifikaları (önerilir)
SN_TLS_CERT=/certs/fullchain.pem
SN_TLS_KEY=/certs/privkey.pem

3. TLS Sertifikası Oluştur (Önerilir)

Let's Encrypt ile:

# Certbot kur
apt-get update && apt-get install -y certbot

# Sertifika al
certbot certonly --standalone -d yourdomain.com

# Sertifikaları kopyala
mkdir -p ./certs
cp /etc/letsencrypt/live/yourdomain.com/fullchain.pem ./certs/
cp /etc/letsencrypt/live/yourdomain.com/privkey.pem ./certs/
chmod 644 ./certs/*.pem

4. Firewall Yapılandır

UFW ile:

# UFW kur ve aktifleştir
apt-get install -y ufw

# Gerekli portları aç
ufw allow 22/tcp      # SSH
ufw allow 8443/tcp    # API
ufw allow 51820:51830/udp  # VPN

# Aktifleştir
ufw enable

iptables ile:

iptables -A INPUT -p tcp --dport 8443 -j ACCEPT
iptables -A INPUT -p udp --dport 51820:51830 -j ACCEPT
iptables-save > /etc/iptables/rules.v4

5. Deploy

cd /opt/vaultex-vpn

# Build ve başlat
make build
make deploy

# Veya doğrudan
docker compose up -d

6. Doğrulama

# Container durumu
docker ps | grep vaultex

# Health check
curl https://yourdomain.com:8443/api/v1/health

# Logları kontrol (geliştirme için)
# Not: Production'da logging kapalı (no-log policy)
docker logs vaultex-vpn

🔒 Production Güvenlik Kontrolleri

Zorunlu

  • .env dosyasında gerçek sunucu IP'si ayarlandı
  • TLS sertifikası yapılandırıldı
  • CORS origin spesifik domain ile sınırlandı
  • Firewall kuralları aktif
  • SSH key-based authentication kullanılıyor
  • Root login devre dışı

Önerilen

  • Fail2ban kuruldu
  • Otomatik güncellemeler aktif (unattended-upgrades)
  • Monitoring eklendi (Prometheus/Grafana)
  • Backup stratejisi belirlendi
  • Rate limiting test edildi
  • DDoS koruması yapılandırıldı (Cloudflare/AWS Shield)

🚀 Ölçeklendirme (İsteğe Bağlı)

Çoklu Sunucu Deployment

Load Balancer ile:

                    ┌─────────────┐
                    │   Nginx LB  │
                    └──────┬──────┘
                           │
          ┌────────────────┼────────────────┐
          │                │                │
    ┌─────▼─────┐    ┌─────▼─────┐    ┌─────▼─────┐
    │  Node 1   │    │  Node 2   │    │  Node 3   │
    │ EU-West   │    │ US-East   │    │ AP-East   │
    └───────────┘    └───────────┘    └───────────┘

Database (İsteğe Bağlı)

No-log policy için RAM kullanılıyor, ancak kullanıcı yönetimi için:

  • Redis (session storage)
  • PostgreSQL (kullanıcı hesapları - opsiyonel)

📊 Monitoring (İsteğe Bağlı)

Prometheus Metrics

Metrics endpoint eklemek için handlers.go'ya:

router.GET("/metrics", promhttp.Handler())

Grafana Dashboard

Önerilen metrikler:

  • Active VPN sessions
  • Bandwidth usage
  • Failed handshakes
  • Rate limit hits
  • Server load

🔄 Güncelleme Prosedürü

cd /opt/vaultex-vpn

# Yeni kodu çek
git pull

# Yeniden build
make build

# Zero-downtime restart
docker compose up -d --force-recreate

⚠️ Bilinen Sınırlamalar

  1. macOS Production: macOS production sunucu olarak önerilmez, Linux kullanın
  2. IP Pool: Maksimum 253 eşzamanlı bağlantı (10.66.66.2-254)
  3. No-Log: Container restart'ta tüm session'lar silinir (tasarım gereği)

🎯 Production Hazırlık Durumu

Kategori Durum Notlar
Kod ✅ Hazır WireGuard-Go production-ready
Şifreleme ✅ Hazır Military-grade ChaCha20-Poly1305
Güvenlik ✅ Hazır DoS, rate limiting, no-log
Docker ✅ Hazır Optimized multi-stage build
API ✅ Hazır RESTful, authenticated
Frontend ✅ Hazır Static HTML/CSS/JS
TLS ⚠️ Yapılandırma Gerekli Let's Encrypt önerilir
Domain ⚠️ Yapılandırma Gerekli DNS ayarları
Monitoring ⚙️ Opsiyonel Prometheus/Grafana

📞 Deployment Desteği

Deployment sırasında sorun yaşarsanız:

  1. Logları kontrol edin (geliştirme modunda)
  2. Health check yapın: curl http://localhost:8443/api/v1/health
  3. Container durumu: docker ps -a
  4. Network: docker network inspect vaultex-internal

✅ Sonuç

Uygulama production deployment için hazır. Yukarıdaki adımları takip ederek:

  • Linux sunucuda deploy edebilirsiniz
  • TLS ile güvenli erişim sağlayabilirsiniz
  • Askeri seviye şifreleme ile VPN hizmeti verebilirsiniz
  • No-log policy ile gizlilik garantisi sunabilirsiniz