Yeni VPS Kurulumu ve Güvenlik Ayarları Rehberi
Yeni bir VPS sunucuyu ilk 10 dakikada güvenli hale getirin. Root erişimini kapatma, SSH anahtarları oluşturma, firewall yapılandırma ve otomatik güncelleme adımlarını öğrenin.
Sunucunuzun güvenliğini ilk 10 dakika belirler
Yeni bir VPS varsayılan olarak güvenli değildir. Genel bir IP adresi aldığı andan itibaren tarayıcılar giriş yapmayı dener. Varsayılan imajlar ise saldırganlara geniş bir hedef sunar: root hesabı genellikle erişilebilirdir, parola ile girişe izin verilir, güvenlik duvarı yoktur ve güncellemeler planlanmamıştır. İyi haber şu ki, tüm bu açıkları kapatmak yaklaşık on dakika ve birkaç komut gerektirir. Bu, herhangi bir uygulama kurmadan önce her yeni sunucuda uyguladığım operasyonel rehberdir.
Adımları sırasıyla uygulayın; çünkü her adım bir sonrakinin temelini oluşturur. Her adımın kendi rehberi mevcuttur ve ilerledikçe bağlantı olarak sunulmuştur; bu sayfa, tüm adımları bir araya getiren hızlı bir yoldur.
Dakika 1: Her şeyi güncelleyin
Sağlayıcınızın verdiği kimlik bilgileriyle root kullanıcısı olarak giriş yapın ve başka hiçbir işlem yapmadan önce sistemi tamamen güncelleyin:
apt update && apt upgrade -yYamalanmamış bir sunucu, en kolay hedeftir; bu nedenle öncelik buna verilmelidir. Güncelleme işlemi tamamlandığında, sistemin sizin hatırlamanıza gerek kalmadan yamalı kalması için otomatik güvenlik güncellemelerini yapılandırın.
Dakika 2: Sudo yetkisine sahip normal bir kullanıcı oluşturma
root kullanıcısı olarak çalışmaya devam etmeyin. Kendiniz için bir kullanıcı oluşturun ve bu kullanıcıya sudo yetkisi verin:
adduser matt
usermod -aG sudo mattBu noktadan itibaren sisteme bu kullanıcıyla giriş yapın ve yönetimsel görevler için sudo komutunu kullanın. Sürekli root olarak çalışmak, yapılan her hatanın ve her güvenlik ihlalinin sınırsız yetkiyle gerçekleşmesi anlamına gelir; ayrıcalıksız bir kullanıcı olarak çalışmak tam olarak bunun önlenmesi için vardır.
Dakika 4: SSH anahtarlarını ayarlama
Parolalar tahmin edilebilir, ancak anahtarlar tahmin edilemez. Kendi dizüstü bilgisayarınızda, henüz bir anahtarınız yoksa bir tane oluşturun:
ssh-keygen -t ed25519Ardından genel anahtar kısmını sunucuya kopyalayın:
ssh-copy-id matt@YOUR_SERVERssh-copy-id, yeni kullanıcı için parola ile girişi açık tutmanızı gerektirir; eğer zaten kapalıysa, root kullanıcısının ~/.ssh/authorized_keys dosyasını matt kullanıcısına ait /home/matt/.ssh/authorized_keys dosyasına kopyalayın veya genel anahtarınızı bu dosyaya manuel olarak yapıştırın.
Bu adımın arkasındaki model, cihaz başına bir anahtar, anahtar ile girişi bozan izinler ve kaybolan bir anahtarın iptal edilmesi konuları SSH anahtar yönetimi temelleri bölümünde ele alınmıştır.
Oturumu kapatın ve anahtarı kullanarak matt kullanıcısı ile tekrar giriş yapın; bir sonraki adıma geçmeden önce çalıştığından emin olun. Anahtar ile giriş yapamadan SSH erişimini kısıtlamak, kullanıcıların kendilerini sistem dışı bırakmasına neden olur. Eğer giriş denemesi Permission denied (publickey) hatası verirse, parola ile girişe geri dönmek yerine bu sorunu hemen çözün; çünkü bu tek mesaj beş farklı hatayı kapsar ve ssh -v çıktısı size bunlardan hangisiyle karşılaştığınızı söyler.
Dakika 6: Root girişi ve parola ile girişi devre dışı bırakma
Anahtarınız çalıştığına göre, tarayıcıların kullandığı iki giriş kapısını kapatın. Paket yükseltmelerinin ayarların üzerine yazmaması için bir drop-in dosyası kullanın. Dosyayı 00- olarak adlandırın; böylece Ubuntu bulut imajlarında PasswordAuthentication yes ile gelen 50-cloud-init.conf dosyasından önce sıralanır. sshd okuduğu ilk değeri esas alır, bu nedenle daha sonra sıralanan bir dosya ayarların sessizce geçersiz kalmasına neden olabilir:
sudo nano /etc/ssh/sshd_config.d/00-hardening.confPasswordAuthentication no
KbdInteractiveAuthentication no
PermitRootLogin noArdından SSH servisini yeniden yükleyin:
sudo systemctl restart sshDaha sonra, hatalı bir drop-in dosyasının sizi yanıltmadığından emin olmak için sshd tarafından fiilen kullanılan ayarları kontrol edin:
sudo sshd -T | grep -Ei 'passwordauthentication|permitrootlogin'Parolalar kapalı ve root girişi devre dışı bırakılmış durumdayken, sunucunuza yönelik sürekli kaba kuvvet (brute-force) trafiği başarılı olamaz. İsteğe bağlı port değişikliği de dahil olmak üzere tam yapılandırma için VPS üzerinde SSH güvenliğini sıkılaştırma bölümüne bakabilirsiniz.
Dakika 8: Güvenlik duvarını açın
Gelen tüm trafiği varsayılan olarak reddedin, ardından yalnızca ihtiyaç duyduklarınıza izin verin. SSH bağlantısını kesmemek için güvenlik duvarını etkinleştirmeden önce SSH erişimine izin verdiğinizden emin olun:
sudo ufw default deny incoming
sudo ufw allow 22/tcp
sudo ufw enableÇalıştırdığınız her servis için allow kuralları ekleyin; örneğin bir web sitesi için 80/tcp ve 443/tcp portlarına izin verin. Eğer bu işlemden sonra yeni bir SSH oturumu bağlanamıyorsa, herhangi bir müdahalede bulunmadan önce hata mesajını okuyun; çünkü bağlantı reddediliyorsa sshd yanıt veriyor demektir, zaman aşımı ise genellikle güvenlik duvarının paketi yuttuğu anlamına gelir. Hem IPv4 hem de IPv6 trafiğinin kapsandığından emin olun; yalnızca IPv4 filtreleyen bir güvenlik duvarı IPv6 tarafını tamamen açık bırakır. Adım adım tam kılavuza VPS üzerinde Güvenlik Duvarı 101 başlığından ulaşabilirsiniz. Bu ufw komutları Ubuntu veya Debian sistemleri varsayar; Rocky veya AlmaLinux üzerinde varsayılan olarak reddetme hedefi aynıdır ancak kullanılan araç firewalld'dur, bu nedenle bu adımın firewalld sürümü üzerinden ilerleyin.
Dakika 10: Fail2ban ile tarayıcıları yavaşlatın
Son olarak, portlarınızı zorlayan IP adreslerini uzaklaştırmak için Fail2ban ekleyin:
sudo apt install -y fail2banUbuntu 24.04 üzerinde standart kurulum, SSH servisini ilk açılıştan itibaren korur. SSH anahtarları zaten zorunlu tutulduğundan, bu uygulama ana savunma hattınızdan ziyade log gürültüsünü azaltan ve tekrarlayan saldırganları engelleyen bir güvenlik katmanı görevi görür.
Kontrol listeniz
Bu bir runbook'tur. Her bir kontrolü işaretlemek ve sunucunuzla birlikte saklayabileceğiniz, her adım için gerekli komutları içeren kişiselleştirilmiş bir kontrol listesi oluşturmak için aşağıdaki oluşturucuyu kullanın:
Her yeni sunucuda bu listeyi sırayla uygulayın; böylece süreç zamanla alışkanlık haline gelecektir. Şimdi ayıracağınız on dakika, sunucunuzun ele geçirilmesi durumunda yaşayacağınız çok kötü bir öğleden sonrasını önler.
Temel gereksinimler sağlandıktan sonra, Ubuntu üzerinde otomatik güvenlik güncellemeleri sunucunuzu siz tekrar giriş yapmadan güncel tutar. Üzerine kurduğunuz her servis için ayrı bir güvenlik değerlendirmesi yapılması gerekir ve zayıf noktalar değişir: self-hosted bir parola kasası kullanıldığında sunucu hiçbir zaman düz metin (plaintext) veri tutmaz; bu nedenle Vaultwarden'ın gerçek riskleri yönetici token'ı ve yedekleme dosyasıdır.
FAQ
Yeni bir VPS üzerinde ilk ne yapmalıyım?
Sistemi apt update && apt upgrade -y ile güncelleyin, ardından sudo yetkisine sahip normal bir kullanıcı oluşturun ve root olarak çalışmayı bırakın. Buradan itibaren SSH anahtarlarını ayarlayın, root girişini ve parola kimlik doğrulamasını devre dışı bırakın, varsayılan olarak reddeden (default-deny) bir güvenlik duvarı etkinleştirin ve Fail2ban kurun. Bu adımları bu sırayla uygulamak, kendinizi sistemin dışında bırakmadan her adımın güvenli bir şekilde tamamlanmasını sağlar.
SSH sıkılaştırması yaparken sistemin dışında kalmaktan nasıl kaçınırım?
Parolaları veya root girişini devre dışı bırakmadan önce SSH anahtarı ile giriş yapmayı ayarlayın ve test edin. Çalıştığından emin olmak için oturumu kapatıp anahtar ile tekrar giriş yapın, ancak bundan sonra PasswordAuthentication ve PermitRootLogin ayarlarını kapatın. Güvenlik duvarını etkinleştirirken ufw enable komutunu çalıştırmadan önce 22 numaralı porta izin verin. Eğer sistemin dışında kalırsanız, servis sağlayıcınızın web konsolu SSH olmadan tekrar giriş yapmanızı sağlar.
Küçük bir sunucuda bunların hepsine gerçekten ihtiyacım var mı?
Evet, çünkü tarayıcı botları sunucunuzun ne kadar küçük olduğuyla ilgilenmez. Her genel IP adresini aynı şekilde denerler. Tüm bu prosedür yaklaşık on dakika sürer ve kolay yolları kapatır: root girişi yok, parola tahmini yok, seçmediğiniz hiçbir şey dışarıya açık değil ve bilinen hatalar otomatik olarak yamalanmış durumda.
En önemli tek adım hangisidir?
Root girişinin devre dışı bırakıldığı, yalnızca anahtar tabanlı SSH kullanımıdır. Yeni bir VPS'ye yapılan saldırıların çoğu, root hesabına yönelik otomatik parola tahminleridir; her ikisini de kapatmak bu saldırı kategorisinin tamamını imkansız hale getirir. Güvenlik duvarı ve Fail2ban ise dışarıya neyin açık olduğunu sınırlar ve kalan her şeyi yavaşlatır.
Sunucunun gerçekten güvenli hale getirildiğini nasıl doğrularım?
Güvenmeden önce üç şeyi manuel olarak kontrol edin. sudo ss -tlnp komutunu çalıştırın ve yalnızca açmayı amaçladığınız portların genel bir adreste dinlemede olduğunu, unuttuğunuz herhangi bir 0.0.0.0 veya [::] servisinin bulunmadığını doğrulayın. sudo ufw status verbose komutunu çalıştırın ve varsayılan gelen trafiği politikasının deny olduğunu, hem düz hem de (v6) kurallarının mevcut olduğunu teyit edin. Ayrıca, ilkini kapatmadan önce her zaman ikinci bir SSH oturumu açın; böylece SSH yapılandırmasındaki bir hata sizi sunucunun dışında bırakamaz. Üçü de doğru görünüyorsa, temel güvenlik önlemleri alınmış demektir.