vSwitch özelliği ile Hetzner’da, dedicated sunucularımız için sanal olarak L2 ağları oluşturup bunları bir birine bağlayabiliriz, konum fark etmeksizin tüm dedicated makinelerde uygulanabilir. Hetzner Cloud sunucular ile bağlantı sağlanabilir. Ek bir ağ kartına ihtiyaç yoktur.
Kısıtlamalar
1TB trafik ücretsizdir sonrası 1€/TB ile ücretlendirilir. Hetzner lokasyonları arasındaki trafikler fiyatlandırmaya dahil değildir.
32 MAC adres sınırı(Sanallaştırma kullanacaklar için)
Bir vSwitch’e en fazla 100 sunucu atayabilirsiniz.
Bir sunucuya en fazla 5 vSwitch atayabilirsiniz.
Network hızınız makinenizin çıkış hızını geçemez.
Güvenlik duvarı kuralları vSwitch trafiğinizde etkiler.
MTU 1400 değerini geçemez ve Jumbo Frame desteklenmez.
Sunucunun ana IP adresine ve ek IP adreslerine ve/veya alt ağlara VLAN tag yapmadan da erişilebilir.
“Server” -> “vSwitches” seçeneğini seçin Ardından vSwitch’inize bir ad ve bir VLAN kimliği atayın. VLAN kimliği 4000 ila 4091 arasında değişebilir.
Oluşturduğunuz vSwitch’te istediğiniz gibi değiştirebilirsiniz. Ancak içerisine makine eklemeye başladığınızda bunu yapmanız başınızı ağrıtmaya başlar. VLAN ID değiştirdiğinizde makineler arasındaki erişimleriniz kesilir Bu sebeple sıralı bir şekilde atama yapmanızı öneririm.
VLAN içinde herhangi bir özel IP adresini ücretsiz olarak kullanabilirsiniz. Ayrıca, “IP’s” menüsü ile genel alt ağlar (IPv4 ve IPv6) sipariş edebilirsiniz. Bu alt ağları vSwitch’inize atadığınız tüm sunucularda kullanabilirsiniz.
Aldığınız sunucuları L2 ile birleştirme sırasında yapacağınız network yapılandırması çok önemli, public ip adresi ile aynı interface kullanacağınız için düzgün bir yapılandırma şart
Debian
auto enp195s0.4000iface enp195s0.4000inetstatic address 10.14.2.12/24 vlan-raw-device enp195s0 mtu 1400 up iprouteadd10.14.0.0/16via10.14.2.1devenp195s0.4000 down iproutedel10.14.0.0/16via10.14.2.1devenp195s0.4000
ShellScript
Bundan sonra aşağıdaki komutu çalıştırarak interface yapılandırmasını yeniden başlatalım
Artık başarılı şekilde vSwitch’te yer alan diğer makinelere private network üzerinden istek atabileceksiniz. Gateway olarak kullanılan ip adresine istek atılamayacağını unutmayınız. Testlerinizi yapmak için aynı network’te bulunan başka makinelerden ping ve traceroute testlerinizi yapabilirsiniz.
Bulut bilişim teknolojileri günümüzde işletmeler ve geliştiriciler için vazgeçilmez bir altyapı haline geldi. Hetzner Cloud, uygun fiyatlı ve yüksek performanslı bulut sunucu çözümleriyle dikkat çeken platformlardan biri. Peki nasıl Hetzner Cloud hesabı açabilir ve bulut sunucularınızı kolayca yönetebilirsiniz?
Bu rehberde, Hetzner Cloud hesabı açmanın detaylı adımlarını ve ipuçlarını paylaşacağız. İster bir yazılımcı, ister bir girişimci olun, Hetzner Cloud size esnek ve ölçeklenebilir bir altyapı sunuyor.
Adımlar
Herhangi birinden referans bulun, bu linkten benim referansımı kullanabilirsiniz. Hesabınızın onaylanma sürecinde yasaklanmamak için gerekiyor. Referans olmadan üyelikler yasaklanabiliyor.
VPN/Proxy gibi anonimlik sağlayan araçları kesinlikle kullanmayın.
Sizden istenen bilgileri eksiksiz ve doğru bir şekilde girin.
KYC sürecinde sıkıntı yaşamamak için kimliğinizi renkli ve okunaklı olacak şekilde fotoğrafını çekin.
Ödemeleri yapacağınız kartınızı sadece hetzner’da kullanacak şekilde ayarlayın, sanal olacaksa içinde mutlaka para bulunsun
Tüm hepsini yaptınız ama hesabınız bir şekilde yasaklandı veya onaylanmaysa ne yapacağım diye düşünmeyin. Uzun süre sonra veya başka bir bilgisayar ve internet sağlayıcısı ile tekrar deneyin.(Eşiniz dostunuz arkadaşınız vs olabilir.)
S3 uyumlu Object Storage, verileri “Bucket” kaydetmeniz için size depolama alanı sağlar. Hetznerda bu kaydettiğiniz tüm veriler bir Ceph clusterinde kaydedilir. Herkese açık olarak kullanırsanız aşağıdaki şekilde herkes erişebilir.
Yüklenen dosyalar değiştirilemez, bu sebeple temel amaç WORM(Write once, read many [times]) olarak kullanılmasıdır.
Statik bir web sitesi barındırma
Yedeklerin tutulması
Verileri halka açık veya özel bir şekilde paylaşılması
Diğer bulut tabanlı uygulamalar ile kullanılabilir herhangi bir kısıtlama bulunmamaktadır. Hetzner’ın Object Storage ürünü S3 ile uyumludur bu sebeple S3-compatible olarak geçen tüm uygulamalar ile sorunsuz çalışabilmektedir Amazonun resmi olarak geliştirdiği bütün yazılımları kullanabilirsiniz.
Bu yapılandırmayı Hetzner’ın desteklediği özellik setine göre yaptığımızı hatırlatırım.
Özellik
Desteklenen Standart
AWS Signature version
Version 4 algorithm
Storage classes
Standard
Server-Side Encryption (SSE)
SSE-C
Hetzner’da S3 Bucket Nasıl Oluşturulur?
Arayüz üzerinden direk olarak S3 bucket oluşturmak için Proje içerisinde sol menüden “Object Storage” seçilir. “Create Bucket” butonuna tıklanır ve uygun şekilde doldurulur.
“Create & But Now” dendiği anca bucketiniz hazırlanmaya başlar ve çok kısa bir sürede aktif olur. Panelinizde aşağıdaki gibi gözükmeye başlar.
Dosyalarınızı ister “Files” sekmesinden “Upload Files” yönergeleri ile yapabilir, isterseniz de S3 API destekli uygulamalar üzerinden yükleyebilirsiniz.
Hetzner S3 Credentials Nasıl Alınır?
Sol menüde bulunan “Security” geçiş yapın, hemen ardından “S3 Credentials” sekmesine tıklayın. Karşınıza çıkan alandan “Generate credentials” deyin ve bir açıklama girin.
Size aşağıdaki gibi 2 adet anahtar verecek bunlarla bucketınıza erişerek istediğiniz işlemleri yapabilirsiniz.
Diğer sağlayıcıların aksine oluşturduğunuz bu anahtar için erişim kuralı girebilirsiniz. Hangi bucketa erişmesi gerekiyorsa onun için kısıtlayabilirsiniz.
project_id: Oluşturduğunuz projenin ID’si tarayıcının üstünde yazar(https://console.hetzner.cloud/projects/<project-ID>/servers)
access_key: Sistemden almış olduğunuz access key bilgisi
Nesnelerinizin yanlışlıkla silinmesini önlemek için Sürüm Oluşturma özelliğini kullanabilirsiniz. Her nesneye otomatik olarak bir sürüm kimliği atanır, bu da aynı nesnenin birkaç sürümünü tek bir bucket içinde tutmanıza olanak tanır. bucket içinde zaten var olan bir ada sahip bir nesne yüklerseniz (örn. cemil.txt), var olan nesne silinmez; bunun yerine nesneler sürüm kimlikleriyle ayırt edilir. Nesnelerin manuel olarak silinmesi hala mümkündür. Ancak farklı versiyonları bucket içerisinde durmaya devam eder.
Nesne Kilitleme, seçilen nesnelerin manuel olarak silinmesini devre dışı bırakmanıza olanak tanır. Nesne kilitleme ile “legal hold” ve “retention” seçenekleri arasında seçim yapabilirsiniz. Legal hold, tekrar manuel olarak kaldırılana kadar bir nesnenin silinmesini önler. Retention, bir nesnenin belirli bir süre geçene kadar silinmesini önler.
Retention’nın iki farklı modu vardır: “Governance” ve “Compliance”.
Otomatik silme
Manuel silme
Aynı ada sahip nesneler
Versioning
devre dışı
etkin
Bir nesneyi silmek için önce yasal tutmayı kaldırmanız gerekir. Bu herhangi bir özel izin gerektirmez, ancak yanlışlıkla silmeyi önlemeye yardımcı olabilecek ekstra bir adım ekler.
Legal Hold
Versioning is automatically enabled and you cannot disable it.
Bir nesneyi silmek için önce “legal hold” kaldırmanız gerekir. Bu herhangi bir özel izin gerektirmez, ancak yanlışlıkla silmeyi önlemeye yardımcı olabilecek ekstra bir adım ekler.
Sürüm oluşturma otomatik olarak etkinleştirildiğinden, farklı bir sürüm kimliğine sahip yeni bir nesne eklenir. Yeni nesne için “legal hold” tekrar etkinleştirmeniz gerekecektir.
Retention (Governance Modu)
Sürüm oluşturma otomatik olarak etkinleştirilir ve bunu devre dışı bırakamazsınız.
Yalnızca özel izinlere sahip kullanıcılar saklama süresini daha erken sonlandırabilir ve nesneyi orijinal saklama süresi sona ermeden silebilir.
Sürüm oluşturma otomatik olarak etkinleştirildiğinden, farklı bir sürüm kimliğine sahip yeni bir nesne eklenir. Yeni nesne için saklama süresini yeniden ayarlamanız gerekecektir.
Retention (Compliance Modu)
Sürüm oluşturma otomatik olarak etkinleştirilir ve bunu devre dışı bırakamazsınız.
Hiç kimse saklama süresini daha erken sona erdiremez ve saklama süresi sona ermeden nesneyi silmek mümkün değildir.
Sürüm oluşturma otomatik olarak etkinleştirildiğinden, farklı bir sürüm kimliğine sahip yeni bir nesne eklenir. Yeni nesne için saklama süresini yeniden ayarlamanız gerekecektir.
Minio kullanarak object lock aktif etme
mc mbhetzner-bucket/mertcangokgoz--with-lock--regionfsn1
CHR, bulut tabanlı bir routerdır VPN hizmetleri ve diğer ağ yönetimi görevleri için ideal olan sanal bir MikroTik ürünüdür.
Kullanıcılar, RouterOS CHR’yi Hetzner Cloud üzerinde çalıştırarak, bir bulut ortamının esnekliği ve ölçeklenebilirliği ile güçlü ağ araçlarından yararlanabilirler. Linux bir işletim sistemini router olarak yapılandırmanıza gerek kalmaz. Kur kullan modeliyle istediğinizi yapabilirsiniz.
Hetzner Cloud üzerinde yeni bir sunucu oluşturarak süreci başlatın. Mevcut sunucu seçeneklerinden herhangi birini seçin ARM veya x86 hiç fark etmez. Sunucuya hangi işletim sistemini kuracağımızın gram önemi yok.
Yönetim arayüzünde yer alan “ENABLE RESCUE & POWER CYCLE” seçeneğini seçerek kurtarma sistemini etkinleştirin.
Kurtarma işletim sistemi olarak linux64 seçmeyi unutmayın.
Sistem bir kullanıcı adı ve şifre görüntüleyecektir. SSH aracılığıyla kurtarma sisteminde oturum açmak için bu kimlik bilgilerini kullanın.
Kurtarma sisteminde oturum açtıktan sonra, MikroTik CHR’nin RAW disk imajını indirin ve aşağıdaki komutu kullanarak bulut sunucusunun sistem diski üzerine yazın:
Kurulum çok kısa sürecek sonrasında reboot komutu ile sistemi yeniden başlatın. Ama elinizi çabuk tutun Mikrotik routerinizin ön tanımlı bir parolası bulunmuyor bu sebeple hemen girip bir parola ve güvenlik önlemlerini almanız gerekiyor.
Hetzner üzerinden bir bare metal yani dedicated bir makine aldınız ve installimage uygulaması ile kurulmayan bir işletim sistemi yüklemek istiyorsunuz. Genellikle ESXi veya NAS çözümlerini kurarken bu yöntemi tercih ederiz, işlem ise çok basit
Önce hangi imaj kurulacaksa onu indirip destek ekibinin indirebilmesi ve boot edebilmesi için Google Drive veya OneDrive yükleyin.
Ardından aşağıda size örnek olması için yazdığım mesajda gerekli alanları doldurun.
Satın aldığınız makinenin detaylarına gidin Robot > Server > İşlemin uygulanacağı makinenin seçimi > Support > “Remote Console” seçeneğini seçin
“When would you like to use the remote console?” sorunun cevabını durumunuza göre seçin bana hemen lazım olması sebebiyle “As soon as possible” seçeneğini seçtim. Destek ekibinin üzerindeki yük ve sıranıza göre otomatik olarak KVM bilgileri iletilecek.
HelloUSB install iso for <ISO> my own uploaded .iso file please:<URL>Boot + Mount + Enable KVM for 3 hour please.
Plaintext
Ardından destek size KVM erişiminin yer aldığı bir e-posta iletecek sürenizde böylelikle başlamış olacak 3 saatiniz var istediğinizi yapın makinede, işiniz uzarsa 10€ ek ücret yansıtıldığını unutmayın.
Öncelikle Amazon AWS tarafındaki terraform modülünün ne kadar boktan olduğunu DevOps ile uğraşanları tamamı bilir. Modüller olmasa birisi hayrına bazı şeyleri yazmamış olsa 500 türlü takla atmak gerekiyor bir işi yapmak için. Bugün sizlere Route53 üzerinde Terraform ile DNSSEC aktivasyonunu göstericem. Bazıları bunları önemsemiyor veya alan adları farklı sağlayıcılarda olduğu için kullanmıyorlar.
Ama DNSSEC ciddi anlamda sizi DNS üzerinden gelecek saldırılarından korur. Bu korumayı sadece DDoS olarak düşünmeyin, DNSSEC Nedir? bir bakın sonra aktifleştirmek isteyebilirsiniz.
ESXi kurulumunu ESXi Kurulumu Nasıl Yapılır? makalesi ile yaptınız ve servislerinizi dışarı açacaksanız ki özellikle subnet satın almışsanız makinede 1 Adet Router VM ihtiyacınız olacaktır. Bu VM alınan subnet’in internete çıkabilmesi amacıyla kullanılır ve zorunludur, aksi durumda tek tek ip adresi satın alınmalı ve servis sağlayıcısının DHCP sunucusundan ip adresi alınmalıdır. Bu örnekte Hetzner kullanıyor olacağım.
Bu Router VM bir MikroTik olabilir, router görevi gören bir Linux işletim sistemi olabilir ve/veya VyOS, OpenWRT, PfSense gibi çözümler olabilir. Bu örnekte ben MikroTik kullanıyorum.
Ücretlendirmesi sebebiyle, tekil ip satın alınmasını önermiyorum. Ancak yönlendirme amacıyla satın alınan 1 adet tekil ip üzerine “Separate MAC” isteği yapılması ve bu ip adresinin router VM’de kullanılması gereklidir. Genellikle sağlayıcı fark etmeksizin aynı işlem yapılmaktadır.
VM oluştururken verilen bu “00:50:56:00:4D:A9” mac adresi Router VM ethernet ayarlarında aşağıdaki gibi girilmelidir. Çünkü sağlayıcılar genellikle bu MAC adresleri üzerinden sizin istek yaptığınızı ve kim olduğunuzu belirler. Yani “Bridged Network” aslında sizin Uplinkinizdir.
Adapter Type VMXNET 3
MAC → Manual → Separate MAC number
“Bridged Network” Topolojisi, internete erişecek ana makine vSwitch aşağıdaki gibi gözükmelidir.
“Routed Network” Topolojisi vSwitch üzerinde aşağıdaki gibi gözükmelidir.
Her iki Network’te aynı VLAN ID’de olmalıdır. Ben bu örneği yaparken VLAN yapılandırmadığım için 0 olarak bıraktım. Trafiği izole etmek için VLAN kullanabilirsiniz.
Cloudflare workers kullanarak bir ziyaretçinin IP bilgisi üzerinden konum bilgisini alabiliriz zaman zaman bu bilgiye ihtiyacımız olur. Bu işi yapan pek çok servis var ancak fiyatları oldukça yüksek. Gelin Cloudflare ile ücretsiz bir şekilde kendi servisimizi oluşturalım, 100k isteği geçiyorsanız aylık 5$ ödeyerek kullandığınız paketi de yükseltebilirsiniz diğer servislerin ücretlendirmesine baktığımız zaman oldukça uyguna gelecek.
Cloudflare Workers’da Servis Nasıl Oluşturulur?
Cloudflare hesabınıza giriş yapıktan hemen sonra sol menüde yer alan “Workers” > “Overview” > “Create a Service” diyoruz.
Oluşturacağımız servisin adını giriyoruz daha sonra tipini seçiyoruz, bu örnekte “HTTP handler” seçin ve “Create service” tuşuna basın.
Worker Nasıl Düzenlenir?
Başarılı bir şekilde servisimizi oluşturduk, şimdi direk olarak sağda yer alan “Quick Edit” tıklayın.
Solda kod düzenleme, ortada istek atabileceğiniz bir alan ve sağda ön izleme alanı sizi karşılayacak. Sol taraftaki alana kodumuzu ekliyoruz. “Save and deploy” dediğimiz andan itibaren web sitemiz erişilebilir hale geliyor.
Kullanacağımız javascript kodumuz çok basit bir şekilde IP adresinin geolocation bilgilerini verecek ve şu şekilde olacak daha fazla sonuç almak isterseniz resmi cloudflare worker belgelendirmesine göz atabilirsiniz, kullanabileceğiniz oldukça fazla değer bulunuyor.
Sonuç olarak belirli bir isteğe kadar kullanabileceğimiz Geolocation servisimiz hazır hale geliyor. Servisimizden bir örnek https://geolocation.mertcan.workers.dev/ adresini ziyaret edebilirsiniz.
Cloudflare tarafından duyurulan Private Access Token ile artık CAPTCHA görmeyeceğiz. Bir web sitesine veya servise gidiyorsunuz, ancak size erişim verilmeden önce sizi bir dizi görüntüde bisiklet, otobüs veya trafik ışığı seçmeye zorlayan sistemler var.
Bu can sıkıcı bir deneyim hepimiz bunun farkındayız kimi zaman geçemiyoruz, hayatımızdan direk olarak her captcha çözümünde 30 saniye kadar bir süre çalınıyor. Haliyle küresel oyun kuran firmalarda bunun farkında ve çözüm üretmeye çalışıyorlar ve kısmende bulmaya çok yakınlar.
Cloudflare Private Access Token Nedir?
Temelde Privacy Pass protokolünü kullanır, ziyaretçilerin geçmişte bıraktığı izler anonim bir şekilde şifreli olarak takip edilir. Şifreli dediysem öyle veriyi alıp şifrelemez direk olarak cihazın anahtarı. Bir açık anahtar ve bir özel anahtar yer alır, cihazda yer alan özel erişim tokeni sayesinde geçerli bir kullanıcı olup olmadığı doğrulanabilir.
Cihazlarda bu özelliği kullanabilmek amacıyla doğrulanmış uygulama ve akredite gerektiğini hatırlatmamda fayda olduğunu düşünüyorum. Kafanıza göre entegre olamıyorsunuz uygulama geliştiriciyseniz öncelikli olarak başvurularınızı yapmalısınız.
iPhone’unuzda iOS 16 veya bilgisayarınızda macOS 13 varsa, o kötü günler geride kaldı. Konu ile ilgili olarak Apple’nin WWDC22’de yayınladığı aşağıdaki kısa videoya göz atabilirsiniz.
12 Eylül’de iOS 16 genel kullanıma sunuldu, böylelikle bu CAPTCHA’lara olan ihtiyacı ortadan kaldıracak Private Access Token (PAT) özelliği cihazlara gelmiş oldu. Beta’da test ettik gayet güzel çalışıyor gerçekten söylendiği gibi CAPTCHA görmüyoruz.
Private Access Token (PAT) Nasıl Etkinleştirilir?
Zaten telefonunuza iOS 16 kuruluysa, seçeneğin “açık” olduğunu doğrulamak için yapmanız gerekenler şu şekilde “Settings > Apple ID > Password & Security > Automatic Verification” böylelikle ilk aşamada Cloudflare kullanan web sitelerinde CAPTCHA karşınıza hiç bir zaman çıkmayacak.
Settings > Apple IDPassword & SecurityAutomatic Verification
Kendinizi doğrulamanız için bu sistem size hiç bir şey sormaz ve göstermez, böylelikle hem kullanıcı deneyimi iyileşmiş olur hem de vaktimizden kimse çalmamış olur. IPadOS ve macOS‘un gelecek sürümleri de dahil olmak üzere bu tokenleri destekleyen işletim sistemlerini kullanan ziyaretçiler, artık bir CAPTCHA ile uğraşmadan veya kişisel verilerini sırf CAPTCHA çözmek için vermeden insan olduklarını çok rahat kanıtlayabilirler.
Apple cihazlar harici şuan bu protokolü hiç bir şekilde kullanamazsınız aklınızda olsun.
Private Access Token (PAT) Nasıl Çalışır?
Genel olarak çalışma mantığını Cloudflare görsel olarak şu şekilde belirtmiş. Ama kısaca bahsetmemiz gerekirse, Siz web sitesine istek yaptınız tarayıcı sizin yerinize web sitesinde bir doğrulama süreci başlatır bunu yapılan entegrasyonlar ile cihaz üreticisine yaptırır.
Private Access Token (PAT)
Halihazırda bir cihazın doğrulanmasında yardımcı olacak verilere sahip olan cihaz üreticileri üçüncü taraflarla partnerlik anlaşmaları yaparak, doğrulama sürecinin bölümlerini gerektiği gibi soyutlayabilir ve bu verileri toplamadan, dokunmadan ve/veya saklamadan ziyaretçiyi doğrulayabilir. Bir cihazı doğrudan sorgulamak yerine, cihaz satıcısından(şimdilik apple) bunu yapmasını ister.
Bu sistemle yapılan entegrasyon sayesinde işlemlerin bir bot tarafından yapılmasını engellemek kolaydır, bir isteğin gerçek kullanıcıdan mı yoksa bot gibi bir araçtan mı geldiği basit bir şekilde tespit edilebilir. Böylelikle sahtecilikle mücadele etmekte kolaylaşır.
Ziyaretçi “mertcangokgoz.com” adresini ziyaret etmek için tarayıcısını açar ve bir istekte bulunur. Web sitesi Cloudflare kullandığından sistem ziyaretçinin tarayıcısından token ister.
Safari istenen bu token için apple ile API üzerinden iletişime geçer ve cihazın onaylanmasını ister.
Apple çeşitli cihaz bileşenlerini kontrol edecek, geçerli olduklarını onaylayacak ve ardından Cloudflare’ye bir API çağrısı yapar.
Cloudflare, bir tokken oluşturur, onu tekrar tarayıcıya gönderir, o da kendisine iletilen bu tokeni origin’e gönderir.
Cloudflare daha sonra bu özel tokeni alır ve bu kullanıcıya bir CAPTCHA gösterilmesine gerek olup olmadığını belirlemek için kullanır.
Süreç biraz karışık gibi duruyor evet farkındayım ancak bu süreci tamamen Cloudflare ve cihaz üreticisi yönetir, web sitesi hiç bir şekilde bu sürece dahil olmaz. Kurduğunuz web sitelerinde CAPTCHA entegrasyonu yapmak zorunda kalmazsınız.
Yıllık SSL/TLS ücretleri aldı başını gitti, ücretsiz sertifikaları da 90 günde bir olmak üzere yenilemeniz gerekiyor kimi zaman insanlar unutuyor ve siteleri SSL/TLS hatası vermeye başlıyor. Bazı barındırma hizmeti sağlayıcılarını zaten gidip ziyaret etmiş olabilirsiniz ve fiyatları görünce hemen sayfayı kapattığınızı tahmin ediyorum. Alan adınız için ihtiyacınız olan tüm önemli güvenlik özelliklerine sahip ücretsiz SSL/TLS alabilirsiniz, bunu yapmak için birkaç yolunuz var
Ücretsiz SSL Sağlayıcıları
Let’s Encrypt: Kâr amacı gütmeyen bir sertifika otoritesidir. Birçok hosting firması entegrasyon desteği sağlar ve ücretsiz SSL’yi sitenize entegre edebilirsiniz. Ancak tüm sağlayıcılar bu hizmeti sunmaz. Yine de bunu elle yapabilirsiniz. Yeni başlayan kullanıcılar için pek efektif olmaz.
Cloudflare: CDN, güvenlik duvarı, Anycast DNS, Universal SSL ve çok daha fazlasını sağlar üstelik bunu ücretsiz yapar.
ZeroSSL: kullanıcılarına ücretsiz SSL sertifikasını hızlı ve basit bir kullanıcı ara yüzü kullanarak, ACME entegrasyonlarını destekler, REST API desteği vardır. 90 günlük ve 1 yıllık sertifika geçerliliği arasında seçim yapma imkânı ile tek etki alanı, çok etki alanı veya wildcard sertifikaları destekler. Yeni başlayan kullanıcılar için pek efektif değildir.
Cloudflare ile Ücretsiz SSL Nasıl Alınır?
Ben bugün size bu rehberi hazırlarken Ücretsiz SSL için CloudFlare’yi kullanacağım. 15 yıllık ücretsiz SSL sertifikanızı sisteminize dahil edebileceksiniz.
CloudFlare birden fazla SSL şifreleme türünü destekler, bunları aşağıdaki görselden de görebilirsiniz. Merak etmeyin hepsini açıklayacağım istediğinizi seçebilirsiniz “Off (not secure)” olanı seçmeyin yeter.
Flexible: Tarayıcıdan Cloudflare’a giden tüm trafik 443 portu üzerinden SSL ile olacaktır, ancak CloudFlare kaynak sunucusuna HTTPS değil, yalnızca HTTP üzerinden bağlantı sağlayacak. Web siteniz hassas verilerle ilgilenmiyor ve kullanılmıyorsa bu yöntem sizin için yeterli, bu yöntemi etkinleştirmek için herhangi bir ekstra çabaya girmenize gerek yok.
Full: Uçtan uca şifreleme, tarayıcıdan ana sunucuya giden tüm trafik 443 portu üzerinden yapılır, geçerli veya geçersiz herhangi bir SSL sertifikası ile çalışabilir. Bu yöntemi kullanabilmek için kaynak sunucunuzun 443 portunun açık olması ve yapılandırılmış olması gerekmektedir.
Full (strict): Full ile aynıdır, ancak tek fark, CloudFlare ile kaynak sunucusu arasındaki bağlantının güvenilir bir “CA” veya “Cloudflare Origin CA” ile güvenli hale getirilmesi gerekliliğidir bu aşamayı ücretsiz ssl’ler ile de gerçekleştirebilirsiniz.
Bu anlatımda son yöntem olan Full (strict) kullanacağım, bağlantıların tamamını güvenli bir şekilde sağlayacağız. Cloudflare’ye giriş yapıyoruz, bunun sonucunda sol menüde yer alan “SSL/TLS” menüsünden “Origin Server” seçiyoruz ve “Create Certificate” diyoruz.
Ayarları aşağıdaki gibi yapabilirsiniz.
Şimdi sertifika oluşturuldu, bunu kaynak sunucunuza yüklemeniz gerekiyor. Özel Anahtarınızın bir kopyasını güvenli bir yerde saklayın. Çünkü “Ok” tuşuna bastığınız anda bir daha anahtarlarınıza erişemeyeceksiniz.
Ücretsiz SSL ile NGINX Nasıl Yapılandırılır?
Cloudflare’nin size vermiş olduğu Private ve Origin sertifikaları PEM formatında alın, aşağıdaki örnekte görebileceğiniz gibi anahtarlarınızı hazır edecek.
Aşağıdaki gibi nginx ile okuyabileceğiniz bir dizine yukarıda size verilen sertifikaları dahil edin.
Bu sertifikaların içlerinde aşağıdakiler bulunacak, ters yaparsanız hata alırsınız. Bu sebeple dikkatli davranarak ayarlamaları yapın.
cloudflare-cert.pem -> Origin Certificate
cloudflare-private.key -> Private Key
Dipnot: Bazen dosya içerisine yapıştırırken fazladan bir satır eklenir. (Dosyanın altına ve/veya üstüne) Herhangi bir boşluk kalmadığından emin olun. Nginx yapılandırma testi (nginx -t) aksi takdirde başarısız olur.
Nginx yapılandırmamızda aşağıdaki gibi değişiklik yapıyoruz.
server { listen 443; listen [::]:443; ssl_certificate /etc/nginx/certs/cloudflare-cert.pem; ssl_certificate_key /etc/nginx/certs/cloudflare-private.key; server_name example.com www.example.com;location / { include proxy_params; proxy_pass http://localhost:3000/; }}
Nginx
Şimdi her şey istediğimiz gibi lakin burada bir sorun çıkacak, yukarıda size söylemiştim “Full (strict)” ayarlayacağız diye. Bu yapılandırma ile başarılı bir şekilde kullanmaya başlayabilirsiniz.
Kaynak sunucunuza gelen isteklerin bir TLS istemci sertifikası kullanarak Cloudflare’den geldiğini kriptografik olarak doğrulamanıza olanak tanır, bu özellik genellikle yanlış yapılandırılıyor.
İşlemlerimiz sonunda tamamlandı sudo systemctl restart nginx ile NGINX’imizi yeniden başlatıyoruz. Ardından alan adınızı ziyaret edebilirsiniz. Haa unutmadan Cloudflare üzerinde “SSL/TLS” menüsü altında yer alan “Origin Server” içerisinde yer alan aşağıdaki özelliği aktif etmeyi unutmayın.
CloudFlare ile ilgili işinize yarayabilecek diğer makalelere ulaşmak için tıklayınız.
Cloudflare Ücretsiz SSL Hataları Nasıl Giderilir?
Ücretsiz SSL kurulumunu tamamladıktan sonra, web sitenizde SSL kaynaklı hata mesajları görebilirsiniz bunun pek çok sebebi olabilir.
Yeniden Yönlendirme Hataları
SSL aktif edilen web sitesinde yönlendirmelerde sorun çıkarsa tarayıcı üzerinden siteye erişilmeye çalışıldığında aşağıdaki hatalar gözükmeye başlar.
The page isn’t redirecting properly
ERR_TOO_MANY_REDIRECTS
Bu hataların bir kaç sebebi vardır, ilki web sunucusunda kaynaklanan HTTP trafiklerinin HTTPS üzerine birden fazla kez yönlendirilmesi ile oluşmaktadır. Apache ve NGINX üzerinde rewrite kurallarınızı kontrol edin.
İkincisi ise eskiden kullandığınız bir Page Rule mevcut yapılandırma ile çakışıyordur. Bunu kontrol etmek için sol menüden “Page Rule” alanına gidin ve kurallarınızı kontrol edin.
Eğer SSL şifreleme kurallarında değişiklik yaparsanız web sunucunuzda bununla ilgili değişiklikleri de yapmanız gerekir. Mod olarak Flexible kullanılan bir yapıda Full geçilirse yönlendirme sorunları oluşabilir.
İlkbyte üzerinde kurmuş olduğunuz sunucunuza yerel bilgisayarınızdan güvenli bir şekilde erişmek için SSH Anahtarı kullanmanız şiddetle önerilir. Bu makalede, yeni bir İlkbyte sunucusuna SSH anahtarı ile güvenli oturum açmayı nasıl kuracağınız konusunda ufak bir bilgilendirme yapacağım.
Yerel SSH Anahtarının Oluşturulması
Yerel makinenizde bir SSH Anahtarı oluşturmanız gerekir. SSH Anahtarını belirlemek için sonuna bir yorum ekleyeceğiz ki hangi cihazda olduğunu bilip karıştırmayalım. Bilgisayarın kendisi hakkında bazı bilgiler ekleyebilirsiniz, veya her cihazda aynı anahtarı kullanacaksanız genel bir yorum yapabilirsiniz.
RSA Anahtarının dosya konumunu belirlemenizi istenecek. Varsayılanı kabul edip devam edebilirsiniz. Değişiklik yapmanızı pek önermiyorum. Ardından, sunucuya daha fazla güvenlik eklemek için kendi parolanızı belirlemeniz gerekiyor. Güvenli bir sunucu oluşturmak için bir parola belirlemenizi şiddetle tavsiye ederim.
SSH Anahtarını İlkbyte Otomasyonuna Eklemek
Bu adımda, SSH anahtarını ilkbyte tarafında yer alan otomasyona ekleyeceğiz. Projeler ve gruplar arasında key paylaşımı yok bilginiz olsun.
SSH anahtarınızı sunucudan kopyalamak için aşağıdaki komuttan faydalanabilirsiniz.
cat ~/.ssh/id_rsa.pub | pbcopy
Gelen ekranda aşağıdaki gibi anahtarınızı girin ve "SSH Anahtarını Ekle"\’ye basın.
Otomasyona eklenen SSH Anahtarı ile bir İlkbyte bulut sunucu nasıl oluşturulur?
Sol menüden "Sunucularım" sekmesine geçilir ve "Yeni Sunucu Oluştur" botununa tıklanır.
Aşağıdaki gibi ücretlerin ve sunucu özelliklerinin yer aldığı sayfadan seçim yapılır.
"Oluştur!" butonuna tıkladıktan hemen sonra sunucuyu yapılandıracaksınız. İşte bu aşamada "SSH Anahtarı Seçimi" yapmanız gerekiyor eklediğiniz anahtarı seçin, aşağıdaki alanları doldurun.
Kullanıcı Adı
Sunucunuzu İsmi
Parola alanını boş bırakın zaten ihtiyacınızda yok. Direk olarak SSH Anahtarınız ile giriş yapabileceksiniz.
Oturum açmayı yerel bilgisayarınızdan SSH Anahtarı ile test etmek
Yerel bilgisayarınızda oturum açma işlemini başlatın. xxx.xxx.xxx.xxx’i oluşturulan İlkbyte bulut sunucu IP adresiyle değiştirin.
ssh root@xxx.xxx.xxx.xxx
Bir uyarı gelecek, bilinen anahtarlar olarak eklensin mi diye soracak "yes" deyip geçiyoruz. SSH Anahtarı için belirlediğiniz parolayı giriyorsunuz. Artık her şey hazır doya doya sunucunuzu istediğiniz gibi kullanabilirsiniz.
Neredeyse her firewall yönetim aracıyla ilgili CloudFlare ip aralıklarını beyaz listeye alma konusunda aksiyon aldık. Şimdi sıra geldi firewalld için bunu yapmaya.
Çoğu işletim sisteminde ön tanımlı olarak kullanılması önerildiği için isteyenler aşağıdaki betiği kullanabilir.
Betik bana ait değil sadece düzenlemesini gerçekleştirdiğimi hatırlatayım.
#!/usr/bin/env bash # Instructions: # # 1) Place this script in the /root/ directory, give it proper permissions. # $ sudo chmod +x /root/open-cloudflare.sh # # 2) Open the cron job editor # $ sudo crontab -e # # 3) Add the following to the last line # 12 0 * * * root /root/open-cloudflare.sh # # https://gist.github.com/rraallvv/602ea1ed32f40074c1c509b5161da77d # Actual script: # remove all public rules first IFS= \n' for i in $(sudo firewall-cmd --list-rich-rules --zone=public); do echo "removing '$i'" sudo firewall-cmd --permanent --zone=public --remove-rich-rule "$i" done # IPv4 HTTPS echo "adding IPv4 HTTPS" for i in $(curl "https://www.cloudflare.com/ips-v4"); do echo "adding '$i'" sudo firewall-cmd --permanent --zone=public --add-rich-rule 'rule family="ipv4" source address="'$i'" port port=443 protocol=tcp accept'; done # IPv6 HTTPS echo "adding IPv6 HTTPS" for i in $(curl "https://www.cloudflare.com/ips-v6"); do echo "adding '$i'" sudo firewall-cmd --permanent --zone=public --add-rich-rule 'rule family="ipv6" source address="'$i'" port port=443 protocol=tcp accept'; done # SSH #firewall-cmd --permanent --zone=public --add-rich-rule 'rule family="ipv4" source address="myip" port port=22 protocol=tcp accept' #firewall-cmd --permanent --change-zone=eth0 --zone=public echo "reloading..." sudo firewall-cmd --reload
windows ve linux sistem yönetimi, network ve ağ güvenliği, siber güvenlik, yazılım ve gündemdeki diğer teknolojik konular hakkında blog yazıları