Add Argument parser and flexible ports and destination
This commit is contained in:
parent
44573d328b
commit
ab34e62ff0
20
knockr.go
20
knockr.go
@ -4,13 +4,27 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"io"
|
"io"
|
||||||
"net"
|
"net"
|
||||||
|
"github.com/mkideal/cli"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
type knockArguments struct {
|
||||||
|
cli.Helper
|
||||||
|
WhitelistPort int `cli:'wp' usage:'The port to launch the whitelist server on'`
|
||||||
|
GatewayPort int `cli:'gp' usage:'The port to protect'`
|
||||||
|
Destination string `cli:'d' usage:'The destination to relay traffic to'`
|
||||||
|
}
|
||||||
|
|
||||||
var whitelist []string
|
var whitelist []string
|
||||||
|
var arguments *knockArguments
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
go listener(9090, whitelist_handler)
|
cli.Run(new(knockArguments), func(ctx *cli.Context) error {
|
||||||
listener(8080, gateway_handler)
|
arguments = ctx.Argv() . (*knockArguments)
|
||||||
|
return nil
|
||||||
|
})
|
||||||
|
|
||||||
|
go listener(arguments.WhitelistPort, whitelist_handler)
|
||||||
|
listener(arguments.GatewayPort, gateway_handler)
|
||||||
}
|
}
|
||||||
|
|
||||||
func listener(port int, listen_func func(c net.Conn)) {
|
func listener(port int, listen_func func(c net.Conn)) {
|
||||||
@ -68,7 +82,7 @@ func is_whitelisted(addr string) bool {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func proxy(c net.Conn) {
|
func proxy(c net.Conn) {
|
||||||
ln, err := net.Dial("tcp", "ip.darknebu.la:443")
|
ln, err := net.Dial("tcp", arguments.Destination)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Println("[ERR] Proxy connection to server failed")
|
fmt.Println("[ERR] Proxy connection to server failed")
|
||||||
} else {
|
} else {
|
||||||
|
Loading…
Reference in New Issue
Block a user