Repositori ini berisi implementasi sederhana jaringan pribadi virtual point-to-point dengan membuka perangkat TUN dan mentransfer lalu lintas mentah melalui UDP. VPN ini dirancang untuk membuat terowongan antara dua host:
Lalu lintas TUN dikirim ad-verbatim antara dua titik akhir melalui paket UDP yang tidak terenkripsi. Oleh karena itu, ini hanya boleh digunakan jika protokol yang lebih aman (seperti SSH; lihat github.com/dsnet/sshtunnel) berjalan di atas VPN ini. Untuk mencegah penyerang terhubung ke soket lain yang terikat secara lokal di titik akhir, filter port sederhana sudah terpasang untuk membatasi lalu lintas IP hanya ke port tertentu. Pengguna udptunnel juga harus menyiapkan aturan iptable sebagai tindakan sekunder untuk membatasi lalu lintas berbahaya.
Ini hanya mendukung Linux.
Bangun daemon:
go get -u github.com/dsnet/udptunnel
Buat file konfigurasi server:
{
"TunnelAddress" : "10.0.0.1" ,
"NetworkAddress" : ":8000" ,
"AllowedPorts" : [ 22 ] ,
}
NetworkAddress
dengan host kosong menunjukkan bahwa daemon beroperasi dalam mode server.
Buat file konfigurasi klien:
{
"TunnelAddress" : "10.0.0.2" ,
"NetworkAddress" : "server.example.com:8000" ,
"AllowedPorts" : [ 22 ] ,
}
Host server.example.com
diasumsikan menyelesaikan ke beberapa alamat di mana klien dapat mencapai server.
Mulai daemon di klien dan server (dengan asumsi $GOPATH/bin
ada di $PATH
Anda):
[email protected] $ udptunnel /path/to/config.json
[email protected] $ udptunnel /path/to/config.json
Coba akses endpoint lainnya (contohnya untuk klien ke server):
[email protected] $ ping 10.0.0.1
PING 10.0.0.1 (10.0.0.1) 56(84) bytes of data.
64 bytes from 10.0.0.1: icmp_req=1 ttl=64 time=56.7 ms
64 bytes from 10.0.0.1: icmp_req=2 ttl=64 time=58.7 ms
64 bytes from 10.0.0.1: icmp_req=3 ttl=64 time=50.1 ms
64 bytes from 10.0.0.1: icmp_req=4 ttl=64 time=51.6 ms
[email protected] $ nmap 10.0.0.1
Host is up (0.063s latency).
PORT STATE SERVICE
22/tcp open ssh
[email protected] $ ssh 10.0.0.1
Password: ...
Contoh di atas menunjukkan klien mencoba berkomunikasi dengan server, yang beralamat di 10.0.0.1
. Contoh perintah dapat dilakukan dari server dengan menghubungi klien di 10.0.0.2
.