Skip to content

GTeamx/CoralGate

Repository files navigation

CoralGate

GitHub Release GitHub Downloads (all assets, latest release)
GitHub Downloads (all assets, all releases) GitHub License
GitHub commits since latest release GitHub commit activity (branch)
GitHub branch check runs GitHub branch check runs
GitHub Repo stars GitHub watchers GitHub forks Discord

On-the-fly packet inspection and real-time IP verification for Minecraft servers and networks.

CoralGate acts as a high-performance application firewall for your Minecraft infrastructure. By analyzing incoming packets: malicious payloads, scanners and bots are blocked before they truly reach your server. It secures your network across every layer, from spoofing your MOTD to appear as a "no-namer" server, all the way to checking proper packet order and even checking certain incoming connection fields.

If you wish to get support, test or have any questions about CoralGate, make sure to join our Discord server!

✅ Supported platforms/versions

< 1.8 1.8 1.8.3 1.8.8 1.9 1.9.1 1.9.2 1.9.3/4 1.10.x 1.11 1.11.x 1.12 1.12.1 1.12.2 1.13 1.13.1 1.13.2 1.14 1.14.1 1.14.2 1.14.3 1.14.4 1.15 1.15.1 1.15.2 1.16 1.16.1 1.16.2 1.16.3 1.16.4/5 1.17 1.17.1 1.18 1.18.1 1.18.2 1.19 1.19.1/2 1.19.3 1.19.4 1.20/.1 1.20.2 1.20.3/4 1.20.5/6 1.21/.1 1.21.2/3 1.21.4 1.21.5 1.21.6 1.21.7/8 1.21.9/10 1.21.11 26.1.x 26.2 > 26.2
Spigot ⚠️
Paper
BungeeCord
Velocity
Sponge
Fabric
Forge
NeoForge
📋 Versions notes

Spigot:

  • 1.8 throws an exception on any player join, not supported.
  • 1.8.3 works with an outdated packetevents version (2.10.1).
  • 1.9.1 jar cannot be downloaded or built.
  • 1.16 jar cannot be downloaded or built.
  • 1.19.3 throws java.lang.RuntimeException: The received byte array length is longer than maximum allowed (8742 > 512) for LOGIN_START wrapper.
  • 1.20.2 client sends PLUGIN_MESSAGE and CLIENT_SETTINGS after HANDSHAKE

Paper:

  • Only 1.8.8 build exists.
  • Only 1.9.4 build exists.
  • Only 1.11.2 build exists.
  • Only 1.12.2 build works (S3 bucket unreachable for 1.12/.1).
  • Only 1.16.x build exists.
  • Only 1.18.x build exists.
  • 1.19.3 throws java.lang.RuntimeException: The received byte array length is longer than maximum allowed (8742 > 512) for LOGIN_START wrapper.
  • 1.20.2 client sends PLUGIN_MESSAGE and CLIENT_SETTINGS after HANDSHAKE

Legend:

  • ✅: Fully supported.
  • ⚠️: Partially supported (missing features, using outdated dependencies, buggy or not fully tested...).
  • ❓: Unknown compatibility, not tested at all.
  • ❌: Not supported.

⬇️ Installation

This installation procedure is platform independant, it is the same for every supported platform above:

  • Download the latest version of packetevents.
  • Download the latest version of CoralGate for your platform (see download mirrors bellow).
  • Put both plugins in your "plugins" folder situated at the root of your server jar.
  • Restart your server.

CoralGate is now protecting your server from scanners!

🔄 Updates

Updates are released on a non-fixed schedule. Therefore update may appear at any given time, whereas to fix issues or add new features. The update process is the same as the installation process. To update your configuration file please take a look bellow for further instructions.

✏️ Configuration file

CoralGate has a very extensive and complete configuration file, situated in your plugins folder under the CoralGate folder. The file is named 'config.yml'. Every default value is marked in the comments above the field with explanation on it's impact.

If you ever mess up your configuration file, delete it and restart your server. The default configuration will be loaded.

If you recently updated CoralGate and get a warning saying your configuration file is outdated, delete your configuration file and let the new default configuration appear. To ensure you loose none of your settings, we advise you make a backup of your config.yml file beforehand.

🔔 Releases

CoralGate has a built-in update checker, however it will not automatically install nor download the update, it will only send a message telling you if you are up to date or not. To prevent any malware from infecting your server, only download CoralGate from our trusted sources:

Feel free to compile CoralGate yourself, however note that using a build from the dev branch will prevent you from getting support. If you want features or fixes to be added to CoralGate, please follow the Issues/Feature request section.

🚧 API

CoralGate uses it's own API to determine if an IP is malicious or not.

The API is hosted in Germarny and all data is processed within this country. This API doesn't require any key or subscription to be used. You can use it for free manually too.

To use the API manually, use the base URL: https://api.gteam.cloud/coralgate/v2/enter-ip-here

Simply replace "enter-ip-here" by the IP you wish to verify.
E.g.: https://api.gteam.cloud/coralgate/v2/185.65.134.164 (This is a known malicious ip address)
E.g.: https://api.gteam.cloud/coralgate/v2/9.9.9.9 (This is not a malicious ip address)

The API supports both IPv4 and IPv6 and has currently 2 major versions:

  • v2 (latest)
  • v1

🚷 API false positives

If your API, ISP, domain name or holders get blocked by our API and therefore from the CoralGate powered servers, contact us on Discord via our ticket system.

Provide the impacted ip address(es) and further explanation on the usage behind the ip address(es). Our support team will try their best to help you and get you unblocked from CoralGate.

Please note that we detect and block ip addresses that exerce the following behavior/service:

  • Port scanning
  • IP scanning
  • Crawlers
  • MOTD fetchers
  • Online player count fetchers/monitors
  • VPN/Proxy
  • TOR
  • Hosting services
  • Cloud providers
  • Bots
  • Server finders/scanners (shodan, OpenHeimer...) ....

Some services are exempt from these rules, such as:

  • Voting sites
  • Server lists

🎯 Issues/Feature request

Before opening an issue or feature request make sure you follow our templates.
If your issue/feature request goes unotice, you can open a ticket on our Discord server or bump it.

🔃 Contributing

Before contributing, please make sure that you follow our conventions (naming scheme, indentation) and that your code works.
Make sure to also precise on what platform and version your test was ran, with other plugins/mods installed (if applicable).

📎 Special Credits

Special credits to retrooper for making packetevents that we are using to analyze packets!
Thank you so much for your amazing work and dedication!

📜 License

This project is licensed under GNU General Public License v3.0 (GPL).

About

On-the-fly packet inspection and real-time IP verification for Minecraft servers and networks.

Topics

Resources

License

Stars

Watchers

Forks

Contributors

Languages