Buyukweb
VDS Sunucu Güvenliği: Temel Koruma Adımları

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ı.

Büyükweb Editör EkibiHosting, Sunucu ve Sistem Yönetimi Editörü12 dakika okuma

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 sshd yi 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:

#vds güvenlik#sunucu güvenliği#fail2ban#ssh güvenlik#ufw güvenlik duvarı#ddos koruma#linux güvenlik

Bu yazıyı paylaş