Kategori arşivi: Cloud

Cloud sistemler hakkında bilgiler, cloud hizmet veren firma karşılaştırmaları, cloud sunucular ve yapılandırma örnekleri

Adım Adım Hetzner vSwitch Kurulumu ve Yapılandırması

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.

hetzner vswitch olusturma gorsel1

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.4000
iface enp195s0.4000 inet static
  address 10.14.2.12/24
  vlan-raw-device enp195s0
  mtu 1400
  up ip route add 10.14.0.0/16 via 10.14.2.1 dev enp195s0.4000
  down ip route del 10.14.0.0/16 via 10.14.2.1 dev enp195s0.4000
ShellScript

Bundan sonra aşağıdaki komutu çalıştırarak interface yapılandırmasını yeniden başlatalım

systemctl restart networking
ShellScript

Ubuntu

network:
  version: 2
  renderer: networkd
  ethernets:
    enp4s0:
      addresses:
  vlans:
    enp4s0.4000:
      id: 4000
      link: enp4s0
      mtu: 1400
      addresses:
        - 10.14.2.12/24
      routes:
        - to: 10.14.0.0/16
          via: 10.14.2.1
ShellScript

Bundan sonra, aşağıdaki komutları çalıştırmanız gerekiyor.

sudo /lib/netplan/generate
sudo systemctl restart systemd-networkd
ShellScript

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.

Ücretsiz Hetzner Cloud Sunucu Hesabı Açma Kılavuzu

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

  1. 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.
  2. VPN/Proxy gibi anonimlik sağlayan araçları kesinlikle kullanmayın.
  3. Sizden istenen bilgileri eksiksiz ve doğru bir şekilde girin.
  4. KYC sürecinde sıkıntı yaşamamak için kimliğinizi renkli ve okunaklı olacak şekilde fotoğrafını çekin.
  5. Ö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.)

Hetzner Object Storage Kullanımı

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.

https://<bucket-name>.<location>.your-objectstorage.com/<file-name>
ShellScript

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.

KaynakÖzellikAçıklama
BucketsCreateHeader: x-amz-bucket-object-lock-enabledx-amz-acl (allowed value: private)
CreateBucketConfiguration XML Body: LocationConstraint
List
Delete
Location
HeadBucket
ACL
Policy
Encryption (SSE only)
Lifecycle
ObjectsPutObject
GetObject
DeleteObject
HeadObject
ACL
ObjectLock
(bucket oluşturma aşamasında seçilmelidir)
Retention
Legal Hold
Tagging
Versions

Ayrıca minio tarafından geliştirilen mc uygulamasını da kullanmanız mümkün olduğu gibi boto3 ve s3cmd gibi araçlardan’da faydalanabilirsiniz.

Python’da kullanmak isterseniz aşağıdaki örnekten faydalanabilirsiniz.

import boto3
from botocore.exceptions import ClientError

s3 = boto3.resource('s3',
  endpoint_url='https://XYZ.fsn1.your-objectstorage.com',
  aws_access_key_id='<ACCESS KEY>',
  aws_secret_access_key='<SECRET KEY>',
  aws_session_token=None,
  config=boto3.session.Config(signature_version='s3v4'),
  verify=True,
)

bucket_name = 'your-unique-bucket-name'

try:
  response = s3.create_bucket(Bucket=bucket_name)
  print(f"Bucket {bucket_name} created successfully.")
except ClientError as e:
  print(f"Error creating bucket: {e}")
Python

Bu yapılandırmayı Hetzner’ın desteklediği özellik setine göre yaptığımızı hatırlatırım.

ÖzellikDesteklenen Standart
AWS Signature versionVersion 4 algorithm
Storage classesStandard
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.

Access Key: 2T3BUTKTB6G580HKFKTK
Secret Key: EVjEioyd7WCQhYRUi3ScFJ8r0NoKqQRM6WIOSbbI
Python

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
  • your-bucket-name: bucket adınız.
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam:::user/p<project_id>:<access_key>"
      },
      "Action": "s3:*",
      "Resource": [
          "arn:aws:s3:::your-bucket-name",
          "arn:aws:s3:::your-bucket-name/*"
          ]
    }
  ]
}
Python

Girmiş olduğunuz bu bucket politikasını S3 uyumlu herhangi bir api ile sisteme kayıt edebilirsiniz. Minio’nun kendi clientini kullanmak isterseniz.

Önce kullanacağınız bucketi mc’ye tanıtın

mc alias set hetzner-bucket \
  https://xyz.fsn1.your-objectstorage.com \
  <your_access_key> <your_secret_key> \
  --api "s3v4" \
  --path "off"
Python

Ardından oluşturduğunuz alias ile aşağıdaki kuralı uygulamaya geçebilirsiniz.

mc anonymous set-json my-policy.json hetzner-bucket/mertcangokgoz
Python

Kullanabileceğiniz S3 uyumlu bazı araçlar

S3 Bucket Versioning nasıl aktif edilir?

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.

Minio kullanarak aktif etme

mc version enable hetzner-bucket/mertcangokgoz
ShellScript

AWS Cli kullanarak aktif etme

aws s3api put-bucket-versioning --versioning-configuration Status=Enabled --bucket mertcangokgoz
ShellScript

S3 Bucket Legal Hold nasıl aktif edilir?

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 silmeManuel silmeAynı ada sahip nesneler
Versioningdevre dışıetkinBir 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 HoldVersioning 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 mb hetzner-bucket/mertcangokgoz --with-lock --region fsn1
ShellScript

AWS Cli kullanarak object lock aktif etme

aws s3api create-bucket \
  --bucket mertcangokgoz \
  --region fsn1 \
  --object-lock-enabled-for-bucket
ShellScript

Minio kullanarak legal hold aktif etme

mc legalhold set --recursive hetzner-bucket/mertcangokgoz 
ShellScript

AWS Cli kullanarak legal hold aktif etme

aws s3api put-object-legal-hold --bucket mertcangokgoz \ 
  --key cemil.txt --legal-hold Status=ON
ShellScript

MikroTik CHR Hetzner Cloud’a nasıl kurulur?

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.

  1. 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.
  2. Yönetim arayüzünde yer alan “ENABLE RESCUE & POWER CYCLE” seçeneğini seçerek kurtarma sistemini etkinleştirin.
  3. Kurtarma işletim sistemi olarak linux64 seçmeyi unutmayın.
  4. 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.
  5. 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:
curl -L https://download.mikrotik.com/routeros/7.16.1/chr-7.16.1.img.zip | funzip | dd of=/dev/sda bs=1M
ShellScript

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 KVM Talebi Nasıl Oluşturulur

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

  1. Önce hangi imaj kurulacaksa onu indirip destek ekibinin indirebilmesi ve boot edebilmesi için Google Drive veya OneDrive yükleyin.
  2. Ardından aşağıda size örnek olması için yazdığım mesajda gerekli alanları doldurun.
  3. Satın aldığınız makinenin detaylarına gidin Robot > Server > İşlemin uygulanacağı makinenin seçimi > Support > “Remote Console” seçeneğini seçin
  4. “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.
Hello

USB 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.

Amazon AWS Terraform ile DNSSEC Aktivasyonu

Ö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.

Kullanılacak olan public zone ayarlıyoruz.

resource "aws_route53_zone" "mertcangokgoz_public" {
  name    = "mertcangokgoz.com"
  comment = "Managed by Terraform"

  lifecycle {
    prevent_destroy = true
  }
}
HCL

alt yapınız için dnssec.tf adında bir dosya oluşturun ve içerisine aşağıdaki tanımlamaları yapın.

resource "aws_kms_key" "mertcangokgoz_dnssec_key" {
  customer_master_key_spec = "ECC_NIST_P256"
  key_usage                = "SIGN_VERIFY"
  policy = jsonencode({
    Statement = [
      {
        Action = [
          "kms:DescribeKey",
          "kms:GetPublicKey",
          "kms:Sign",
          "kms:Verify",
        ],
        Effect = "Allow"
        Principal = {
          Service = "dnssec-route53.amazonaws.com"
        }
        Resource = "*"
        Sid      = "Allow Route 53 DNSSEC Service",
      },
      {
        Action = "kms:*"
        Effect = "Allow"
        Principal = {
          AWS = "arn:aws:iam::${data.aws_caller_identity.current.account_id}:root"
        }
        Resource = "*"
        Sid      = "Enable IAM User Permissions"
      },
    ]
    Version = "2012-10-17"
  })

  provider = aws.us-east-1
}

resource "aws_route53_key_signing_key" "mertcangokgoz" {
  hosted_zone_id             = aws_route53_zone.mertcangokgoz_public.id
  key_management_service_arn = aws_kms_key.mertcangokgoz_dnssec_key.arn
  name                       = "mertcangokgoz"

  provider = aws.us-east-1
}

resource "aws_route53_hosted_zone_dnssec" "mertcangokgoz" {
  depends_on = [
    aws_route53_key_signing_key.mertcangokgoz
  ]
  hosted_zone_id = aws_route53_key_signing_key.mertcangokgoz.hosted_zone_id

  provider = aws.us-east-1
}
HCL

Geçerli olması için terraform ile tetikliyoruz ve değişiklikleri uyguluyoruz.

terraform plan
terraform apply -auto-approve
ShellScript

ESXi Routed VM Network Nasıl Oluşturulur?

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.

Ağ Bağdaştırıcısı Ayarları Ekran Görüntüsü
  • 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.

Sanal ağ köprüsü yapılandırması ve topolojisi.

“Routed Network” Topolojisi vSwitch üzerinde aşağıdaki gibi gözükmelidir.

Sanal ağ yapısı ve ayarları gösteriliyor.

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 ile IP Geolocation API Nasıl Yapılır?

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.

cloudflare workers create services, cloudflare create api

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.

cloudflare worker servis oluşturma

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.

cloudflare workers quick edit, cloudflare worker services edit, cloudflare services

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.

cloudflare workers edit code, cloudflare http handler example

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.

{ "asn": 47524, "as_organization": "Turksat", "city": "Ankara", "country": "TR", "timezone": "Europe/Istanbul", "ip_address": "94.46.141.209" }

Kullanacağımız kodumuz ise şu şekilde

addEventListener('fetch', event => { event.respondWith(handleRequest(event.request)); }) async function handleRequest(request) { const data = JSON.stringify({ asn: request.cf.asn, as_organization: request.cf.asOrganization, city: request.cf.city, country: request.cf.country, timezone: request.cf.timezone, ip_address: request.headers.get("CF-Connecting-IP") }, null, 2); return new Response(data, { headers: { "Access-Control-Allow-Origin": "*", "Content-Type": "application/json;charset=UTF-8" } }) }

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.

Ayrıca servis işlemlerinde cronjob çalıştırabilirsiniz CloudFlare Workers Kullanarak Harici Cronjob İşlerinin Yapılması ile detaylarını öğrenebilirsiniz.

iOS 16’da Private Access Token(PAT) Nasıl Etkinleştirilir? Mobilde Captcha Görmeye Son

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.

https://developer.apple.com/videos/play/wwdc2022/10077/

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.

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.

cloudflare private token, cloudflare captcha resolv, private access token
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.

cloudflare private access token nasıl çalışır, private access token nedir
  1. 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.
  2. Safari istenen bu token için apple ile API üzerinden iletişime geçer ve cihazın onaylanmasını ister.
  3. Apple çeşitli cihaz bileşenlerini kontrol edecek, geçerli olduklarını onaylayacak ve ardından Cloudflare’ye bir API çağrısı yapar.
  4. Cloudflare, bir tokken oluşturur, onu tekrar tarayıcıya gönderir, o da kendisine iletilen bu tokeni origin’e gönderir.
  5. 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.


References

  1. https://blog.cloudflare.com/end-cloudflare-captcha/
  2. https://blog.cloudflare.com/introducing-cryptographic-attestation-of-personhood/
  3. https://developer.apple.com/videos/play/wwdc2022/10077/
  4. https://www.ietf.org/archive/id/draft-ietf-privacypass-auth-scheme-01.html
  5. https://blog.cloudflare.com/eliminating-captchas-on-iphones-and-macs-using-new-standard/

CloudFlare ile Ücretsiz SSL/TLS Sertifikası Nasıl Alınır?

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ı

  1. 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.
  2. Cloudflare: CDN, güvenlik duvarı, Anycast DNS, Universal SSL ve çok daha fazlasını sağlar üstelik bunu ücretsiz yapar.
  3. 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.

sudo nano /etc/nginx/certs/cloudflare-cert.pem
sudo nano /etc/nginx/certs/cloudflare-private.key
ShellScript

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.

sudo nginx -t
ShellScript

Çıktımız aşağıdaki gibi olmalı

root@debian:~# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
ShellScript

Authenticated Origin Pull Nasıl Yapılandırılır?

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.

Daha detaylı bilgi almak için https://developers.cloudflare.com/ssl/origin-configuration/authenticated-origin-pull/ adresini ziyaret edin.

Cloudflare TLS istemci sertifikasını Nginx sunucumuza eklememiz gerekiyor aşağıdaki işlemleri yapın.

-----BEGIN CERTIFICATE-----
MIIGCjCCA/KgAwIBAgIIV5G6lVbCLmEwDQYJKoZIhvcNAQENBQAwgZAxCzAJBgNV
BAYTAlVTMRkwFwYDVQQKExBDbG91ZEZsYXJlLCBJbmMuMRQwEgYDVQQLEwtPcmln
aW4gUHVsbDEWMBQGA1UEBxMNU2FuIEZyYW5jaXNjbzETMBEGA1UECBMKQ2FsaWZv
cm5pYTEjMCEGA1UEAxMab3JpZ2luLXB1bGwuY2xvdWRmbGFyZS5uZXQwHhcNMTkx
MDEwMTg0NTAwWhcNMjkxMTAxMTcwMDAwWjCBkDELMAkGA1UEBhMCVVMxGTAXBgNV
BAoTEENsb3VkRmxhcmUsIEluYy4xFDASBgNVBAsTC09yaWdpbiBQdWxsMRYwFAYD
VQQHEw1TYW4gRnJhbmNpc2NvMRMwEQYDVQQIEwpDYWxpZm9ybmlhMSMwIQYDVQQD
ExpvcmlnaW4tcHVsbC5jbG91ZGZsYXJlLm5ldDCCAiIwDQYJKoZIhvcNAQEBBQAD
ggIPADCCAgoCggIBAN2y2zojYfl0bKfhp0AJBFeV+jQqbCw3sHmvEPwLmqDLqynI
42tZXR5y914ZB9ZrwbL/K5O46exd/LujJnV2b3dzcx5rtiQzso0xzljqbnbQT20e
ihx/WrF4OkZKydZzsdaJsWAPuplDH5P7J82q3re88jQdgE5hqjqFZ3clCG7lxoBw
hLaazm3NJJlUfzdk97ouRvnFGAuXd5cQVx8jYOOeU60sWqmMe4QHdOvpqB91bJoY
QSKVFjUgHeTpN8tNpKJfb9LIn3pun3bC9NKNHtRKMNX3Kl/sAPq7q/AlndvA2Kw3
Dkum2mHQUGdzVHqcOgea9BGjLK2h7SuX93zTWL02u799dr6Xkrad/WShHchfjjRn
aL35niJUDr02YJtPgxWObsrfOU63B8juLUphW/4BOjjJyAG5l9j1//aUGEi/sEe5
lqVv0P78QrxoxR+MMXiJwQab5FB8TG/ac6mRHgF9CmkX90uaRh+OC07XjTdfSKGR
PpM9hB2ZhLol/nf8qmoLdoD5HvODZuKu2+muKeVHXgw2/A6wM7OwrinxZiyBk5Hh
CvaADH7PZpU6z/zv5NU5HSvXiKtCzFuDu4/Zfi34RfHXeCUfHAb4KfNRXJwMsxUa
+4ZpSAX2G6RnGU5meuXpU5/V+DQJp/e69XyyY6RXDoMywaEFlIlXBqjRRA2pAgMB
AAGjZjBkMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/AgECMB0GA1Ud
DgQWBBRDWUsraYuA4REzalfNVzjann3F6zAfBgNVHSMEGDAWgBRDWUsraYuA4REz
alfNVzjann3F6zANBgkqhkiG9w0BAQ0FAAOCAgEAkQ+T9nqcSlAuW/90DeYmQOW1
QhqOor5psBEGvxbNGV2hdLJY8h6QUq48BCevcMChg/L1CkznBNI40i3/6heDn3IS
zVEwXKf34pPFCACWVMZxbQjkNRTiH8iRur9EsaNQ5oXCPJkhwg2+IFyoPAAYURoX
VcI9SCDUa45clmYHJ/XYwV1icGVI8/9b2JUqklnOTa5tugwIUi5sTfipNcJXHhgz
6BKYDl0/UP0lLKbsUETXeTGDiDpxZYIgbcFrRDDkHC6BSvdWVEiH5b9mH2BON60z
0O0j8EEKTwi9jnafVtZQXP/D8yoVowdFDjXcKkOPF/1gIh9qrFR6GdoPVgB3SkLc
5ulBqZaCHm563jsvWb/kXJnlFxW+1bsO9BDD6DweBcGdNurgmH625wBXksSdD7y/
fakk8DagjbjKShYlPEFOAqEcliwjF45eabL0t27MJV61O/jHzHL3dknXeE4BDa2j
bA+JbyJeUMtU7KMsxvx82RmhqBEJJDBCJ3scVptvhDMRrtqDBW5JShxoAOcpFQGm
iYWicn46nPDjgTU0bX1ZPpTpryXbvciVL5RkVBuyX2ntcOLDPlZWgxZCBp96x07F
AnOzKgZk4RzZPNAxCXERVxajn/FLcOhglVAKo5H0ac+AitlQ0ip55D2/mf8o72tM
fVQ6VpyjEXdiIXWUq/o=
-----END CERTIFICATE-----
Plaintext

Bu sertifikayı indirmek için bağlantıdan faydalanabilirsiniz.

sudo nano /etc/nginx/certs/cloudflare-auth-ca.crt
ShellScript

Yukarıdaki yapılandırmamıza iki satır daha ekleyeceğiz ve bu “Authenticated origin pull” özelliğini doğru bir şekilde ayarlamış olacağız.

server {
    listen 443;
    listen [::]:443;
    ssl_certificate         /etc/nginx/certs/cloudflare-cert.pem;
    ssl_certificate_key     /etc/nginx/certs/cloudflare-private.key;
    ssl_verify_client on;
    ssl_client_certificate /etc/nginx/certs/cloudflare-auth-ca.crt;
    server_name example.com www.example.com;
    location / {
        include proxy_params;
        proxy_pass http://localhost:3000/;
    }
}
Nginx

İş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.

Bir SSH Anahtarı ile İlkbyte’ta Sunucuya Nasıl Giriş Yapılır

İ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.

ssh-keygen -t rsa -b 4096 -C "Macbook 13 Inch M1 - Mertcan"

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.

"Sunucular > SSH Anahtarları" alanından "Yeni SSH Anahtarı" butonuna tıklayın.

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.

ilkbyte ssh key ekleme, otomasyona ssh anahtarı nasıl eklenir, ilkbyte ssh anahtarı ekle

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.

ilkbyte otomasyon sunucu seçimi, ilkbyte sunucu kaynak seçimi, ilkbtye sunucuları

"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.

Firewalld Kullanarak CloudFlare Trafiğinin Kabul Edilmesi

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