Post Restored:
(This will work for any server version between 6.0.7 - 6.4.2)
If you use your regular Server Monitor remotely then you are most likely subjective to other people screwing with your server once they get your IP. I have solved that issue by creating a Secured Server Controller and matching Server Monitor.
Each INI file is also provided as default templates with extra settings, I will not go into detail of each setting in this post but I did put notes in the INI files and you simply need to update it with your current settings plus the info below.
How it works:
This new server Controller is built to require user logins and also a ControllerAccessKey, the key you set can be anything you want it to be. However, the MonitorAccessKey must be an exact match to the ControllerAccessKey. Please see below.
The Controller will never expose it's ControllerAccessKey to the network or the Monitor to make sure it cannot be hacked or bypassed. Instead, the Monitor will send it's MonitorAccessKey to the Controller ONLY AFTER the user has successfully logged into the Monitor based on the Account settings you define in the database you see at the bottom of this post.
After the Monitor sends it's MonitorAccessKey, the Controller will check it against the ControllerAccessKey to see if it is a match. If they match then you can use your Monitor normally, if they do not match then the Controller will not send any data to the Monitor and not accept any data either.
The reason i designed it this way is so it has a 2-step Authentication method so if you want to quickly remove a single user you can change their password in the database... If you want to remove all users except yourself you can just change the access key.
It is also important to note, no one can lock you out of your own Controller since the ControllerAccessKey is located in the INI. There is no possible way for a Monitor to push changes to your Controller's INI file.
Download Link:
The following link contains all of the exe files and required dlls plus template INI files for each exe, make backups of your current ones before replacing them with these. The dll files included are needed.
Database Needed:
To use the Server Controller and Monitor you will need to create the database "MonitorData" then add the tables below. Only add players that you want to grant access to! (See next CODE block for ManageLv access definitions)
ActionLog and LoginHistory are log tables only.
ManageLv Settings:
These are the Monitor access levels based on the Account and ManageLv you create for anyone that you want to give access to.
(This will work for any server version between 6.0.7 - 6.4.2)
If you use your regular Server Monitor remotely then you are most likely subjective to other people screwing with your server once they get your IP. I have solved that issue by creating a Secured Server Controller and matching Server Monitor.
Each INI file is also provided as default templates with extra settings, I will not go into detail of each setting in this post but I did put notes in the INI files and you simply need to update it with your current settings plus the info below.
How it works:
This new server Controller is built to require user logins and also a ControllerAccessKey, the key you set can be anything you want it to be. However, the MonitorAccessKey must be an exact match to the ControllerAccessKey. Please see below.
The Controller will never expose it's ControllerAccessKey to the network or the Monitor to make sure it cannot be hacked or bypassed. Instead, the Monitor will send it's MonitorAccessKey to the Controller ONLY AFTER the user has successfully logged into the Monitor based on the Account settings you define in the database you see at the bottom of this post.
After the Monitor sends it's MonitorAccessKey, the Controller will check it against the ControllerAccessKey to see if it is a match. If they match then you can use your Monitor normally, if they do not match then the Controller will not send any data to the Monitor and not accept any data either.
The reason i designed it this way is so it has a 2-step Authentication method so if you want to quickly remove a single user you can change their password in the database... If you want to remove all users except yourself you can just change the access key.
It is also important to note, no one can lock you out of your own Controller since the ControllerAccessKey is located in the INI. There is no possible way for a Monitor to push changes to your Controller's INI file.
Code:
[ Config.ini (This is the Controller's INI file) ]
;EveryServer Monitor's 'MonitorAccessKey' must match this access alpha-numeric key you create
;(example: "KesfD2N4W5LF767Nh23h4dth7dsf65M")
ControllerAccessKey = "AnyKeyYouWantToUseHere"
[ RAServerMonitor.ini (This is the Monitor's INI file) ]
;---------------------------------------------------
;Sends this key to the controller for authentication
;---------------------------------------------------
MonitorAccessKey = "This key must match the key in the Controller's Config.ini"
Download Link:
The following link contains all of the exe files and required dlls plus template INI files for each exe, make backups of your current ones before replacing them with these. The dll files included are needed.
Code:
Secure - RAServerController and RAServerMonitor.rar
[URL]https://drive.google.com/uc?export=download&id=1kTsgO8B3w0VhP0Eurp8RGwToXuYoabJg[/URL]
SideNote - these files must be used as a pair, the Controller will not allow older Monitors to connect to it
Database Needed:
To use the Server Controller and Monitor you will need to create the database "MonitorData" then add the tables below. Only add players that you want to grant access to! (See next CODE block for ManageLv access definitions)
Code:
CREATE TABLE [dbo].[AccountTable](
[Account] [varchar](32) NOT NULL,
[Password] [varchar](32) NOT NULL,
[ManageLv] [int] NOT NULL,
[LoggedIn] [int] NOT NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[ActionLog](
[Account] [varchar](32) NOT NULL,
[Action] [varchar](64) NOT NULL,
[Time] [smalldatetime] NOT NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[LoginHistory](
[Account] [varchar](32) NOT NULL,
[Type] [varchar](32) NOT NULL,
[Time] [smalldatetime] NOT NULL
) ON [PRIMARY]
GO
ActionLog and LoginHistory are log tables only.
ManageLv Settings:
These are the Monitor access levels based on the Account and ManageLv you create for anyone that you want to give access to.
Code:
ManageLv <= 11: (Monitor Observer Only)
{
Function->Enabled = false;
Config->Enabled = false;
Help->Enabled = false;
}
ManageLv = 12: (Partial Control Only)
{
Function->Enabled = true;
Config->Enabled = false;
Help->Enabled = true;
}
ManageLv = 13: (Full Control)
{
Function->Enabled = true;
Config->Enabled = true;
Help->Enabled = true;
}
Last edited: