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 shell = require('shelljs')
let authUserList = []
const PORT = 1080
const PORT = 5000
const server = socksv5.createServer((_, resolve) => resolve())
server.listen(PORT, () => console.log(`Listen: localhost:${PORT}`))
server.useAuth(socksv5.auth.UserPassword((username, password, cb) => {
console.log(`Connected a new user: ${username} ${password}`)
cb(true)
isAuthUser(username,password,cb)
}))
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
}
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