Curbing enthusiasm

edited January 20 in Server Support

Greetings! I feel it'd be nice for the community to roll out a script to curb such enthusiasm as the following;


"xxx.xxx.xxx ip

Got challenge request

Sent challenge response

x 9000"


The above went on for hours with little impact on the server before a console visit revealed the waste of time.

What would be appropriate responses to such?

Adding the ip to the classicviralbanlist?

One script option could be a simple timer to limit such spam to say 1 connect request every x seconds before a timeout of say 3 or 30 minutes for exceeding said limit?

Any input appreciated!

Comments

  • It's hard to say without knowing the timing/details whether there may be a legitimate reason for reconnecting that you may want to avoid discouraging − if you're using custom maps, for example, they may be trying to figure out how to install them, or it's possible they may be getting disconnections such as the common CRC check error depending on the server configuration.

    The easiest route to go if the behaviour is problematic would be simply modifying GameConnection::onConnect (either via altering server.cs or creating a new package hook) to add something like BanList::add(%client.guid, %client.getAddress(), 15); for every player connection, and optionally explicitly removing the ban when they finish loading. Now, nominally this ban shouldn't have any consequences for normal players if you keep the timing argument low enough (15 seconds in this example), but encountering an error message indicating they're not allowed to play may stop someone from trying again just out of the inconvenience of having to close it... meaning while a person rapidly reconnecting within that period may stop if it changes what they're doing, you may also discourage, say, someone who accidentally disconnected while loading, or players sharing a network connection who have the same external IP. You could of course leave out the IP from the ban entry to avoid the latter scenario, but you'd skip the earliest abort possibility, and would spend a little more time processing their connection handshake to get the GUID. You'll still see the connection attempt in the console in any case.

    I don't recall offhand if there was ever a released mod/script that addressed this behaviour specifically in any way, but it's definitely something I remember discussing with a few people. I personally probably wouldn't bother writing a brand new incremental ban system if it's just one person doing this; rapid reconnections can certainly be malicious − 20 years back there was one group that briefly used it very aggressively to try to cause problems and spam up chat with join/disconnect messages − but for the most part it's arguably pretty low impact besides the annoyance factor and likely requiring you to restart the server a little sooner. With one person the simplest answer is just to permaban and hope they aren't savvy enough to skirt around it, but if multiple people were connecting/disconnecting non-stop, it'd definitely be worth detecting and banning after something like 5+ connections in X seconds.

  • This happened because the GUID for DemoBot-Mia is banned. This user / IP is responsible for the 24/7 Tribes 2 stream and automatic demo capture: https://twitch.tv/t2vault

    My scripting hasn't been updated to handle being banned by GUID or IP and I was asleep when more than three players joined your server, so the robot continuously attempted to join blindly and a different bug prevented it from noticing the server emptied. Sorry about that.

    I've added your server to the DemoBot blacklist, so you'll never see that IP/GUID attempting to connect unless it's my regular game client.

    If you would like to allow it to reconnect, unban the bot's GUID/username (DemoBot-Mia, GUID 4361824) and reply to this thread. Only after that will I remove your IP from my blacklist. Otherwise, you shouldn't need to do anything else, it won't happen again.

    Since I've identified myself, I'd appreciate it if you could redact my static IP from your post.

  • Ah I see now, thanks, also dunno why it acts like it's banned as there aren't any ips or guids in the banlist at the server.

Sign In or Register to comment.