Giriş
Bulut altyapısı üzerinde çalışırken birincil önceliğiniz, uygulamalarınızın tam olarak çalışır durumda olduğundan emin olmaktır. Kurulum ve dağıtım sürecinizin önemli bir parçası, uygulamalarınız veya sistemleriniz halka sunulmadan önce bunlara etkili, kapsamlı ve güçlü güvenlik önlemleri entegre etmektir. Dağıtım sonrasında geriye dönük olarak güvenlik önlemleri uygulamak yerine, altyapınıza yerleşik güvenli bir temel yapılandırma olduğundan emin olmak önemlidir.
Bu eğitim bu konuda size yardımcı olacaktır. Sunucunuzun altyapısı kurulurken ve yapılandırılırken uygulanabilecek bazı pratik güvenlik önlemlerini vurgulayacaktır. Bu, sunucu güvenliği protokollerinin eksiksiz bir listesi olmasa da yararlı bir başlangıç noktasıdır. Ortamınızın ve uygulamalarınızın özel ihtiyaçlarıyla çalıştıkça ve bunları daha iyi anladıkça, temelinizin üzerine inşa etmeye yardımcı olacak ek güvenlik önlemleri geliştirebilirsiniz.
SSH (Secure Shell) Anahtarları
Sunucunuzla çalışırken, zamanınızın büyük bir kısmını bir terminal oturumunda sunucunuzla bir SSH bağlantısı üzerinden çalışarak geçireceksiniz. Güvenli kabuk (SSH) anahtarları, sunucuya şifrelere dayalı oturum açma işlemlerinden daha güvenli bir oturum açma yöntemi sağlar. Kimlik doğrulama amacıyla, SSH anahtarlarının kullanımıyla iki erişim anahtarı hazırlanır. Birincisi gizli (özel) bir anahtarken, diğeri paylaşılabilir, genel bir anahtardır.
Öncelikle SSH anahtarı kimlik doğrulamasının yapılandırılması gerekir. Bu, SSH genel anahtarının sunucudaki uygun dizine yerleştirilmesiyle gerçekleştirilir. İstemciniz sunucuya ilk bağlandığında, özel anahtara sahip olduğunuzun kanıtı istenecektir. Bu, daha sonra SSH istemcinize gönderilecek rastgele bir değerin üretilmesiyle yapılır. SSH istemcisi de bir yanıtın şifrelenmesinde özel anahtarı kullanacaktır. Bu yanıt sunucuya gönderilecektir. Ardından sunucu, genel anahtarınızı kullanarak istemciden gelen mesajın şifresini çözecektir. Rastgele değerin şifresi sunucu tarafından çözülürse, bu durum istemcinin özel anahtara sahip olduğunu gösterir. Bu durumda kimlik doğrulaması onaylanır ve şifre olmadan sunucuya bağlantı kurulabilir.
SSH Anahtarları ile Güvenliği Artırma
Şifre yetkilendirmesi veya SSH ile yapılan herhangi bir kimlik doğrulaması tamamen şifrelenmiş olsa da, kötü niyetli kullanıcılar sunucuya erişim girişiminde bulunabilir. Özellikle de sunucunun dışa açık IP adresini ele geçirmişlerse. Modern bilgi işlem, olası her anahtar kombinasyonunu deneyerek şifre tabanlı oturum açmaya izin verir ve bu durum genellikle kötü niyetli kullanıcılar tarafından denenir. Bu erişim girişimleri otomatikleştirilirse, doğru şifreye nihayetinde ulaşmak için farklı kombinasyonları sistematik olarak denemek mümkündür.
SSH şifreli kimlik doğrulamasından yararlanarak, oturum açmak için şifreleri etkinleştirmeye gerek kalmaz. SSH anahtarları genellikle bir saldırganın gerçekleştirmesi gereken çok büyük miktarda kombinasyon olasılığı içerir. Artan bit sayısı, şifreyi kırmak için gereken farklı kombinasyon potansiyelini katlar. Bu nedenle, SSH anahtar algoritmasının mümkün olan tüm kombinasyonlarını denemek son derece zaman alıcı olacaktır. Dolayısıyla, kötü niyetli bir saldırganın zaman ayırmasına değmeyecek bir girişim haline gelir. Bu yüzden SSH şifrelemesi genellikle 'kırılamaz' olarak kabul edilir.
SSH Anahtarlarını Uygulama
Herhangi bir uzak Linux sunucusunda oturum açarken SSH anahtarları kullanılmalıdır. Yerel makine tarafında bir anahtar üretilebilir ve genel anahtar dakikalar içinde sunucuya aktarılabilir. Bu eğitimle, şu konuda temel bir fikir edineceksiniz: Ubuntu'da uzak bir sunucuya bağlanmak için SSH nasıl kullanılır. Ayrıca şu derinlemesine Linux sunucunuzu SSH anahtar tabanlı kimlik doğrulaması kullanacak şekilde nasıl yapılandıracağınıza dair eğitimimizi de takip edebilirsiniz.
Genel olarak, root kullanıcısının SSH üzerinden doğrudan oturum açmasına izin vermemek, yaygın olarak kullanılan en iyi uygulamalardan biridir; bunun yerine yetkisiz bir kullanıcı olarak oturum açıp gerektiğinde yetkileri yükseltmek için sudo gibi bir araç kullanılır. Bu, en az ayrıcalık ilkesi olarak bilinir: erişim izinlerini sınırlama yöntemi. Yetkisiz bir hesapla oturum açma işlemi SSH ile doğrulandıktan sonra, sunucunuzdaki /etc/ssh/sshd_config dosyasında PermitRootLogin no yönergesi ayarlanarak root girişleri devre dışı bırakılabilir. Ardından, sunucu bir SSH işlem komutu olan sudo systemctl restart sshd ile yeniden başlatılabilir.
Güvenlik Duvarları
Hizmetlerin ağa maruz kalmasını düzenleyen bir yazılım (veya donanım aygıtı) güvenlik duvarı olarak bilinir. Optimum şekilde yapılandırılmış bir güvenlik duvarı, yalnızca izin verilen hizmetlerin genel kullanıma açık olmasını ve belirli bir sunucuya giriş çıkışına izin verilmesini sağlar.

Bir sunucuda varsayılan olarak birkaç hizmet çalışıyor olabilir ve bunlar aşağıdaki gruplara ayrılabilir:
- Dahili hizmetler: Bunlara yalnızca sunucunun kendisinden dahili olarak erişilmelidir. Bu, hizmetlerin genel kullanıma açık internet erişilebilirliğine maruz kalmasını önler (örneğin: yalnızca yerel bağlantılar üzerinden erişilebilen bir veritabanı).
- Genel hizmetler: İnternet üzerinden herkes tarafından, genellikle anonim olarak erişilebilen hizmetler. Bunlar, sitenize ziyaretçiler tarafından erişilmesine izin veren web sunucularını içerir.
- Özel hizmetler: Bu hizmetlere yalnızca belirli bir konum kümesinden yetkilendirilmiş hesaplar erişebilir (örneğin: phpMyAdmin veritabanı kontrol paneli).
Genel hizmetler internetten erişime açık bırakılabilirken, özel hizmetler erişim parametrelerine (bağlantı türleri gibi) göre kısıtlanabilir ve dahili hizmetlerin internet tabanlı tüm erişimleri tamamen kapatılır. Bu hizmetlere erişim ve bunun hangi ayrıntı düzeyinde izin verileceği tamamen güvenlik duvarı tarafından kontrol edilir. Kullanılmayan bağlantı noktaları genellikle bunlara erişimi tamamen engelleyecek şekilde yapılandırılır.
Güvenlik Duvarı Kullanımı ile Güvenlik Artışı
Güvenlik duvarı, sunucu koruması için bir temeldir. Uygulama trafiği işlemeden önce hizmetlere giden ve hizmetlerden gelen bağlantıları sınırlamaya yarar. Elbette, hizmetleriniz için ek güvenlik özellikleri uygulayabilir ve bunları istediğiniz arayüzlerle kısıtlayabilirsiniz.
Düzgün yapılandırılmış bir güvenlik duvarı tarafından yalnızca açık kalmasını seçtiğiniz hizmetler kısıtlanmayacaktır. Bu durum, mevcut yazılım parçaları çok daha sınırlı olduğundan ve dolayısıyla bir saldırıya maruz kalma olasılığı daha düşük olduğundan, istismara açık unsurları sınırlar.
Güvenlik Duvarlarının Uygulanması
Linux sistemleri için birçok güvenlik duvarı mevcuttur. Bunlardan bazıları oldukça karmaşıktır. Ancak, tipik bir güvenlik duvarı kurulumunun yalnızca sunucunun ilk kurulumu sırasında, sunucudaki hizmetlerde değişiklikler yapıldığında yapılması gerekir. Bu işlem sadece birkaç dakikanızı alacaktır. Güvenlik duvarını kurmak ve etkinleştirmek için göz önünde bulundurabileceğiniz bazı seçenekler şunlardır:
- CentOS için, CentOS 7 üzerinde FirewallD ile Güvenlik Duvarı Kurulumu kılavuzumuzu.
- Bizim Iptables kılavuzumuz, Iptables güvenlik duvarı kurallarını listeleme ve silme adımlarında size yol gösterebilir.
En önemlisi, hangi kılavuzu takip ederseniz edin, yeni kullanıma sunulan hizmetlerin yanlışlıkla internete maruz kalmasını önlemek için seçtiğiniz güvenlik duvarının sunucularınızdan gelen bilinmeyen trafiği engellediğinden emin olmalısınız. Erişimi açıkça yetkilendirmeniz gerektiğinde, bir hizmete nasıl erişildiğini, nasıl çalıştırıldığını ve kimler tarafından erişilmesine izin verildiğini tam olarak değerlendirmeniz istenecektir.
Sanal Özel Bulut (VPC) Ağları
Altyapınız’ın kaynaklarının, VPC olarak bilinen özel bir ağ içinde çalışması gerekir. Bu ağlar, diğer bulut tabanlı VPC ağlarından erişimi engelledikleri için daha güvenlidir. Böylece, ağın arayüzlerini genel internetten erişilemez hale getirirler.
VPC Ağları ile Güvenliği Artırma
İç iletişim için özel ağlar, genel ağ muadillerine göre tercih edilir. VPC, kaynak gruplarının belirli özel ağlara yalıtılmasına izin verir. VPC ağları yalnızca özel bağlantılar üzerinden arayüz oluşturduğundan, ağın’ın trafiği, bilgilerin ele geçirilmeye veya açığa çıkmaya karşı savunmasız olabileceği genel internete maruz kalmaktan korunur. VPC ağları, yürütme ortamlarının yanı sıra kiracıları yalıtmak için de kullanılabilir. İnternet ağ geçitleri, genel internet ile VPC ağınızdaki kaynaklar arasında tek bir erişim noktası olarak da kurulabilir.
Buna ek olarak, güvenliğin büyük bir kısmı sistemlerimizi analiz etmeyi ve tüm bileşenleri elimizden gelen en iyi şekilde güvence altına almayı gerektirir. Hizmet denetimi, sistemlerin’ kabul edilebilir protokollerini, çalışan hizmetleri ve iletişim için hangi bağlantı noktalarının kullanıldığını bilmemizi sağlar. Bu bilgiyi bilmek, yapılandırmayla ilgili en iyi kararların alınmasına yardımcı olabilir. Bu tür kararlar güvenlik duvarı ayarları, sistem izleme ve uyarıları ve hangi hizmetlerin genel olarak erişilebilir olması gerektiği olabilir.

Güvenliği Artırmak İçin Denetimden Yararlanma
Her hizmet, harici istemcileri işlemek veya dahili amaçlar için kullanılabilir. Amaç ne olursa olsun, bu hizmetlerin tümü kötü niyetli kullanıcılar için güvenlik açığı noktalarıdır. Çalışan hizmetlerin sayısı arttıkça, güvenlik açıklarından yararlanılma potansiyeli de artar.
Bir makinenin hangi hizmetleri çalıştırdığını tam olarak anladıktan sonra hizmetleri analiz etmeye başlayabilirsiniz. Bir hizmet denetimi gerçekleştirirken, aşağıdaki soruları sormak faydalıdır:
- Belirli hizmetin aktif olarak çalışması gerekiyor mu?
- En uygun ağ arayüzlerinde mi çalışıyor?
- Hizmet en çok genel mi yoksa özel mi bir ağ arayüzü için uygundur?
- Güvenlik duvarı kuralları, bu hizmete meşru trafiğe izin verecek şekilde doğru yapılandırılmış mı?
- Güvenlik duvarı kurallarımla meşru olmayan trafik engelleniyor mu?
- Güvenlik açıkları hakkında etkinleştirilmiş bir uyarı sistemi var mı?
Altyapıya yeni bir sunucu eklerken, yukarıdakiler yapılandırma sürecinde standart uygulamalar olmalıdır. Hizmet denetimlerinin ek bir faydası da, istem dışı olarak değişen yapılandırmaların tespit edilmesini sağlamasıdır.
Hizmet Denetimleri Gerçekleştirme
Çalışan hizmetleri denetlemek için, bir sunucuda aktif olarak kullanılan tüm UDP ve TCP bağlantı noktalarını listelemek üzere ss komutunu kullanın. İşte dinleyen TCP ve UDP bağlantı noktalarını kontrol eden, PID program adına sahip ss komutunun kullanımına bir örnek:
|
1 |
sudo ss -plunt |
Aşağıdakine benzer bir sonuç döndürülecektir:

Ana odağınız Netid, Local Address:Port ve Process sütunları olmalıdır:
- Local Address:Port değeri 0.0.0.0 ise bu, hizmetin tüm IPv4 ağ arayüzlerindeki tüm bağlantıları aktif olarak kabul ettiği anlamına gelir. Adres [::] ise, tüm IPv6 bağlantıları trafiği kabul ediyor demektir.
- Yukarıdaki örnekte, hem Nginx hem de SSH, her iki ağ yığınındaki (IPv4 ve IPv6) tüm genel arayüzlerde dinleme yapmaktadır.
Yukarıdaki örnekle, SSH ve Nginx'in her iki arayüzde mi yoksa yalnızca birinde mi dinlemesine izin vermeniz gerektiğini seçebilirsiniz. Genellikle, çalışmasını engellemek için kullanılmayan tüm hizmetleri devre dışı bırakmak istersiniz. Örneğin, sitenize yalnızca IPv4 üzerinden erişilebilmesi gerekiyorsa, maruz kalmayı sınırlamak için IPv6 arayüzlerini kapatmak yardımcı olacaktır.
Katılımsız Güncellemelerle Güncel Kalma
Katılımsız güncellemeler, sunucularınızı güvende tutmak için gereken çaba düzeyini azaltır ve bilinen hatalara maruz kalma sürelerini kısaltmaya yardımcı olur. Sunucunuzda güncellemeleri çalıştırmanız ne kadar uzun sürerse, bilinen güvenlik açıklarına o kadar uzun süre maruz kalır. Katılımsız güncellemeler, düzeltme paketleri kullanıma sunulur sunulmaz, güvenlik açığı süresini sınırlamak için sunucuya otomatik olarak yüklenmelerini sağlayacaktır.
Sunucu denetimine ek olarak, katılımsız güncellemeler saldırılara maruz kalma oranını büyük ölçüde azaltabilir. Ayrıca sunucu bakımına harcanan süreyi de büyük ölçüde azaltacaktır.
Katılımsız Güncellemeler Nasıl Etkinleştirilir
Katılımsız güncellemeler artık çoğu sunucu dağıtımında isteğe bağlı bir özelliktir. Örneğin Ubuntu'da, yönetici aşağıdaki komutu çalıştırabilir:
|
1 |
sudo apt install unattended-upgrades |
Katılımsız güncellemelerin uygulanması hakkında ek bilgi için şuraya göz atın: buradaki Otomatik Güncellemeler bölümüne. Fedora için, talimatlar burada bulunabilir. Lütfen otomatik güncellemelerin yalnızca başlangıçta sistem paket yönetim sisteminiz aracılığıyla yüklenen yazılımları yükleyeceğini unutmayın. Web tabanlı olanlar gibi ek uygulamaların, güncellemeler için manuel olarak ayrı ayrı kontrol edilmesi veya otomatik güncellemeler için ayrı ayrı yapılandırılması gerekecektir.
Dizin İndeksleri
Bir dizinde indeks dosyası bulunmadığında, çoğu sunucu varsayılan olarak dizin indekslerini gösterecek şekilde yapılandırılmıştır. Başka bir deyişle, web sunucunuzda 'downloads' adında bir dizin oluşturulduysa, bu dizine göz atan herkes dizindeki tüm dosyaları görebilecektir. Bu her zaman bir güvenlik riski olmasa da, gizli bilgilerin yetkisiz kişilerin görebileceği şekilde açığa çıkmasına neden olur. Örnek olarak, web sunucunuzda web sitenizin ana sayfa erişim kimlik bilgilerini içeren bir dosya ve sitenin veritabanı arka ucuna ait tüm yapılandırmaları içeren bir dosya bulunabileceğini düşünün. Dizin indeksleri devre dışı bırakılmazsa, bu dosyalar o dizine göz atan herkes tarafından görülecektir.
Dizin İndeksini Devre Dışı Bırakarak Güvenliği Artırma
Dizin indeksleri yararlı olsa da, dosyaların istenmeden açığa çıkmasına neden olabilir. Bu tür istenmeyen ifşaları ve ilgili riskleri azaltmak için, sunucudaki dizin indeksleri varsayılan olarak devre dışı bırakılmalıdır. Dosyalara ziyaretçiler tarafından hala erişilebilse de, istenmeyen veri görüntüleme riski önemli ölçüde sınırlandırılmış olur.
Dizin İndekslerini Devre Dışı Bırakma
Çoğu durumda, web sunucunuzun yapılandırmasına yalnızca bir satır daha eklemek, dizin indekslerini devre dışı bırakmak için yeterlidir.
- Şu Apache Wiki'deki dizin listelerini devre dışı bırakma adımlarını izleyin. Apache Dizin yapılandırma bloklarında Options -Indexes ifadesinin yer aldığından emin olun.
- İndeksler Nginx'te varsayılan olarak devre dışıdır ve bu konuda başka bir işlem yapılması gerekmez.
Sık Yedeklemeler
Yedeklemeler bir güvenlik önlemi olmasa da, sistemin ele geçirilmesi durumunda verileri ve tüm sistemleri korumak için zorunludur. Ayrıca sistemin nasıl saldırıya uğramış olabileceğini analiz etmeye de yardımcı olur. Sisteminizin fidye yazılımı (sisteminizdeki dosyaları şifreleyen ve yalnızca bilgisayar korsanına para ödemeniz durumunda şifrelerini çözen bir virüs veya kötü amaçlı yazılım aracı) tarafından saldırıya uğradığı talihsiz bir senaryoyu düşünün. Verilerin yedeği yoksa, tek seçeneğiniz verilerinize yeniden erişim sağlamak için parayı ödemektir. Veriler güvenli bir şekilde yedeklenirse, bunlara erişmeye devam edebilir ve güvenliği ihlal edilmiş sisteme erişmeye gerek kalmadan verileri kurtarabilirsiniz.
Sık Yedeklemelerle Güvenlik Artışı
Sık yedeklemeler; saldırı, bozulma veya hatta istenmeyen kayıplar (silinme) nedeniyle bilgilerin geri kazanılmasına yardımcı olur. Veri kaybına ne tür olumsuz olaylar yol açarsa açsın, sunucu verilerinin kopyalarının tutulmasıyla risk azaltılır.
Fidye yazılımı saldırılarının yanı sıra, sık yedeklemeler uzun vadeli sistem saldırılarının ölçülebilir şekilde araştırılmasına yardımcı olabilir. Verilerinizi güvenli bir şekilde yedekleme biçiminde saklamıyorsanız, saldırının kaynağını ve hangi verilerin ele geçirildiğini belirlemek zor, hatta imkansız olabilir.
Sık Yedeklemelerin Uygulanması
Sistemlerinizi yedeklerken, bozulmuş, ele geçirilmiş veya silinmiş verilerin doğrulanabilir şekilde kurtarılmasını kurtarma çabalarınızın hedefi olarak belirlemek son derece önemlidir. En iyi şekilde ifade etmek gerekirse, sunucunuz yarın yok olsaydı sizi tekrar çalışır duruma getirmek için hangi eylemlerin en az çabayı gerektireceğini düşünün.
Bir felaket kurtarma planı düşünürken göz önünde bulundurulması gereken diğer bazı noktalar şunlardır:
- Dinamik olarak değişen verilerle çalışıyorsanız, yedeklemelerinizin muhtemelen daha sık yapılması gerekecektir. Veri kaybı durumunda, son yedeklemeniz çok uzun zaman önce yapılmışsa, güncelliğini yitirmiş verilere geri dönmek zorunda kalabilirsiniz.
- Gerçek yedekleme geri yükleme sürecini düşünün. Bunun için yeni bir sunucu eklenmesi mi gerekecek yoksa mevcut sunucu geri yüklenebilir mi?
- Sunucunun çalışamaz durumda kalabileceği en uzun süre nedir?
- Site dışı (offsite) yedekleme gerekli bir çözüm müdür?
CloudSigma’nın Felaket Kurtarma (Disaster Recovery) çözümleri hakkında daha fazla bilgi edinmek için şu ayrıntıları içeren blog yazımıza göz atın: Hizmet Olarak Felaket Kurtarma (Disaster-Recovery-as-a-Service) çözümümüzün neden bulut için mükemmel bir tamamlayıcı olduğu. Ayrıca şunun hakkında daha fazla bilgiyi burada bulabilirsiniz: CloudSigma’nın güvenlik & iş sürekliliği özellikleri. Ayrıca şu konuda da ayrıntılı bir rehberimiz bulunmaktadır: CloudSigma’nın yedekleme işlevinin kolayca nasıl kurulacağı.
Özel Ağlar ve VPN'ler
Özel ağ, yalnızca belirli kullanıcıların veya sunucuların erişimine ve kullanımına açık olan bir ağdır. Uzak cihazlar arasında, bağlantının özel bir ağdaymış gibi çalışmasını sağlayan güvenli bir bağlantı, bir VPN'dir (sanal özel ağ). Bu, size özel bir ağdaki bağlantıları güvence altına alma ve uzak sunucuları bağlama yeteneği sağlar.

Özel Ağlar Güvenliği Nasıl Artırır?
Dahili iletişim için genel (kamusal) ve özel ağlar arasında bir seçim yapılması gerektiğinde, ikincisi her zaman tercih edilen seçenektir. Ancak, veri merkezindeki diğer kullanıcıların da aynı ağa erişebileceğini unutmayın. Bu, sunucular arasındaki iletişimin güvenli olmasını sağlamak için ek güvenlik önlemlerinin hala uygulanması gerektiği anlamına gelir.
Esasen, bir VPN kullanmak, kuruluşunuzun çalışanlarının neleri görebileceğini belirlemeye yönelik bir yaklaşımdır. Yazışmalar tamamen güvenli ve gizli olacaktır. Uygulama yapılandırmaları, sanal arayüz trafiğinin VPN üzerinden geçirilmesine izin verecektir. Böylece, yalnızca internet üzerinden müşteri etkileşimi için tasarlanmış hizmetlerin genel bir ağa açılmasına izin verilecektir.
Bir VPN Uygulamak Ne Kadar Zordur?
Özel ağlardan yararlanmak, veri merkeziniz için uygulamalarınızı ve güvenlik duvarınızı özel bir ağ kullanacak şekilde yapılandırmak ve sunucunuzun oluşturulması sırasında VPN'i etkinleştirmek kadar basittir. Diğer sunucuların, veri merkezi genelindeki özel ağlarla aynı ağ alanını paylaştığını unutmamak önemlidir.
Bir VPN'in ilk kurulumu biraz daha karmaşıktır. Ancak bunun sağladığı ek güvenlik, çoğu kullanım senaryosu için buna değer. Yapılandırma verilerinin ve paylaşılan güvenliğin ağdaki her sunucuya kurulması ve yapılandırılması gerekir. Şu konuda daha derinlemesine bilgi için: bir VPN'in nasıl çalıştığı ve Ubuntu üzerinde OpenVPN kurulumuna genel bakış için bu kılavuzu takip edin. Ayrıca sizi şu adımlardan geçiren bu öğreticiyi de takip edebilirsiniz: bir VPN ağını CloudSigma’nın altyapısına bağlama adımları.
SSL/TLS Şifrelemesi ve Açık Anahtar Altyapısı

Kişileri tanımlamak ve iletişimi şifrelemek için sertifikaların üretilmesi, yönetilmesi ve doğrulanması Açık Anahtar Altyapısı (PKI) olarak adlandırılır. Farklı varlıklar, SSL veya TLS sertifikaları kullanılarak birbirlerine doğrulanabilir. Bundan sonra, şifreli iletişim kurmak için de kullanılabilirler.
Sertifikalar Güvenliği Nasıl Artırır?
Bir sunucudaki trafiği şifrelemek ve üye kimliklerini doğrulamak için bir sertifika yetkilisi (CA) oluşturmak ve ağınızın tüm sertifikalarını görebilmek hayati önem taşır. Bu, sunucunun bir bilgisayar korsanı tarafından taklit edildiği ve trafiğin başka yöne yönlendirildiği 'ortadaki adam' (man-in-the-middle) saldırılarını önlemeye yardımcı olabilir.
Her sunucunun yapılandırması, merkezi bir CA'ya güvenecek şekilde ayarlanabilir. Sonraki tüm sertifika imzalarına doğrudan güvenilebilir. Sunucunuzun kullandığı protokoller ve uygulamalar tarafından SSL/TLS şifrelemesi destekleniyorsa, VPN tüneli yükü olmadan sisteminizi güvence altına alabilirsiniz. Daha fazla bilgi için şu Nginx için LetsEncrypt SSL sertifikası yenilemelerinin nasıl otomatikleştirileceğine ilişkin öğreticimizi takip edin.
Uygulama Zorluğu
Bir sertifika yetkilisini yapılandırmak ve ardından geri kalan PKI'yı kurmak başlangıçta çok fazla çaba gerektirebilir. Ayrıca, yeni sertifikaların oluşturulması, iptal edilmesi veya imzalanması gerektiğinde ek yönetim çabası gerekecektir.
Çoğu altyapının büyümesi gerektiğinden, tam teşekküllü bir PKO uygulamak en mantıklı yaklaşımdır. PKI'nın ek yönetim maliyetlerine değeceği bir noktaya ulaşana kadar, sistemin bileşenlerini güvence altına almak için bir VPN kullanmak yeterli bir geçici çözüm olabilir.
Sistem Sızmasını Algılama ve Dosya Denetiminden Yararlanma
Dosya denetimi, sisteminizin tamamen güvenli ve iyi durumdaki dosyalarını ve bunların özniteliklerini sisteminizin mevcut durumuyla karşılaştırmak için kullanılan bir süreçtir. Bu, yetkisiz sistem değişikliklerini bulmak ve izole etmek için iyi bir yöntemdir.

Bir IDS, saldırı tespit sistemi, sistemdeki her türlü yetkisiz etkinliği takip eden izleme yazılımını ifade eder. Genellikle, beklenmeyen sistem değişikliklerini aramak için dosya denetim yöntemlerini kullanır.
Güvenliğin IDS/Dosya Denetimi ile Artırılması
Yalnızca hizmet düzeyinde denetimin ötesinde, dosya düzeyinde denetimler gerçekleştirmek sisteminizin güvenliğini sağlamak için çok önemlidir. Bu, otomatik bir IDS süreciyle yapılabileceği gibi sistem yöneticisi tarafından periyodik olarak da gerçekleştirilebilir.
Dosya denetimleri ve IDS, sistemin beklenmedik herhangi bir değişikliğe uğramadığından emin olmak için tek gerçek süreçlerdir. Çoğu davetsiz misafir, istila ettikleri sunucuları uzun süreler boyunca kötüye kullanmak ister ve bunu yapabilmek için eylemlerinin gizli kalmasını sağlamalıdırlar. İkili dosyaları savunmasız veya güvenliği ihlal edilmiş sürümlerle değiştirebilirler. Sistemde değiştirilen tüm dosyalar bir dosya sistemi denetimi tarafından tespit edilecektir. Bu, sistemin bütünlüğünün tehlikeye girip girmediğini çok hızlı bir şekilde öğrenmenin rahatlığını sağlar.
Uygulama Zorluğu Derecesi
IDS ve dosya denetiminin uygulanması çok yoğun bir süreç olabilir. Başlangıçta sistem, hariç tutulacak yolları tanımlayacak ve sistemin temel bir okumasını oluşturmak amacıyla sistemde yapılmış standart dışı değişiklikleri belirleyecek şekilde yapılandırılmalıdır.
Herhangi bir güncelleme çalıştırılmadan önce prosedürlerin sistemi yeniden kontrol etmesi gerekeceğinden, günlük işlemler de daha zahmetli hale gelir. Sistem ölçümlerinin temel çizgisi, sistemin yeni temel çizgisinin bir parçası olarak yazılım sürümü değişikliklerini yakalamak için yeniden oluşturulmalı veya yeniden belirlenmelidir. Denetim raporlarının da alternatif bir konuma aktarılması gerekecektir. Bunun nedeni’dir ki, sisteme sızan birinin izlerini kapatarak gizli kalmak için denetimi değiştirmesini engellemeniz gerekir.
Bu durum sisteminizin yönetim yükünü kesinlikle artırsa da, bilginiz dışında hiçbir dosyanın değiştirilmediğinden emin olmanın tek kesin yoludur. En popüler saldırı tespit ve dosya denetim sistemlerinden bazıları Aide ve Tripwire.
İzole Ortamlar
Bireysel bileşenlerin kendi özel alanlarında çalıştırıldığı her türlü yöntem, izole yürütme ortamları olarak adlandırılır.

Bu, belirli uygulama bileşenlerinin kendi özel sunucularında barındırılacağını veya hizmetlerinizin chroot ortamlarında (veya konteynerlerde) çalışacak şekilde yapılandırılabileceğini gösterebilir. Ortamın ne kadar izole olduğu çoğunlukla altyapınızın gerçeklerine ve uygulamanızın gereksinimlerine bağlıdır.
İzole Ortamlarla Güvenliği Artırma
Sürecinizi bağımsız ortamlara izole ederek, güvenlik açıklarından hangi süreçlerin etkilenebileceğini de izole etmiş olursunuz. Bölmelerin ve su geçirmez perdelerin gemilerdeki gövde yırtılmalarını kontrol altına almaya yardımcı olması gibi, sisteminizin bağımsız parçalarını ve bileşenlerini ayırdığınızda, bir davetsiz misafir bunlardan birine erişim sağlasa bile, birbirine bağlı tüm ağ sistemine ulaşamaz.
Uygulama Zorluğu
Uygulamalarınızı izole etmenin karmaşıklığı, kullanmaya karar verdiğiniz kapsayıcı türlerine bağlı olarak değişir. Docker, izolasyonu bir güvenlik özelliği olarak görmez. Ancak bileşenleriniz farklı kapsayıcılara bölündüğünde, izolasyon çok daha kolay bir şekilde sağlanır. Bu altyapımıza Docker kurma kılavuzunu takip edebilirsiniz.
chroot ortamları kurulduğunda da bir dereceye kadar izolasyon sağlanır. Ancak bu, tamamen aşılamaz bir yöntem değildir; çünkü böyle bir ortamdan çıkmanın yolları vardır. Farklı bileşenler için özel makineler kullanmak, genellikle izolasyon sağlamanın en iyi ve en basit yoludur. Ancak ek makine gereksinimi nedeniyle daha maliyetlidir.
Son Düşünceler
Sunulan stratejiler, sisteminizin güvenliğini artırmak için atabileceğiniz adımlardan yalnızca bazılarıdır. Güvenlik özelliklerini uygulamak için ne kadar uzun süre beklerseniz, etkinliklerinin o kadar azalacağını belirtmekte fayda var. Bunu akılda tutarak, güvenliğin ertelenmemesi gerektiğini garanti altına almak önemlidir. Bunun yerine, altyapı oluşturmanın ilk koşullarından biri olarak uygulanmalıdır. Sisteminiz temel korumalarla yeterince güvenli hale getirildiğinde, güvenli bir ortamda varsayılan olarak çalıştıklarını bilerek hizmetleri etkinleştirmeye ve uygulamaları eklemeye başlayabilirsiniz.
Ancak güvenlik durağan bir süreç değil, akışkan bir süreçtir. Sürdürülmesi ve yinelenmesi gerekir. Sürekli bir farkındalık ve kalıcı bir teyakkuz zihniyetiyle yaklaşılmalıdır. Herhangi bir sistem değişikliğinin getireceği güvenlik etkilerinin neler olduğunu her zaman sorgulayın. Çalışma ortamlarının ve varsayılan yapılandırmaların her zaman güvenliği optimize ettiğinden ve yeterince savunma odaklı yazılımlarla çalıştığından emin olun.
Keyifli Bilişimler!
Yorumlar
Henüz yorum yapılmamış. İlk siz olun.