Linux Sunucu Güvenliği: Yeni VPS'te Yapılması Gereken 10 Adım
Sunucunuz internete açıldığı andan itibaren otomatik botlar tarafından taranmaya başlar. Yeni bir Linux VPS'i güvenli hâle getirmek için ilk gün yapmanız gereken 10 temel adımı sırayla anlatıyoruz.
Yeni bir VPS açtığınızda sunucunuzun IP adresi internette herkese görünür hâle gelir. Birkaç dakika içinde, dünyanın dört bir yanındaki otomatik botlar zayıf şifre aramak için SSH girişini denemeye başlar. Bu kişisel değildir; botlar her IP'yi tarar. İyi haber şu ki birkaç basit adımla saldırıların neredeyse tamamını boşa çıkarabilirsiniz.
Aşağıdaki komutlar Ubuntu ve Debian içindir. Komutları root olarak çalıştırdığınızı varsayıyoruz.
1. Sistemi güncelleyin
Güvenlik açıklarının büyük bölümü güncellemelerle kapatılır.
apt update && apt upgrade -y
2. Güçlü bir şifre belirleyin
En az 16 karakterli, harf, rakam ve sembol içeren bir şifre kullanın. Şifre yöneticisi kullanmak işinizi kolaylaştırır.
passwd
3. Günlük işler için ayrı bir kullanıcı oluşturun
Her işi root ile yapmak yerine, yönetici yetkisi olan bir kullanıcı açın:
adduser ahmet
usermod -aG sudo ahmet
4. SSH anahtarıyla girişe geçin
Şifre tahmin edilebilir; SSH anahtarı pratikte tahmin edilemez. Anahtar oluşturmayı SSH rehberimizde adım adım anlattık.
5. Şifreyle ve root ile SSH girişini kapatın
Anahtarla girişin çalıştığından emin olduktan sonra /etc/ssh/sshd_config dosyasında şu satırları ayarlayın:
PermitRootLogin no
PasswordAuthentication no
Ardından servisi yeniden başlatın:
systemctl restart ssh
Bu adımdan önce yeni bir terminal penceresinde anahtarla giriş yapabildiğinizi test edin. Aksi hâlde kendinizi sunucunun dışında bırakabilirsiniz.
6. Güvenlik duvarını açın (UFW)
Yalnızca ihtiyacınız olan portlara izin verin:
apt install ufw -y
ufw allow OpenSSH
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable
ufw status komutuyla kuralları görebilirsiniz.
7. Fail2ban ile kaba kuvvet saldırılarını engelleyin
Fail2ban, art arda hatalı giriş deneyen IP adreslerini otomatik olarak bir süreliğine engeller:
apt install fail2ban -y
systemctl enable --now fail2ban
8. Otomatik güvenlik güncellemelerini açın
apt install unattended-upgrades -y
dpkg-reconfigure -plow unattended-upgrades
9. Gereksiz servisleri kapatın
Kullanmadığınız her servis, saldırganlar için bir kapıdır. Dışarıya açık portları görmek için:
ss -tulpn
İhtiyacınız olmayan bir servisi systemctl disable --now SERVISADI ile kapatın. Veritabanınızı (MySQL, PostgreSQL, Redis) mümkünse yalnızca 127.0.0.1 üzerinden dinlemeye ayarlayın.
10. Düzenli yedek alın
Hiçbir güvenlik önlemi yüzde yüz değildir. Asıl sigortanız yedektir. Önemli dosyalarınızı ve veritabanınızı düzenli olarak sunucu dışında bir yere yedekleyin ve yedekten geri dönmeyi en az bir kez deneyin.
Bonus: Web siteniz için
- Sitenizi mutlaka HTTPS ile yayınlayın.
- WordPress gibi sistemleri ve eklentileri güncel tutun.
- Kullanılmayan eklenti ve temaları silin.
Sık Sorulan Sorular
Sunucuma saldırı yapıldığını nasıl anlarım?
/var/log/auth.log dosyasında başarısız giriş denemelerini görebilirsiniz. Beklenmedik yüksek CPU kullanımı, tanımadığınız işlemler veya yeni kullanıcılar da şüpheli işaretlerdir.
Güvenlik duvarını açınca kendimi kilitler miyim?
ufw enable komutundan önce ufw allow OpenSSH kuralını eklerseniz SSH bağlantınız kesilmez. Yine de bir sorun olursa müşteri panelindeki konsoldan sunucunuza erişebilirsiniz.
Antivirüs kurmam gerekir mi?
Linux sunucularda asıl risk virüsten çok zayıf şifre, güncellenmemiş yazılım ve açık bırakılmış servislerdir. Yukarıdaki adımlar çok daha etkilidir.
Bu adımlar paylaşımlı hosting için de gerekli mi?
Hayır. Paylaşımlı hostingte sunucu güvenliğini sağlayıcı üstlenir. Sizin sorumluluğunuz güçlü şifre kullanmak ve sitenizin yazılımını güncel tutmaktır.
Bunları da okuyun
Size özel bir Türkiye IPv4 adresiyle çalışan WireGuard veya OpenVPN sunucusu nasıl çalışır, ödemeden sonra ne...
Kendi VPN sunucunuzu kurmak sandığınızdan kolay. Ubuntu 24.04 bir VPS'e WireGuard kurulumunu, güvenlik duvarı...
Adres çubuğundaki kilit simgesi, sitenizle ziyaretçi arasındaki bağlantının şifrelendiğini gösterir. SSL/TLS'n...