NotionSSH - VPN olmadan da Notion ile uzak sunucuları kontrol edin
(github.com/mirseo)Geliştirme yaparken güvenlik nedeniyle bazı yerlerde belirli sitelere http/https erişimi mümkün olsa da SSH, RDP açılmıyor;
bu yüzden bunu yaptım.
NotionSSH adlı projede, Notion’da !(docker ps) gibi bir şey yazdığınızda
o sayfayı izleyen makinede bunu shell üzerinden çalıştırıp sonucu geri döndüren basit bir Rust programı.
Henüz erken sürüm olduğu için çok sayıda hata olabilir.
Lütfen bol bol kullanın!
34 yorum
Yanıtım geciktiği için özür dilerim!
Gerçekten mahcubum. Açık kaynak amacıyla ilk kez düzgün şekilde geliştirdiğim bir projenin ilgi görmesi güzel, ancak kişisel e-postam ve çeşitli dış SNS kanalları üzerinden çok fazla eleştiri alınca sanırım korktum.
Bu nedenle aceleyle projeyi 3 gün boyunca private duruma çevirmiştim. Aceleci kararım yüzünden sizi hayal kırıklığına uğrattığım için gerçekten çok özür dilerim.
Bu olayı iyi bir deneyim olarak değerlendirip bundan sonra da açık kaynak projeyi geliştirmeye devam edeceğim, teşekkür ederim!!
guacamoleadlı bir remote desktop gateway de var (https://guacamole.apache.org/)Geç yanıt verdiğim için özür dilerim!
Daha önce kullanmıştım ama VNC’nin doğası gereği hız yavaştı ve gecikme nedeniyle çok fazla etkileniyordum.
Bu yüzden bunun yerine geçecek yeni bir yöntem düşünürken bunu yapmış oldum, teşekkürler!!
2025 | Rust tabanlı SSH köprüsü, NotionSSH (2.0) geliştirildi (https://github.com/mirseo/notionSSH) <- desteklenmiyor ve silinmiş
Bunu böyle yazmışsınız... Burada yanıt vermeniz ya da haberi silmeniz daha iyi olur gibi görünüyor.
Yanıtım geciktiği için özür dilerim!
Son zamanlarda güvenlik sorunları nedeniyle çok fazla eleştiri aldığım için, ilgili repoyu açık tutmaya devam edip etmemem konusunda
derin derin düşünürken haber vermeden özel duruma geçirmiştim
Aceleci kararım nedeniyle sizi hayal kırıklığına uğrattığım için gerçekten üzgünüm; bundan sonra daha da gelişen bir geliştirici olacağım, teşekkür ederim
Şu anda ek geliştirme takvimi üzerinde çalışıyorum ve yeniden herkese açık hale getirdim, değerli görüşünüz için teşekkürler!!
Birçok geliştirici güvenlik ve ipuçları hakkında görüşlerini paylaştı ve yorum sayısı 27’yi geçtiğine göre, bence bu yazı artık sadece bana ait bir yazı değil...
Ama yine de yazıyı silme düğmesi varsa, karar tamamen kişinin kendisine aittir değil mi haha Yazı hiç paylaşmadığım için silmenin mümkün olup olmadığını merak ediyorum
Geç yanıt verdiğim için özür dilerim!
Aslında yazıyı silmeyi düşünmüştüm ama silme düğmesini bulamadığım için öylece kalmış gibi görünüyor…
Özür dilerim
Herkes görüş bildirmişken bunun sadece benim yazım olmadığını göz ardı edip tek başıma fazla aceleci bir karar vermişim gibi görünüyor
Ayrıca korktum. Bu toplulukla daha yeni yeni tanışıyordum ve çeşitli platformlar ile e-postalar üzerinden bu projenin güvenlik riskinin çok büyük olduğu yönünde sürekli uyarılar alınca... psikolojik olarak çok sarsıldım, özür dilerim
Neden depoya erişilemiyor?
Deep translation geciktiği için özür dilerim!!
Son zamanlarda güvenlik sorunları nedeniyle çok eleştiri alınca, ilgili repoyu açık tutmaya devam edip etmemem gerektiği konusunda
uzun uzun düşündüm ve bu sırada duyuru yapmadan onu geçici olarak private'a çevirmiştim.
Aceleci kararım yüzünden sizi hayal kırıklığına uğrattığım için gerçekten özür dilerim. Bundan sonra daha da gelişen bir geliştirici olacağım, teşekkür ederim
Sorun, 22 numaralı portu açamadığınız için SSH’nin çalışmamasıysa, SSH portunu değiştirmek ya da Cloudflare Tunnel kullanmak gibi yöntemler de var.
Aynen! Ama benim çalıştığım yerde ssh protokolünün kendisi güvenlik duvarı tarafından engelleniyor, o yüzden!
Cf tunnel ve tailscale'i de denedim ama kural ihlali sayılabileceği söylendiği için güvenli şekilde harici shell kullanıyorum :) ( Kuralları sorunca okulun güvenlik ekibi, inbound/outbound için yalnızca 80 ve 443 http/https'e onay verildiğini söyledi )
Aslında onay almak mümkün, ancak süreç zahmetli ve ilgili düzenlemeler karmaşık olduğu için bu yöntemi geliştirdim.
Ben güvenlik ekibinde olsam bunu öğrendiğim anda muhtemelen hemen engellerdim...
Hele ki bir süreç ve onay alma imkanı varken bunu by-pass ediyorsa, daha da fazla.
Biz buna Shadow IT diyoruz.
Evet, öyle de olabilir
Ama bunu yapma amacım gerçekten kullanmak değil, daha çok böyle bir şey olsa nasıl olur diye düşünerek yapmak olduğu için!
Bu yüzden yan proje olarak yaptım!!
Kesin konuşmak gerekirse bu RCE sayılır. Aşırı derecede tehlikeli. Bu, güvenlik için herhangi bir doğrulama olmadığı anlamına gelmiyor mu? Sunucuda çalışan ajan, dışarıdaki bir sayfadaki komutları periyodik olarak çalıştırıyor. Bu sırada da dış sayfaya doğrulama olmadan koşulsuz güveniliyor. Notion API kullanılıyor olsa bile... hmm, tehlikeli görünüyor.
Güvenlik önlemleri ekledik!
CA doğrulaması - 3 adımlı yapı: 1. CA sertifika zinciri doğrulaması, 2. DoH DNS doğrulaması (cf, google), 3. sertifika pinleme (açık anahtar doğrulaması)
ACL eklendi (kullanıcı e-posta yetkisi hesabına göre komut kullanım yetkisi kontrolü + ekip tabanlı yetki kontrolü eklendi)
Allow listesinde olmayan komutlar varsayılan olarak engellenir
Hmm.. aslında doğru
Şu an erken sürüm olduğu için, ileriki bir sürümde hesap adını temel alarak çalıştırmayı engelleyen bir özellik eklemeyi planlıyorum
(NotionAPI'den alınan hesap adıyla sistem ortam değişkenleri üzerinden çalıştırılabilecek hesapları sınırlayıp bir yetki katmanı eklemeyi düşünüyorum!! )
Güvenliğin güçlendirilmesi ana odak olacak gibi görünüyor!!
Sanırım tam anlayamadığım için sormak istediğim bir şey var,
Bunun dışında, SSH'nin kendisinin amacının güvenli kabuk erişimi olduğunu düşündüğüm için bu yöntemle kabuk erişiminin kendisi güvenli kalıyor; yapı da ( sunucu - Notion sunucusu - kullanıcı ) şeklinde olduğu için adına SSH koydum!
Hımm.. evet, doğru. Aslında başlangıçta anahtar değişimi tabanlı bir projeydi, ancak geliştirme sürecinde Notion Page’i okunacak şekilde kullanmaya yöneldim.
Çünkü kullanıcıdan anahtar değişimi talep edip kimlik doğrulaması yapan bir yöntemin hem uygulama zorluğu vardı hem de Notion’a pek uygun değildi.
(1.0 yayımlanmamış ilk sürüm - bu sürüm anahtar değişimi yöntemini kullanıyordu ve Discord içindi, ama kullanışsız olduğu için ben de kullanmayı bıraktım. Parolanın doğası gereği bunu Notion’da açık etmek de biraz uygun değildi.)
Güzel görüşünüz için teşekkürler! Proje adını ileride değiştirebilirim.
İlginç bir proje. Notion'ı seçmenizin özel bir nedeni var mı?
Evet! Aslında iş hayatında Notion’ın çok kullanıldığını duymuştum; benim durumumda da verileri yükleyip düzenlemek amacıyla kullandığım için Notion’ı seçtim.
Discord, e-posta ve Slack ise code block desteği açısından, ayrıca API kullanımı ve monitör ortamındaki kullanım deneyimi bakımından elverişsiz olur gibi geldiği için Notion’ı tercih etmemin bir nedeni de buydu!
Bunun dışında, çalıştırma sonuçlarını paylaşma açısından ve şirketi merkez alarak düşünüldüğünde, tasarım ekibi gibi destek taleplerinde şirketin BT ekibinin sorun çözümüne hızla müdahil olabilmesi için iş birliğine uygun olan Notion’un seçilmesi de söz konusu.
Pratik kullanım senaryolarını da düşünmüşsünüz, ancak SSH bağlantısı gibi durumlarda bazıları yalnızca kapalı ağda mümkün olduğu için internete erişim olmuyor; bu yüzden Notion kullanılamayacak gibi görünüyor üzücü
Ah... o kısmı düşünmemiştim.
Aslında güvenliğin önemli olduğu bir sunucuysa, böyle bir yöntem yerine tailscale gibi bir şey daha güvenli olur gibi geliyor!!
İyi görüşünüz için teşekkürler!!
Ah.. Sabah okula giderken bunu mobilden yüklemiştim, bu yüzden yazım hataları olduğunu fark etmemişim.
Herkese iyi günler :)
Eskiden Hacker School’da hack işlerine şöyle bir bulaştığım zamanlarda web shell’in çok büyük bir güvenlik açığı olduğu söylenirdi......
Notion shell ha; güvenlik sorumlusu bunu görse herhalde bayılır.
Aha... kullanışlı bir özelliğin beraberinde getirdiği ödünler de oluyor.. (...)
Şey.. neredeyse bir web shell gibi de çalışabilir sanki
Yine de güvenlik tarafında log tutuluyorsa.. log kalıyorsa tespit edilebilir belki..?
Web shell olarak da kullanılabileceğini düşünmemiştim
Söylediğiniz için teşekkürler!!
!(rm -rf /)
En son sürümde güvenlik özellikleri eklendi!
ACL eklendi ve güvenlik yapılandırmalarında
rmgibi komutlar artık varsayılan olarak engelleniyor!Ah... burada yetki kısıtlaması yapmamız gerekecek gibi görünüyor..?
Bir sonraki sürüme
SecureConfigeklememiz gerekebilir...Haber verdiğiniz için teşekkürler!!
Eğlenceli bir fikir gerçekten haha
https://crates.io/crates/iroh-ssh/0.1.1 gibi bir şey de var
Ooo... İlginçmiş?! Bunu görünce daha da geliştirmeyi denemem gerekecek
Şu an düşündüğüm sürümde notionSSH'ye P2P özelliği eklemeyi planlıyordum
Tam da iyi bir şey göstermiş oldunuz, teşekkürler :)