Updated MeshAgents, MeshCentral Router and bug fixes.
This commit is contained in:
parent
8f8d48aeeb
commit
76f853bbd7
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
|
@ -27,6 +27,7 @@ function amt_heci() {
|
||||||
this._setupPTHI = function _setupPTHI()
|
this._setupPTHI = function _setupPTHI()
|
||||||
{
|
{
|
||||||
this._amt = heci.create();
|
this._amt = heci.create();
|
||||||
|
this._amt.descriptorMetadata = "amt-pthi";
|
||||||
this._amt.BiosVersionLen = 65;
|
this._amt.BiosVersionLen = 65;
|
||||||
this._amt.UnicodeStringLen = 20;
|
this._amt.UnicodeStringLen = 20;
|
||||||
|
|
||||||
|
@ -397,20 +398,25 @@ function amt_heci() {
|
||||||
fn.apply(this, opt);
|
fn.apply(this, opt);
|
||||||
}, callback, optional);
|
}, callback, optional);
|
||||||
}
|
}
|
||||||
this.getProtocolVersion = function getProtocolVersion(callback) {
|
this.getProtocolVersion = function getProtocolVersion(callback)
|
||||||
|
{
|
||||||
var optional = [];
|
var optional = [];
|
||||||
for (var i = 1; i < arguments.length; ++i) { opt.push(arguments[i]); }
|
for (var i = 1; i < arguments.length; ++i) { opt.push(arguments[i]); }
|
||||||
|
|
||||||
heci.doIoctl(heci.IOCTL.HECI_VERSION, Buffer.alloc(5), Buffer.alloc(5), function (status, buffer, self, fn, opt) {
|
if (!this._tmpSession) { this._tmpSession = heci.create(); this._tmpSession.parent = this;}
|
||||||
|
this._tmpSession.doIoctl(heci.IOCTL.HECI_VERSION, Buffer.alloc(5), Buffer.alloc(5), function (status, buffer, self, fn, opt)
|
||||||
|
{
|
||||||
if (status == 0) {
|
if (status == 0) {
|
||||||
var result = buffer.readUInt8(0).toString() + '.' + buffer.readUInt8(1).toString() + '.' + buffer.readUInt8(2).toString() + '.' + buffer.readUInt16BE(3).toString();
|
var result = buffer.readUInt8(0).toString() + '.' + buffer.readUInt8(1).toString() + '.' + buffer.readUInt8(2).toString() + '.' + buffer.readUInt16BE(3).toString();
|
||||||
opt.unshift(result);
|
opt.unshift(result);
|
||||||
fn.apply(self, opt);
|
fn.apply(self, opt);
|
||||||
}
|
}
|
||||||
else {
|
else
|
||||||
|
{
|
||||||
opt.unshift(null);
|
opt.unshift(null);
|
||||||
fn.apply(self, opt);
|
fn.apply(self, opt);
|
||||||
}
|
}
|
||||||
|
|
||||||
}, this, callback, optional);
|
}, this, callback, optional);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,6 +27,7 @@ function amt_heci() {
|
||||||
this._setupPTHI = function _setupPTHI()
|
this._setupPTHI = function _setupPTHI()
|
||||||
{
|
{
|
||||||
this._amt = heci.create();
|
this._amt = heci.create();
|
||||||
|
this._amt.descriptorMetadata = "amt-pthi";
|
||||||
this._amt.BiosVersionLen = 65;
|
this._amt.BiosVersionLen = 65;
|
||||||
this._amt.UnicodeStringLen = 20;
|
this._amt.UnicodeStringLen = 20;
|
||||||
|
|
||||||
|
@ -397,20 +398,25 @@ function amt_heci() {
|
||||||
fn.apply(this, opt);
|
fn.apply(this, opt);
|
||||||
}, callback, optional);
|
}, callback, optional);
|
||||||
}
|
}
|
||||||
this.getProtocolVersion = function getProtocolVersion(callback) {
|
this.getProtocolVersion = function getProtocolVersion(callback)
|
||||||
|
{
|
||||||
var optional = [];
|
var optional = [];
|
||||||
for (var i = 1; i < arguments.length; ++i) { opt.push(arguments[i]); }
|
for (var i = 1; i < arguments.length; ++i) { opt.push(arguments[i]); }
|
||||||
|
|
||||||
heci.doIoctl(heci.IOCTL.HECI_VERSION, Buffer.alloc(5), Buffer.alloc(5), function (status, buffer, self, fn, opt) {
|
if (!this._tmpSession) { this._tmpSession = heci.create(); this._tmpSession.parent = this;}
|
||||||
|
this._tmpSession.doIoctl(heci.IOCTL.HECI_VERSION, Buffer.alloc(5), Buffer.alloc(5), function (status, buffer, self, fn, opt)
|
||||||
|
{
|
||||||
if (status == 0) {
|
if (status == 0) {
|
||||||
var result = buffer.readUInt8(0).toString() + '.' + buffer.readUInt8(1).toString() + '.' + buffer.readUInt8(2).toString() + '.' + buffer.readUInt16BE(3).toString();
|
var result = buffer.readUInt8(0).toString() + '.' + buffer.readUInt8(1).toString() + '.' + buffer.readUInt8(2).toString() + '.' + buffer.readUInt16BE(3).toString();
|
||||||
opt.unshift(result);
|
opt.unshift(result);
|
||||||
fn.apply(self, opt);
|
fn.apply(self, opt);
|
||||||
}
|
}
|
||||||
else {
|
else
|
||||||
|
{
|
||||||
opt.unshift(null);
|
opt.unshift(null);
|
||||||
fn.apply(self, opt);
|
fn.apply(self, opt);
|
||||||
}
|
}
|
||||||
|
|
||||||
}, this, callback, optional);
|
}, this, callback, optional);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -40,9 +40,9 @@ module.exports.CreateMpsServer = function (parent, db, args, certificates) {
|
||||||
obj.server.on('resumeSession', function (id, cb) { cb(null, tlsSessionStore[id.toString('hex')] || null); });
|
obj.server.on('resumeSession', function (id, cb) { cb(null, tlsSessionStore[id.toString('hex')] || null); });
|
||||||
}
|
}
|
||||||
|
|
||||||
obj.server.listen(args.mpsport, function () {
|
obj.server.listen(args.mpsport, args.mpsportbind, function () {
|
||||||
console.log("MeshCentral Intel(R) AMT server running on " + certificates.AmtMpsName + ":" + args.mpsport + ((args.mpsaliasport != null) ? (", alias port " + args.mpsaliasport) : "") + ".");
|
console.log("MeshCentral Intel(R) AMT server running on " + certificates.AmtMpsName + ":" + args.mpsport + ((args.mpsaliasport != null) ? (", alias port " + args.mpsaliasport) : "") + ".");
|
||||||
obj.parent.authLog('mps', 'Server listening on 0.0.0.0 port ' + args.mpsport + '.');
|
obj.parent.authLog('mps', 'Server listening on ' + ((args.mpsportbind != null) ? args.mpsportbind : '0.0.0.0') + ' port ' + args.mpsport + '.');
|
||||||
}).on("error", function (err) { console.error("ERROR: MeshCentral Intel(R) AMT server port " + args.mpsport + " is not available."); if (args.exactports) { process.exit(); } });
|
}).on("error", function (err) { console.error("ERROR: MeshCentral Intel(R) AMT server port " + args.mpsport + " is not available."); if (args.exactports) { process.exit(); } });
|
||||||
|
|
||||||
obj.server.on('tlsClientError', function (err, tlssocket) { if (args.mpsdebug) { var remoteAddress = tlssocket.remoteAddress; if (tlssocket.remoteFamily == 'IPv6') { remoteAddress = '[' + remoteAddress + ']'; } console.log('MPS:Invalid TLS connection from ' + remoteAddress + ':' + tlssocket.remotePort + '.'); } });
|
obj.server.on('tlsClientError', function (err, tlssocket) { if (args.mpsdebug) { var remoteAddress = tlssocket.remoteAddress; if (tlssocket.remoteFamily == 'IPv6') { remoteAddress = '[' + remoteAddress + ']'; } console.log('MPS:Invalid TLS connection from ' + remoteAddress + ':' + tlssocket.remotePort + '.'); } });
|
||||||
|
|
1663
public/commander.htm
1663
public/commander.htm
File diff suppressed because one or more lines are too long
|
@ -122,21 +122,21 @@ module.exports.CreateRedirServer = function (parent, db, args, func) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Find a free port starting with the specified one and going up.
|
// Find a free port starting with the specified one and going up.
|
||||||
function CheckListenPort(port, func) {
|
function CheckListenPort(port, addr, func) {
|
||||||
var s = obj.net.createServer(function (socket) { });
|
var s = obj.net.createServer(function (socket) { });
|
||||||
obj.tcpServer = s.listen(port, function () { s.close(function () { if (func) { func(port); } }); }).on("error", function (err) {
|
obj.tcpServer = s.listen(port, function () { s.close(function () { if (func) { func(port, addr); } }); }).on("error", function (err) {
|
||||||
if (args.exactports) { console.error("ERROR: MeshCentral HTTP server port " + port + " not available."); process.exit(); }
|
if (args.exactports) { console.error("ERROR: MeshCentral HTTP server port " + port + " not available."); process.exit(); }
|
||||||
else { if (port < 65535) { CheckListenPort(port + 1, func); } else { if (func) { func(0); } } }
|
else { if (port < 65535) { CheckListenPort(port + 1, addr, func); } else { if (func) { func(0); } } }
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// Start the ExpressJS web server, if the port is busy try the next one.
|
// Start the ExpressJS web server, if the port is busy try the next one.
|
||||||
function StartRedirServer(port) {
|
function StartRedirServer(port, addr) {
|
||||||
if (port == 0 || port == 65535) { return; }
|
if (port == 0 || port == 65535) { return; }
|
||||||
obj.tcpServer = obj.app.listen(port, function () {
|
obj.tcpServer = obj.app.listen(port, addr, function () {
|
||||||
obj.port = port;
|
obj.port = port;
|
||||||
console.log("MeshCentral HTTP redirection server running on port " + port + ".");
|
console.log("MeshCentral HTTP redirection server running on port " + port + ".");
|
||||||
obj.parent.authLog('http', 'Server listening on 0.0.0.0 port ' + port + '.');
|
obj.parent.authLog('http', 'Server listening on ' + ((addr != null)?addr:'0.0.0.0') + ' port ' + port + '.');
|
||||||
obj.parent.updateServerState('redirect-port', port);
|
obj.parent.updateServerState('redirect-port', port);
|
||||||
func(obj.port);
|
func(obj.port);
|
||||||
}).on('error', function (err) {
|
}).on('error', function (err) {
|
||||||
|
@ -155,7 +155,7 @@ module.exports.CreateRedirServer = function (parent, db, args, func) {
|
||||||
return (servernameRe.test(servername) && -1 === servername.indexOf('..') && servername) || '';
|
return (servernameRe.test(servername) && -1 === servername.indexOf('..') && servername) || '';
|
||||||
};
|
};
|
||||||
|
|
||||||
CheckListenPort(args.redirport, StartRedirServer);
|
CheckListenPort(args.redirport, args.redirportbind, StartRedirServer);
|
||||||
|
|
||||||
return obj;
|
return obj;
|
||||||
};
|
};
|
||||||
|
|
|
@ -21,10 +21,13 @@
|
||||||
"statsevents": 2592000
|
"statsevents": 2592000
|
||||||
},
|
},
|
||||||
"_Port": 443,
|
"_Port": 443,
|
||||||
|
"_PortBind": "127.0.0.1",
|
||||||
"_AliasPort": 444,
|
"_AliasPort": 444,
|
||||||
"_RedirPort": 80,
|
"_RedirPort": 80,
|
||||||
|
"_RedirPortBind": "127.0.0.1",
|
||||||
"_RedirAliasPort": 80,
|
"_RedirAliasPort": 80,
|
||||||
"_AgentPort": 1234,
|
"_AgentPort": 1234,
|
||||||
|
"_AgentPortBind": "127.0.0.1",
|
||||||
"_AgentAliasPort": 1234,
|
"_AgentAliasPort": 1234,
|
||||||
"_AgentAliasDNS": "agents.myserver.mydomain.com",
|
"_AgentAliasDNS": "agents.myserver.mydomain.com",
|
||||||
"_AgentPortTls": true,
|
"_AgentPortTls": true,
|
||||||
|
@ -61,6 +64,7 @@
|
||||||
"_TlsOffload": "127.0.0.1,::1",
|
"_TlsOffload": "127.0.0.1,::1",
|
||||||
"_TrustedProxy": "127.0.0.1,::1",
|
"_TrustedProxy": "127.0.0.1,::1",
|
||||||
"_MpsPort": 44330,
|
"_MpsPort": 44330,
|
||||||
|
"_MpsPortBind": "127.0.0.1",
|
||||||
"_MpsAliasPort": 4433,
|
"_MpsAliasPort": 4433,
|
||||||
"_MpsAliasHost": "mps.mydomain.com",
|
"_MpsAliasHost": "mps.mydomain.com",
|
||||||
"_MpsTlsOffload": true,
|
"_MpsTlsOffload": true,
|
||||||
|
|
28
webserver.js
28
webserver.js
|
@ -4805,10 +4805,10 @@ module.exports.CreateWebServer = function (parent, db, args, certificates) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Start server on a free port.
|
// Start server on a free port.
|
||||||
CheckListenPort(obj.args.port, StartWebServer);
|
CheckListenPort(obj.args.port, obj.args.portbind, StartWebServer);
|
||||||
|
|
||||||
// Start on a second agent-only alternative port if needed.
|
// Start on a second agent-only alternative port if needed.
|
||||||
if (obj.args.agentport) { CheckListenPort(obj.args.agentport, StartAltWebServer); }
|
if (obj.args.agentport) { CheckListenPort(obj.args.agentport, obj.args.agentportbind, StartAltWebServer); }
|
||||||
}
|
}
|
||||||
|
|
||||||
// Authenticates a session and forwards
|
// Authenticates a session and forwards
|
||||||
|
@ -5024,30 +5024,30 @@ module.exports.CreateWebServer = function (parent, db, args, certificates) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Find a free port starting with the specified one and going up.
|
// Find a free port starting with the specified one and going up.
|
||||||
function CheckListenPort(port, func) {
|
function CheckListenPort(port, addr, func) {
|
||||||
var s = obj.net.createServer(function (socket) { });
|
var s = obj.net.createServer(function (socket) { });
|
||||||
obj.tcpServer = s.listen(port, function () { s.close(function () { if (func) { func(port); } }); }).on('error', function (err) {
|
obj.tcpServer = s.listen(port, addr, function () { s.close(function () { if (func) { func(port, addr); } }); }).on('error', function (err) {
|
||||||
if (args.exactports) { console.error('ERROR: MeshCentral HTTPS server port ' + port + ' not available.'); process.exit(); }
|
if (args.exactports) { console.error('ERROR: MeshCentral HTTPS server port ' + port + ' not available.'); process.exit(); }
|
||||||
else { if (port < 65535) { CheckListenPort(port + 1, func); } else { if (func) { func(0); } } }
|
else { if (port < 65535) { CheckListenPort(port + 1, addr, func); } else { if (func) { func(0); } } }
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// Start the ExpressJS web server
|
// Start the ExpressJS web server
|
||||||
function StartWebServer(port) {
|
function StartWebServer(port, addr) {
|
||||||
if ((port < 1) || (port > 65535)) return;
|
if ((port < 1) || (port > 65535)) return;
|
||||||
obj.args.port = port;
|
obj.args.port = port;
|
||||||
if (obj.tlsServer != null) {
|
if (obj.tlsServer != null) {
|
||||||
if (obj.args.lanonly == true) {
|
if (obj.args.lanonly == true) {
|
||||||
obj.tcpServer = obj.tlsServer.listen(port, function () { console.log('MeshCentral HTTPS server running on port ' + port + ((args.aliasport != null) ? (', alias port ' + args.aliasport) : '') + '.'); });
|
obj.tcpServer = obj.tlsServer.listen(port, addr, function () { console.log('MeshCentral HTTPS server running on port ' + port + ((args.aliasport != null) ? (', alias port ' + args.aliasport) : '') + '.'); });
|
||||||
} else {
|
} else {
|
||||||
obj.tcpServer = obj.tlsServer.listen(port, function () { console.log('MeshCentral HTTPS server running on ' + certificates.CommonName + ':' + port + ((args.aliasport != null) ? (', alias port ' + args.aliasport) : '') + '.'); });
|
obj.tcpServer = obj.tlsServer.listen(port, addr, function () { console.log('MeshCentral HTTPS server running on ' + certificates.CommonName + ':' + port + ((args.aliasport != null) ? (', alias port ' + args.aliasport) : '') + '.'); });
|
||||||
obj.parent.updateServerState('servername', certificates.CommonName);
|
obj.parent.updateServerState('servername', certificates.CommonName);
|
||||||
}
|
}
|
||||||
if (obj.parent.authlog) { obj.parent.authLog('https', 'Server listening on 0.0.0.0 port ' + port + '.'); }
|
if (obj.parent.authlog) { obj.parent.authLog('https', 'Server listening on ' + ((addr != null) ? addr : '0.0.0.0') + ' port ' + port + '.'); }
|
||||||
obj.parent.updateServerState('https-port', port);
|
obj.parent.updateServerState('https-port', port);
|
||||||
if (args.aliasport != null) { obj.parent.updateServerState('https-aliasport', args.aliasport); }
|
if (args.aliasport != null) { obj.parent.updateServerState('https-aliasport', args.aliasport); }
|
||||||
} else {
|
} else {
|
||||||
obj.tcpServer = obj.app.listen(port, function () { console.log('MeshCentral HTTP server running on port ' + port + ((args.aliasport != null) ? (', alias port ' + args.aliasport) : '') + '.'); });
|
obj.tcpServer = obj.app.listen(port, addr, function () { console.log('MeshCentral HTTP server running on port ' + port + ((args.aliasport != null) ? (', alias port ' + args.aliasport) : '') + '.'); });
|
||||||
obj.parent.updateServerState('http-port', port);
|
obj.parent.updateServerState('http-port', port);
|
||||||
if (args.aliasport != null) { obj.parent.updateServerState('http-aliasport', args.aliasport); }
|
if (args.aliasport != null) { obj.parent.updateServerState('http-aliasport', args.aliasport); }
|
||||||
}
|
}
|
||||||
|
@ -5067,20 +5067,20 @@ module.exports.CreateWebServer = function (parent, db, args, certificates) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Start the ExpressJS web server on agent-only alternative port
|
// Start the ExpressJS web server on agent-only alternative port
|
||||||
function StartAltWebServer(port) {
|
function StartAltWebServer(port, addr) {
|
||||||
if ((port < 1) || (port > 65535)) return;
|
if ((port < 1) || (port > 65535)) return;
|
||||||
var agentAliasPort = null;
|
var agentAliasPort = null;
|
||||||
if (args.agentaliasport != null) { agentAliasPort = args.agentaliasport; }
|
if (args.agentaliasport != null) { agentAliasPort = args.agentaliasport; }
|
||||||
if (obj.tlsAltServer != null) {
|
if (obj.tlsAltServer != null) {
|
||||||
if (obj.args.lanonly == true) {
|
if (obj.args.lanonly == true) {
|
||||||
obj.tcpAltServer = obj.tlsAltServer.listen(port, function () { console.log('MeshCentral HTTPS agent-only server running on port ' + port + ((agentAliasPort != null) ? (', alias port ' + agentAliasPort) : '') + '.'); });
|
obj.tcpAltServer = obj.tlsAltServer.listen(port, addr, function () { console.log('MeshCentral HTTPS agent-only server running on port ' + port + ((agentAliasPort != null) ? (', alias port ' + agentAliasPort) : '') + '.'); });
|
||||||
} else {
|
} else {
|
||||||
obj.tcpAltServer = obj.tlsAltServer.listen(port, function () { console.log('MeshCentral HTTPS agent-only server running on ' + certificates.CommonName + ':' + port + ((agentAliasPort != null) ? (', alias port ' + agentAliasPort) : '') + '.'); });
|
obj.tcpAltServer = obj.tlsAltServer.listen(port, addr, function () { console.log('MeshCentral HTTPS agent-only server running on ' + certificates.CommonName + ':' + port + ((agentAliasPort != null) ? (', alias port ' + agentAliasPort) : '') + '.'); });
|
||||||
}
|
}
|
||||||
if (obj.parent.authlog) { obj.parent.authLog('https', 'Server listening on 0.0.0.0 port ' + port + '.'); }
|
if (obj.parent.authlog) { obj.parent.authLog('https', 'Server listening on 0.0.0.0 port ' + port + '.'); }
|
||||||
obj.parent.updateServerState('https-agent-port', port);
|
obj.parent.updateServerState('https-agent-port', port);
|
||||||
} else {
|
} else {
|
||||||
obj.tcpAltServer = obj.agentapp.listen(port, function () { console.log('MeshCentral HTTP agent-only server running on port ' + port + ((agentAliasPort != null) ? (', alias port ' + agentAliasPort) : '') + '.'); });
|
obj.tcpAltServer = obj.agentapp.listen(port, addr, function () { console.log('MeshCentral HTTP agent-only server running on port ' + port + ((agentAliasPort != null) ? (', alias port ' + agentAliasPort) : '') + '.'); });
|
||||||
obj.parent.updateServerState('http-agent-port', port);
|
obj.parent.updateServerState('http-agent-port', port);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue