start laying in the VPN thingy

This commit is contained in:
idk
2018-12-03 16:50:50 -05:00
parent f6aff1be50
commit 525d54e7b2
9 changed files with 117 additions and 22 deletions

View File

@ -16,9 +16,9 @@ echo:
find . -path ./.go -prune -o -name "*.go" -exec gofmt -w {} \;
find . -path ./.go -prune -o -name "*.i2pkeys" -exec rm {} \;
test: test-ntcp test-ssu test-vpn test-config test-manager
test: test-ntcp test-ssu test-config test-manager
full-test: test-serve test
full-test: test-serve test-vpn test
test-serve:
cd serve_test && go test

View File

@ -102,12 +102,12 @@ Donate
BTC:159M8MEUwhTzE9RXmcZxtigKaEjgfwRbHt
-----BEGIN PGP SIGNATURE-----
iQEzBAEBCAAdFiEEcNIGBzi++AUjrK/311wDs5teFOEFAlwFfIkACgkQ11wDs5te
FOHqyQf/aEAgUcfMkBYsh1VvEHYZVnuIaIt1daHlUvCmkj3XNIoUdaCNZxtdh5uE
cM6hxWfD7vk9yq5SUHf7bnyEMrDCU/rTbNn/squ+yWKO6sIXKvKuGwHqn7OTh9hR
+HcW5CKRehRCpHNKDgYQ94mRu77gFSXqWAXJuV4NyL7pAwy2b3UzwZ2+PHhxHokm
TqMGefr7D6toe+pBzECLljRuXnNIWaKDXG0rqaudSz4/yii0nrA+c3j5WbPS8+3v
VGGsod6VAbCd6w1toVFjY4NmWAMXTTwsA8KtQhtb9kJTSxCq2ZO/if3VEBLypTEH
NUXEQZ0kdgeI3XvM+mqhj5sUsRoi7g==
=jXu5
iQEzBAEBCAAdFiEEcNIGBzi++AUjrK/311wDs5teFOEFAlwFpTYACgkQ11wDs5te
FOFJ9QgAniEFvWHW+BnU6EeH0VG8rQgnkSuO72E0rX3wlU2dwxHJFqPS0bVbPlwC
nTzZMKDp2ZHWfq7PUfDFemyUjt7rVLdSFt//a7rY8u+8cJrenDxwZLdi8UUTmeBe
/KvyUaPTSALWJ1EmNPaqq9ODtRR7q2VbQc5AmDU1k6jQOdfcUNO3smgT/HEqDzRZ
JYRvtIq3OPOqnZZWqnFs+2F96SYda8XIrX8sBG3GeNDAj8aKCudrtCsZhrZleY/e
qf+xpV+WvRUx6Z6ew0JPoifLMmdcTgBvxoPaeWteB+Gt3TsNDKU0OQ3NwyXUx76D
wvMrb4bYH7o3lf4cj/4k9pFLS5aEwg==
=AU0g
-----END PGP SIGNATURE-----

View File

@ -477,8 +477,8 @@ func NewSAMSSUClientForwarderFromConf(config *Conf) (*samforwarderudp.SAMSSUClie
return nil, nil
}
// NewSAMSSUClientForwarderFromConfig generates a new SAMSSUForwarder from a config file
func NewSAMSSUClientForwarderFromConfig(iniFile, SamHost, SamPort string, label ...string) (*samforwarderudp.SAMSSUClientForwarder, error) {
// NewSAMVPNClientForwarderFromConfig generates a new SAMVPNForwarder from a config file
func NewSAMVPNClientForwarderFromConfig(iniFile, SamHost, SamPort string, label ...string) (*samforwardervpn.SAMClientServerVPN, error) {
if iniFile != "none" {
config, err := NewI2PTunConf(iniFile, label...)
if err != nil {
@ -490,7 +490,25 @@ func NewSAMSSUClientForwarderFromConfig(iniFile, SamHost, SamPort string, label
if SamPort != "" && SamPort != "7656" {
config.SamPort = config.GetSAMPort(SamPort, config.SamPort)
}
return NewSAMSSUClientForwarderFromConf(config)
return NewSAMClientServerVPN(config)
}
return nil, nil
}
// NewSAMVPNForwarderFromConfig generates a new SAMVPNForwarder from a config file
func NewSAMVPNForwarderFromConfig(iniFile, SamHost, SamPort string, label ...string) (*samforwardervpn.SAMClientVPN, error) {
if iniFile != "none" {
config, err := NewI2PTunConf(iniFile, label...)
if err != nil {
return nil, err
}
if SamHost != "" && SamHost != "127.0.0.1" && SamHost != "localhost" {
config.SamHost = config.GetSAMHost(SamHost, config.SamHost)
}
if SamPort != "" && SamPort != "7656" {
config.SamPort = config.GetSAMPort(SamPort, config.SamPort)
}
return NewSAMClientVPN(config)
}
return nil, nil
}

View File

@ -1,4 +1,4 @@
package i2pvpn
package samforwardervpn
import (
"github.com/eyedeekay/sam-forwarder/config"

View File

@ -1,11 +1,14 @@
package i2pvpn
package samforwardervpn
import (
"bytes"
"context"
"fmt"
"io"
"log"
"os"
"os/signal"
"syscall"
"time"
"github.com/eyedeekay/sam-forwarder/config"
@ -85,7 +88,15 @@ func NewSAMClientVPNFromOptions(opts ...func(*SAMClientVPN) error) (*SAMClientVP
}
var logBuf bytes.Buffer
Logger := log.New(io.MultiWriter(os.Stderr, &logBuf), "", log.Ldate|log.Ltime|log.Lshortfile)
s.VPNTunnel = udptunnel.NewTunnel(!s.Config.Client, s.Config.TunName, "10.76.0.2", s.Target(), "", []uint16{},
ctx, cancel := context.WithCancel(context.Background())
go func() {
sigc := make(chan os.Signal, 1)
signal.Notify(sigc, syscall.SIGINT, syscall.SIGTERM)
Logger.Printf("received %v - initiating shutdown", <-sigc)
cancel()
}()
s.VPNTunnel = udptunnel.NewTunnel(!s.Config.Client, s.Config.TunName, "10.76.0.3", s.Target(), "", []uint16{},
"i2pvpn", time.Duration(time.Second*300), Logger)
go s.VPNTunnel.Run(ctx)
return &s, nil
}

View File

@ -1,4 +1,4 @@
package i2pvpn
package samforwardervpn
import (
"github.com/eyedeekay/sam-forwarder/config"

View File

@ -1,11 +1,14 @@
package i2pvpn
package samforwardervpn
import (
"bytes"
"context"
"fmt"
"io"
"log"
"os"
"os/signal"
"syscall"
"time"
"github.com/eyedeekay/sam-forwarder/config"
@ -70,7 +73,15 @@ func NewSAMClientServerVPNFromOptions(opts ...func(*SAMClientServerVPN) error) (
}
var logBuf bytes.Buffer
Logger := log.New(io.MultiWriter(os.Stderr, &logBuf), "", log.Ldate|log.Ltime|log.Lshortfile)
ctx, cancel := context.WithCancel(context.Background())
go func() {
sigc := make(chan os.Signal, 1)
signal.Notify(sigc, syscall.SIGINT, syscall.SIGTERM)
Logger.Printf("received %v - initiating shutdown", <-sigc)
cancel()
}()
s.VPNTunnel = udptunnel.NewTunnel(!s.Config.Client, s.Config.TunName, "10.76.0.2", s.Target(), "", []uint16{},
"i2pvpn", time.Duration(time.Second*300), Logger)
go s.VPNTunnel.Run(ctx)
return &s, nil
}

View File

@ -1,15 +1,23 @@
package i2pvpn
package samforwardervpn
import (
"log"
// "net/http"
"github.com/eyedeekay/sam-forwarder/config"
"io/ioutil"
"log"
"net/http"
"testing"
"time"
)
func echo() {
http.Handle("/", http.FileServer(http.Dir("../server_test/www")))
log.Fatal(http.ListenAndServe("0.0.0.0:8022", nil))
}
func TestVPN(t *testing.T) {
log.Println("Setting up VPN")
go echo()
if sconfig, err := i2ptunconf.NewI2PTunConf("../etc/i2pvpn/i2pvpn.ini"); err == nil {
if vpn, err := NewSAMClientServerVPN(sconfig); err != nil {
t.Fatal(err)
@ -20,8 +28,20 @@ func TestVPN(t *testing.T) {
if vpnc, err := NewSAMClientVPN(config, vpn.Base32()); err != nil {
t.Fatal(err)
} else {
time.Sleep(time.Duration(30 * time.Second))
log.Println(&vpnc)
time.Sleep(time.Duration(30 * time.Second))
resp, err := http.Get("http://10.76.0.2:8022/test.html")
if err != nil {
t.Fatal(err)
}
defer resp.Body.Close()
if resp.StatusCode == http.StatusOK {
bodyBytes, err := ioutil.ReadAll(resp.Body)
if err != nil {
t.Fatal(err)
}
log.Println(string(bodyBytes))
}
}
} else {
t.Fatal(err)

View File

@ -9,6 +9,7 @@ import (
import (
"github.com/eyedeekay/sam-forwarder"
"github.com/eyedeekay/sam-forwarder/config"
"github.com/eyedeekay/sam-forwarder/csvpn"
"github.com/eyedeekay/sam-forwarder/udp"
)
@ -31,6 +32,8 @@ type SAMManager struct {
clientforwarders []*samforwarder.SAMClientForwarder
udpforwarders []*samforwarderudp.SAMSSUForwarder
udpclientforwarders []*samforwarderudp.SAMSSUClientForwarder
vpnforwarders []*samforwardervpn.SAMClientServerVPN
vpnclientforwarders []*samforwardervpn.SAMClientVPN
}
func stringify(s []string) string {
@ -239,6 +242,22 @@ func NewSAMManagerFromOptions(opts ...func(*SAMManager) error) (*SAMManager, err
} else {
return nil, fmt.Errorf(e.Error())
}
/*
case "vpnserver":
if f, e := i2ptunconf.NewSAMSSUForwarderFromConfig(s.FilePath, s.SamHost, s.SamPort, label); e == nil {
log.Println("found udpserver under", label)
s.udpforwarders = append(s.udpforwarders, f)
} else {
return nil, fmt.Errorf(e.Error())
}
case "vpnclient":
if f, e := i2ptunconf.NewSAMSSUClientForwarderFromConfig(s.FilePath, s.SamHost, s.SamPort, label); e == nil {
log.Println("found udpclient under", label)
s.udpclientforwarders = append(s.udpclientforwarders, f)
} else {
return nil, fmt.Errorf(e.Error())
}
*/
default:
if f, e := i2ptunconf.NewSAMForwarderFromConfig(s.FilePath, s.SamHost, s.SamPort, label); e == nil {
log.Println("found server under", label)
@ -291,6 +310,22 @@ func NewSAMManagerFromOptions(opts ...func(*SAMManager) error) (*SAMManager, err
} else {
return nil, fmt.Errorf(e.Error())
}
/*
case "vpnserver":
if f, e := i2ptunconf.NewSAMSSUForwarderFromConfig(s.FilePath, s.SamHost, s.SamPort); e == nil {
log.Println("found default udpserver")
s.udpforwarders = append(s.udpforwarders, f)
} else {
return nil, fmt.Errorf(e.Error())
}
case "vpnclient":
if f, e := i2ptunconf.NewSAMSSUClientForwarderFromConfig(s.FilePath, s.SamHost, s.SamPort); e == nil {
log.Println("found default udpclient")
s.udpclientforwarders = append(s.udpclientforwarders, f)
} else {
return nil, fmt.Errorf(e.Error())
}
*/
default:
if f, e := i2ptunconf.NewSAMClientForwarderFromConfig(s.FilePath, s.SamHost, s.SamPort); e == nil {
log.Println("found default client")