23 Juni 2009

Tunneling UDP Melalui Koneksi SSH

Kali ini saya akan memberi contoh sederhana bagaimana melakukan tunneling UDP melalui koneksi SSH. Lebih singkatnya boleh dikatakan kamu akan mengirim paket UDP langsung antara dua jaringan secara aman. misalnya query DNS dari rumah kamu ke server DNS di kantor, maka kamu dapat mengikuti cara sebagai berikut:

1. Hubungkan remote server dan setting TCP forward.
    clients$ ssh -L 22222:127.0.0.1:22222 remote.server.be

    Permintaan apapun yang dikirim ke tcp lokal/port 22222 akan melalui tunnel secara aman ke remote server. Kemudian kita akan menggunakan netcat untuk memforward query TCP ke UDP server.

2. Forwarding TCP ke UDP dengan netcat pada Server
    server$ mkfifo /tmp/fifo
    server$ iptables -A INPUT -p tcp –dport 22222 -j ACCEPT
    server$ nc -l -p 22222 < /tmp/fifo | nc -u IP_ADDRESS_OF_DNSSERVER 53 > /tmp/fifo

3. Forwarding UDP ke TCP dengan netcat di Klien
    client$ mkfifo /tmp/fifo
    client$ sudo nc -l -u -p 53 < /tmp/fifo | nc 127.0.0.1 22222 > /tmp/fifo
    server$ nc -l -p 22222 < /tmp/fifo | nc 127.0.0.1 22222 > /tmp/fifo

    gunakan Sudo jika kamu bukan root, kamu harus jadi root untuk mengakses servis binding ke port di bawah 1024

4. Query
    nslookup sub.domain.be 127.0.0.1

Nah untuk lebih jelasnya skemanya sebagai berikut:

client –> merequest ke 127.0.0.1 udp/53 –> netcat memforward dari udp/53 ke tcp/22222 –> tcp/22222 melakukan tunneling melalui SSH –> server menerima permintaan query pada tcp/22222 –> netcat memforward dari tcp/22222 ke alamat ip yang dituju pada udp/53 –> server

bingung ya? heheh.. sama..

0 komentar:

Posting Komentar

Post Terakhir

Pengikut

Pesan


ShoutMix chat widget