Güvenlik

Sunucunu Kiraladığın Gün Kapıları Açık Teslim Aldın: E-Pin Scripti Çalıştıran Bir Makinede Kimsenin Yapmadığı Sertleştirme Kontrol Listesi

E-pin scripti barındıran sunucuyu sertleştirme kontrol listesi: SSH, güvenlik duvarı, dosya izinleri, PHP ayarları, yedek ve kayıt izleme adımları.

Sunucunu Kiraladığın Gün Kapıları Açık Teslim Aldın: E-Pin Scripti Çalıştıran Bir Makinede Kimsenin Yapmadığı Sertleştirme Kontrol Listesi

Çoğu işletme sahibi sunucu güvenliğini barındırma firmasının işi sanır. "Güvenlik duvarı var mı?" diye sorar, "var" cevabını alır ve konuyu kapatır. Oysa sana teslim edilen makine, üzerinde varsayılan ayarlar duran, her portu dinleyen, kök kullanıcıya şifreyle giriş kabul eden bir kutudur. Firmanın sorumluluğu kablonun ucunda biter; o kutunun içi senin.

İkinci yaygın yanılgı şudur: "kodum güvenliyse sunucu önemsizdir." Tam tersi. Mükemmel yazılmış bir e-pin satış scripti, aynı sunucuda duran eski bir test dosyası yüzünden ele geçirilebilir. Saldırgan senin sipariş mantığını kırmakla uğraşmaz; yan kapıdan girer, veri tabanı bağlantı bilgilerini okur ve stokunu doğrudan tablodan boşaltır. Bu yazıda dijital kod satan bir sistemin altındaki sunucuyu sertleştirmek için sırayla uygulanacak adımları, her adımın neyi durdurduğunu söyleyerek veriyorum.

41Kod satan bir sunucuda anlamlı sertleştirme maddesi sayısı
4 dakikaYeni sunucuya ilk otomatik SSH deneme saldırısının gelme süresi
%80Riskin ilk 12 maddeyle kapanan kısmı
1 dosyaUnutulan tek yedek arşivinin açtığı ihlal yolu

Erişim kapısını hâlâ şifreyle mi açıyorsun?

Sertleştirmenin ilk maddesi her zaman erişimdir, çünkü diğer kırk maddenin hepsi bu kapı açıksa boşa gider. Sunucuya şifreyle SSH girişi kapatılır, yerine anahtar tabanlı kimlik doğrulama konur. Kök kullanıcının doğrudan girişi kapatılır; kendi kullanıcınla girip yetki yükseltirsin. SSH portu değiştirilir; bu tek başına güvenlik değildir ama kayıtlarını gürültüden temizler, böylece gerçek saldırıyı görürsün.

Yönetim panelin ve veri tabanı arayüzün internete açık durmamalı. Bunlar ya IP kısıtlı olmalı ya da bir tünelin arkasında durmalı. Bir de terk edilmiş kullanıcılar var: eski çalışanın, eski geliştiricinin, kurulum sırasında açılan test hesabının hâlâ yaşıyor olması en sık atlanan maddedir. Üç ayda bir kullanıcı listesini okumak, pahalı hiçbir ürünün sağlayamadığı bir koruma sağlar.

Sunucun kaç kapıyı boşuna dinliyor?

Varsayılan kurulumda makinen ihtiyacın olmayan bir sürü servisi dinler. Kural nettir: ne kullanmıyorsan kapat, kullandığını da yalnız gereken yere aç. Web trafiği dışarıya açık; veri tabanı yalnız yerel arayüze; önbellek servisi yalnız yerel arayüze; yönetim erişimi yalnız senin IP bloğuna.

Güvenlik duvarını kurarken varsayılan politikayı "reddet" yapıp istisnaları tek tek eklemek, "kabul et" deyip yasakları saymaktan kat kat güvenlidir. Bunun üstüne önbelleğe alan bir ara katman koyup asıl sunucunun IP adresini gizlersen, doğrudan hedefli taramaların önemli kısmını hiç karşılamazsın. Dijital ürün satış scripti çalıştıran sistemlerde bu adım özellikle önemlidir; çünkü tedarikçi API'sine giden trafiğin kaynağı belliyse saldırgan taklit etmeyi de kolay bulur.

Sertleştirme alanıYapılacakNeyi durdururSüreÖncelik
SSH erişimiAnahtar zorunlu, kök girişi kapalıKaba kuvvet ve şifre sızıntısı20 dk1
Güvenlik duvarıVarsayılan reddet, istisna listesiAçık servis taraması30 dk1
Veri tabanı bağlantısıYalnız yerel arayüz, dar yetkili kullanıcıDoğrudan tablo okuma25 dk1
Dosya izinleriYazılabilir dizin sayısını en aza indirmekYüklenen dosyanın çalıştırılması40 dk2
PHP yapılandırmasıTehlikeli fonksiyonları kapatmak, hata gösterimini kapatmakKomut çalıştırma ve bilgi sızması30 dk2
YedeklemeSunucu dışına şifreli kopyaFidye ve toplu silme60 dk1
Kayıt izlemeMerkezî kayıt ve uyarı kurallarıFark edilmeyen uzun süreli erişim90 dk2
Gereksiz dosyalarTest, yedek arşivi, kurulum dizini silmeUnutulmuş yan kapı20 dk1

Yazılabilir dizinler neden en sessiz felaket?

Dosya izinleri sıkıcı bir konudur ve tam bu yüzden kimse dokunmaz. Kod satan bir panelde yüklenen görsellerin, fatura çıktılarının, geçici dosyaların durduğu dizinlerin yazılabilir olması gerekir; ama yazılabilir olan dizinde çalıştırma yetkisi bulunmamalıdır. Bu iki şeyi ayırmazsan, dosya yükleme alanına sızan tek bir betik sunucunun tamamına komut çalıştırma imkânı verir.

Aynı mantık kaynak koda da uygulanır. Uygulama dosyalarının web sunucusu kullanıcısı tarafından yazılabilir olması, güncelleme kolaylığı gibi görünen ama kalıcı bir açık bırakan bir tercihtir. Yapılandırma dosyası, özellikle veri tabanı ve API anahtarlarını tutan dosya, web kökünün dışında durmalı ve yalnız gereken kullanıcı tarafından okunabilmelidir. İyi kurulmuş bir e-pin yazılımı bu ayrımı kurulum aşamasında zorlar; zorlamıyorsa sen elle yapmak zorundasın.

Sunucu ele geçirme yollarının dağılımı

  • Zayıf SSH veya panel erişimi 40%
  • Güncellenmemiş servis 30%
  • Gereksiz açık servis ve port 20%
  • Hatalı dosya izinleri 10%

Sırlarını nerede tutuyorsun?

E-pin işinde sırlar sadece şifre değildir: tedarikçi API anahtarı, ödeme sağlayıcı gizli anahtarı, webhook imza anahtarı ve varsa kod şifreleme anahtarı. Bunların hepsi tek bir dosyada, web kökü içinde, sürüm kontrolüne de girmiş halde duruyorsa ihlal bir zaman sorunudur. Sırlar web kökü dışında, dar izinli bir dosyada veya ortam değişkenlerinde tutulur; sürüm kontrolüne asla girmez.

Bir de rotasyon var. Bir çalışan ayrıldığında, bir geliştiriciye geçici erişim verildiğinde veya bir yedek dosyası dışarı çıktığında anahtarların değiştirilmesi gerekir. Bunun için önce bir liste tutman şart: hangi anahtar nerede duruyor, ne zaman oluşturuldu, kim biliyor. Liste yoksa rotasyon da yapılamaz, çünkü neyi değiştireceğini bilemezsin.

Web kökünde arama yap

Bugün beş dakika ayır ve web kökünde şu uzantıları ara: yedek arşivleri, veri tabanı dökümleri, eski kurulum dizinleri ve bilgi yazdıran test dosyaları. Bulduğun her birini sil veya dışarı taşı; bu tek tarama çoğu sitede en az bir ciddi bulgu verir.

Bir şey olduğunu nasıl fark edeceksin?

Sertleştirme, saldırıyı imkânsız kılmaz; zorlaştırır ve gürültü çıkarır. O gürültüyü duyacak bir kulak kurmadıysan sertleştirmenin yarısını yapmış olursun. En az şunlar izlenmeli: başarısız giriş denemeleri, yönetim paneline yapılan başarılı girişler, uygulama dosyalarındaki değişiklikler, beklenmedik giden ağ bağlantıları ve sipariş-bakiye kayıtlarındaki sıra dışı hareketler.

Uyarıları tek bir yere, örneğin bir mesajlaşma kanalına düşürmek işi sürdürülebilir kılar. Kural sayısını az tut ki uyarıya duyarsız kalmayasın: gece yarısı yönetim girişi, bir saatte beşten fazla iade, yeni bir kök yetkili kullanıcı, uygulama dosyasında değişiklik. Dört kural, kimsenin okumadığı kırk kuraldan iyidir. Kullandığın e-pin satış yazılımı bakiye ve sipariş hareketleri için değiştirilemez bir kayıt tutuyorsa bu uyarıları kurmak çok daha kolaydır; tutmuyorsa olaydan sonra ne olduğunu asla tam çözemezsin.

Kontrol maddesiDurum ölçütüSıklıkAtlanırsa
Şifreli SSH girişi kapalıYapılandırmada parola girişi kapalıBir kez + denetimKaba kuvvet kapıyı bulur
Kullanılmayan servisler kapalıDinleyen port listesi beklenenle aynıAylıkTarama yan kapı bulur
Yapılandırma web kökü dışındaAnahtar dosyası tarayıcıdan erişilemezHer kurulumdaAnahtarlar okunur
Yazılabilir dizinde çalıştırma kapalıYüklenen betik çalışmıyorHer kurulumdaUzaktan komut çalıştırma
Yedek sunucu dışında ve şifreliGeri yükleme testi başarılıÜç aylıkFidye karşısında seçenek yok
Yönetim paneli IP kısıtlıDış IP'den erişim reddediliyorAylıkPanel doğrudan hedef olur
Kayıt uyarıları çalışıyorTest uyarısı kanala düşüyorAylıkİhlal aylarca görünmez
Web kökünde artık dosya yokArama sonucu boşÜç aylıkUnutulmuş dosya sızdırır

Bu listeyi kim, hangi sırayla uygulayacak?

Kırk maddeyi bir hafta sonunda bitirmeye çalışmak genellikle yarım kalmış bir yapılandırma ve çalışmayan bir site üretir. Doğru yol maddeleri üç dalgaya bölmektir. İlk dalga erişim, güvenlik duvarı, sırların yeri ve yedek: bir günde biter, riskin büyük kısmını kapatır. İkinci dalga dosya izinleri, PHP ayarları ve artık dosya temizliği: bir haftaya yayılır. Üçüncü dalga kayıt izleme, uyarı kuralları ve düzenli denetim takvimi: kalıcı bir alışkanlığa dönüşür.

Her dalgadan sonra siteyi gerçek bir siparişle test et. Sertleştirme adımlarının en sinsi yan etkisi, teslimatı sessizce bozmasıdır: kapattığın bir fonksiyon yüzünden kod üretilmez, kısıtladığın bir çıkış yüzünden tedarikçi API'sine ulaşılmaz. Bu yüzden her dalga sonunda küçük tutarlı bir satış yapıp kodun eline geçtiğini gör. Altyapı tarafında hangi ayarların zaten çekirdekte geldiğini görmek için özellikler bölümüne, lisans ve destek kapsamı için fiyat tablosuna bakabilirsin.

Sertleştirmesi kolay bir çekirdekle başla

Yapılandırmasını web kökü dışında tutan, yazılabilir dizinleri ayıran ve bakiye hareketlerini kayıt altına alan bir altyapı, bu listenin yarısını sana bırakmıyor.

Paylaşımlı barındırmada bu maddelerin hangilerini yapabilirim?

SSH ve güvenlik duvarı seviyesindekileri yapamazsın ama dosya izinleri, yapılandırmayı web kökü dışına alma, artık dosya temizliği, yönetim yolunu gizleme, iki adımlı doğrulama ve sunucu dışı yedek maddelerini uygulayabilirsin. Ciron büyüdüğünde kendi sunucuna geçmeyi planla.

Güvenlik duvarı varsa ek katmana gerek var mı?

Sunucu güvenlik duvarı portları yönetir, uygulama katmanındaki istekleri ayırt etmez. Önünde önbellekleyen ve filtreleyen bir katman kullanmak, hem asıl IP'yi gizler hem otomatik trafiğin bir kısmını hiç sana ulaştırmaz. İkisi birbirinin yerine geçmez.

Sertleştirme sitemi yavaşlatır mı?

Doğru yapılırsa hayır, bazı adımlar hızlandırır bile. Yavaşlama şikâyeti genelde aşırı agresif istek sınırlama kurallarından veya yanlış yapılandırılmış önbellekten gelir; kuralları kademeli ekleyip ölçerek ilerlemek bunu engeller.

Yedeği aynı sunucuda tutmak yeterli değil mi?

Değil. Sunucu ele geçirilirse veya diske fidye yazılımı bulaşırsa yedek de kaybolur. Yedek en az bir kopya olarak farklı bir sağlayıcıda, şifreli ve geri yükleme testi yapılmış halde durmalı.

Sunucu sertleştirme, bir kez yapılıp bitirilen bir proje değil; erişimi daraltıp, gereksizi kapatıp, sırları saklayıp, olanı duyabildiğin bir düzen kurmaktır. İlk on iki maddeyi bu hafta bitirirsen riskin büyük kısmı kapanır, kalanı takvime yayılır. Çekirdeğin bu maddeleri sana ne kadar kolaylaştırdığını görmek istersen canlı demo üzerinden panele girip yönetim, bayi ve sipariş ekranlarını sırayla gezmeni öneririm.

Daha Fazlasını Keşfedin

Dijital ürün satışı ve otomasyon üzerine güncel rehberlere göz atın.

Tüm Yazıları Gör →
Bu yazıyı paylaşın
Bu yazıyı beğendiniz mi?
Teşekkürler!
← Tüm yazılar