Skip to content
This repository has been archived by the owner on Mar 5, 2023. It is now read-only.

Latest commit

 

History

History
49 lines (35 loc) · 3.04 KB

README.md

File metadata and controls

49 lines (35 loc) · 3.04 KB

zanproxy

A proxy detector for Zandronum.

Compiling

To compile this program, you need a working Go environment and a GOPATH set up. Once you do, this project is go gettable.

go get github.com/AlexMax/zanproxy

Note that you do not necessarily need a Go environment on the server you wish to use the program on - you can simply compile the program on one machine and copy the binary. For more information about how to cross-compile with Go, read this.

Configuration

To use this program, you first need a TOML format configuration file. Here is a sample configuration:

Banlist = "/opt/zandronum/list/banlist.txt"
Email = "[email protected]"
Logfiles = ["/opt/zandronum/log/*.log"]
MinScore = 1.0

Banlist

Banlist is the path to the banlist that your Zandronum servers use. The program will automatically append any bans to the bottom of this file, first checking for duplicates. The program should have write access to this file.

Email

Email is a valid, working, contact e-mail address. Without one, the API driving this software will refuse to work.

Logfiles

Logfiles is an array of logfiles the program should monitor. Globbing is allowed, but the program will not automatically monitor any logfile that is created after the program starts.

MinScore

MinScore is a score between 0.0 and 1.0 that the program will ban proxies greater than or equal to this number. Each IP is rated on a scale from 0.0 to 1.0: scores of 1.0 are confirmed proxies, anything less is a likelyhood guesstimate based on a machine learning algorithm. If you want to be safe, set this to 1.0. Use extreme caution when setting this to anything less than 0.99. I would recommend starting at 1.0 and then keeping an eye on the output of this program to see if any of your regular players would get caught by your desired score. For more information on how this score is determined, see this website.

BanMessage

BanMessage is the message a ban will be writen to the Banlist with. The message will be visible to the suspected player when they get kicked out of the server and if they try to reconnect. This parameter is optional.

Use

To run this program, simply pass the path to the configuration file. It is also recommended that you pipe standard output to a file, as detailed logs are kept of every IP examined, their score, and any action taken.

$ ./zanproxy zanproxy.cfg 2>> zanproxy.log

License

This program is licensed under the GNU Affero General Public License v3. If this license is not acceptable to you for some reason, please let me know and perhaps we can work something out.

Attribution

This program uses IP Intelligence for scoring IP addresses. Thank you to the developer and maintainer of this invaluable service.