Panduan Visual SSH Tunneling dan Port Forwarding (2023)
(ittavern.com)Panduan visual untuk SSH tunneling dan port forwarding
- Ringkasan: Postingan blog ini ditulis untuk membantu memahami SSH tunneling dan port forwarding. Topik yang dibahas mencakup kasus penggunaan, konfigurasi, jump host SSH, port forwarding lokal/jarak jauh/dinamis, serta batasannya.
Kasus penggunaan
-
Keamanan:
- Mengenkripsi koneksi yang tidak aman seperti FTP
- Mengakses panel admin web melalui SSH tunnel (autentikasi kunci publik)
- Mengurangi jumlah port yang terekspos (hanya mengekspos port 22)
-
Pemecahan masalah:
- Melewati firewall/filter konten
- Memilih rute lain
-
Konektivitas:
- Mengakses server yang berada di balik NAT
- Mengakses server internal melalui internet menggunakan jump host
- Mengekspos port lokal ke internet
Port forwarding
- Konfigurasi/persiapan:
- Pengguna lokal dan jarak jauh memerlukan izin untuk membuka port
- Port 0-1024 memerlukan hak akses root
- Atur firewall klien dan jaringan dengan tepat
- Port forwarding harus diaktifkan pada server SSH:
AllowTcpForwarding yes - Untuk meneruskan port dari antarmuka lain,
GatewayPorts yesharus diaktifkan
Jump host SSH / SSH tunnel
-
Koneksi melalui jump host:
ssh -J user@REMOTE-MACHINE:22 -p 22 user@10.99.99.1 -
Menggunakan beberapa jump host:
ssh -J user@REMOTE-MACHINE:22,user@ANOTHER-REMOTE-MACHINE:22 -p 22 user@10.99.99.1
Port forwarding lokal
-
Contoh 1:
ssh -L 10.10.10.1:8001:localhost:8000 user@REMOTE-MACHINE -
Contoh 2:
ssh -L 8001:10.99.99.1:8000 user@REMOTE-MACHINE
Port forwarding jarak jauh
-
Contoh 1+2:
ssh -R 8000:localhost:8001 user@REMOTE-MACHINE ssh -R 8000:10.10.10.2:8001 user@REMOTE-MACHINE -
Contoh 3:
ssh -R 10.99.99.2:8000:10.10.10.2:8001 user@REMOTE-MACHINE
Port forwarding dinamis
- Menggunakan protokol SOCKS:
ssh -D 10.10.10.1:5555 user@REMOTE-MACHINE
SSH TUN/TAP tunneling
- Membuat tunnel TCP dua arah:
ssh -w local_tun[:remote_tun]
Menjalankan SSH di latar belakang
-
Jalankan di latar belakang:
ssh -fN -L 8001:127.0.0.1:8000 user@REMOTE-MACHINE -
Menghentikan SSH latar belakang:
ps -ef | grep ssh kill <PID>
Menjaga koneksi SSH tetap aktif
- Menangani timeout:
ClientAliveInterval 15ClientAliveCountMax 3
Batasan
-
UDP:
- SSH tidak mendukung UDP karena memerlukan pengiriman yang andal
-
TCP-over-TCP:
- Throughput menurun dan latensi meningkat karena overhead yang bertambah
-
Bukan pengganti VPN:
- SSH tunneling bisa menggantikan VPN, tetapi dari sisi performa VPN lebih cocok
-
Potensi risiko keamanan:
- Sebaiknya nonaktifkan fitur yang tidak diperlukan
Ringkasan GN⁺
- Artikel ini menjelaskan berbagai kasus penggunaan dan cara konfigurasi SSH tunneling serta port forwarding
- SSH tunneling berguna untuk menyediakan koneksi aman dan melewati firewall
- Namun, ini tidak sepenuhnya bisa menggantikan VPN dan memiliki batasan seperti penurunan performa
- Proyek terkait lainnya mencakup solusi VPN seperti OpenVPN
1 komentar
Komentar Hacker News
Pada 2024, alih-alih menulis perintah SSH secara langsung, lebih baik menggunakan file
~/.ssh/configuntuk mengatur LocalForward, RemoteForward, dan ProxyJumpSSH tunneling sangat penting di lingkungan perusahaan yang kompleks
ssh -D 8888 someserverlalu mengatur proxy SOCKS browser ke localhost:8888, trafik browser akan dirutekan melalui server tersebutJika ingin mengakses via SSH ke server Linux atau perangkat IoT yang berada di balik firewall dan tidak memiliki IP statis, layanan tunneling bisa digunakan
Pengalaman peretasan SSH tunneling yang paling rumit terjadi saat koneksi antar data center
Ingin ada lebih banyak visualisasi jaringan
TCP-over-TCP dapat menambah overhead dan latensi sehingga performa bisa menurun
Tunnel SSH adalah alat yang sangat bagus, tetapi belakangan ini lebih sering menggunakan alat yang sudah memiliki TLS dan fitur reverse proxy bawaan
sshuttle adalah alat yang lebih baik untuk tunneling
sshuttle -r user@host 10.0.0.0/8, alat ini bisa digunakan seperti VPNMulai menggunakan tunnel SSH 15 tahun lalu untuk melewati firewall jaringan kampus
Bertanya-tanya apakah SSH sendiri memiliki fitur redirect