diff options
| author | Marin Ivanov <[email protected]> | 2019-03-24 22:21:08 +0200 |
|---|---|---|
| committer | Marin Ivanov <[email protected]> | 2019-03-24 22:21:08 +0200 |
| commit | c9585c36afe0c502c91e5ad527af1c71a80feb0a (patch) | |
| tree | 3a8adf46ced72bea7410ed377c116af4330f6883 /main.go | |
| parent | 6ab1613157a6a5d3eabf9d2fe2adf4699d29a5ba (diff) | |
Add Makefile and configurable delay
Diffstat (limited to 'main.go')
| -rw-r--r-- | main.go | 14 |
1 files changed, 11 insertions, 3 deletions
@@ -13,9 +13,11 @@ import ( func main() { var protocol string var bindAddr string + var delayParam string var port int - flag.StringVarP(&protocol, "proto", "P", "ssh", "protocol to trap") + flag.StringVarP(&protocol, "proto", "P", "ssh", "protocol to tarpit") + flag.StringVarP(&delayParam, "delay", "d", "10s", "delay between the tarpit keep-alive data packets") flag.StringVarP(&bindAddr, "bind-address", "b", "", "address to bind the socket to") flag.IntVarP(&port, "port", "p", 22, "TCP port") flag.Parse() @@ -25,14 +27,20 @@ func main() { fmt.Fprintln(os.Stderr, "Error: protocol handler;", err.Error()) os.Exit(1) } + delay, err := time.ParseDuration(delayParam) + if err != nil { + fmt.Fprintln(os.Stderr, "Error: parse delay;", err.Error()) + os.Exit(1) + } - rand.Seed(time.Now().UnixNano()) bind := fmt.Sprintf("%s:%d", bindAddr, port) ln, err := net.Listen("tcp", bind) if err != nil { fmt.Fprintln(os.Stderr, "Error: server listen;", err.Error()) os.Exit(1) } + + rand.Seed(time.Now().UnixNano()) fmt.Fprintf(os.Stderr, "** Server listening on %s\n", bind) for { conn, err := ln.Accept() @@ -40,6 +48,6 @@ func main() { // handle error continue } - go connHandler(handler, conn) + go connHandler(handler, conn, delay) } } |
