Socket
Socket
Sign inDemoInstall

telnet-openvpn

Package Overview
Dependencies
Maintainers
1
Versions
16
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

telnet-openvpn

Connect to OpenVPN management port through telnet.


Version published
Maintainers
1
Created
Source

telnet-openvpn

Connect to OpenVPN management port through telnet.

Installation

$ npm install telnet-openvpn --save

Usage

ECMAScript 5

var TelnetVPN = require('telnet-openvpn');
  
var vpn = new TelnetVPN();
  
var options = {
    host: '127.0.0.1',
    port: 1337,
    ors: '\r\n',
    sendTimeout: 2000
};
  
var auth = {
    username: 'username',
    password: 'password'
};
  
  
vpn.connect(options);
  
vpn.on('connect', function() {
    vpn.exec('log on all').then(function() {
        return vpn.exec('state on').then(function() {
            return vpn.exec('hold release').then(function() {
                return vpn.authorize(auth);
            });
        });
    }).catch(function(error) {
        console.error(error);
    });
});
  
vpn.on('log', function(result) {
    console.log(result);
});
  
vpn.on('error', function(result) {
    console.log(result);
    vpn.disconnect();
});
  
vpn.on('end', function(result) {
    console.log(result);
    vpn.destroy();
});
  
vpn.on('data', function(result) {
    console.log(result);
});

ECMAScript 6

import TelnetVPN from 'telnet-openvpn';
  
let vpn = new TelnetVPN();
  
let options = {
    host: '127.0.0.1',
    port: 1337,
    ors: '\r\n',
    sendTimeout: 2000
};
  
let auth = {
    username: 'username',
    password: 'password'
};
  
  
vpn.connect(options);
  
vpn.on('connect', () => {
    vpn.exec('log on all').then(() => {
        return vpn.exec('state on').then(() => {
            return vpn.exec('hold release').then(() => {
                return vpn.authorize(auth);
            });
        });
    }).catch((error) => {
        console.error(error);
    });
});
  
vpn.on('log', (result) => {
    console.log(result);
});
  
vpn.on('error', (error) => {
    console.log(error);
    vpn.disconnect();
});
  
vpn.on('end', (result) => {
    console.log(result);
    vpn.destroy();
});
  
vpn.on('data', (result) => {
    console.log(result);
});

API

vpn.connect(options) -> Promise

Connects to the management port specified in the .ovpn file.
More options can be found in the telnet-client docs.

options:

  • host: Management IP address specified under "management" in .ovpn file (default: '127.0.0.1').
  • port: Management port specified under "management" in .ovpn file (default: 1337).
  • negotiationMandatory: Enable to disable telnet negotiations (default: true).
  • ors: Output record separator. Used to execute commands from telnet console (default: '\r\n').
  • sendTimeout: Waits for input return character (default: 3000).

vpn.authorize(options) -> Promise

After user connects, vpn.authorize(auth) must be called if .ovpn file specifies auth-user-pass.

options:

  • username: Client username for VPN service.
  • password: Client password for VPN service

vpn.exec(event) -> Promise

Specify telnet console commands through this function.

vpn.on(event, [callback])

EventEmitter options emitted as information is received from telnet console.

events:

  • connect: Telnet console has successfully connected to management port.
  • log: Telnet console log outputs.
  • error: Telnet console error outputs.
  • end: Telnet console has ended session to management port.
  • data: Telnet console output data important to user (JSON Formatted).
    • state: (array) Current state of telnet console.
    • hold: Telnet console waiting for user commands.
    • success: Telnet data successfully obtained.
    • bytecount: Telnet byte count.
    • bytecount_cli: Per-client byte counts.
    • password: Password information sent through telnet console.
    • pid: Process id of session.

vpn.disconnect() -> Promise

Ends telnet session and triggers the 'end' event emitter.

vpn.destroy() -> Promise

Removes all instances of telnet console socket connection. Used for 'error' event emitter.

vpn.end() -> Promise

Closes telnet session but does not kill all telnet instances like vpn.destroy(). It is possible the server may send some data.

Important .ovpn file information:

# OpenVPN management IP and port (localhost 1337).
management 127.0.0.1 1337
# OpenVPN wait for hold release from telnet console (vpn.exec('hold release')).
management-hold
# OpenVPN wait for authentication from telnet console (vpn.authorize(auth)).
management-query-passwords
# OpenVPN authenticate using username and password from telnet console.
auth-user-pass

Start OpenVPN through command line (requires OpenVPN) :

$ openvpn myconfig.ovpn

For more OpenVPN management commands please follow OpenVPN's documentation

Credits

telnet-client
node-openvpn

Keywords

FAQs

Package last updated on 08 Mar 2019

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc