İçindekiler
- 1 Giriş: Bir Gece Bildirimiyle Başlayan Küçük Panik
- 2 Sahneye Bakış: Yüzeye Açık Ne Var, Kim Görüyor?
- 3 SSH: Evin Giriş Kapısı ve O Meşhur Anahtar
- 4 Güncelleme Ritüeli: Sessiz Kahraman
- 5 Erişim: Kim, Neye, Ne Zaman Dokunuyor?
- 6 Görmek Kontrol Etmektir: İzleme, Alarm ve Denetim
- 7 Uygulama ve Ağ Katmanı: İnceden İnceye Sıkılaştırma
- 8 Yedekler: En Kötü Günü Biraz Daha Katlanılır Kılmak
- 9 Küçük Rutinler, Büyük Huzur: Hepsini Bir Araya Getirelim
- 10 Kapanış: Yarın Sabah İçin Minik Eylem Planı
Giriş: Bir Gece Bildirimiyle Başlayan Küçük Panik
Hiç başınıza geldi mi? Gece telefon pıt pıt öter, uykulu gözlerle bakarsınız; sunucudan peş peşe uyarılar. Bir keresinde arkadaşımın küçük bir VPS’i vardı, sırf hobi projesi. “Zaten kim uğraşacak ki?” diye düşünmüş, bir iki örnek kurulumla bırakmış. O gece alarmlar gelince anladık: kapı açık, hem de davetiye çıkarır gibi. Oysa amaç basitti; kendi uygulamasını küçük bir VPS’te koşutmak, arada bir bakıp güncellemek.
Orada şöyle düşündüm: Güvenlik, görkemli kaleler kurmak değil; alışkanlıklar, küçük ama doğru ayarlar, düzenli temizlik. Mesela elinizde gerçek bir anahtar varken kapıyı çekip çıktığınızda bile bir kontrol edersiniz ya, VPS’te de durum aynı. Bu yazıda o kapıyı nasıl çekip iki kez kontrol edeceğimizi konuşacağız. SSH’yi nasıl sağlamlaştıracağımızı, güncellemeleri nasıl rutinleştireceğimizi, duvarları nasıl mantıklı örmemiz gerektiğini, yedekleri nerede tutup nasıl deneyeceğimizi. Arada kendi yaşadıklarımdan, küçük tüyolardan bahsedeceğim. Kafayı karıştırmadan; net, uygulanabilir adımlarla.
Sahneye Bakış: Yüzeye Açık Ne Var, Kim Görüyor?
VPS’i ayağa kaldırdığınız an aslında görünürsünüz. İnternette her bağlantı, her açık port, bir iz. Mesela şöyle düşünün: Evde kapılar kapalı ama pencereler ardına kadar açık. Dışarıdan bakan biri bir yol bulur. Sunucuda da aynı. Ben önce “yüzey”i anlarım. Hangi servisler dışarı açık, neleri gerçekten dış dünyaya göstermeliyim? Gereksiz her şeyi kapatırım. Bir kez, sadece tek bir portun açık bırakıldığını sanıp arka tarafta çalışan küçük bir deneme servisini unutmuştum. Log’larda garip istekler görünce fark ettim. İnsan kendine kızıyor ama böyle hatalar öğretici olur.
Temelde bir güvenlik duvarı kuralı koyup “özel sebepler dışında her şeyi kapat, gerektiğinde aç” yaklaşımı işleri çok kolaylaştırır. Bulut panelinizdeki güvenlik gruplarıyla başlayıp sunucuda ufw veya native iptables ile netleştirebilirsiniz. Gerekli olan SSH, web veya API kapıları hangisiyse onu açık bırakın, kalanları hiç görünmez yapın. Bir de yönetim portlarını sadece kendi IP’nize açmayı severim; hareket halindeysem hızlıca VPN ile bağlanırım, sonra kapatırım. Bu, en basit önlem ve çoğu zaman en etkili olanı.
Ufak bir çevre denetimi alışkanlığı
Ben yeni bir VPS kurduğumda ilk yarım saatimi çevre denetimine ayırırım. Servis listesine bakarım, “Bu burada niye çalışıyor?” diye sorarım. Mesela geliştirirken bıraktığınız bir test aracı, beklenmedik bir güncelleme ile tekrar aktif olabilir. Küçük bir not defteri tutup hangi portu neden açtığınızı yazın. Basit ama altın değerinde bir alışkanlık.
SSH: Evin Giriş Kapısı ve O Meşhur Anahtar
SSH, sunucunun ön kapısıdır. Kapıyı sağlamlaştırmadan başka hiçbir şeye güvenemeyiz. Benim sevdiğim akış şöyle: şifreyi en baştan kaldırmak, anahtar tabanlı kimlik doğrulama kurmak, root kullanıcıyla doğrudan girişe izin vermemek. Burada amaç şundan ibaret: Tahmin edilebilir olan her şeyi ortadan kaldırmak. Parola hiç yoksa, kimse parolayı kıramaz. Root ile doğrudan giriş yoksa, saldırgan önce kapıda oyalanır. Anahtarlarınızı güçlü ve şifreli saklamak da ikinci kilit gibidir.
“Peki portu değiştirmek?” sorusu sık gelir. Ben bazen değiştiriyorum, bazen değiştirmiyorum. Portu değiştirmek tek başına çare değil ama gürültüyü azaltır, log’lar daha temiz görünür. Asıl mevzu yine aynı: anahtar tabanlı giriş, iki faktörlü doğrulama ve deneme sayısını sınırlayan korumalar. Fail2ban gibi araçlar burada candır. Üç beş deneme sonrası kapıyı yüzlerine kapatırsınız. Log’ları şöyle bir okumak da iyi gelir; nereden, ne sıklıkta yoklamalar geliyor, bir fikriniz olur.
Ekstra bir katman daha isterseniz, VPN veya bastion sunucu üzerinden SSH akışını kurgulamak çok işe yarar. İçeri giren kişi önce özel bir tünelden içeri alınır, sonra gerçek sunucuyla konuşur. İlk duyduğunuzda karışık gelir, ama bir kere kurduğunuzda çok rahat edersiniz. Mesela üretim makineleri için böyle bir kapı planı, uykunuzu tatlandırır.
Ufak ama etkili dokunuşlar
SSH konfigürasyon dosyasına bakın; root girişini kapatın, sadece belirlediğiniz kullanıcıların bağlanabilmesine izin verin. Anahtarlarınızı düzenli yenileyin. Bir de şunu seviyorum: Sunucuya bağlanınca sizi karşılayan küçük bir uyarı metni koymak. Hem ekip için hatırlatıcı, hem dışarıdan bakan olursa “buraya girmek bir hak değil” mesajı veriyor. Ayrıntı gibi görünür ama davranışları etkiler.
Güncelleme Ritüeli: Sessiz Kahraman
Bir güncelleme, tek bir satır değişiklik, bazen tüm saldırı yüzeyini kapatır. Şu soruyu kendime hatırlatırım: “Bugün açığa çıkan bir zafiyet, benim sunucumda da var mı?” Elbette her gün panik halinde paket güncellemek gerekmiyor. Ama haftalık bir ritüel, kritik güncellemeleri kaçırmamak, sistemin çekirdeğini ve kütüphanelerini taze tutmak inanılmaz fark yaratır. Üretim ortamında otomatik güvenlik güncellemelerini temkinli ama aktif kullanırım; kritik olmayanları planlı bakım penceresinde tamamlarım.
SSL sertifikaları da bu düzenin bir parçası. Bazen belki size de olmuştur; sertifika süresi biter ve bir sabah kullanıcılar uyarı ekranına boğulur. Otomasyonla yenileme güzel ama “son dakikaya kalmasın” diye hatırlatıcıları bolca koymak gerekir. Bu konuda pratik bir yol haritası isterseniz, SSL sertifika güvenlik güncellemelerini zamanında yapmanın püf noktaları yazısındaki öneriler işinizi rahatlatır.
Güncelleme sonrası küçük bir tur atarım: Servisler ayağa kalktı mı, log’larda tuhaf bir uyarı var mı, ölçümler normal mi? Bu turu hızlıca yapmak, beklenmedik yan etkileri büyümeden yakalar. Mesela bir defasında, minik bir kütüphane güncellemesi, SSL yapılandırmasında beklemediğim bir uyumsuzluk doğurmuştu. Ertesi gün kullanıcılar sorun fark etmeden, gece kontrolünde tespit edip düzelttim.
Erişim: Kim, Neye, Ne Zaman Dokunuyor?
VPS’i tek başınıza yönetiyorsunuz diyelim; yine de erişim prensipleri önemli. Kendi adınıza da olsa “en az yetki” bakışını seviyorum. Yıllar önce, aceleyle bir kullanıcıya her şeyi açmıştım; sonra o hesabın makinede unutulduğunu fark ettim. O günden beri şu basit kurala bağlandım: Herkese işini görecek kadar izin ver, fazlasını verme. İşi bittiğinde izni kapat. Uzaktan bakınca formalite gibi durur, pratikte hayat kurtarır.
Parolaları, token’ları, API anahtarlarını nasıl sakladığınız kritik. Çevrede .env dosyalarında açık anahtarlar, yanlışlıkla depoya commit edilen sırlar görürüm. Mesela şöyle düşünün: Evin yedek anahtarını matın altına koymak gibi. İlk yağmurda gider. Çok tatlı bir çözüm arıyorsanız, VPS’te secrets yönetimini sops + age ile kurma adımlarını anlattığım rehber tam bu derdi sade bir dille çözüyor. Doğru saklama, doğru rotasyon ve temiz bir dağıtım akışıyla, gizleriniz gerçekten gizli kalır.
Bir de kayıt tutma alışkanlığı. Kim ne zaman bağlandı, hangi komutlar çalıştı, hangi dosyalar değişti? Sihirli bir defter değil, sadece izlenebilirlik. Yanlış bir değişiklik olursa geri dönüp bakmak, kimin ilgilenmesi gerektiğini anlamak için çok değerli. Şeffaflık güvenliği artırır; sorun çıktığında da panik yerine adım adım gerçeği bulmanızı sağlar.
Görmek Kontrol Etmektir: İzleme, Alarm ve Denetim
İzlemediğiniz şeyi yönetemezsiniz. Ben küçük bir VPS bile kursam, en azından temel metrikleri toplarım: CPU, bellek, disk, ağ. Bir keresinde disk alanı planladığımdan hızlı dolmuştu; gece yarısı uygulama logsuz kalınca cebim çaldı. O günden beri disk eşiği, anlık IO sıçraması, olağan dışı ağ akışı gibi birkaç alarm, sanki kapıda duran bekçi gibi. Çok teknik sistemler şart değil; önemli olan haberdar olmak.
Günlüklerde (log’larda) garip desenleri görmeyi çok severim. Örneğin kısa sürede artan 401 hataları, sürekli bir noktayı yoklayan IP’ler, beklenmedik saatlerde CPU’nun tavan yapması. Fail2ban gibi araçlar bu davranışları otomatik cezalandırır; Fail2ban’in resmi dökümantasyonunda basit ama etkili örnek kurallar var. Katman katman gidersiniz: önce tespit, sonra engelleme, en sonda kalıcı bir iyileştirme.
Denetim tarafında iki kaynağı yanımda tutarım. İlki, sektörün dillendirdiği temel sertleştime rehberleri. CIS Benchmarks’in ilgili kılavuzları güzel bir başlangıç; her şeyi harfi harfine uygulamak zorunda değilsiniz, ama size sağlam bir çerçeve sunar. İkincisi, pratik bir kontrol aracı. Lynis ile sunucu güvenlik denetimi hızlıca mevcut durumun fotoğrafını çekip “şurayı biraz sık” der. Ben notlarımı bu çıktılarla güncellerim, bir sonraki bakımda neleri hedefleyeceğimi yazarım.
Uygulama ve Ağ Katmanı: İnceden İnceye Sıkılaştırma
Uygulama, duvarda açılan pencere gibidir. Güzel manzara sunar ama güvenlik camı yoksa ilk rüzgârda kırılır. Web trafiğini ters proxy arkasına almak, temel hız sınırlaması (rate limiting) uygulamak, uç noktalarda gereksiz header’ları budamak gibi küçük dokunuşlar çok iş görür. Mesela basit bir “dakikada şu kadar isteği kabul ediyorum” kuralı, kaba kuvvet denemelerini usulca ezer. WAF gibi filtreler gerektiğinde kemeri bir delik daha sıkar; ama unutmayın, sihirli değnek değiller. Kaynağı sağlamlaştırmak her zaman birinci iş.
TLS yapılandırması da ayrı bir dünya. Sertifikalar, desteklenen şifre takımları, HSTS gibi sıkılaştırmalar. Bu konuların ayarını iyi yapınca hem güvenlik hem performans yüzünüzü güldürür. İnce ayarları merak edenler, “güncelleme rutini”ne ek olarak yukarıda paylaştığım sertifika yazısına mutlaka baksın. Bir de çevrede neler konuşulduğunu anlamak için, siber güvenlik tehditlerinin neden arttığına dair sohbet tadındaki değerlendirmem size güncel manzarayı verir; bazı önlemleri neden bugün değil hemen şimdi konuşmamız gerektiği daha anlaşılır olur.
Uygulama özelinde, “gürültüyü” azaltmak için iyi log seviyeleri seçin. Hata nerede, bilgi nerede, debug nerede bitiyor; net olsun. Fazla log diski doldurur, az log teşhis zorlar. O dengeyi bulunca, olay olduğunda aradığınızı dakikalar içinde bulursunuz.
Yedekler: En Kötü Günü Biraz Daha Katlanılır Kılmak
Yedek konuşmadan güvenlik konuşulmaz. Bir gün bir dosyayı yanlışlıkla sildim; küçük bir klasördü, “nasıl olsa geri alırım” diye düşündüm. O gün yedek job’u çalışmamış. İşte orada anladım: Yedek almak kadar, yedeği geri döndürebildiğini test etmek de şart. Hatta bazen yedeği küçük bir VPS’e anlık geri kurar, rotayı denerim. İşin sırrı burada; gerçekte çalıştığını gözünle görmeden “tamamdır” dememek.
Yedekte sevdiğim bir yöntem de değişmez kopyalar. Yani biri yanlışlıkla silse de kurtulacak, fidye yazılımı dokunsa da korunacak kopyalar. Bu yaklaşımı merak ediyorsanız, fidye yazılıma karşı kale gibi yedek alma üzerine bu yazı çok pratik ipuçları veriyor. Yedeklerinizi farklı bir sağlayıcıda, farklı bir bölgede ve tercihen sadece yazılabilir, silinmesi kısıtlı bir alanda tutmak içi rahatlatır.
Şifreleme tarafını da atlamayın. Yedekler yolculuk ederken şifreli olsun, dururken de şifreli kalsın. Anahtarları nerede sakladığınız, kimlerin eriştiği, hangi aralıklarla yenilediğiniz… Hepsi bir bütün. Bir de küçük not: Yedekleme saatlerini trafiğin en sakin olduğu zamana koyup bant genişliği tavanını ayarlamak, hem cebi hem sinirleri korur.
Küçük Rutinler, Büyük Huzur: Hepsini Bir Araya Getirelim
Şimdi bütün bu parçaları bir hikâye gibi düşünün. Kapıyı sağlam tutuyoruz (SSH ve firewall), içeride kimlerin gezeceği belli (erişim ve yetkiler), duvarların çatlağını erken fark ediyoruz (izleme ve alarm), yangın çıkarsa çıkış planımız hazır (yedek ve geri dönüş). Bu akış bir kere oturunca güvenlik artık kavgacı bir külfet olmaktan çıkıp, sakin bir ev düzenine dönüşüyor. Benim tiryakisi olduğum küçük bir ajanda var; ayın ilk haftası bakım turu, ortasında denetim, ay sonunda yedek geri dönüş denemesi. Hepsi en fazla bir kahvelik süre. Ama getirisi çok büyük.
Bu rutine ek olarak, dönem dönem genel tehdit manzarasına göz atmak ferahlatır. Bazen yeni bir zafiyet dalgası çıkar; bazen otomasyon araçlarında küçük bir açık konuşulur. Böyle anlarda, “Peki benim VPS’imde bu taş nereye düşer?” diye sorarım. Cevabı çoğu zaman basit olur: güncel kal, görünür ol, yedekli ol, panik yapma. Kimi konuların tadını kaçırmadan biraz daha derinine inmek isterseniz, bir alan adı, bir kahve eşliğinde anlatılan küçük hikâyeler tadında içerikler de zihni açar; ama bu yazının özünde hep aynı leitmotiv var: sade, uygulanabilir güvenlik.
Kapanışı şu cümleyle yapayım: Güvenlik bir ürün değil, bir süreç. Üstelik keyif kaçırmak zorunda da değil. Doğru rutinler, küçük ama etkili ayarlar, iyi bir izleme ve test edilmiş yedek planı ile VPS’iniz, gündelik koşturmacada sırtınızı yaslayacağınız bir omuz olur. Ben böyle yaptıkça, gece gelen bildirimler artık panik değil, “hadi bakalım ne varmış” merakına dönüştü.
Kapanış: Yarın Sabah İçin Minik Eylem Planı
Özetle basit gidelim: SSH’yi anahtara taşıyın, root girişini kapatın, deneme sayısını sınırlayan korumaları oturtun. Firewall’da yalnızca gerçekten gerekli servisleri dışarı açın, mümkünse yönetim kapılarını sadece kendi IP’nize sınırlayın. Haftalık güncelleme turunu bir ritüele çevirin; kritik güvenlik yamalarını ertelemeyin. İzlemeye en azından temel metriklerle başlayın; anormal durumlarda haber verecek birkaç alarm sizi tutar. Yedek alıp geri dönüşü deneyin; “alıştırma” gününde terlerseniz, gerçek günde rahat edersiniz.
Detayları kurcalamak isterseniz, yukarıda paylaştığım VPS’te secrets yönetimini sops + age ile kurma adımlarını anlattığım rehber ve siber güvenlik tehditlerinin neden arttığına dair sohbet tadındaki değerlendirmem size güzel bir arka plan sağlar. Güncellemeleri yakalama ve sertifika düzenini oturtma konusunda da SSL sertifika güvenlik güncellemelerini zamanında yapmanın püf noktaları yazısına dönüp bakın; eminim bir iki küçük not cebinize girecek.
Umarım bu yazı size ışık olmuştur. Buradaki fikirleri birebir kopyalamak zorunda değilsiniz; kendi düzeninize, kendi yoğunluğunuza göre uyarlayın. Takıldığınız yer olursa, not alın, ertelemeyin, küçük küçük ilerleyin. Sonrası geliyor. Bir dahaki yazıda görüşmek üzere; VPS’iniz güvende, kafanız rahat olsun.
