UTPolicies
version 0.2


Description
-----------
UTPolicies provides more methods to do access policy management.

Features:
- Access policies based on HWIDs provided by ACE
- Access policies based on MACs provided by UTDC and ACE
- Access policies based on ACGUIDs provided by AnthChecker
- Access policies based on hostnames provided by IpToCountry
- Management by webadmin
- Logging to external logs or stats
- Notification of HWID, MAC and hostname to other actors


Installation
------------
Copy UTPolicies02.u to the UT\System folder.

If you want to manage the policies with the webadmin:
1. Copy web\*.uhtm to the UT\Web folder
2. Add the following to the [UWeb.WebServer] section:
	Applications[x]=UTPolicies02.UTPoliciesAdmin
	ApplicationPaths[x]=/UTPolicies

And:

HWIDs are provided by ACE version 0.70 and higer, older versions do not provide this information.
Check the ACE documentation for more information and installation instructions.
To do policy management on MACHashes, add the following to the [Engine.GameEngine] section:
	ServerActors=UTPolicies02.ACECatcher

MACHashes are provided by UTDC version 2.0b and higer, older versions do not provide this information.
Beware that UTDC is only effective on Windows clients and currently has compatibility issues with recent Windows version.
Check the UTDC documentation for more information and installation instructions.
To do policy management on MACHashes, add the following to the [Engine.GameEngine] section:
	ServerActors=UTPolicies02.MACCatcher

MACHashes are also provided by ACE version.
The current version of ACE (0.6q) doesn't provide UTDC compatible hashes, this seems to be availabe in version 0.7.
Check the ACE documentation for more information and installation instructions.
To do policy management on MACHashes, add the following to the [Engine.GameEngine] section:
 * If you use ACE v0.6x:
	ServerActors=UTPolicies02.ACEMACCatcher
 * Else:
	ServerActors=UTPolicies02.MACCatcher


ACGUIDs are provided by AnthChecker version 1.32 and higer.
Check the AnthChecker documentation for more information and installation instructions; ensure bExternalNotify is enabled!
To do policy management on hashes of ACGUIDs, add the following to the [Engine.GameEngine] section:
	ServerActors=UTPolicies02.ACGUIDCatcher

Hostnames are provided by IpToCountry.
Check the IpToCountry documentation for more information and installation instructions.
To do policy management on hashes of ACGUIDs, add the following to the [Engine.GameEngine] section:
	ServerActors=UTPolicies02.HostnameCatcher


Configuration
-------------
The configuration is stored in UTPolicies.ini.

[UTPolicies02.ACGUIDCatcher]
bExternalLogs=false			; Log the ACGUIDs to an external log file.
LogPath=../MACs/			; Folder to store the external logs (create the folder first!)
bLogToStats=false			; Log the ACGUID to the statslog.
ACGUIDPolicies[x]=ACCEPT,*		; Policies, similair to IPPolicies.

[UTPolicies02.HostnameCatcher]
bExternalLogs=false			; Log the ACGUIDs to an external log file.
LogPath=../Hosts/			; Folder to store the external logs (create the folder first!)
bLogToStats=false			; Log the hostnames to the statslog.
HostPolicies[x]=ACCEPT,*		; Policies, similair to IPPolicies.

[UTPolicies02.MACCatcher]
bExternalLogs=false			; Log the MACHashes to an external log file.
LogPath=../MACs/			; Folder to store the external logs (create the folder first!)
bLogToStats=false			; Log the MACHash to the statslog.
MACPolicies[x]=ACCEPT,*			; Policies, similair to IPPolicies.

[UTPolicies02.ACEMACCatcher]		; For MACHashes provided by ACE v0.6x
bExternalLogs=false			; Log the MACHashes to an external log file.
LogPath=../MACs/			; Folder to store the external logs (create the folder first!)
bLogToStats=false			; Log the MACHash to the statslog.
MACPolicies[x]=ACCEPT,*			; Policies, similair to IPPolicies.

[UTPolicies02.ACECatcher]
bExternalLogs=False			; Log the HWIDs to an external log file.
LogPath=../HWIDs/			; Folder to store the external logs (create the folder first!)
bLogToStats=False			; Log the HWID to the statslog.
HWHashPolicies[x]=ACCEPT,*		; Policies, similair to IPPolicies.


Upgrade
--------

If you use an older version of UTPolicies, you can keep your current policies and settings by renaming the section names in the UTPolicies.ini.

Example:
[UTPolicies01.MACCatcher] will be [UTPolicies02.MACCatcher]
[UTPolicies01.ACGUIDCatcher] will be [UTPolicies02.ACGUIDCatcher]
etc

Warning:
MACHashes provided by ACE v0.6x are not compatible with UTDC MACHashes.
Therefor do not move the MACPolicies of the MACCatcher to the ACEMACCatcher and when ACE v0.7x is available, do no move the MACPolicies of the ACEMACCatcher to the MACCatcher.
However, you can upgrade the current MACPolicies. This will be effective with ACE v0.7x and the UTPolicies02.MACCatcher ServerActor configured.


Usage
-----
The policies can be administrated by de webadmin or with the console.

With the console, you must be logged in as administator (adminlogin).
All commands must start with mutate first (e.g. mutate showinfo):

ShowInfo		= List of details of players (PlayerID and IP, optionally HWID/MAC/ACGUID/Host)

BanHWID {PlayerID}	= Bans the player by HWID
DenyHWID {MAC}		= Adds a deny policy for the given HWID
AllowHWID {MAC}		= Removes a deny policy for the given HWID

BanMAC {PlayerID}	= Bans the player by MAC
DenyMAC {MAC}		= Adds a deny policy for the given MAC
AllowMAC {MAC}		= Removes a deny policy for the given MAC

BanACGUID {PlayerID}	= Bans the player by ACGUID
DenyACGUID {ACGUID}	= Adds a deny policy for the given ACGUID
AllowACGUID {ACGUID}	= Removes a deny policy for the given ACGUID

BanHost {PlayerID}	= Bans the player by hostname
DenyHost {Host}		= Adds a deny policy for the given hostname
AllowHost {Host}	= Removes a deny policy for the given hostname


Known issues
------------
- No wildcard support in hostname policies
- Access policies based on IP's are handled by UT defaults (UTServerAdmin)
- ACE v0.6x doesn't provide UTDC compatible MACHashes


Credits
-------
- AnthraX


History
-------
0.2	2010/04/07	+ ACE support
0.1	2009/10/18	Initial version