Enhanced IP Banning

Beginning with version 2.0 of Coliseum2, an enhanced IP banning system is available with full wildcard support and is used in addition to the original Quake3 ban method.  You may opt to not use the original method at all by clearing out the variables related to that and stick with one way of banning IPs for easier management.

 

Ban List File Format:

To create an external ban IP list file, simply use any plan text editor (ex: Notepad or vi) and list the IPs that you want to ban with each IP on its own line.  Port numbers are not allowed in the ban list and will be ignored.  The maximum allowable IPs in the list is 100 and each IP entry cannot exceed 50 characters in length.

The ban IP list filename must end with the .cfg extension.  Otherwise, when running a pure server, the mod will not be able to access it for security reasons.  You may also want to create a sub directory under your mod directory where you would put all your ban list files for better organization and management.

 

IP Port Numbers & Wildcards:

In the IP ban list you may explicitly list the IPs you wish to ban or use wildcards for a wider ban.  IP numbers are usually 4 sets of 3 number with each set separated by a period (Example: 123.456.789.789) or they may also contain letters (Example:  123.abc.defghi.4456).  Port numbers attached at the end of an IP are not allowed and will be ignored.  Port numbers are usually a set of numbers that appear after a semicolon (Example:  123.456.789.345:27961).

You may also ban IPs by casting a wider net and use wild cards.  Allowable wildcards are "000" and "255".  In the position where wildcards are present in the IP, checks will not be performed and an automatic match is assumed.

Example:  234.456.623.000

The above example will ban any client whose IP begins with 234.456.623.

Example  123.255.000.567:27962

The above example will ban any client whose IP begins with 123 and ends with 567.  The port number (27962) is ignored.

 

Specifying a Ban IP List File:

CVAR:  g_banlistfile

Specify the name of the bap IP list file with the .cfg extension.  Default is blank ("").

Example:  set g_banlistfile "bozos.cfg"

If your ban IP list file is in a sub directory you have to include that sub directory name in the variable as well.

Example:  set g_banlistfile "banlists/bozos.cfg"

This will tell the mod to find a ban IP list called bozos.cfg located in the "banlists" sub directory.

 

Activating the Ban IP List Filter:

Specifying the ban IP list file alone will not activate the filter system for the list.  You must also activate the filter system and tell it to use the IPs read from the list .  Otherwise, only the original Quake3 method is used.  You may want to suspend filters against the IPs by simply changing the value to 0 without having to clear the list itself.

CVAR:  g_banlistrules

0 - Ban filter off - default
1 - Ban filter on

 

How to Prepare Your Server Config Files:  Order Matters

The ban list is processed after the initial map is started.  For that reason, it is important that you set the variables before the first map is started up.

Example1:  The following example attempts to set the ban variables after the first map is started.  This will not work because when map q3dm1 is loaded, the variables had not yet been set.  This the ban IP list will not be read in until the command readbanlist is manually executed.

[begin config]
...
...
map q3dm1
set g_banlistfile "bozos.cfg"
set g_banlistrules 1
[end config]

This will not work.

 

Example2:  The following example demonstrates the correct way to sequence events in your server config files.

[begin config]
...
...
set g_banlistfile "bozos.cfg"
set g_banlistrules 1
map q3dm1
[end config]

 

IP Ban List Maintenance Commands:

Once a IP ban list has been read into memory, it will remain in memory, even after a level change, or until a new list is explictly read in.  There are several commands that will allow the server admin or referee to maintain this list as it resides in memory.  Also, refer to Appendix A for a table of all commands and their overall possible permission settings.

< ... > indicates required parameter.  [ ... ] indicates optional parameter.

 Command & Usage
Description
 banlist [page #]

This will list the IPs being banned.  Where there are too many IPs to list at once, an optional page # may be specified.
This command may be enabled for all clients.

 addban <[IP], [client number]>

This command will add an IP to the ban list either by the client number of a current connected client or by specifying the IP itself.  An IP is recognized if it has any non-numeric characters or a period (.).  The maximum allowable IPs in the list is 100 and each IP entry cannot exceed 50 characters in length.

Example:  addban 3
This will add the the ban list the IP of client number 3.

Example:  addban 234.467.789.000
This will add the specified IP to the ban list.

Once an IP is added to the ban list, all current connect clients are checked to see if they match the newly added IP.  If so, they are kick immediately.

 rmban <entry #>

This will remove the specified ban IP entry from the list.

Example:  rmban 4
Will remove the 4th IP entry from the list.

 readbanlist
Once a ban IP list has been read in, it is kept in memory and the file itself is never looked at again.  However, the server admin or referee could change the variable g_banlistfile to point to a new file.  Execute the readbanlist command to perform a manual reread/new read of a ban IP file.

 


Table of Contents Enhanced Map Rotation Miscellany