Panduan kecil ini memberi tahu Anda cara mengirim lalu lintas UDP melalui SSH menggunakan alat yang standar (ssh, nc, mkfifo) dengan sebagian besar sistem operasi mirip UNIX.
Melakukan tunneling UDP melalui koneksi SSH
Langkah demi langkah Buka port forward TCP dengan koneksi SSH Anda
Pada mesin lokal Anda (lokal), sambungkan ke mesin yang jauh (server) oleh SSH, dengan opsi -L tambahan sehingga SSH dengan TCP port-forward:
local# ssh -L 6667:localhost:6667 server.foo.com
Ini akan memungkinkan koneksi TCP pada nomor port 6667 dari mesin lokal Anda untuk diteruskan ke nomor port 6667 di server.foo.com melalui saluran aman. Atur TCP ke UDP maju di server
Di server, kami membuka pendengar pada port TCP 6667 yang akan meneruskan data ke port UDP 53 dari IP yang ditentukan. Jika Anda ingin melakukan penerusan DNS seperti saya, Anda dapat mengambil IP server nama pertama yang akan Anda temukan di /etc/resolv.conf. Tapi pertama-tama, kita perlu membuat fifo. Fifo diperlukan untuk memiliki komunikasi dua arah antara dua saluran. Pipa shell sederhana hanya akan mengkomunikasikan input standar proses ke 'kiri untuk input kanan proses'.
server# mkfifo /tmp/fifo
server# nc -l -p 6667 < /tmp/fifo | nc -u 192.168.1.1 53 > /tmp/fifo
Ini akan memungkinkan lalu lintas TCP pada port server 6667 untuk diteruskan ke lalu lintas UDP pada port 192.168.1.1 di port 53, dan tanggapan untuk kembali. Siapkan UDP ke TCP ke depan pada mesin Anda
Sekarang, kita perlu melakukan kebalikan dari apa yang dilakukan di atas pada mesin lokal. Anda memerlukan akses khusus untuk mengikat port UDP 53.
local# mkfifo /tmp/fifo
local# sudo nc -l -u -p 53 < /tmp/fifo | nc localhost 6667 > /tmp/fifo
Ini akan memungkinkan lalu lintas UDP pada port mesin lokal 53 untuk diteruskan ke lalu lintas TCP pada port mesin lokal 6667. Nikmati server DNS lokal Anda :)
Seperti yang mungkin sudah Anda duga sekarang, ketika permintaan DNS akan dilakukan pada mesin lokal, misalnya pada port UDP lokal 53, itu akan diteruskan ke port TCP lokal 6667, kemudian ke port TCP server 6667, kemudian ke server DNS server , Port UDP 53 dari 192.168.1.1. Untuk menikmati layanan DNS di mesin lokal Anda, masukkan baris berikut sebagai server nama pertama di /etc/resolv.conf Anda:
nameserver 127.0.0.1