NotionSSH - Kendalikan server jarak jauh lewat Notion tanpa VPN
(github.com/mirseo)Saat mengembangkan, kadang ada lingkungan yang demi alasan keamanan hanya mengizinkan http/https ke situs tertentu, tetapi tidak membuka akses SSH atau RDP,
jadi saya membuat ini.
Ini adalah proyek bernama NotionSSH; jika Anda memasukkan sesuatu seperti !(docker ps) di Notion,
program Rust sederhana ini akan mengeksekusinya di shell pada mesin yang memantau halaman tersebut dan mengembalikan hasilnya.
Karena masih versi awal, mungkin masih ada banyak bug.
Silakan banyak digunakan!
34 komentar
Maaf atas balasan yang terlambat!
Saya benar-benar minta maaf. Senang rasanya proyek pertama yang saya kembangkan dengan serius untuk tujuan open source mendapat perhatian, tetapi sepertinya saya merasa takut karena menerima terlalu banyak kritik melalui email pribadi dan berbagai SNS eksternal lainnya.
Karena itu, saya sempat terburu-buru mengubah proyek ini menjadi privat selama 3 hari. Saya sungguh minta maaf karena telah mengecewakan Anda semua akibat keputusan saya yang gegabah.
Saya akan menjadikan kejadian ini sebagai pengalaman berharga dan terus memperbaiki proyek open source ini ke depannya. Terima kasih!!
Ada juga gateway desktop jarak jauh bernama guacamole (https://guacamole.apache.org/)
Maaf atas balasan yang terlambat!
Saya sempat menggunakannya sebelumnya, tetapi karena karakteristik VNC kecepatannya lambat sehingga sangat terdampak oleh latency dan delay.
Karena itu, sambil memikirkan metode baru sebagai pengganti, saya jadi membuat ini. Terima kasih!!
2025 | Pengembangan SSH bridge berbasis Rust, NotionSSH (2.0) (https://github.com/mirseo/notionSSH) <- tidak didukung dan sudah dihapus
Sepertinya Anda menuliskannya seperti itu... Rasanya lebih baik menanggapi di sini atau menghapus beritanya.
Maaf atas balasan yang terlambat!
Belakangan ini saya banyak menerima masukan terkait masalah keamanan, sehingga saya cukup lama mempertimbangkan apakah publikasi repositori tersebut harus tetap dilanjutkan atau tidak.
Karena itu, saya sempat mengubahnya menjadi privat secara mendadak tanpa pemberitahuan.
Saya sungguh minta maaf telah mengecewakan kalian karena keputusan saya yang terburu-buru. Ke depannya saya akan menjadi developer yang terus berkembang. Terima kasih.
Untuk saat ini, saya sedang menyusun jadwal pengembangan lanjutan dan repositori tersebut sudah saya ubah kembali menjadi publik. Terima kasih atas masukannya!!
Karena banyak pengembang sudah membahas soal keamanan dan berbagai tips, dan jumlah komentarnya sudah lebih dari 27, saya rasa tulisan ini bukan lagi sekadar tulisan pribadi saya...
Tapi kalau memang ada tombol hapus tulisan, berarti itu tetap kebebasan penulisnya juga, ya wkwk
Saya sendiri belum pernah memposting tulisan, jadi jadi penasaran apakah memang bisa dihapus
Maaf karena terlambat membalas!
Sebenarnya saya sempat mempertimbangkan untuk menghapus tulisan ini, tetapi sepertinya saya membiarkannya begitu saja karena tidak bisa menemukan tombol hapus…
Maaf
Setelah semua orang memberikan pendapat, rasanya ini bukan lagi sekadar tulisan saya, jadi sepertinya saya terlalu gegabah mengambil keputusan sendirian
Dan saya juga merasa takut. Saya juga baru mulai mengenal komunitas ini, tetapi terus menerima masukan lewat berbagai platform dan email bahwa proyek ini memiliki risiko keamanan yang terlalu besar.. Secara mental saya sangat terguncang, maaf
Kenapa akses ke repositori tidak bisa?
Maaf karena pembaruan Deepv begitu terlambat!!
Belakangan ini, karena banyak mendapat sorotan terkait masalah keamanan, saya jadi banyak berpikir apakah rilis publik untuk repositori tersebut harus terus dilanjutkan atau tidak.
Karena itu, saya sempat mengubahnya menjadi privat tanpa pemberitahuan.
Saya sungguh minta maaf telah mengecewakan kalian karena keputusan saya yang tergesa-gesa. Ke depannya saya akan menjadi pengembang yang lebih baik lagi. Terima kasih.
Kalau SSH tidak bisa karena tidak dapat membuka port 22, ada juga cara seperti mengganti port SSH atau menggunakan Cloudflare Tunnel.
Betul! Tapi tempat saya bekerja memblokir protokol SSH itu sendiri lewat firewall, jadi begitu!
Saya juga sempat mencoba Cf tunnel dan tailscale, tetapi katanya bisa dianggap melanggar aturan, jadi demi aman saya memakai shell eksternal :) ( setelah saya tanyakan soal aturannya, tim keamanan sekolah bilang hanya HTTP/HTTPS di port 80 dan 443 yang disetujui untuk inbound/outbound )
Sebenarnya persetujuannya memang bisa didapatkan, tetapi prosesnya rumit dan aturan terkaitnya kompleks, jadi saya membuat cara seperti ini.
Kalau saya ada di tim keamanan, begitu tahu soal ini saya rasa akan langsung memblokirnya...
Apalagi kalau ada prosedur dan bisa minta persetujuan, tapi tetap memilih untuk mengakalinya.
Kami menyebut ini Shadow IT.
Betul, bisa saja begitu.
Tapi tujuan membuat ini sebenarnya bukan untuk dipakai sungguhan, melainkan lebih karena penasaran bagaimana kalau hal seperti ini ada!
Jadi saya membuatnya sebagai side project!!
Kalau dilihat secara ketat, ini memang RCE. Sangat berbahaya. Ini kan tanpa verifikasi keamanan, ya? Agen yang berjalan di server secara berkala mengeksekusi perintah dari halaman eksternal. Dalam prosesnya, halaman eksternal itu dipercaya sepenuhnya tanpa verifikasi. Meski menggunakan Notion API, hmm... tetap berbahaya.
Kami telah menambahkan perangkat keamanan!
Verifikasi CA - konfigurasi 3 langkah: 1. verifikasi rantai sertifikat CA, 2. verifikasi DNS DoH (cf, google), 3. pin sertifikat (verifikasi kunci publik)
Menambahkan ACL (menambahkan kontrol izin penggunaan perintah per akun berdasarkan izin email pengguna + menambahkan kontrol izin berbasis tim)
Secara default memblokir perintah yang tidak ada di Allow
Hmm.. memang benar
Saat ini masih versi awal, jadi di versi berikutnya saya berencana menambahkan fitur untuk memblokir eksekusi berdasarkan nama akun.
(Saya ingin membatasi akun yang bisa dijalankan berdasarkan nama akun yang diterima dari NotionAPI dan variabel lingkungan sistem, serta menambahkan lapisan izin!!)
Sepertinya fokus utamanya akan pada penguatan keamanan!!
Ada satu hal yang ingin saya tanyakan karena saya belum begitu paham,
Selain itu, saya menganggap tujuan SSH sendiri adalah akses shell yang aman, jadi lewat pendekatan ini akses shell itu sendiri tetap aman karena strukturnya (server - server Notion - pengguna), maka saya memberi nama SSH!
Hmm.. benar juga. Sebenarnya awalnya ini adalah proyek berbasis pertukaran kunci, tetapi dalam proses pengembangannya saya beralih agar membaca menggunakan halaman Notion.
Karena metode yang mengharuskan pengguna melakukan pertukaran kunci dan autentikasi itu tingkat kesulitan implementasinya juga begitu, dan juga kurang cocok untuk Notion.
(versi awal 1.0 yang belum dipublikasikan - versi ini menggunakan metode pertukaran kunci dan ditujukan untuk Discord, tetapi karena tidak praktis akhirnya saya sendiri jadi tidak memakainya. Karena sifat password-nya, rasanya juga agak kurang pas untuk dipublikasikan di Notion.)
Terima kasih atas masukannya yang bagus! Nama proyeknya mungkin akan diubah nanti.
Proyek yang menarik. Apakah ada alasan khusus Anda memilih Notion?
Ya! Memang saya dengar Notion banyak digunakan dalam praktik kerja, dan dalam kasus saya, saya memilih Notion karena menggunakannya untuk mengunggah dan merapikan data.
Saya juga memakai Notion karena Discord, email, dan Slack sepertinya kurang nyaman dari sisi penggunaan API dan pada lingkungan monitor dalam hal dukungan blok kode!
Selain itu, untuk berbagi hasil eksekusi dan dari sudut pandang perusahaan, mereka juga memilih Notion yang memudahkan kolaborasi agar tim IT perusahaan bisa cepat turun tangan menyelesaikan masalah saat mendukung tim seperti tim desain.
Anda juga mempertimbangkan kasus yang praktis, ya. Namun, untuk koneksi seperti SSH, sebagian hanya bisa dilakukan di jaringan tertutup sehingga tidak ada akses internet, jadi sepertinya Notion tidak akan bisa digunakan, huhu
Ah… bagian itu memang belum saya pikirkan.
Sebenarnya, kalau server yang keamananannya penting, sepertinya solusi seperti
tailscaleakan lebih aman daripada cara seperti ini!!Terima kasih atas masukannya!!
Eh.. tadi pagi saya unggah dari ponsel sambil berangkat ke sekolah, jadi saya bahkan tidak sadar ada salah ketik.
Semoga semuanya menjalani hari yang menyenangkan :)
Dulu waktu iseng belajar hacking lewat Hacker School, web shell disebut sebagai celah keamanan yang luar biasa besar......
Notion shell? Admin keamanan bisa pingsan kalau lihat ini.
Aha... fitur yang nyaman memang punya trade-off sebesar itu.. (...)
Hmm.. ini mungkin juga bisa berfungsi mirip web shell ya
Tapi karena terkait keamanan, setidaknya log tetap tercatat.. kalau log-nya ada, mungkin bisa dideteksi juga..?
Sepertinya memang bisa dipakai sebagai web shell, tapi saya tidak menyadarinya
Terima kasih sudah memberi tahu!!
!(rm -rf /)
Di versi terbaru, kami menambahkan fitur keamanan!
ACL telah ditambahkan, sehingga dalam konfigurasi keamanan tertentu, perintah seperti
rmkini diblokir secara default!Aduh... sepertinya perlu ada pembatasan izin ya..?
Mungkin saya perlu menambahkan SecureConfig di versi berikutnya...
Terima kasih sudah memberi tahu!!
Idenya lucu juga wkwkwk
https://crates.io/crates/iroh-ssh/0.1.1 ada juga yang seperti ini
Wah... menarik sekali, ya?! Melihat ini, saya jadi ingin mengembangkannya lebih lanjut
Versi yang sedang saya pikirkan sekarang adalah mencoba menambahkan fitur P2P ke notionSSH
Kebetulan Anda memberi tahu saya hal yang bagus, terima kasih :)