Bir sunucuyu internete açtığınız andan itibaren, otomatik tarama botları o sunucuyu denemeye başlar. Bu, "kimse küçük sitemle ilgilenmez" düşüncesinin geçerli olmadığı anlamına gelir — saldırıların büyük çoğunluğu belirli bir hedefe değil, internette açık bulunan her sunucuya rastgele yönelir. Sunucunuzun güvenliğini sağlamak karmaşık bir uzmanlık alanı gibi görünse de, birkaç temel önlemle saldırı yüzeyinizin büyük kısmını kapatabilirsiniz.
Şifreyle SSH girişi, kaba kuvvet (brute-force) saldırılarına açıktır — otomatik botlar saniyede onlarca kullanıcı adı/şifre kombinasyonu deneyebilir. SSH anahtar çifti (public/private key) kullanmak, şifre tahmin etme saldırılarını pratik olarak imkansız hale getirir çünkü özel anahtar hiçbir zaman ağ üzerinden iletilmez. Mümkünse şifreyle girişi (PasswordAuthentication no) tamamen kapatıp sadece key-based girişe izin verin, ve mümkünse varsayılan 22 portunu değiştirerek otomatik tarama botlarının çoğunu ekarte edin.
Sunucunuzda sadece gerçekten ihtiyaç duyduğunuz portları (80/443 web trafiği, 22 SSH gibi) açık tutun. ufw (Ubuntu'da) veya iptables gibi araçlarla gereksiz tüm portları kapatmak, saldırı yüzeyinizi ciddi şekilde daraltır. Kural olarak "varsayılan reddet, yalnızca gerekeni izin ver" mantığıyla ilerlemek, "varsayılan izin ver, gereksizi engelle" mantığından çok daha güvenlidir — çünkü unutulan bir port sizi savunmasız bırakmaz.
İşletim sistemi ve çalıştırdığınız yazılımlar (nginx, veritabanı, programlama dili çalışma ortamı) düzenli olarak güvenlik yaması alır. Güncellemeleri ertelemek, bilinen açıkların istismar edilmesine kapı aralar. Mümkünse otomatik güvenlik güncellemelerini aktif edin.
Yalnızca işletim sistemi değil, kullandığınız her kütüphane, framework ve eklenti de potansiyel bir güvenlik açığı taşıyabilir. Bağımlılık yönetim araçlarının güvenlik uyarılarını (örn. npm audit, pip-audit gibi) düzenli kontrol etmek ve kritik açığı olan paketleri hızlıca güncellemek, uygulama katmanından gelebilecek saldırıları önler.
Doğrudan root kullanıcısıyla SSH girişini kapatıp, yetkilendirilmiş ayrı bir kullanıcı üzerinden sudo ile işlem yapmak, hem güvenliği artırır hem de kimin ne yaptığının takibini kolaylaştırır.
Sunucu loglarını (özellikle başarısız giriş denemelerini) düzenli kontrol etmek, bir saldırı girişimini erken fark etmenizi sağlar. fail2ban gibi araçlar, tekrarlayan başarısız giriş denemelerinde IP'yi otomatik olarak engelleyerek bu süreci otomatikleştirir. Web uygulamaları için de benzer mantıkla, admin paneli ya da giriş formu gibi hassas noktalara oran sınırlama (rate limiting) uygulamak, otomatik saldırı araçlarının etkisini büyük ölçüde azaltır. Güvenlik yalnızca önlem almakla bitmiyor — bir ihlal yaşandığında bunu hızlıca fark edebilmek de en az o kadar kritik.
Veritabanı (MySQL, PostgreSQL gibi) veya önbellek servisleri (Redis, Memcached) hiçbir zaman doğrudan internete açık portlarla çalışmamalı. Bu servislerin yalnızca sunucu içinden (localhost) ya da uygulama sunucusuyla aynı özel ağ (private network) üzerinden erişilebilir olması, dışarıdan gelecek doğrudan saldırı girişimlerini tamamen ortadan kaldırır. Uzaktan erişim gerekiyorsa bunu bir SSH tüneli veya VPN üzerinden yapmak, portu doğrudan açık bırakmaktan çok daha güvenlidir.
Her servis ve kullanıcı yalnızca işini yapmak için gereken minimum yetkiye sahip olmalı. Web sunucusu prosesi root olarak çalıştırılmamalı, veritabanı kullanıcısının erişimi yalnızca ihtiyaç duyduğu tablolarla sınırlı tutulmalı. Bir servis ele geçirilse bile, yetkiler kısıtlıysa saldırganın sunucu genelinde verebileceği zarar büyük ölçüde sınırlanmış olur.
Güvenlik önlemleri ne kadar sıkı olursa olsun, hiçbir sistem %100 garanti veremez. Düzenli, otomatik ve farklı bir lokasyonda tutulan yedekler, en kötü senaryoda bile veri kaybını önler ve olası bir ihlal sonrası sistemi hızlıca eski, temiz bir duruma döndürmenizi sağlar — bu konuyu ayrı bir yazımızda detaylandırdık.
DerenTech olarak kendi ürünlerimizi (Fixlane, Otofis, RandevuCo, Whatbot) çalıştırdığımız VPS'te bu önlemlerin tamamını standart olarak uyguluyoruz — müşterilerimize sunduğumuz hosting hizmetinde de aynı yaklaşımı benimsiyoruz.
Sunucunuzun güvenlik durumunu gözden geçirmemizi ister misiniz? Bize ulaşın.