Meneruskan SSH melalui HTTPS
- Untuk meneruskan SSH melalui HTTPS, sisi klien dan server sama-sama perlu disesuaikan.
- Dalam contoh konfigurasi klien,
ProxyCommand dan ServerAliveInterval diatur di file ~/.ssh/config.
- Skrip
~/.ssh/https-tunnel.bash yang digunakan membuat koneksi TLS dengan socat sambil mengirim metode CONNECT beserta header.
Contoh konfigurasi server
- Dalam konfigurasi server HTTPS Apache2,
proxy_connect_module dimuat dan direktif AllowCONNECT digunakan untuk mengizinkan penggunaan metode HTTP CONNECT ke target tertentu.
- Di sisi server, diatur agar metode
CONNECT pada https-server hanya bisa digunakan untuk satu target, yaitu host ssh-server.
Latar belakang
- Saat tinggal di rumah sakit, penulis ingin bekerja jarak jauh melalui Wi-Fi rumah sakit yang memblokir sebagian besar jenis koneksi.
- Jaringan rumah sakit hanya mengizinkan koneksi HTTP dan HTTPS, sementara SSH diblokir sepenuhnya.
- Ini adalah eksplorasi cara meneruskan SSH melalui HTTP atau HTTPS.
Metode yang memungkinkan
- Proyek
sslh, yang meng-host bersama protokol SSH dan HTTPS pada satu port lalu mendistribusikannya secara transparan.
sslh tidak membungkus suatu protokol ke dalam protokol lain, melainkan menggunakan berbagai heuristik untuk mengarahkan ke backend yang sebenarnya.
- Metode yang sepenuhnya membungkus protokol SSH ke dalam protokol lain dengan menggunakan direktif
ProxyCommand milik openssh.
SSH melalui HTTP
- Untuk percobaan sederhana SSH melalui HTTP, Apache2 dikonfigurasi agar mengizinkan metode
CONNECT untuk satu target ssh-server:22.
- Di sisi klien, penyesuaian dapat dilakukan dengan mudah menggunakan
socat.
ServerAliveInterval digunakan agar koneksi HTTP tidak terputus meski sedang idle.
SSH melalui HTTPS
socat tidak mendukung proxy HTTPS, tetapi mendukung enkapsulasi TLS.
- Metode berbasis
CONNECT mudah diimplementasikan secara manual.
- Tunneling SSH melalui HTTPS diimplementasikan menggunakan skrip
~/.ssh/https-tunnel.bash.
Penutup
- Keberadaan HTTPS yang sangat umum memungkinkan data dikirim melalui perangkat perantara yang sangat membatasi.
- Metode
CONNECT adalah trik yang berguna untuk membungkus aliran payload TCP ke dalam aliran host TLS.
ServerAliveInterval digunakan untuk mempertahankan koneksi pada transport lapisan bawah yang tidak ramah terhadap koneksi idle.
Opini GN⁺
- Hal terpenting dari artikel ini adalah penyajian solusi kreatif yang memungkinkan koneksi SSH tetap bisa dilakukan bahkan di lingkungan jaringan yang sangat terbatas.
- Cara menggabungkan SSH dan HTTPS ini bisa sangat menarik terutama bagi orang-orang yang memiliki pengetahuan khusus terkait keamanan jaringan.
- Metode untuk melewati pembatasan jaringan melalui pengaturan
ProxyCommand dan ServerAliveInterval memberikan informasi yang berguna bagi administrator jaringan maupun profesional keamanan.
1 komentar
Komentar Hacker News