Güvenlik

Anahtarların bu Mac’te kalır.

Bu sayfa Kule’nin sunucularını, anahtarlarını ve bağlantılarını nasıl koruduğunu anlatır. Kısa sürümü hemen aşağıda.

Son güncelleme: 14 Ekim 2026
  • Kendi sunucumuz yokHer bağlantı doğrudan bu Mac’ten kurulur.
  • Sunucu başına bir anahtarHer sunucunun kendi SSH anahtarı var, Keychain’de durur.
  • Sunucu kimliği sabitlenirKimlik değişirse Kule bağlantıyı durdurur.
  • İmzalı ve notarizeUygulama da güncellemeleri de imzalı gelir.

Her bağlantı bu Mac’ten

Kule’nin kendi sunucusu yok. Sunucularına, Dokploy paneline, GitHub’a ve Cloudflare’e doğrudan bu Mac’ten bağlanır. Arada bizim işlettiğimiz bir sunucu olmadığı için anahtarların, token’ların ve sunucu bilgilerin bize hiç gelmez.

Bu bağlantıları uygulamanın Rust ile yazılmış çekirdeği kurar. Gördüğün arayüz kendi başına internete çıkamaz: içerik güvenlik politikası yalnızca uygulamanın kendi dosyalarına ve çekirdeğe izin verir.

Anahtarlar ve token’lar Keychain’de

Gizli bilgiler macOS Keychain’de, com.getkule.app servisi altında durur. Kule her sunucu için ayrı bir ed25519 anahtarı üretir; bir sunucunun anahtarı başka bir sunucuyu açmaz.

SSH anahtarlarıSunucu başına bir ed25519 anahtarımacOS Keychain
Panel bilgileriDokploy API anahtarı, Kule’nin açtığı yönetici hesabının şifresimacOS Keychain
GitHubCihaz akışıyla alınan tokenmacOS Keychain
Cloudflarecf CLI’ın kendi oturumu; Kule okumaz~/Library/Preferences/cloudflare
Sunucu listesi ve olay geçmişiGizli bilgi içermez~/Library/Application Support/com.getkule.app

Arayüz gizli bilgi görmez

SSH anahtarları ve token’lar Keychain’den yalnızca çekirdeğe gelir, arayüze geçmez. Ekranda yalnızca senin görmek istediğin şeyler görünür: panelin yönetici şifresi, sen "Şifreyi göster" dediğinde; kurtarma kitinin parolası, kit oluşturulurken bir kez.

İlk bağlantı ve root şifresi

Yeni bir sunucu eklerken yazdığın root şifresi yalnızca ilk bağlantıda kullanılır. Kule bu bağlantıda sunucuya özel anahtarı authorized_keys dosyasına ekler, anahtarı Keychain’e koyar ve anahtarla girişin çalıştığını doğrular. Şifre yalnızca bellekte tutulur, kullanıldıktan sonra sıfırlanır ve hiçbir yere yazılmaz. Bir adım başarısız olursa Keychain’de iz kalmaz.

İlk bağlantıda Kule sunucunun kimliğini, yani host key parmak izini alır ve sabitler. Sonraki her bağlantıda yalnızca bu kimliği kabul eder. Kimlik değişirse bağlantıyı durdurur ve seni uyarır.

Sunucuya kurulan korumalar

Kurulumun ilk adımı sunucuyu sağlamlaştırır. Güvenlik duvarı (ufw) yalnızca SSH, 80 ve 443 portlarına izin verir. fail2ban tekrar tekrar yanlış giriş deneyen adresleri engeller. Otomatik güvenlik güncellemeleri açılır, takas alanı yoksa 2 GB swap eklenir.

Şifreyle SSH girişi kapatılır; root yalnızca anahtarla girebilir. Kule bunu yazmakla yetinmez, sshd -T ile sunucunun gerçekten uyguladığı ayarı okur. Şifreyle giriş hâlâ açıksa kurulum orada durur.

Güvenlik duvarını sonradan Sunucular ekranından açarsan Kule önce sunucuya bir emniyet zamanlayıcısı kurar: iki dakika sonra güvenlik duvarını yeniden kapatacak bir görev. Duvar açıldıktan sonra yeni bir SSH bağlantısıyla içeri girmeyi dener. Girebilirse zamanlayıcıyı iptal eder; giremezse duvar iki dakika içinde kendiliğinden kapanır. Yanlış bir kural seni sunucunun dışında bırakmaz.

Sunucular ekranı güvenlik durumunu tek bir SSH turunda okur ve hiçbir şeyi değiştirmez: güvenlik duvarı, açık portlar, fail2ban, şifreyle giriş ve otomatik güncellemeler. Docker yayınladığı portları ufw’yi atlayarak dışarı açar; bu yüzden panel 3000 portundan erişilebiliyorsa Kule bunu "Panel portu 3000 dışarı açık" uyarısıyla gösterir.

Kurtarma kiti

Bu Mac kaybolursa ya da bozulursa sunucularına yine girebilmen için Kule bir kurtarma kiti hazırlar. Kit ikinci bir SSH anahtarıdır; bu anahtar her sunucunda yetkilendirilir.

Anahtar, sunucularının listesi ve kimlikleriyle birlikte İndirilenler klasörüne bir PDF olarak kaydedilir. PDF’teki anahtar parolayla şifrelidir (OpenSSH biçimi, bcrypt ve AES-256). Parola PDF’te yer almaz: Kule onu ekranda bir kez gösterir ve diske yazmaz. Bir yere not et; parola olmadan kit açılmaz.

GitHub ve Cloudflare

GitHub’a cihaz akışıyla bağlanırsın: Kule bir kod gösterir, onayı github.com’da verirsin. Bunun için bir sunucuya gerek yoktur ve token Keychain’de kalır.

Kule repo read:user iznini ister. GitHub’ın OAuth uygulamalarında özel depoları yalnızca okumaya yetecek bir izin yok; özel bir depoyu okumak, deploy key ve webhook eklemek için repo gerekir. Kule her depoya salt okunur bir deploy key ekler; platform kodu bu anahtarla çeker ve depoya yazamaz.

Cloudflare’e Cloudflare’in resmi cf komut satırı aracıyla bağlanırsın. Giriş cihaz koduyla olur ve onayı tarayıcıda verirsin. Oturumu cf kendisi saklar; Kule yalnızca cf komutlarını çalıştırır, token’ı hiç görmez. Bu Mac’te Node yoksa Kule onu nodejs.org’dan indirir ve resmi SHASUMS256 listesiyle doğrular.

İmza ve güncellemeler

Kule, Developer ID ile imzalanır ve Apple’ın notarization denetiminden geçer. macOS, açmadan önce uygulamanın kimden geldiğini ve sonradan değiştirilmediğini doğrular.

Kule yeni bir sürümü açılıştan kısa bir süre sonra ya da Kule menüsündeki Güncellemeleri Denetle… ile cdn.getkule.com üzerinden denetler. Her güncelleme imzalıdır; Kule imzayı uygulamanın içindeki açık anahtarla doğrular ve tutmayan bir güncellemeyi kurmaz. Yeni bir sürüm bulduğunda kurmadan önce sana sorar.

Bir açık mı buldun?

Kule’de bir güvenlik sorunu bulduğunu düşünüyorsan hey@getkule.com adresine yaz. Sorunu nasıl yeniden üretebileceğimizi ve hangi sürümde gördüğünü eklersen hızlı ilerleriz.

Ayrıntıları herkese açık bir yerde paylaşmadan önce bize yazarsan, düzeltmeyi kullanıcılara ulaştırmak için zaman kazanırız.