From 651f15d9b8bde1b024f97a42e92634afdc1eeda7 Mon Sep 17 00:00:00 2001 From: Emile Date: Mon, 27 Jan 2020 20:13:15 +0100 Subject: moved the source into an own folder --- src/ssh.go | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 src/ssh.go (limited to 'src/ssh.go') diff --git a/src/ssh.go b/src/ssh.go new file mode 100644 index 0000000..fbbfc9c --- /dev/null +++ b/src/ssh.go @@ -0,0 +1,63 @@ +package main + +// Handling incoming SSH connections +func handlePass(ctx ssh.Context, pass string) bool { + + // increase the counter tracking the amount of passwords catched + metrics_num_passwords++ + log.Printf("%s@%s: '%s'", ctx.User(), ctx.RemoteAddr().String(), pass) + + // get the ip of the remote user + stringip := strings.Split(ctx.RemoteAddr().String(), ":")[0] + + // Define the request string for the geoip service + requestString := fmt.Sprintf("%s%s", "http://ip-api.com/json/", stringip) + + // Send the GET request + resp, err := http.Get(requestString) + if err != nil { + log.Fatal(err) + } + + // if the response status code from the geoip service is not a 200 code, return false + if resp.StatusCode != 200 { + return false + } + + // Read the response + body, err := ioutil.ReadAll(resp.Body) + if err != nil { + log.Fatal(err) + } + + // Unmarshal the response to json + var result geoipresult + err = json.Unmarshal(body, &result) + if err != nil { + fmt.Println("JSON ERROR, abort mission!") + log.Fatal(err) + } + + // if an entry for the city does not exists yet, create the city + // if the city does allready exist, increase it's value by one + if metrics_city_num[result.City] == 0 { + metrics_city_num[result.City] = 1 + } else { + metrics_city_num[result.City] += 1 + } + + // if the actual city is not known, create the city + // this is used for the grafana worldmap plugin + if (cities[result.City] == location{}) { + newCity := location{ + key: strings.ToLower(result.City), + latitude: result.Lat, + longitude: result.Lon, + name: result.City, + } + + cities[result.City] = newCity + } + + return false +} \ No newline at end of file -- cgit 1.4.1