SoftEtherAdmin est une interface utilisateur Web pour le serveur VPN SoftEther. Actuellement, il ne prend en charge que les opérations de lecture et l'ensemble des fonctionnalités n'est pas complet ! La conception de l'interface utilisateur est le thème Light Bootstarp Dashboard des charmantes personnes de Creative Tim.
Tout d'abord, vous devez cloner/télécharger les fichiers :
# GIT clone (Note: git should be installed on your system!)
cd /srv
sudo git clone https://github.com/notisrac/SoftEtherAdmin.git
# # OR ##
# Download (Note: unzip should be installed on your system!)
wget -O SoftEtherAdmin.zip https://github.com/notisrac/SoftEtherAdmin/archive/master.zip
sudo unzip SoftEtherAdmin.zip -d /srv/SoftEtherAdmin
Avant d'exécuter l'application, vous devez restaurer les packages npm !
cd /srv/SoftEtherAdmin
sudo npm install
Suivez les instructions de la section de configuration pour configurer l'application. Vous devriez avoir une configuration ressemblant à ceci :
{
"serverPort" : 8000 ,
"softEther" : {
"address" : " localhost " ,
"port" : 5555 ,
"vpncmdPath" : " /usr/local/vpnserver/vpncmd " ,
"password" : " supersecretpassword1 "
}
}
À ce stade, l'application doit être exécutable :
node app.js
Ouvrez un autre shell et :
wget http://localhost:8000/
La méthode recommandée pour gérer les applications node.js est d'utiliser pm2
:
# first, you need to install pm2 globally
npm install pm2 -g
# enter the dir wher SoftEtherAdmin is installed
cd /srv/SoftEtherAdmin
# Register the app with pm2
pm2 start app.js --name " softetheradmin "
Plus d'infos dans la rubrique pm2
Pour servir l'application via un serveur Web, tout ce que vous avez à faire est de configurer le serveur Web en tant que proxy inverse pointant vers le port de l'application. Exemple nginx :
server {
listen 80;
listen [::]:80;
server_name SoftEtherAdmin;
location / {
proxy_pass http://localhost:8000; # <- this is where out app is listening
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
Téléchargez le fichier https://github.com/notisrac/SoftEtherAdmin/archive/master.zip Puis extrayez-le dans un dossier. Nous utiliserons :
C:NodeApps
cd C: N odeApps S oftEtherAdmin
npm install
Suivez les instructions de la section de configuration pour configurer l'application. Vous devriez avoir une configuration ressemblant à ceci :
{
"serverPort" : 8000 ,
"softEther" : {
"address" : " localhost " ,
"port" : 5555 ,
"vpncmdPath" : " C: \ Program Files \ SoftEther \ vpncmd.exe " ,
"password" : " supersecretpassword1 "
}
}
À ce stade, l'application doit être exécutable :
node app.js
Ouvrez un navigateur et accédez à : http://localhost:8000/
La méthode recommandée pour gérer les applications node.js est d'utiliser pm2
:
# first, you need to install pm2 globally
npm install pm2 -g
Avant de pouvoir utiliser pm2 sous Windows, vous devez effectuer certaines opérations :
dossier pm2
C:NodeApps_pm2
Variable d'environnement PM2_HOME
PM2_HOME
, avec la valeur C:NodeApps_pm2
echo %PM2_HOME%
Enregistrez l'application dans pm2
# enter the dir wher SoftEtherAdmin is installed
cd /srv/SoftEtherAdmin
# Register the app with pm2
pm2 start app.js --name " softetheradmin "
# If everything went fine, save the config
pm2 save
Créer un service à partir de pm2
Nous ferons cela avec l'aide de pm2-windows-service
# # Make sure, you do this in an ADMINISTRATOR cmd ##
# install
npm install -g pm2-windows-service
# Create the service
pm2-service-install -n PM2
Répondez aux questions de configuration comme ceci :
Un grand merci à Walter Accantelli pour les instructions Windows : https://blog.cloudboost.io/nodejs-pm2-startup-on-windows-db0906328d75
Plus d'infos dans la rubrique pm2
La configuration de l'application est gérée par le module de nœud config
(https://www.npmjs.com/package/config). Par défaut vous devez modifier le fichier config/default.json
:
{
"serverPort" : 8000 ,
"softEther" : {
"address" : " localhost " ,
"port" : 5555 ,
"vpncmdPath" : " /usr/local/vpnserver/vpncmd " ,
"password" : " supersecretpassword1 "
}
}
Où:
localhost
c:\...\...
!) Remarque : si vous avez cloné le repo, il est conseillé d'avoir la config dans un fichier config/local.json
. De cette façon, lorsque vous extrayez de nouvelles versions du dépôt, votre configuration n'est pas écrasée !
Plus d'informations sur le fichier de configuration peuvent être trouvées ici : https://github.com/lorenwest/node-config/wiki/Configuration-Files
pm2 est un gestionnaire de processus pour node.js. Il peut surveiller votre application, la lancer au démarrage du serveur, etc.
Installer:
npm install pm2 -g
Enregistrez l'application avec pm2
pm2 start app.js --name " softetheradmin "
Vérifiez l'état actuel de l'application
pm2 show softetheradmin
Lister toutes les applications gérées par pm2
pm2 list
Vous pouvez également arrêter pm2 stop softetheradmin
et redémarrer pm2 restart softetheradmin
l'application.
cd /srv/softetheradmin
node app.js
Cela devrait entraîner un message Server listening on port: <PORT>
, où <PORT>
est la valeur du paramètre de configuration serverPort
. S'il y a une erreur lors du démarrage ou de l'exécution de l'application, elle sera imprimée ici.
Il utilise l'application vpncmd
, distribuée avec le programme d'installation du serveur SoftEther VPN. Voici deux exemples :
Celui-ci s'exécute sur une machine Linux, et récupère la liste des hubs :
/usr/local/vpnserver/vpncmd < SERVER > : < PORT > /SERVER /PASSWORD: < PASSWORD > /CSV /CMD HubList
Celui-ci est exécuté sur une machine Windows, et exécute toutes les commandes du fichier scripts/vpncmd_hubinfofull.txt
sur le hub sélectionné :
" c:Program FilesSoftEther VPN Client Managervpncmd_x64.exe " < SERVER > : < PORT > /SERVER /PASSWORD: < PASSWORD > /CSV /ADMINHUB: < HUBNAME > /IN: " scripts/vpncmd_hubinfofull.txt "
pm2 monit
Les demandes de tirage sont toujours les bienvenues ! :)