IP Scrubbing Plugin

From Vertigo Gaming Wiki
Revision as of 09:33, 31 March 2017 by Silence (talk | contribs)

Jump to: navigation, search

In Source, there is a client side cvar known as net_showevents. What this cvar does is that it shows all net events affecting or being broadcast to the game client. When a player uses this before or after he joins a server, he will get any information sent to him by the server, which also includes player join information, which also includes a player's IP.

As you can imagine, this has been used by many malicious users to threaten or cause harm to other users. In later versions of Source-based games, this cvar was either taken out or made into a cheat variable that cannot be accessed while on a server. However, for many Source-based games, that is not the case. The next best thing server owners can do is scrub IP information from being sent out from the server so that users using this client-side cvar cannot pick up IP information sent by clients to the server.

This plugin is a general purpose plugin and it can be used for almost any Source-based game. It is strongly advised to use this (or some form of plugin with similar functionality) to make it harder to grab people's IP information from the server in order to protect users.

How It Works

Being that this is a client-side cvar, the server cannot technically block it from being used. While the server can, however, scan for its use using pre- or post- join forwards for players joining the server, it might not be enough to keep it from grabbing information (especially true for Source 2007 games that do not have pre- join forward events). This can cause a problem as users can easily join a game and still get player information by connecting to the server if it is timed just right. Having the server actively scanning for this cvar's use can also cause the server to work harder than it should to prevent its use.

So with the IP Scrubber, the idea is simply this: If the server cannot prevent/punish users from using net_showevents via plugins, the next best thing is to scrub what the user sends to the server to broadcast. While this will not punish users who maliciously use this cvar, the solution is much simpler/easier to do and, ultimately, better for everyone playing on the server as it will no longer send out information to every player with another player's IP information.

With this plugin, as soon as a user connects, but before the server does a broadcast of the information, the IP Scrubber will take the information sent upon joining the server and scrub all text its about to broadcast out. The plugin was also designed to make sure this information is logged in the server's logs so that server owners can find this information for punishing a player.

Code and Plugin Download

Below is the download link and code for the plugin:

How To Install Plugin

To install the plugin, simply download the files, unzip them, and then copy the addons folder into your game server's main directory. This will add ALL of the files into your game's "addons/sourcemod" directories. If asked to merge folders, click yes. If asked to overwrite, click yes. There is no special configuration files or cvars for this plugin, it works right out of the box. This plugin also works for most Source-based games that support Sourcemod.

Setup

This plugin does not require any special configs or setup to use (outside of Sourcemod/Metamod of course). Simply move the plugin files to the correct folders into "~/addons/sourcemod/" of your game directory and it should start working automatically.

This version of the plugin was compiled on SM 1.7.3, so it should work for Sourcemod 1.7.3 or later. If you need this for an older/specialized version of Sourcemod, you may want to compile the plugin (script files are included) for your version of Sourcemod.

All of this is provided "as is". While this plugin should not cause harm, any harm caused by the plugin, user handling, or anything else Vertigo Gaming and all associated coders are not responsible for it. Use at your own risk!