Kami memiliki server publik yang menerima koneksi SSH dari banyak klien di balik firewall.
Masing-masing klien membuat terowongan SSH Terbalik dengan menggunakan ssh -R
perintah dari server web mereka di port 80 ke server publik kami.
Port tujuan (di sisi klien) dari Terowongan SSH Terbalik adalah 80 dan port sumber (di sisi server publik) tergantung pada pengguna. Kami berencana mempertahankan peta alamat port untuk setiap pengguna.
Sebagai contoh, klien A akan melakukan tunnel server web mereka di port 80 ke port 8000 kami; klien B dari 80 hingga 8001; klien C dari 80 hingga 8002.
Client A: ssh -R 8000:internal.webserver:80 clienta@publicserver
Client B: ssh -R 8001:internal.webserver:80 clientb@publicserver
Client C: ssh -R 8002:internal.webserver:80 clientc@publicserver
Pada dasarnya, apa yang kami coba lakukan adalah mengikat setiap pengguna dengan port dan tidak mengizinkan mereka untuk melakukan tunnel ke port lain.
Jika kami menggunakan fitur penerusan maju SSH dengan ssh -L
, kami dapat mengizinkan port mana yang akan disalurkan dengan menggunakan permitopen=host:port
konfigurasi. Namun, tidak ada padanan untuk terowongan SSH terbalik.
Apakah ada cara untuk membatasi port tunneling terbalik per pengguna?