
VDS Sunucu Güvenliği: Temel Koruma Adımları
VDS sunucunuzu siber tehditlere karşı korumak için uygulamanız gereken temel güvenlik adımları: SSH sertleştirme, güvenlik duvarı, fail2ban, DDoS koruması ve daha fazlası.
VDS Sunucu Güvenliği: 12 Katmanlı Sysadmin Koruma Kılavuzu
VDS sunucu satın aldığınızda root şifresi size teslim edilir; root yetkisi güçtür ve sorumluluğu size devreder. Paylaşımlı hostingde sağlayıcı; firewall, antivirüs ve güncellemeleri üstlenir. VDS'de ise işletim sisteminden uygulama katmanına kadar her şeyi siz yönetirsiniz. Bu rehber, E5V4 VDS veya E5V2 VDS üzerinde çalıştıracağınız 12 bağımsız güvenlik katmanını ve her katmanı nasıl uygulayacağınızı açıklar.
VDS Güvenliği vs. Hosting Güvenliği: Sorumluluk Sınırı
Paylaşımlı hostingde Imunify360, ImunifyAV, AutoSSL ve JetBackup sağlayıcı tarafından yapılandırılmış olarak gelir. Siz bunları açıp kapatabilirsiniz; ama kurmak zorunda değilsinizdir.
VDS sunucuda tablo şudur:
| Alan | Paylaşımlı Hosting | VDS |
|---|---|---|
| Firewall | Sağlayıcı yönetir | Siz kurarsınız |
| Antivirüs / malware tarama | Imunify360 dahil | Siz kurarsınız |
| OS güvenlik güncellemeleri | Otomatik | Siz yönetirsiniz |
| SSL (AutoSSL) | Otomatik | Siz kurarsınız |
| Yedekleme | JetBackup dahil | Siz planlar, siz konfigüre edersiniz |
| Brute force koruması | Sağlayıcı katmanı var | fail2ban / CSF siz kurarsınız |
| DDoS (ağ seviyesi) | Sağlayıcı üstlenir | Buyukweb L3+L4+L7 standart |
Buyukweb perspektifi: Buyukweb VDS paketlerinde KVM sanallaştırma, root erişim ve KVM web konsol kurtarma arayüzü standart gelir. Bursa Tier 3 veri merkezindeki ağ altyapısı L3/L4/L7 DDoS koruması içerir. OS ve uygulama katmanı güvenliği tamamen size aittir. Aşağıdaki 12 katman bu sorumluluğu yapılandırılmış biçimde yerine getirmenizi sağlar.
Katman 1 — İlk Kurulum Sertleştirme
Root şifresini aldıktan sonra ilk 30 dakikada yapılacaklar:
Minimal yükleme, gereksiz servisleri kaldır:
# Bluetooth, baskı kuyruğu gibi sunucuda anlamsız servisleri kapat
systemctl disable bluetooth cups
systemctl stop bluetooth cups
# Çalışan servisleri listele; ihtiyaç dışı olanları kaldır
systemctl list-units --type=service --state=running
Kernel ve paketleri güncelle:
# Debian/Ubuntu
apt update && apt full-upgrade -y
# RHEL/AlmaLinux/Rocky
dnf update -y
Zaman senkronu (chrony/ntp) — log güvenliği için kritik:
apt install chrony -y # Debian/Ubuntu
systemctl enable chrony --now
# Türkiye timezone
timedatectl set-timezone Europe/Istanbul
Hostname tanımla:
hostnamectl set-hostname vds01.siteniz.com
Doğru saat ve hostname olmadan log analizinde yanlış zaman damgaları oluşur; olay müdahalesi zorlaşır.
Çekirdek parametreleri (sysctl) — isteğe bağlı güçlendirme:
# /etc/sysctl.d/99-hardening.conf
net.ipv4.conf.all.rp_filter = 1 # Sahte IP engelle
net.ipv4.conf.all.accept_redirects = 0 # ICMP redirect reddet
net.ipv4.tcp_syncookies = 1 # SYN flood koruma
kernel.dmesg_restrict = 1 # Kernel log kısıtla
fs.suid_dumpable = 0 # SUID process dump yok
sysctl -p /etc/sysctl.d/99-hardening.conf
Katman 2 — SSH Sertleştirme
SSH, VDS'e açılan başlıca kapıdır ve bot taramalarının %90'ının hedefidir. SSH bağlantısı ve anahtar yönetimi için kapsamlı rehberimizde Ed25519 anahtar üretimini adım adım bulabilirsiniz.
Ed25519 anahtar oluştur ve kopyala:
ssh-keygen -t ed25519 -C "[email protected]"
ssh-copy-id -i ~/.ssh/id_ed25519.pub kullanici@sunucu_ip
/etc/ssh/sshd_config sertleştirme:
Port 2222 # 22'den farklı bir port seç
PermitRootLogin no # Root ile doğrudan giriş yok
PasswordAuthentication no # Parola ile giriş yok
PubkeyAuthentication yes # Sadece anahtar
AllowUsers sysadmin # Sadece yetkili kullanıcı
MaxAuthTries 3
ClientAliveInterval 300
ClientAliveCountMax 2
systemctl restart sshd
Uyarı: Anahtar kopyaladıktan ve yeni port ile test bağlantısı başarılıyken
sshdyi yeniden başlatın. Aksi hâlde kendinizi kilitlersiniz.
Katman 3 — fail2ban + Brute Force Koruması
fail2ban, log dosyalarını izleyerek belirtilen deneme sayısını aşan IP'leri otomatik olarak iptables ile yasaklar.
Kurulum:
apt install fail2ban -y
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
/etc/fail2ban/jail.local temel yapılandırma:
[DEFAULT]
bantime = 3600
maxretry = 5
findtime = 600
[sshd]
enabled = true
port = 2222
[nginx-http-auth]
enabled = true
[postfix]
enabled = true
systemctl enable fail2ban --now
fail2ban-client status sshd # Aktif jail doğrula
cPanel/WHM kullanan VDS ortamları için CSF (ConfigServer Security Firewall), fail2ban'a ek katman sunar ve WHM arayüzüyle entegre çalışır. CSF ve WHM güvenlik yapılandırması için ayrı rehberimize bakabilirsiniz.
Katman 4 — Firewall
Dört yaygın çözüm; hangisini seçeceğiniz OS ve karmaşıklık ihtiyacınıza göre değişir:
ufw (Ubuntu — basit, önerilen başlangıç):
ufw default deny incoming
ufw default allow outgoing
ufw allow 2222/tcp
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable
firewalld (RHEL/AlmaLinux — zone tabanlı): firewalld bölge yönetimi rehberimizde zone'lar ve servis kuralları detaylandırılmıştır.
firewall-cmd --permanent --add-port=2222/tcp
firewall-cmd --permanent --remove-service=ssh
firewall-cmd --reload
iptables / nftables (granüler kural yazma): iptables ile ağ güvenliği rehberimizde FORWARD, INPUT ve OUTPUT chain kuralları örneklenmiştir.
# Temel iptables — önce ACCEPT, sonra DROP
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --dport 2222 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -P INPUT DROP
iptables-save > /etc/iptables/rules.v4
Firewall katmanı Buyukweb altyapısındaki ağ düzeyi DDoS korumasını tamamlar; ikisi birbirini ezmez.
Katman 5 — Otomatik Güvenlik Güncellemeleri
Kritik güvenlik yamaları gecikirse saldırı penceresi açık kalır. Ancak tüm güncellemelerin otomatik uygulanması üretim sistemlerinde risklidir; yalnızca security güncellemeleri otomatize edilir.
Debian/Ubuntu — unattended-upgrades:
apt install unattended-upgrades -y
dpkg-reconfigure --priority=low unattended-upgrades
# /etc/apt/apt.conf.d/50unattended-upgrades
Unattended-Upgrade::Allowed-Origins {
"${distro_id}:${distro_codename}-security";
};
Unattended-Upgrade::Automatic-Reboot "false";
RHEL/AlmaLinux — dnf-automatic:
dnf install dnf-automatic -y
# /etc/dnf/automatic.conf
# upgrade_type = security
systemctl enable dnf-automatic-install.timer --now
Reboot politikası: Kernel güncellemeleri genellikle yeniden başlatma gerektirir. Üretim ortamında bakım penceresi tanımlayın;
Automatic-Reboot "false"olarak bırakın ve haftalık manuel kontrol yapın.
Katman 6 — Web Sunucu Sertleştirme
Apache — ModSecurity + OWASP Core Rule Set (CRS):
apt install libapache2-mod-security2 -y
cp /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf
# SecRuleEngine DetectionOnly → On
# OWASP CRS kur:
git clone https://github.com/coreruleset/coreruleset /etc/modsecurity/crs
cp /etc/modsecurity/crs/crs-setup.conf.example /etc/modsecurity/crs/crs-setup.conf
Nginx — versiyon gizle, listelemeyi kapat:
server_tokens off;
autoindex off;
# Güvenlik başlıkları
add_header X-Frame-Options "SAMEORIGIN";
add_header X-Content-Type-Options "nosniff";
add_header X-XSS-Protection "1; mode=block";
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload";
add_header Content-Security-Policy "default-src 'self'; script-src 'self'; object-src 'none';";
X-Frame-Options, clickjacking; CSP, XSS enjeksiyonunu; HSTS ise SSL strip saldırılarını engeller.
Katman 7 — Veritabanı Güvenliği
Veritabanı güvenliği ve kullanıcı izin yönetimi için MySQL/MariaDB güvenlik yapılandırması rehberimizde ayrıntılı tablo ve sütun bazlı yetkiler ele alınmaktadır.
MySQL / MariaDB temel sertleştirme:
mysql_secure_installation
# Sorulara cevap:
# Root şifresi ata: EVET
# Anonymous user kaldır: EVET
# Test DB sil: EVET
# Root uzak erişim kapat: EVET
Sadece localhost dinle:
# /etc/mysql/mysql.conf.d/mysqld.cnf
bind-address = 127.0.0.1
Uygulama için en az ayrıcalık:
CREATE USER 'wp_user'@'localhost' IDENTIFIED BY 'guçlu_parola';
GRANT SELECT, INSERT, UPDATE, DELETE ON wp_veritabani.* TO 'wp_user'@'localhost';
FLUSH PRIVILEGES;
-- Root yetkisini uygulamaya ASLA verme
Parolaları 90 günde bir döndürün; şifre politikasını validate_password eklentisiyle zorlayın.
Katman 8 — Uygulama Güvenliği
WordPress için: WordPress güvenlik sertleştirme rehberimizde dosya izinleri, wp-config.php konumlandırma ve eklenti güvenliği detaylandırılmıştır.
Modern framework için temel önlemler:
- Tüm kullanıcı girdisini sanitize et; SQL sorgularında prepared statement kullan
- CSRF token'ı form başına üret ve doğrula
- Content-Security-Policy header ile inline script'leri engelle
- Bağımlılıkları (composer.json, package.json) düzenli güncelle; `npm audit` / `composer audit` çalıştır
- Hassas bilgileri (.env) versiyon kontrolüne commit etme
- Hata mesajlarında stack trace gösterme (production'da debug kapalı)
Katman 9 — Yedekleme: 3-2-1 Kuralı
Yedekleme olmadan güvenlik eksiktir. Yedekleme stratejileri ve 3-2-1 kuralı rehberimizde senaryo bazlı planlar ele alınmıştır. cPanel JetBackup yönetimi rehberimiz ise cPanel ortamı için adım adım restore sürecini içerir.
Otomatik yedek cron (VDS için örnek):
# /etc/cron.d/vds-backup
0 2 * * * root mysqldump --all-databases | gzip > /backup/db-$(date +%F).sql.gz
0 3 * * * root tar czf /backup/www-$(date +%F).tar.gz /var/www
0 4 * * * root rclone sync /backup r2:bucket-adi/$(hostname)/
3-2-1 kuralı:
- 3 kopya (yerel disk + yerel yedek + uzak)
- 2 farklı ortam (disk + nesne depolaması)
- 1 kopya off-site (rclone ile Cloudflare R2 veya benzeri)
Immutable yedek (Object Lock): S3-uyumlu nesne depolarında WORM (Write Once Read Many) politikası aktifleştirin; fidye yazılımının yedekleri şifrelemesini engeller. Bu, fidye yazılımı saldırısında son savunma hattıdır; şifreli yedek, yedek sayılmaz.
Yedek şifreleme: Yedekleri açık metin olarak saklamayın. rclone ile Cloudflare R2'ye göndermeden önce GPG veya rclone crypt ile şifreleyin:
rclone copy /backup r2-crypt:bucket-adi/$(hostname)/
Restore drill: Ayda bir rastgele dosyayı geri yükleyin ve uygulamanın doğru çalıştığını doğrulayın. Test edilmemiş yedek, yedek değildir.
Katman 10 — İzleme ve Log Yönetimi
VDS monitoring ve Netdata rehberimizde kaynak izleme dashboard kurulumu ve alarm eşikleri ele alınmıştır.
Temel log araçları:
# Son 100 kernel hata logu
journalctl -k -n 100 -p err
# SSH giriş başarısızlıkları
journalctl -u sshd --since "1 hour ago" | grep "Failed"
# fail2ban ban olayları
fail2ban-client status sshd
# auditd — dosya erişim denetimi
apt install auditd -y
auditctl -w /etc/passwd -p wa -k passwd_changes
ausearch -k passwd_changes
Merkezi log (Loki/Wazuh): Ağ güvenliği ve merkezi log yönetimi rehberimizde Wazuh agent kurulumu ve Loki pipeline yapılandırması yer almaktadır.
# rsyslog ile uzak log sunucusuna gönderim
# /etc/rsyslog.d/50-remote.conf
*.* @log-sunucu:514
Netdata / Zabbix: Gerçek zamanlı CPU, RAM, disk I/O ve ağ metriklerini izler; eşik aşımında alarm gönderir. İzleme olmadan saldırı tespiti gecikir.
Katman 11 — IDS/IPS: İzinsiz Giriş Tespit
Firewall trafiği engeller; IDS/IPS ise engeli aşmayı başarmış tehditleri tespit eder.
CrowdSec (modern, community-driven):
curl -s https://packagecloud.io/install/repositories/crowdsec/crowdsec/script.deb.sh | bash
apt install crowdsec -y
cscli scenarios list # Aktif senaryo listesi
cscli decisions list # Engellenen IP'ler
Wazuh agent (OSSEC tabanlı) merkezi güvenlik analizi, dosya bütünlük denetimi (FIM) ve SIEM entegrasyonu sağlar. Ağ güvenliği ve merkezi log rehberimizde Wazuh manager kurulumu adım adım anlatılmaktadır.
Suricata (ağ tabanlı IDS/IPS):
apt install suricata -y
suricata-update # Kural güncelle
# /etc/suricata/suricata.yaml → af-packet interface tanımla
systemctl enable suricata --now
Snort, Suricata'nın öncesinde gelen klasik IDS; Suricata çok çekirdekli mimarisiyle yüksek hacimli trafikte daha performanslı çalışır.
Katman 12 — Olay Müdahale Planı
Saldırı gerçekleştiğinde panikle hatalı adım atmak hasarı büyütür. Siber tehdit ve olay müdahale rehberimizde NIST 800-61 6 aşamasına dayanan tam bir playbook sunulmaktadır.
7 adım olay müdahale:
1. TESPİT
- Anormal trafik, beklenmedik process, yüksek CPU/RAM
- journalctl + fail2ban log + auditd uyarısı
2. İZOLASYON
- Etkilenen servisi durdur; ağ trafiğini kes (iptables -P INPUT DROP)
- KVM konsol üzerinden erişim sağla (SSH kesilse bile ulaşırsın)
3. LOG TOPLAMA
- /var/log/ altındaki ilgili log'ları arşivle
- Bellek dump'ı al: dd if=/dev/mem of=/tmp/memdump
4. FORANSİK ANALİZ
- Hangi process, hangi kullanıcı, hangi dosya?
- ls -la /tmp /var/tmp — şüpheli ikili
- find / -mtime -1 -type f — son 24 saatte değişen dosyalar
5. TEMİZLEME ve RESTORE
- Temiz yedekten geri yükle (restore drill yaptıysanız hazırsınız)
- OS yeniden kur; sadece veriyi yükle
6. DOĞRULAMA
- Sistemi temizlenmiş kabul etmeden önce tam tarama
- Güvenlik açığı kapatıldı mı test et
7. POSTMORTEM
- Saldırı nasıl gerçekleşti? Hangi katman atlatıldı?
- Hangi kontrol önledi ya da önleyebilirdi?
- Süreci belgele; 12 katmanı güncelle
Buyukweb KVM web konsol, SSH bağlantısı kesilse dahi sunucuya erişim sağlar. Bu, izolasyon ve forensik adımlarında kritik kurtarma aracıdır.
Buyukweb VDS'de Güvenlik Bağlamı
Buyukweb VDS altyapısının güvenlik tarafı şu şekilde işler:
| Katman | Buyukweb Üstlenir | Müşteri Üstlenir |
|---|---|---|
| Ağ DDoS (L3+L4+L7) | Standart, otomatik | — |
| Fiziksel güvenlik | Tier 3 veri merkezi | — |
| KVM web konsol kurtarma | Standart | — |
| Hypervisor / KVM izolasyonu | Buyukweb | — |
| OS kurulum ve güncelleme | — | Müşteri |
| Firewall (ufw/firewalld/iptables) | — | Müşteri |
| fail2ban / CSF | — | Müşteri |
| Web sunucu sertleştirme | — | Müşteri |
| Veritabanı güvenliği | — | Müşteri |
| Uygulama güvenliği | — | Müşteri |
| Yedekleme planı | — | Müşteri |
Teknik destek hattı: 0850 302 60 70 — yapılandırma danışmanlığı ve acil durum yönlendirmesi için ulaşabilirsiniz.
Sık Sorulan Sorular
VDS varsayılan olarak güvenli mi?
Hayır. Taze bir VDS'de açık SSH port 22, root girişine izin, parola tabanlı kimlik doğrulama ve güncel olmayan paketler olabilir. Bu rehberdeki 12 katman uygulanmadan sunucu, internet botlarına karşı savunmasızdır.
fail2ban + ufw yeterli mi?
Küçük-orta ölçekli web siteleri için başlangıç olarak yeterlidir. Yüksek değerli hedefler, e-ticaret veya SaaS için Katman 10 (merkezi log) ve Katman 11 (IDS/IPS) eklenmesi önerilir.
Imunify360 VDS'te de kullanılabilir mi?
Imunify360 teknik olarak VDS'e kurulabilir ancak paylaşımlı hosting ortamı için tasarlanmış ve lisanslanmıştır. VDS kullanıcıları genellikle CrowdSec, Wazuh veya Suricata gibi açık kaynak alternatifleri tercih eder.
AutoSSL VDS'te otomatik gelir mi?
Hayır. AutoSSL cPanel WHM entegrasyonuna özgüdür. VDS'de Let's Encrypt için Certbot'u kendiniz kurarsınız:
apt install certbot python3-certbot-nginx -y
certbot --nginx -d siteniz.com -d www.siteniz.com
Certbot 90 günlük sertifikayı otomatik yeniler.
Hangi log'ları saklamalıyım?
Minimum saklama: auth.log (SSH/sudo), nginx/apache access+error log, mail log, fail2ban log. Kritik sistemlerde auditd logları eklenir. GDPR/KVKK kapsamı varsa saklama süresi politikaya göre belirlenir (genellikle 6-12 ay).
Kendi sunucuma pentest yapabilir miyim?
Evet, kendi sisteminizde test yapmak yasal ve önerilir. Lynis ile otomatik güvenlik denetimi:
apt install lynis -y
lynis audit system
Lynis skor 70+ hedefleyin; her öneriyi değerlendirin ve 12 katmanla örtüştürün.
Root kullanıcısını tamamen devre dışı bırakmalı mıyım?
SSH üzerinden root girişini kapatın (PermitRootLogin no), ancak sistemdeki root hesabını kapatmayın. Sudo yetkili bir kullanıcı oluşturun; acil durum müdahalesinde KVM konsol üzerinden root erişimine ihtiyaç duyabilirsiniz.
İlgili Büyükweb Hizmetleri
Türkiye Tier 3 veri merkezinde sabit fiyatlı VDS paketleri:
Sorularınız için 0850 302 60 70 numaralı destek hattımıza veya iletişim sayfamıza yazabilirsiniz.
VDS & VPS Rehberi İlgili Hizmetlerimiz
Bu yazıda anlatılan teknik konuyu profesyonel altyapıyla deneyimleyin
Etiketler:


