mirror of
https://github.com/yunginnanet/HellPot
synced 2024-06-29 17:20:50 +00:00
Feature - making X-Real-IP configurable (#70)
This commit is contained in:
parent
58e8ab29a9
commit
22a52aff04
@ -70,6 +70,9 @@ In the event of a missing configuration file, HellPot will attempt to place it's
|
|||||||
bind_addr = "127.0.0.1"
|
bind_addr = "127.0.0.1"
|
||||||
bind_port = "8080"
|
bind_port = "8080"
|
||||||
|
|
||||||
|
# header name containing clients real IP, for reverse proxy deployments
|
||||||
|
real_ip_header = 'X-Real-IP'
|
||||||
|
|
||||||
# this contains a list of blacklisted useragent strings. (case sensitive)
|
# this contains a list of blacklisted useragent strings. (case sensitive)
|
||||||
# clients with useragents containing any of these strings will receive "Not found" for any requests.
|
# clients with useragents containing any of these strings will receive "Not found" for any requests.
|
||||||
uagent_string_blacklist = ["Cloudflare-Traffic-Manager", "curl"]
|
uagent_string_blacklist = ["Cloudflare-Traffic-Manager", "curl"]
|
||||||
|
@ -129,6 +129,7 @@ func processOpts() {
|
|||||||
stringOpt := map[string]*string{
|
stringOpt := map[string]*string{
|
||||||
"http.bind_addr": &HTTPBind,
|
"http.bind_addr": &HTTPBind,
|
||||||
"http.bind_port": &HTTPPort,
|
"http.bind_port": &HTTPPort,
|
||||||
|
"http.real_ip_header": &HeaderName,
|
||||||
"logger.directory": &logDir,
|
"logger.directory": &logDir,
|
||||||
"deception.server_name": &FakeServerName,
|
"deception.server_name": &FakeServerName,
|
||||||
}
|
}
|
||||||
|
@ -36,6 +36,7 @@ var defOpts = map[string]map[string]interface{}{
|
|||||||
"unix_socket_permissions": "0666",
|
"unix_socket_permissions": "0666",
|
||||||
"bind_addr": "127.0.0.1",
|
"bind_addr": "127.0.0.1",
|
||||||
"bind_port": "8080",
|
"bind_port": "8080",
|
||||||
|
"real_ip_header": "X-Real-IP",
|
||||||
|
|
||||||
"router": map[string]interface{}{
|
"router": map[string]interface{}{
|
||||||
"catchall": false,
|
"catchall": false,
|
||||||
|
@ -42,6 +42,10 @@ var (
|
|||||||
HTTPBind string
|
HTTPBind string
|
||||||
// HTTPPort is defined via our toml configuration file. It is the port that HellPot listens on.
|
// HTTPPort is defined via our toml configuration file. It is the port that HellPot listens on.
|
||||||
HTTPPort string
|
HTTPPort string
|
||||||
|
// HeaderName is defined via our toml configuration file. It is the HTTP Header containing the original IP of the client,
|
||||||
|
// in traditional reverse Proxy deplyoments.
|
||||||
|
HeaderName string
|
||||||
|
|
||||||
// Paths are defined via our toml configuration file. These are the paths that HellPot will present for "robots.txt"
|
// Paths are defined via our toml configuration file. These are the paths that HellPot will present for "robots.txt"
|
||||||
// These are also the paths that HellPot will respond for. Other paths will throw a warning and will serve a 404.
|
// These are also the paths that HellPot will respond for. Other paths will throw a warning and will serve a 404.
|
||||||
Paths []string
|
Paths []string
|
||||||
|
@ -19,7 +19,7 @@ import (
|
|||||||
var log *zerolog.Logger
|
var log *zerolog.Logger
|
||||||
|
|
||||||
func getRealRemote(ctx *fasthttp.RequestCtx) string {
|
func getRealRemote(ctx *fasthttp.RequestCtx) string {
|
||||||
xrealip := string(ctx.Request.Header.Peek("X-Real-IP"))
|
xrealip := string(ctx.Request.Header.Peek(config.HeaderName))
|
||||||
if len(xrealip) > 0 {
|
if len(xrealip) > 0 {
|
||||||
return xrealip
|
return xrealip
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user