Commit 86e8cf23 authored by Ahmad Nemati's avatar Ahmad Nemati

init

parent a9f999c9
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>
\ No newline at end of file
const socksv5 = require('socksv5') const socksv5 = require('socksv5')
const shell = require('shelljs')
let authUserList = []
const PORT = 1080 const PORT = 5000
const server = socksv5.createServer((_, resolve) => resolve()) const server = socksv5.createServer((_, resolve) => resolve())
server.listen(PORT, () => console.log(`Listen: localhost:${PORT}`)) server.listen(PORT, () => console.log(`Listen: localhost:${PORT}`))
server.useAuth(socksv5.auth.UserPassword((username, password, cb) => { server.useAuth(socksv5.auth.UserPassword((username, password, cb) => {
console.log(`Connected a new user: ${username} ${password}`) isAuthUser(username,password,cb)
cb(true)
})) }))
async function isAuthUser(user, pass, cb) {
let cashedUser = await isUserFoundInCashe(user, pass, cb)
if (cashedUser) {
cb(true)
return true
}
let isRadiusUser = await radius(user, pass)
if (isRadiusUser) {
cb(true)
authUserList.push({user: user, pass: pass})
return true
}
cb(false)
}
async function radius(user, pass) {
let a = await shell.exec('radtest ' + user + ' ' + pass + ' ' + '54.38.189.114 0 testing123', {silent: true}).stdout;
return a.includes("Access-Request") === true
}
async function isUserFoundInCashe(user, pass) {
for (let i = 0; i < authUserList.length; i++) {
if (authUserList[i].user === user && authUserList[i].pass === pass)
return true
}
return false
}
...@@ -9,9 +9,11 @@ ...@@ -9,9 +9,11 @@
"cookie-parser": "~1.4.3", "cookie-parser": "~1.4.3",
"debug": "~2.6.9", "debug": "~2.6.9",
"express": "~4.16.0", "express": "~4.16.0",
"hashmap": "^2.3.0",
"http-errors": "~1.6.2", "http-errors": "~1.6.2",
"morgan": "~1.9.0", "morgan": "~1.9.0",
"pug": "2.0.0-beta11", "pug": "2.0.0-beta11",
"shelljs": "^0.8.3",
"socksv5": "0.0.6" "socksv5": "0.0.6"
} }
} }
let a=' salm Access-Request of id 149 to 54.38.189.114 port 1812'
console.log(a.includes("Access-Request"))
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment