VDS Sunucunuzu Hackerlardan Korumak İçin Yapmanız Gereken İlk 5 Ayar
VDS sunucu güvenliği için ilk 5 ayar: SSH anahtarı, root girişini kapatma, firewall, otomatik güncelleme, fail2ban ve yedek. Linux ve Windows VDS rehberi.

İçindekiler
- Başlamadan önce: Sunucunuza şu anda kimler giriş yapmaya çalışıyor?
- Birinci ayar: SSH’ı anahtarla kullanın, root ve parola girişini kapatın
- Önce yetkili bir kullanıcı oluşturun
- SSH anahtarı oluşturup sunucuya ekleyin
- Parola ve root girişini kapatın
- SSH portunu değiştirmek işe yarar mı?
- İkinci ayar: Güvenlik duvarında varsayılanı “kapalı” yapın
- Üçüncü ayar: Güvenlik güncellemelerini otomatiğe bağlayın
- Dördüncü ayar: Fail2ban ile deneme-yanılma saldırılarını durdurun
- Beşinci ayar: Yetkileri daraltın, yedeği sunucunun dışında tutun
- En az yetki ilkesi
- Yedek: Saldırıdan sonra sizi kurtaracak tek şey
- Kontrol paneli ve web uygulaması kullananlar için ek önlemler
- cPanel ve Plesk’teki hazır korumalar
- WordPress ve diğer web uygulamaları
- Windows VDS kullanıyorsanız: Aynı mantık, farklı araçlar
- Saldırı altında olduğunuzu nasıl anlarsınız?
- Beş dakikalık güvenlik kontrol listesi
- Güvenlik sağlayıcı seçimiyle başlar
- Sık Sorulan Sorular
- VDS sunucu güvenliği için ilk yapılması gereken ayar nedir?
- SSH portunu değiştirmek güvenliği artırır mı?
- Fail2ban DDoS saldırılarını engeller mi?
- Windows VDS için de bu ayarlar geçerli mi?
- Sunucum hacklendiyse ne yapmalıyım?
Yeni bir VDS’i internete açtığınızda kapıyı ilk çalan genellikle bir insan değil, bir bottur. Sunucu IP adresini aldıktan kısa süre sonra, çoğu zaman ilk saat dolmadan, SSH ve RDP portlarına “root”, “admin”, “test” gibi kullanıcı adlarıyla parola deneyen otomatik tarayıcılar kayıtlarda görünmeye başlar. Bu botlar sizi tanımaz; internetteki adresleri sırayla tarar ve kapısı aralık kalan sunucuyu bulana kadar devam eder.
VDS kiralama sürecinde sağlayıcının sunduğu DDoS koruması ağ katmanındaki büyük saldırıları karşılar. Ancak sunucunun içindeki kapıları kilitlemek, yani kimin hangi yoldan girebileceğine karar vermek sizin işinizdir. İyi haber şu: VDS sunucu güvenliği için yapılması gerekenlerin büyük kısmı ilk gün, yarım saatlik bir çalışmayla tamamlanabilir.
Bu rehberde yeni bir Linux VDS’te öncelikle yapmanız gereken beş ayarı, komutlarıyla birlikte sırayla anlatıyoruz. Windows VDS kullananlar için de her adımın karşılığını ayrıca belirttik.
Başlamadan önce: Sunucunuza şu anda kimler giriş yapmaya çalışıyor?
Ayarlara geçmeden önce mevcut durumu görmek, neyle uğraştığınızı anlamanın en hızlı yoludur. Ubuntu 22.04 veya 24.04 kullanan bir VDS’te son bir saatteki başarısız SSH denemelerini şu komutla sayabilirsiniz:
journalctl -u ssh --since "1 hour ago" | grep -c "Failed password"
Yeni açılmış bir sunucuda bile bu sayının onlarla, bazen yüzlerle ifade edildiğini görmek şaşırtıcı değildir. Dışarıya hangi servislerin açık olduğunu görmek için ise ss -tulpn komutunu kullanın. Listede tanımadığınız ya da internete açık olması gerekmeyen bir port varsa (örneğin veritabanı portu 3306), birazdan anlatacağımız güvenlik duvarı ayarıyla kapatacağız.
Birinci ayar: SSH’ı anahtarla kullanın, root ve parola girişini kapatın
Botların neredeyse tamamı parola tahmin ederek içeri girmeye çalışır. Parolayla girişi tamamen kapatıp yalnızca SSH anahtarıyla giriş yapılabilen bir sunucu, bu saldırıların tamamını boşa çıkarır. Çünkü 256 bitlik bir ed25519 anahtarını tahmin etmek, en uzun parolayı tahmin etmekten bile kıyas kabul etmeyecek kadar zordur.
Önce yetkili bir kullanıcı oluşturun
Root ile doğrudan çalışmak yerine, gerektiğinde sudo kullanabilen ayrı bir kullanıcı açın. Root hesabının adı herkes tarafından bilindiği için saldırıların ilk hedefidir; adı tahmin edilemeyen bir kullanıcı ek bir engel oluşturur.
adduser deploy
usermod -aG sudo deploy
SSH anahtarı oluşturup sunucuya ekleyin
Anahtar çifti sunucuda değil, kendi bilgisayarınızda oluşturulur. Gizli anahtar bilgisayarınızda kalır, sunucuya yalnızca açık anahtar gönderilir:
ssh-keygen -t ed25519 -C "deploy@ofis"
ssh-copy-id deploy@SUNUCU_IP
Windows 10 ve 11’de ssh-keygen PowerShell’de hazır gelir ama ssh-copy-id yoktur. Aynı işi PowerShell’de şu komut yapar:
type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh deploy@SUNUCU_IP "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"
Ardından yeni bir terminal penceresinden ssh deploy@SUNUCU_IP ile bağlanın. Parola sorulmadan giriş yapabiliyorsanız anahtar doğru çalışıyor demektir.
Parola ve root girişini kapatın
Güncel Ubuntu ve Debian sürümlerinde ana yapılandırma dosyası, /etc/ssh/sshd_config.d/ klasöründeki dosyaları en başta okur. Ayarlarınızı bu klasörde ayrı bir dosyaya yazmak, sistem güncellemelerinde değişikliklerinizin ezilmesini de önler:
sudo nano /etc/ssh/sshd_config.d/00-guvenlik.conf
PermitRootLogin no
PasswordAuthentication no
KbdInteractiveAuthentication no
PubkeyAuthentication yes
MaxAuthTries 3
Dosya adının 00 ile başlaması bilinçli bir tercih. SSH servisi bir ayarı ilk okuduğu dosyadan alır ve sonradan gelen değerleri yok sayar. Bazı sunucu imajlarında bulunan 50-cloud-init.conf dosyası parola girişini açık tutabilir. Sizin dosyanız alfabetik sırada önce okunduğu için bu ayarı geçersiz kılar.
Değişikliği uygulamadan önce yapılandırmayı test edin, sonra servisi yeniden yükleyin:
sudo sshd -t && sudo systemctl reload ssh
Önemli: Mevcut SSH oturumunuzu kapatmadan, ikinci bir pencereden yeniden bağlanmayı deneyin. Bir şeyler ters giderse açık oturum, hatayı düzeltebileceğiniz tek kapınız olur.
SSH portunu değiştirmek işe yarar mı?
Portu 22’den 2222 gibi bir değere almak kayıtlardaki bot gürültüsünü belirgin şekilde azaltır, ama tek başına bir güvenlik önlemi değildir. Hedefli bir saldırgan port taramasıyla yeni portu birkaç saniyede bulur. Asıl korumayı anahtarla giriş sağlar; port değişikliği yalnızca ek bir katmandır. Port değiştirecekseniz önce yeni portu güvenlik duvarında açın. Ubuntu 24.04’te SSH soket aktivasyonuyla çalıştığı için, port değişikliğinden sonra sudo systemctl daemon-reload ve sudo systemctl restart ssh.socket komutlarını da çalıştırmanız gerekir.
İkinci ayar: Güvenlik duvarında varsayılanı “kapalı” yapın
Güvenlik duvarı mantığı basittir: Gelen her bağlantıyı reddet, yalnızca ihtiyaç duyduğun kapıları tek tek aç. Ubuntu’da bunun en pratik yolu UFW’dir. Aşağıdaki sıra önemlidir. SSH iznini vermeden güvenlik duvarını etkinleştirirseniz kendi bağlantınızı kesersiniz.
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow OpenSSH
sudo ufw allow 80,443/tcp
sudo ufw enable
sudo ufw status verbose
SSH portunu değiştirdiyseniz OpenSSH yerine 2222/tcp gibi yeni portu yazın. Web sunucusu çalıştırmıyorsanız 80 ve 443 numaralı portlara da izin vermeyin. Kural basit: Bir portun neden açık olduğunu açıklayamıyorsanız kapalı kalmalıdır.
En sık yapılan hatalardan biri veritabanı portunu internete açık bırakmaktır. MySQL veya PostgreSQL’e uzaktan erişmeniz gerekiyorsa erişimi yalnızca kendi IP adresinizle sınırlayın:
sudo ufw allow from 203.0.113.10 to any port 3306 proto tcp
Bu konuyu ayrıntılı olarak MySQL portunu dış erişime kapatma rehberimizde anlattık.
| Port | Servis | Önerilen durum |
|---|---|---|
| 22 (veya özel port) | SSH | Açık, yalnızca anahtarla giriş |
| 80 / 443 | Web (HTTP/HTTPS) | Web sitesi varsa açık |
| 3306 / 5432 | MySQL / PostgreSQL | Kapalı ya da yalnızca belirli IP’lere açık |
| 3389 | RDP (Windows) | Yalnızca belirli IP’lere açık |
| 21 | FTP | Kapalı, yerine SFTP kullanın |
| 25 | SMTP | Posta sunucusu yoksa kapalı |
Üçüncü ayar: Güvenlik güncellemelerini otomatiğe bağlayın
Başarılı saldırıların önemli bir kısmı yeni keşfedilmiş açıkları değil, yamaları aylar önce yayımlanmış bilinen açıkları kullanır. Güncellenmemiş bir OpenSSH, eski bir PHP sürümü ya da yamalanmamış bir çekirdek, saldırgana yıllardır bilinen bir yol açar.
Ubuntu’da güvenlik güncellemelerini otomatik kuran unattended-upgrades paketi çoğu imajda hazır gelir. Aktif olduğundan emin olmak için:
sudo apt update && sudo apt upgrade -y
sudo apt install unattended-upgrades -y
sudo dpkg-reconfigure -plow unattended-upgrades
Bazı güncellemeler, özellikle çekirdek yamaları, yeniden başlatma olmadan devreye girmez. /var/run/reboot-required dosyası varsa sunucunuz yeniden başlatılmayı bekliyordur. Gece belirli bir saatte otomatik yeniden başlatma istiyorsanız /etc/apt/apt.conf.d/50unattended-upgrades dosyasında şu iki satırı etkinleştirebilirsiniz:
Unattended-Upgrade::Automatic-Reboot "true";
Unattended-Upgrade::Automatic-Reboot-Time "04:00";
İşletim sistemi güncel olsa bile uygulama katmanı açık kalabilir. WordPress çekirdeği, eklentiler ve temalar, kontrol paneli yazılımları ve Node.js veya Python bağımlılıkları da düzenli olarak güncellenmelidir. Bir sitenin ele geçirilmesinde en sık görülen neden, aylardır güncellenmemiş tek bir eklentidir.
Dördüncü ayar: Fail2ban ile deneme-yanılma saldırılarını durdurun
Parola girişini kapatmış olsanız bile botlar denemeye devam eder; kayıtlarınızı doldurur ve gereksiz yere işlemci harcar. Fail2ban, kayıt dosyalarını izleyerek kısa sürede çok sayıda başarısız deneme yapan IP adreslerini güvenlik duvarı üzerinden belirli bir süre engeller.
sudo apt install fail2ban -y
sudo nano /etc/fail2ban/jail.local
[DEFAULT]
bantime = 1h
findtime = 10m
maxretry = 5
bantime.increment = true
ignoreip = 127.0.0.1/8 ::1 203.0.113.10
[sshd]
enabled = true
Bu ayarla, on dakika içinde beş kez hatalı giriş deneyen bir IP bir saat boyunca engellenir. bantime.increment satırı, aynı adres tekrar yakalandıkça engel süresini uzatır. ignoreip satırına kendi sabit IP adresinizi yazmak, yanlışlıkla kendinizi engellemenizi önler.
sudo systemctl enable --now fail2ban
sudo fail2ban-client status sshd
Debian 12 kullanıyorsanız [sshd] bölümüne backend = systemd satırını ekleyin. Debian 12’de varsayılan olarak /var/log/auth.log dosyası tutulmadığı için Fail2ban kayıtları doğrudan systemd günlüğünden okumalıdır.

Fail2ban’in DDoS saldırılarına karşı bir çözüm olmadığını da bilmek gerekir. Binlerce farklı adresten gelen yoğun trafik, ağ katmanında karşılanmalıdır. Bu farkı DDoS korumalı VDS rehberimizde ayrıca ele aldık.
Beşinci ayar: Yetkileri daraltın, yedeği sunucunun dışında tutun
İlk dört ayar kapıları kilitler. Beşinci ayar ise kapılardan biri bir gün aralık kalırsa hasarın sınırlı kalmasını sağlar.
En az yetki ilkesi
Her servis yalnızca işini yapmaya yetecek kadar yetkiyle çalışmalıdır. Web uygulamanızı root ile çalıştırmayın, her uygulamaya ayrı bir sistem kullanıcısı verin. Dosya izinlerinde dizinler için 755, dosyalar için 644 genel bir başlangıç noktasıdır. Veritabanı parolası içeren yapılandırma dosyalarını (örneğin WordPress’teki wp-config.php) yalnızca ilgili kullanıcının okuyabileceği şekilde 600 veya 640 yapın.
Ekipte birden fazla kişi sunucuya erişiyorsa herkesin kendi SSH anahtarı olsun ve ortak hesap kullanılmasın. Ekipten ayrılan birinin anahtarını ~/.ssh/authorized_keys dosyasından silmek, parolayı herkesle yeniden paylaşmaktan çok daha güvenli ve hızlıdır. Kontrol paneli ve uygulama yönetim ekranlarında iki adımlı doğrulamayı açın.
Yedek: Saldırıdan sonra sizi kurtaracak tek şey
Fidye yazılımları ilk iş olarak sunucunun içindeki yedekleri bulur ve şifreler ya da siler. Bu yüzden yedeğin sunucuyla aynı yerde durması, gerçek bir saldırıda işe yaramayabilir. Yaygın olarak önerilen 3-2-1 kuralı burada iyi bir rehberdir: Verinin üç kopyası olsun, iki farklı ortamda dursun, biri tamamen farklı bir konumda saklansın.
Yedeğin en az yedeklemenin kendisi kadar önemli olan tarafı geri yüklemeyi denemektir. Hiç geri yüklenmemiş bir yedeğin çalışıp çalışmadığını bilemezsiniz. Önem Bilişim VDS’lerde sepet ekranından ek olarak alınabilen Sunucu Yedekleme hizmetiyle sunucunuzun günlük yedeğini otomatik olarak aldırabilirsiniz. Yedekleme planını nasıl kuracağınızı VDS sunucularda otomatik yedekleme yazımızda adım adım anlattık.

Kontrol paneli ve web uygulaması kullananlar için ek önlemler
Sunucunuzda cPanel/WHM veya Plesk gibi bir kontrol paneli ya da WordPress gibi bir uygulama çalışıyorsa saldırı yüzeyi SSH ile sınırlı kalmaz. Panelin giriş ekranı, e-posta arayüzü ve sitenin yönetim sayfası da botların tarama listesindedir. Bu kapılar çoğu zaman SSH’tan daha az korunur, çünkü çoğu kullanıcı bunları güvenlik duvarının arkasına almayı düşünmez.
cPanel ve Plesk’teki hazır korumalar
İki panel de deneme-yanılma saldırılarına karşı hazır araçlarla gelir. Bunların etkin olduğundan emin olmak birkaç dakikanızı alır:
- cPanel/WHM: WHM’deki cPHulk Brute Force Protection; cPanel, WHM, webmail ve FTP girişlerinde tekrarlanan hatalı denemeleri engeller. ModSecurity ise web uygulamalarına gelen bilinen saldırı kalıplarını filtreleyen bir uygulama güvenlik duvarıdır.
- Plesk: Fail2Ban, Plesk’e entegre olarak gelir ve panelin “Tools & Settings” bölümündeki IP adresi engelleme ekranından yönetilir. ModSecurity burada da kullanılabilir.
- Panel portları: cPanel’in 2083 ve 2087, Plesk’in 8443 numaralı yönetim portlarını, mümkünse yalnızca ofis veya ev IP adresinizden erişilebilir hale getirin.
WordPress ve diğer web uygulamaları
WordPress sitelerinde en çok hedef alınan adres wp-login.php sayfasıdır. Yönetici kullanıcı adının “admin” olmaması, giriş denemelerini sınırlayan bir eklenti ve iki adımlı doğrulama birlikte kullanıldığında bu sayfa güvenli hale gelir. Mobil uygulama veya Jetpack gibi bir bağlantı kullanmıyorsanız xmlrpc.php erişimini kapatın. Bu dosya, tek istekte yüzlerce parola denenmesine izin verdiği için saldırganların sevdiği bir kapıdır.
Bir yönetici hesabı ele geçirilse bile hasarı sınırlamak için wp-config.php dosyasına define('DISALLOW_FILE_EDIT', true); satırını ekleyin. Bu ayar, panelden tema ve eklenti dosyalarının düzenlenmesini engeller ve saldırganın siteye kod yerleştirmesini zorlaştırır.
Son olarak sitenizin HTTPS ile çalıştığından emin olun. Let’s Encrypt sertifikası ücretsizdir ve Nginx kullanan bir sunucuda iki komutla kurulur. Kurulumla birlikte otomatik yenileme de devreye girer:
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d ornekalanadi.com -d www.ornekalanadi.com
Windows VDS kullanıyorsanız: Aynı mantık, farklı araçlar
Windows VDS güvenliği de aynı ilkelere dayanır. Değişen yalnızca araçlardır:
| Linux VDS | Windows VDS karşılığı |
|---|---|
| SSH anahtarıyla giriş | Güçlü parola, Ağ Düzeyinde Kimlik Doğrulama (NLA) ve mümkünse VPN arkasında RDP |
| Root girişini kapatma | Varsayılan “Administrator” yerine farklı adlı bir yönetici hesabı |
| UFW | Windows Defender Güvenlik Duvarı’nda RDP kuralını belirli IP adreslerine sınırlama |
| unattended-upgrades | Windows Update’te otomatik güncelleme ve bakım saati |
| Fail2ban | Hesap Kilitleme İlkesi (secpol.msc) veya IP engelleyen RDP koruma araçları |
RDP’nin varsayılan portu olan 3389, SSH’ın 22 numaralı portu kadar yoğun taranır. Portu değiştirmeyi Windows RDP portu nasıl değiştirilir rehberimizde anlattık. Yine de en etkili önlem, RDP’yi yalnızca kendi IP adresinizden erişilebilir hale getirmektir.
Saldırı altında olduğunuzu nasıl anlarsınız?
Ele geçirilmiş bir sunucu her zaman çökmez. Hatta saldırganlar çoğu zaman sunucunun sessizce çalışmaya devam etmesini ister. Şu belirtilerden biri varsa dikkatle incelemeye değer:
- İşlemci sürekli yüzde 100’e yakın çalışıyor ve
topçıktısında tanımadığınız bir süreç var. Bu genellikle bir kripto para madenciliği yazılımına işaret eder. /etc/passwddosyasında sizin açmadığınız bir kullanıcı ya dacrontab -lçıktısında tanımadığınız bir görev bulunuyor.- Sağlayıcınızdan sunucunuzun spam veya saldırı trafiği gönderdiğine dair bildirim aldınız.
last -açıktısında tanımadığınız IP adreslerinden başarılı girişler görünüyor.
Bu belirtilerle karşılaşırsanız sunucuyu temizlemeye çalışmak yerine temiz bir imajdan yeniden kurmak çoğu zaman daha güvenlidir. Saldırganın arkasında başka bir arka kapı bırakıp bırakmadığından emin olmanın kolay bir yolu yoktur. Önce incelemek için verilerin bir kopyasını alın, sistemi sıfırdan kurun, verileri temiz olduğundan emin olduğunuz bir yedekten geri yükleyin ve tüm parolaları ve anahtarları yenileyin.
Beş dakikalık güvenlik kontrol listesi
Ayarları bitirdikten sonra aşağıdaki kontrollerle her şeyin gerçekten devrede olduğunu doğrulayın:
| Kontrol | Komut | Beklenen sonuç |
|---|---|---|
| Root girişi kapalı mı? | sudo sshd -T | grep permitrootlogin | permitrootlogin no |
| Parola girişi kapalı mı? | sudo sshd -T | grep passwordauthentication | passwordauthentication no |
| Güvenlik duvarı açık mı? | sudo ufw status | Status: active |
| Fail2ban çalışıyor mu? | sudo fail2ban-client status | Listede sshd görünür |
| Otomatik güncelleme açık mı? | systemctl is-enabled unattended-upgrades | enabled |
| Yedek alınıyor mu? | Yedekleme paneli veya raporu | Son 24 saatte başarılı yedek |
Güvenlik sağlayıcı seçimiyle başlar
Bu beş ayar sunucunun içini korur; sunucunun dışındaki her şey ise sağlayıcınızın sorumluluğundadır. Bir VDS sağlayıcısını değerlendirirken ağ katmanında DDoS koruması olup olmadığına, veri merkezinin nerede bulunduğuna, temiz ve güncel işletim sistemi imajları sunulup sunulmadığına bakın. Ek yedekleme seçeneklerini ve sorun anında ulaşabileceğiniz 7/24 teknik desteği de değerlendirin.
Önem Bilişim’in VDS sunucu kiralama çözümleri İstanbul’daki Datacasa veri merkezinde çalışır, DDoS koruması ile gelir ve sipariş sonrasında dakikalar içinde teslim edilir. Ubuntu, Debian, AlmaLinux ve Windows Server seçenekleriyle bu rehberdeki ayarları ilk günden uygulayabileceğiniz temiz bir başlangıç yaparsınız.
Sık Sorulan Sorular
VDS sunucu güvenliği için ilk yapılması gereken ayar nedir?
İlk iş SSH’ı anahtarla giriş yapılacak şekilde ayarlamak, ardından parola ve root girişini kapatmaktır. Botların neredeyse tamamı parola tahmin ederek saldırdığı için bu tek adım, otomatik saldırıların büyük çoğunluğunu etkisiz bırakır.
SSH portunu değiştirmek güvenliği artırır mı?
Kayıtlardaki bot gürültüsünü azaltır ama gerçek bir koruma sağlamaz. Port taraması yapan bir saldırgan yeni portu kolayca bulur. Port değişikliğini anahtarla girişin yerine değil, ona ek olarak düşünün.
Fail2ban DDoS saldırılarını engeller mi?
Hayır. Fail2ban, aynı adresten tekrarlanan hatalı girişleri engellemek için tasarlanmıştır. Binlerce farklı kaynaktan gelen DDoS trafiği sunucuya ulaşmadan ağ katmanında karşılanmalıdır; bu da sağlayıcının DDoS korumasıyla mümkündür.
Windows VDS için de bu ayarlar geçerli mi?
Mantık aynıdır, araçlar farklıdır. Windows VDS’te güçlü parola, Ağ Düzeyinde Kimlik Doğrulama, RDP erişimini belirli IP adresleriyle sınırlayan güvenlik duvarı kuralı, otomatik Windows güncellemeleri ve hesap kilitleme ilkesi aynı korumayı sağlar.
Sunucum hacklendiyse ne yapmalıyım?
Sunucuyu ağdan yalıtın, inceleme için verilerin bir kopyasını alın ve sistemi temiz bir imajdan yeniden kurun. Verileri temiz olduğundan emin olduğunuz bir yedekten geri yükleyin. Son olarak tüm parolaları, SSH anahtarlarını ve API anahtarlarını yenileyin. Ele geçirilmiş bir sistemi temizlemeye çalışmak, gizli bir arka kapıyı gözden kaçırma riski taşır.
Güvenli VDS Kiralama
Güvenlik ayarlarını temiz bir sunucuda baştan kurun
İstanbul lokasyonlu, DDoS korumalı ve dakikalar içinde teslim edilen VDS sunucularda bu rehberdeki beş ayarı ilk günden uygulayın.