SSH Port 22: Günde 50,000 Saldırı
Default port 22'yi açık bıraktığınız bir fiziksel sunucu, günde ortalama 50,000 brute force denemesi alır.
Fail2ban kursanız bile, log dosyaları 1GB'a ulaşır, CPU'nun %10'u bu saldırıları parse etmekle harcanır.
Çözüm: SSH'ı tamamen internetten gizleyin. Sadece VPN üzerinden erişim.
Zero-Exposure SSH Mimarisi
Geleneksel Yaklaşım (Riskli):
Internet → SSH port 22/2244 → Server
Her IP potansiyel saldırgan. IP whitelist yapmak pratik değil (çalışan IP dinamik).
VPN-First Yaklaşım (Güvenli):
Internet → VPN port 51820 → Private Network 10.8.0.0/24 → SSH port 22 → Server
SSH internete kapalı, sadece VPN network'ünden erişilebilir.
Kurulum: SSH + VPN Entegrasyonu
1. VPN Sunucusu Kur
Cloud server üzerinde WireGuard:
apt install wireguard wg genkey | tee privatekey | wg pubkey > publickey
Config `/etc/wireguard/wg0.conf`:
[Interface] Address = 10.8.0.1/24 ListenPort = 51820 PrivateKey = [key] [Peer] # Admin laptop PublicKey = [admin_key] AllowedIPs = 10.8.0.2/32
2. SSH Firewall Restrict
# SSH sadece VPN network'ünden ufw deny 22/tcp ufw allow from 10.8.0.0/24 to any port 22 ufw allow 51820/udp # VPN port açık
Bu config ile SSH internete tamamen kapalı.
3. Multi-Server Yönetimi
5 adet dedicated server yönetiyorsunuz. Her birinde aynı firewall rule:
ufw allow from 10.8.0.2 to any port 22 # Admin IP
Admin laptop VPN'e bağlanınca, tüm sunuculara SSH erişimi var. VPN kapalıyken hiçbirine erişemez.
Bastion Host Yapısı
Senaryo: 20 sunucu, 5 admin.
Çözüm: Tek bastion host (jump server), admin'ler buraya SSH → oradan production sunuculara SSH.
# Bastion host ufw allow from 0.0.0.0/0 to any port 51820 # VPN ufw allow from 10.8.0.0/24 to any port 22 # SSH sadece VPN'den # Production servers ufw allow from [bastion_IP] to any port 22 ufw deny 22/tcp from 0.0.0.0/0
Centralized logging: Tüm SSH connection'lar bastion üzerinden → tek log file.
SSH Key Rotation + VPN
Her 90 günde bir:
- Yeni SSH key generate et
- VPN config güncelle (key rotation)
- Eski key'leri revoke et
VPN + SSH key combo çalınsa bile, 90 gün sonra invalid.
MFA: VPN + SSH Two-Step
Layer 1: VPN bağlantısı (WireGuard key gerekli)
Layer 2: SSH login (key + TOTP)
apt install libpam-google-authenticator # /etc/ssh/sshd_config ChallengeResponseAuthentication yes AuthenticationMethods publickey,keyboard-interactive
Laptop çalınsa bile, TOTP olmadan SSH erişimi yok.
Monitoring: VPN + SSH Entegre Log
VPN connection log:
journalctl -u wg-quick@wg0 | grep handshake
SSH login log:
tail -f /var/log/auth.log | grep sshd
Entegre alert: VPN bağlantısı yok ama SSH denemesi var → saldırı!
Günlük özet kurumsal e-posta ile SIEM entegrasyonu.
Performance: VPN Overhead
VPN encryption ekstra latency ekler mi?
- OpenVPN: ~5-10ms latency artışı
- WireGuard: ~1-2ms latency artışı
SSH terminal kullanımında 2ms hissedilmez. File transfer (SCP) için throughput:
- Direct SSH: 1Gbps
- WireGuard + SSH: 950Mbps (%5 overhead)
Güvenlik kazancı overhead'i haklı çıkarır.
Multi-Region Setup
Sofia datacenter: 3 sunucu
Istanbul datacenter: 5 sunucu
Çözüm: Her region'da VPN gateway, WireGuard mesh network:
# Sofia VPN [Peer] # Istanbul VPN gateway PublicKey = [istanbul_key] Endpoint = vpn-istanbul.company.com:51820 AllowedIPs = 10.9.0.0/24
Admin tek VPN'e bağlan, her iki region'a SSH erişimi var.
Disaster Recovery
Primary VPN sunucusu düşerse SSH erişimi kaybolur mu?
Çözüm 1: VPN server HA (keepalived + VRRP)
Çözüm 2: Secondary VPN gateway (failover DNS)
Çözüm 3: Emergency SSH access (specific admin IP whitelist, sadece acil durum)
Compliance: PCI-DSS ve ISO 27001
PCI-DSS 2.3: "Yönetim erişimi için multi-factor authentication kullanın."
ISO 27001 A.9.4.2: "Secure log-on procedures."
VPN + SSH + MFA bu gereksinimleri karşılar. Audit log SSL ile şifrelenir.
Maliyet-Fayda Analizi
Without VPN:
- Fail2ban CPU: %10
- Log storage: 30GB/ay
- Brute force risk: Yüksek
With VPN:
- VPN server: Cloud server €40/ay
- Fail2ban CPU: %0 (SSH erişimi yok)
- Log storage: 500MB/ay
- Brute force risk: Sıfır
20+ sunucuda VPN ekonomik ve güvenli.
Bonus: Port Knocking (VPN Alternatifi)
VPN kurmak istemiyorsanız, port knocking:
knock server 7000 8000 9000 && ssh user@server
Belirli sırada 3 port knock → SSH port açılır 30 saniye.
Ama VPN daha güvenli, daha esnek.
Sonuç
Dedicated server + cloud server yönetiyorsanız, VPN + SSH combo zorunlu.
EuroVDC ile domain + server + VPN tek panelden yönetilir. SSH güvenliği %99.8 artar.