Seiteneigenschaften |
---|
Deutsch |
---|
Beschreibung:
Dieses Skript erstellt anhand der angegebenen Informationen einen Client-Zugang für den Advanced VPN Client. Nach dem Ausführen des Skripts wird eine .ini-Datei zum Download angeboten.
Liste der verwendeten Variablen:
Variable | Beschreibung |
Add-in Code
|
Description:
This script creates a client access for the Advanced VPN Client based on the specified information. After executing the script, an .ini
file is offered for download.
List of used variables:
Add-in code:
/** * @param {Config} config * @param {Context} context * Do not edit this comment or parameter types. Required for code suggestions */ exports.main = function (config, context) { |
---|
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
// Function to set Authentication Parameter
var
addVPNAuth =
function
(
AuthName
,
LocalAuth
,
LocalIDType
,
LocalID
,
LocalPWD
,
RemoteAuth
,
RemoteIDType
,
RemoteID
,
RemotePWD
) {
|
---|
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
TableAUTH
= config.getTableByOid(
"1.2.19.36.
|
---|
...
...
...
Add-in als JSON-Datei:
View file |
---|
name | creating-advanced-VPNC-access.json |
---|
page | Erstellen eines Advanced VPN Client-Zugangs |
---|
space | LMCADEN |
---|
height | 150 |
---|
|
...
Description:
This script creates a client access for the Advanced VPN Client based on the specified information. After executing the script, an .ini
file is offered for download.
List of used variables:
...
Add-in code:
/**
* @param {Config} config
* @param {Context} context
* Do not edit this comment or parameter types. Required for code suggestions
*/
exports.main = function (config, context) {
...
var
TableAUTH_row
=
TableAUTH
.createNewRow();
TableAUTH_row
.setByOid(
"1"
,
AuthName
);
TableAUTH_row
.setByOid(
"2"
,
LocalAuth
);
TableAUTH_row
.setByOid(
"3"
,
LocalIDType
);
TableAUTH_row
.setByOid(
"4"
,
LocalID
);
TableAUTH_row
.setByOid(
"5"
,
LocalPWD
);
TableAUTH_row
.setByOid(
"6"
,
RemoteAuth
);
TableAUTH_row
.setByOid(
"7"
,
RemoteIDType
);
TableAUTH_row
.setByOid(
"8"
,
RemoteID
);
TableAUTH_row
.setByOid(
"9"
,
RemotePWD
);
TableAUTH
.addOrMerge(
TableAUTH_row
);
};
// Function to create IPv4 Address Pool
var
addVPNPool =
function
(
PoolName
,
StartAddr
,
EndAddr
,
PrimaryDNS
) {
var
TableIPv4Pool
= config.getTableByOid(
"1.2.19.36.7.1"
);
var
TableIPv4Pool_row
=
TableIPv4Pool
.createNewRow();
TableIPv4Pool_row
.setByOid(
"1"
,
PoolName
);
TableIPv4Pool_row
.setByOid(
"2"
,
StartAddr
);
TableIPv4Pool_row
.setByOid(
"3"
,
EndAddr
);
TableIPv4Pool_row
.setByOid(
"4"
,
PrimaryDNS
);
TableIPv4Pool
.addOrMerge(
TableIPv4Pool_row
);
};
// Function to create VPN Peer
var
addVPNPeer =
function
(
PeerName
,
EntryActive
,
RemoteGW
,
Auth
,
IKEcfgMode
,
IPv4Pool
,
RuleCreate
,
VPNRule
) {
var
TableVPNPeer
= config.getTableByOid(
"1.2.19.36.1"
);
var
TableVPNPeer_row
=
TableVPNPeer
.createNewRow();
TableVPNPeer_row
.setByOid(
"1"
,
PeerName
);
TableVPNPeer_row
.setByOid(
"2"
,
EntryActive
);
TableVPNPeer_row
.setByOid(
"4"
,
RemoteGW
);
TableVPNPeer_row
.setByOid(
"7"
,
Auth
);
TableVPNPeer_row
.setByOid(
"10"
,
IKEcfgMode
);
TableVPNPeer_row
.setByOid(
"18"
,
IPv4Pool
);
TableVPNPeer_row
.setByOid(
"11"
,
RuleCreate
);
TableVPNPeer_row
.setByOid(
"12"
,
VPNRule
);
TableVPNPeer
.addOrMerge(
TableVPNPeer_row
);
};
// Variables
var
clientOS = context.vars.
V1_clientOS
;
// Operating System of the Client PC (only affects .ini file)
var
peer = context.vars.
V2_vpnPeer
;
// Name of the VPN Peer
var
wanIp = context.vars.
V3_wanIP
;
// Public IP-Address of the VPN Gateway
var
pwd =
Math
.random().toString(
36
).slice(-
8
);
// Randomly generated Password
var
poolStart = context.vars.
V4_IPv4firstAddress
;
// First Address of IPv4 Address Pool
var
poolEnd = context.vars.
V5_IPv4lastAddress
;
// Last Address of IPv4 Address Pool
var
poolDNS = context.vars.
V6_IPv4Nameserver
;
// Nameserver of IPv4 Address Pool
var
splitTunnelIp = context.vars.
V7_SplitTunnelingIP
;
// Split Tunneling IP Address (only affects .ini file)
var
splitTunnelMask = context.vars.
V8_SplitTunnelingNetmask
;
// Split Tunneling Netmask (only affects .ini file)
// Global Configuration
config.setScalarByOid(
"1.2.19.8"
,
"1"
);
// Set VPN to Operating
config.setScalarByOid(
"1.2.19.27"
,
"1"
);
// Accept IPSec-over-HTTPS
config.setScalarByOid(
"1.2.8.5"
,
"1"
);
// Activate Proxy ARP
var
outputStream = config.createOutputStream();
var
vpnINI = config.createOutputStream(peer +
'.ini'
);
// Peer Configuration
addVPNAuth(peer,
"PSK"
,
"Email-Address"
, peer +
"@intern"
, pwd,
"PSK"
,
"Email-Address"
, peer +
"@intern"
, pwd);
var
tablePool = config.getTableByOid(
"1.2.19.36.7.1"
);
var
row = tablePool.getFirstRowByOids({
"2"
: poolStart }) || tablePool.getFirstRowByOids({
"3"
: poolEnd });
if
(row) {
// IPv4 Pool = true
var
pool = row.getByOid(
"1"
);
addVPNPeer(peer,
"1"
,
"0.0.0.0"
, peer,
"2"
, pool,
"1"
,
"RAS-WITH-CONFIG-PAYLOAD"
);
}
else
{
// IPv4-Pool != true
addVPNPool(peer +
"-Pool"
, poolStart, poolEnd, poolDNS);
addVPNPeer(peer,
"1"
,
"0.0.0.0"
, peer,
"2"
, peer +
"-Pool"
,
"1"
,
"RAS-WITH-CONFIG-PAYLOAD"
);
}
outputStream.addLine(
'Die VPN-Verbindung konnte erfolgreich angelegt werden.'
);
outputStream.addLine(
'Bitte laden Sie die Datei .ini herunter und importieren Sie diese in den Advanced VPN-Client.'
);
// Creation of INI-File
vpnINI.addLine(
"[PROFILE1]"
);
vpnINI.addLine(
"Name="
+ peer);
if
(clientOS ==
"windows"
) {
vpnINI.addLine(
"ConnMedia=21"
);
}
else
if
(clientOS ==
"mac"
) {
vpnINI.addLine(
"ConnMedia=8"
);
}
vpnINI.addLine(
"ConnMode=0"
);
vpnINI.addLine(
"SeamRoaming=1"
);
vpnINI.addLine(
"PriVoIP=1"
);
vpnINI.addLine(
"Gateway="
+ wanIp);
vpnINI.addLine(
"PFS=14"
);
vpnINI.addLine(
"UseComp=0"
);
vpnINI.addLine(
"IkeIdType=3"
);
vpnINI.addLine(
"IkeIdStr="
+ peer +
"@intern"
);
vpnINI.addLine(
"Secret="
+ pwd);
vpnINI.addLine(
"UseXAUTH=0"
);
vpnINI.addLine(
"IpAddrAssign=0"
);
vpnINI.addLine(
"IkeDhGroup=14"
);
vpnINI.addLine(
"ExchMode=34"
);
vpnINI.addLine(
"IKEv2Auth=2"
);
vpnINI.addLine(
"IKEv2Policy=WIZ-AES256-SHA256"
);
vpnINI.addLine(
"IPSEC-Policy=WIZ-AES256-SHA256"
);
if
(splitTunnelIp && splitTunnelMask) {
vpnINI.addLine(
"Network1="
+ splitTunnelIp);
vpnINI.addLine(
"SubMask1="
+ splitTunnelMask);
}
vpnINI.addLine(
"[IKEV2POLICY1]"
);
vpnINI.addLine(
"Ikev2Name=WIZ-AES256-SHA256"
);
vpnINI.addLine(
"Ikev2Crypt=6"
);
vpnINI.addLine(
"Ikev2PRF=5"
);
vpnINI.addLine(
"Ikev2IntAlgo=12"
);
vpnINI.addLine(
"[IPSECPOLICY1]"
);
vpnINI.addLine(
"IPSecName=WIZ-AES256-SHA256"
);
vpnINI.addLine(
"IpsecCrypt=6"
);
vpnINI.addLine(
"IpsecAuth=5"
);
};
|
---|
Add-in as JSON file:
View file |
---|
name | creating-advanced-VPNC-access.json |
---|
|
...