diff --git a/app/server/app.js b/app/server/app.js index bd80bd7..3c61dbe 100644 --- a/app/server/app.js +++ b/app/server/app.js @@ -110,17 +110,15 @@ var session = require('express-session')({ unset: 'destroy' }) var app = express() -var compression = require('compression') var server = require('http').Server(app) var myutil = require('./util') -myutil.setDefaultCredentials(config.user.name, config.user.password, config.user.privatekey); +myutil.setDefaultCredentials(config.user.name, config.user.password, config.user.privatekey) var validator = require('validator') var io = require('socket.io')(server, { serveClient: false, path: '/ssh/socket.io' }) var socket = require('./socket') var expressOptions = require('./expressOptions') // express -app.use(compression({ level: 9 })) app.use(session) app.use(myutil.basicAuth) if (config.accesslog) app.use(logger('common')) diff --git a/app/server/socket.js b/app/server/socket.js index da880f8..f2767ea 100644 --- a/app/server/socket.js +++ b/app/server/socket.js @@ -7,7 +7,7 @@ var debug = require('debug') var debugWebSSH2 = require('debug')('WebSSH2') var SSH = require('ssh2').Client -var CIDRMatcher = require('cidr-matcher'); +var CIDRMatcher = require('cidr-matcher') // var fs = require('fs') // var hostkeys = JSON.parse(fs.readFileSync('./hostkeyhashes.json', 'utf8')) var termCols, termRows @@ -25,8 +25,8 @@ module.exports = function socket (socket) { } // If configured, check that requsted host is in a permitted subnet - if ( (((socket.request.session || {}).ssh || {}).allowedSubnets || {}).length && ( socket.request.session.ssh.allowedSubnets.length > 0 ) ) { - var matcher = new CIDRMatcher(socket.request.session.ssh.allowedSubnets); + if ((((socket.request.session || {}).ssh || {}).allowedSubnets || {}).length && (socket.request.session.ssh.allowedSubnets.length > 0)) { + var matcher = new CIDRMatcher(socket.request.session.ssh.allowedSubnets) if (!matcher.contains(socket.request.session.ssh.host)) { console.log('WebSSH2 ' + 'error: Requested host outside configured subnets / REJECTED'.red.bold + ' user=' + socket.request.session.username.yellow.bold.underline + @@ -124,7 +124,7 @@ module.exports = function socket (socket) { }) conn.on('end', function connOnEnd (err) { SSHerror('CONN END BY HOST', err) }) - conn.on('close', function connOnClose (err) { SSHerror('CONN CLOSE', err) }) + conn.on('close', function connOnClose (err) { SSHerror('CONN CLOSE', err) }) conn.on('error', function connOnError (err) { SSHerror('CONN ERROR', err) }) conn.on('keyboard-interactive', function connOnKeyboardInteractive (name, instructions, instructionsLang, prompts, finish) { debugWebSSH2('conn.on(\'keyboard-interactive\')') diff --git a/app/server/util.js b/app/server/util.js index 0ca3dca..3b929c2 100644 --- a/app/server/util.js +++ b/app/server/util.js @@ -7,12 +7,12 @@ require('colors') // allow for color property extensions in log messages var debug = require('debug')('WebSSH2') var Auth = require('basic-auth') -let defaultCredentials = {username: null, password: null, privatekey: null}; +const defaultCredentials = { username: null, password: null, privatekey: null } exports.setDefaultCredentials = function (username, password, privatekey) { - defaultCredentials.username = username - defaultCredentials.password = password - defaultCredentials.privatekey = privatekey + defaultCredentials.username = username + defaultCredentials.password = password + defaultCredentials.privatekey = privatekey } exports.basicAuth = function basicAuth (req, res, next) { @@ -24,11 +24,11 @@ exports.basicAuth = function basicAuth (req, res, next) { ' and password ' + ((myAuth.pass) ? 'exists'.yellow.bold.underline : 'is blank'.underline.red.bold)) } else { - req.session.username = defaultCredentials.username; - req.session.userpassword = defaultCredentials.password; - req.session.privatekey = defaultCredentials.privatekey; + req.session.username = defaultCredentials.username + req.session.userpassword = defaultCredentials.password + req.session.privatekey = defaultCredentials.privatekey } - if ( (!req.session.userpassword) && (!req.session.privatekey) ) { + if ((!req.session.userpassword) && (!req.session.privatekey)) { res.statusCode = 401 debug('basicAuth credential request (401)') res.setHeader('WWW-Authenticate', 'Basic realm="WebSSH"')