Sneaky
⚠️ Versions 1.0.11 to 1.0.13 have an oversight allowing unwhitelisted or banned players to still see MOTD and player list. This only affects servers with whitelist on. I made a mistake in adding players to the allowed list too early in the signin process. It's unlikely that this was abused on a wide scale as it still required successful authentication with Mojang (on Online-Mode servers). 1.0.14.1 is available for all affected Minecraft versions
Sneaky anonymises your server from server scanners like Copenheimer, Shodan or ServerSeeker by only showing server info to players who have previously joined.
Sneaky has other options to protect your server including disabling logs for unauthorised players, and ratelimiting the creation of new connections.
Configuration
The configuration is stored in config/sneakyserver/config.properties
hide-server-ping-data: (Default: true) Only sends server ping data to known players
hide-player-list: (Default: false) Sends server ping data to unknown players, but doesn't send a user list. Only works when "hide-server-ping-data" is false.
dont-log-unauthed-client-disconnects: (Default: false) Prevents the server from logging failed offline-mode player logins. Prevents logs when the client closes the connection. Example of a server being spammed with offline mode logins: https://www.reddit.com/r/Minecraft/comments/12ip3gd/who_is_shepan/
dont-log-unauthed-server-disconnects: (Default: false) Prevents the server from logging failed offline-mode player logins. Prevents logs when the server closes the connection
rate-limit-new-connections: (Default: true) Enables a rate limit for clients creating new connections.
new-connection-rate-limit: (Default: 7) Connection limit over 15 seconds. If a client exceeds this limit new connections will be closed.
disable-query-until-login: (Default: false) shows the server as offline before the first time a player joins
disable-legacy-query: (Default: true) disables legacy ping used by clients older than Minecraft 1.6
disable-connections-from-banned-ips: (Default: false) closes connections from banned IPs before reaching login logic. May be incompatible with BungeeCord or Velocity
Hiding ping data
Sneaky hides server info by keeping a list of IP addresses of known players and their last join date, only allowing known players to receive the real server info, and appearing as an unconfigured server with no player activity to server scanners and players who have never joined. this feature is meant to be a no compromise alternative to vanilla's hide-online-players feature, allowing members of a server to see relevant information without leaking that information to scanners or un-whitelisted players (in the case of a whitelisted server)
Before joining
Before first joining, players and server scanners see a generic, unconfigured server with no player activity
After joining
After their first join, players will see the real MOTD, server icon, and online players list
How to Install Sneaky Server (Mod)
Sneaky Server by adryd is verified for Fabric, Quilt across Minecraft versions 1.19.4, 1.20, 1.20-rc1, 1.20.1, 1.20.1-rc1, 1.20.2, 1.20.3, 1.20.4 (latest release: 1.0.19, file size: 24 KB). Follow the steps below to install it safely from ModCraft.tv:
- Click the Download button above and select your Minecraft version (1.19.4, 1.20, 1.20-rc1, 1.20.1, 1.20.1-rc1, 1.20.2, 1.20.3, 1.20.4) and platform (Fabric, Quilt).
- Make sure you have the compatible loader or environment installed for Fabric, Quilt.
- Move the downloaded Sneaky Server file into your Minecraft
.minecraft/modsfolder and launch the game.
All Versions
+ Add Version- Build for 1.21.5
- Most features untested
- Fix unwhitelisted users from being able to be added to AllowedIPs list. Note that this still required a succesful authentication from Mojang so scanners were unlikely to get any information.
- Updated to 1.21
- Fix errors with disableAllPingsUntilLogin
- Updated mappings
- Removed dependency on access wideners
- Fixed disableAllPingsUntilLogin
- LegacyQueryHandler was refactored
- Change logic to decide whether to log a disconnection.
authorized. This needs testing.
- Optimise IP comparison logic for rate limiting
- Update IP stringify logic to fix issues with IPv6
- New
disable-legacy-queryoption. Disables legacy ping used by clients older than Minecraft 1.6 - New
disable-connections-from-banned-ipsoption. Prevents banned IPs from establishing a TCP connection - Newly generated
allowed-ping-ips.csvfiles will allow loopback to ping. This fixes issues with some Auto Pause features.
- Add option to disable query until first join
- Set config for dont-log-unauthed-client-disconnects to false since there are currently no login spammers*
- Bump default new-connection-rate-limit to 7
- I prefer it at false because it helps admins debug why players cannot join
- Make dont-log-unauthed-client-disconnects default to true cause of recent login spam bots
- Add note to config file asking user to read modrinth for docs
- Properly fix checkAllowConnection
this release was made entirely on a cell phone while on a road trip so i hope it works
pulled from CI build
- Add configs
- Move allowed IPs storage to config/sneakyserver
- Add new connection rate limits
- Add options to disable disconnection logs for unauthorised players (shepan, cuute)