Yeni bir bulut sunucu açıldığı anda internete bağlıdır. Henüz üzerine site kurmamış olsanız bile, otomatik tarayıcılar kısa süre içinde açık portları ve zayıf şifreleri denemeye başlar. Bu kişisel bir hedefleme değildir; internetteki her adres düzenli olarak taranır.
İyi haber şu: ilk saatte yapacağınız birkaç basit ayar, en yaygın saldırıların büyük kısmını boşa çıkarır. Bu yazıda yeni bir Linux sunucuda hangi adımları hangi sırayla atmanız gerektiğini, komutlarıyla birlikte anlatıyoruz. Örnekler Ubuntu ve Debian içindir; AlmaLinux ve Rocky Linux için farklı olan yerleri ayrıca belirttik.
Başlamadan Önce: Kendinizi Dışarıda Bırakmayın
Güvenlik ayarlarının çoğu SSH bağlantısını etkiler. Bir yapılandırma hatası, sunucuya bir daha bağlanamamanıza yol açabilir. Bu yüzden iki kurala uyun:
- Ayarları değiştirirken mevcut SSH oturumunu kapatmayın. Değişikliği yaptıktan sonra yeni bir terminal penceresinden ayrıca bağlanmayı deneyin. Yeni bağlantı çalışıyorsa eski oturumu kapatın.
- Büyük bir değişiklikten önce yedek veya snapshot alın. Bir şey ters giderse sunucuyu sıfırdan kurmak yerine önceki hâline dönebilirsiniz.
1. Sistemi Güncelleyin
Hazır işletim sistemi kalıpları belirli bir tarihte hazırlanır. Sunucunuz açıldığında o tarihten sonra çıkmış güvenlik yamaları eksik olabilir. İlk iş güncellemeleri kurun:
apt update && apt upgrade -y
AlmaLinux veya Rocky Linux kullanıyorsanız:
dnf upgrade -y
Güncelleme çekirdeği de yenilediyse sunucuyu bir kez yeniden başlatın (reboot). Ubuntu'da yeniden başlatma gerekiyorsa /var/run/reboot-required dosyası oluşur.
2. SSH Anahtarı ile Giriş Yapın
Şifreyle giriş, en çok denenen saldırı yoludur. Tarayıcılar yaygın kullanıcı adlarını ve şifreleri art arda dener. SSH anahtarı ise tahmin edilemeyecek kadar uzun bir gizli dosyaya dayanır.
Anahtarınız yoksa kendi bilgisayarınızda oluşturun:
ssh-keygen -t ed25519
Açık anahtarınızı (.pub uzantılı dosya) sunucuya ekleyin. Sipariş sırasında SSH anahtarı eklediyseniz bu adım zaten tamamdır. Sonradan eklemek için kendi bilgisayarınızda şunu çalıştırabilirsiniz:
ssh-copy-id root@IP_ADRESINIZ
Ayrıntılı adımlar için bağlantı rehberimize bakabilirsiniz. Gizli anahtarınızı hiçbir zaman kimseyle paylaşmayın ve mümkünse bir parola ile koruyun.
3. Ayrı Bir Yönetici Kullanıcısı Oluşturun
Her işi root hesabıyla yapmak, küçük bir yazım hatasının bile tüm sistemi etkilemesine yol açabilir. Günlük işler için sudo yetkili ayrı bir kullanıcı açmak iyi bir alışkanlıktır:
adduser yonetici
usermod -aG sudo yonetici
AlmaLinux ve Rocky Linux'ta grup adı sudo değil wheel'dir. Ardından anahtarınızı bu kullanıcıya da kopyalayın:
mkdir -p /home/yonetici/.ssh
cp /root/.ssh/authorized_keys /home/yonetici/.ssh/
chown -R yonetici:yonetici /home/yonetici/.ssh
chmod 700 /home/yonetici/.ssh && chmod 600 /home/yonetici/.ssh/authorized_keys
Yeni bir pencereden ssh yonetici@IP_ADRESINIZ ile bağlanıp sudo whoami komutunun root yanıtını verdiğini kontrol edin.
4. Şifreyle Girişi Kapatın
Anahtarla girişin çalıştığından emin olduktan sonra şifreyle girişi kapatın. Ana yapılandırma dosyasını değiştirmek yerine ayrı bir dosya oluşturmak, güncellemelerde çakışmayı önler:
sudo nano /etc/ssh/sshd_config.d/10-guvenlik.conf
Dosyaya şu satırları yazın:
PasswordAuthentication no
PermitRootLogin prohibit-password
İkinci satır, root hesabına yalnızca anahtarla girilebilmesini sağlar. Root ile hiç giriş yapılmasın istiyorsanız no yazabilirsiniz; bunu ancak ayrı kullanıcınızla sorunsuz bağlandıktan sonra yapın.
Bazı bulut kalıplarında aynı klasörde şifreyle girişi açan başka bir dosya bulunabilir. SSH, aynı ayar için ilk okuduğu değeri kullanır; dosyalar alfabetik sırayla okunduğundan 10- ile başlayan dosyanız öncelik kazanır. Ayarların gerçekten uygulandığını şu komutla doğrulayın:
sudo sshd -t && sudo sshd -T | grep -E "passwordauthentication|permitrootlogin"
Çıktıda passwordauthentication no görüyorsanız SSH hizmetini yeniden başlatın. Hizmetin adı Ubuntu ve Debian'da ssh, AlmaLinux ve Rocky Linux'ta sshd'dir:
sudo systemctl restart ssh
Mevcut oturumu kapatmadan yeni bir pencereden tekrar bağlanmayı deneyin.
5. Güvenlik Duvarını Açın
Güvenlik duvarı, yalnızca izin verdiğiniz portlara bağlantı gelmesini sağlar. Ubuntu'da en kolay araç UFW'dir. Önce SSH'ye izin verin, sonra duvarı açın; sıra ters olursa bağlantınız kopar:
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
sudo ufw status
80 ve 443 numaralı portlar web sitesi içindir; sunucunuzda web hizmeti yoksa bu iki satırı atlayın. Debian'da UFW kurulu gelmeyebilir, sudo apt install ufw ile ekleyebilirsiniz. AlmaLinux ve Rocky Linux'ta varsayılan araç firewalld'dir:
sudo firewall-cmd --permanent --add-service=http --add-service=https
sudo firewall-cmd --reload
Veritabanı (MySQL için 3306, PostgreSQL için 5432) gibi servisleri internete açmayın. Uygulamanız aynı sunucudaysa veritabanının yalnızca yerel bağlantıları dinlemesi yeterlidir.
6. Güvenlik Güncellemelerini Otomatikleştirin
Yamaları elle takip etmek kolayca unutulur. Ubuntu'da unattended-upgrades paketi güvenlik güncellemelerini otomatik kurar ve birçok kurulumda hazır gelir. Durumunu kontrol edip gerekirse etkinleştirin:
sudo apt install unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades
AlmaLinux ve Rocky Linux'ta aynı işi dnf-automatic paketi yapar. Otomatik güncelleme çekirdeği yenilese bile sunucuyu kendiliğinden yeniden başlatmayabilir; ayda bir kontrol etmeyi alışkanlık hâline getirin.
7. Tekrarlanan Giriş Denemelerini Engelleyin
Şifreyle girişi kapattıysanız tarayıcıların denemeleri zaten sonuçsuz kalır. Yine de kayıtlarınızın şişmesini istemiyorsanız Fail2ban gibi bir araç, kısa sürede çok sayıda hatalı deneme yapan adresleri bir süreliğine engeller:
sudo apt install fail2ban
Ubuntu ve Debian'da paket SSH korumasıyla birlikte gelir. Ayarları /etc/fail2ban/jail.local dosyasıyla özelleştirebilirsiniz. Bu adım isteğe bağlıdır; anahtarla giriş ve güvenlik duvarı kadar kritik değildir.
8. Yedeklemeyi İlk Günden Planlayın
Güvenlik yalnızca saldırıyı önlemek değildir; bir şey ters gittiğinde geri dönebilmektir. Hatalı bir güncelleme, yanlışlıkla silinen bir klasör veya ele geçirilmiş bir uygulama karşısında en güçlü önlem güncel bir yedektir.
- Sunucu yedeği veya snapshot, sistemi bir bütün olarak eski hâline döndürmenizi sağlar.
- Uygulama verisinin ayrıca yedeklenmesi, örneğin veritabanı dökümünün başka bir yerde saklanması, sunucu tamamen kaybolsa bile verinizi korur.
Yedeğin işe yaradığını ancak geri yükleyerek anlarsınız. Arada bir test sunucusunda geri yükleme denemesi yapın.
Kısa Kontrol Listesi
| Adım | Neden önemli | Öncelik |
|---|---|---|
| Sistemi güncellemek | Bilinen açıkları kapatır | Hemen |
| SSH anahtarıyla giriş | Şifre tahminini boşa çıkarır | Hemen |
| Şifreyle girişi kapatmak | Kaba kuvvet denemelerini sonuçsuz bırakır | İlk saat |
| Güvenlik duvarı | Gereksiz portları kapatır | İlk saat |
| Otomatik güvenlik güncellemeleri | Yeni yamaları kaçırmamanızı sağlar | İlk gün |
| Fail2ban | Tekrarlanan denemeleri engeller | İsteğe bağlı |
| Yedek ve snapshot | Hatadan geri dönüşü mümkün kılar | İlk gün |
Sık Yapılan Hatalar
Güvenlik duvarını SSH'ye izin vermeden açmak. En yaygın kilitlenme nedenidir. Duvarı açmadan önce ufw allow OpenSSH komutunu çalıştırdığınızdan emin olun.
SSH portunu değiştirmeyi tek önlem saymak. Portu 22'den başka bir numaraya almak kayıtlardaki gürültüyü azaltabilir, ama gerçek bir koruma değildir. Asıl korumayı anahtarla giriş sağlar.
Gizli anahtarı sunucuya kopyalamak. Sunucuya yalnızca açık anahtar (.pub) eklenir. Gizli anahtar sizin bilgisayarınızda kalmalıdır.
Kurulumdan sonra sunucuyu unutmak. Güvenlik tek seferlik bir iş değildir. Kullanmadığınız yazılımları kaldırın, güncellemeleri izleyin ve erişimi olan kişileri düzenli gözden geçirin.
Sık Sorulan Sorular
Bu Adımlar Ne Kadar Sürer?
Komutlara alışkınsanız yarım saat civarında tamamlanır. İlk kez yapıyorsanız acele etmeyin; her adımdan sonra bağlantınızı kontrol etmek daha önemlidir.
Sunucuya Bağlanamaz Hâle Gelirsem Ne Yapmalıyım?
Önce açık kalan eski oturumunuz varsa oradan değişikliği geri alın. Oturum kalmadıysa elinizdeki seçenekler sağlayıcınıza göre değişir: yedekten veya snapshot'tan geri dönmek ya da sunucuyu yeniden kurmak gibi. Bu yüzden büyük değişikliklerden önce snapshot almak işinizi çok kolaylaştırır. Takıldığınız yerde destek ekibimize ulaşabilirsiniz.
Sadece Web Sitesi Barındırıyorum, Yine de Gerekli mi?
Evet. Web sitesi çalışan bir sunucu da diğer sunucular gibi taranır. Üstelik site yazılımının kendisi de, örneğin içerik yönetim sistemi ve eklentileri, düzenli güncellenmelidir.
Bu Adımları Her Yeni Sunucuda Tekrarlamam Gerekir mi?
Evet, her yeni sunucu temiz bir kalıpla açılır. Sık sunucu açıyorsanız komutları bir betikte toplamak hem zaman kazandırır hem de adım atlama riskini azaltır. Betiği yine de önce bir test sunucusunda deneyin.
Sonuç
Yeni bir sunucuda ilk iş güncellemeleri kurmak, SSH anahtarıyla girişe geçmek, şifreyle girişi kapatmak ve güvenlik duvarını açmaktır. Otomatik güvenlik güncellemeleri ve düzenli yedek bu temeli tamamlar. Bu adımlar her saldırıyı engellemez, ama internetteki otomatik denemelerin büyük kısmına karşı sunucunuzu kolay hedef olmaktan çıkarır.
Karakaş Digital'de bulut sunucularınızı Türkçe panelden yönetebilir; SSH anahtarı, otomatik yedekleme ve snapshot işlemlerini aynı yerden yapabilirsiniz. Paketler için bulut sunucu sayfamıza, merak ettikleriniz için sık sorulan sorulara göz atabilirsiniz.
