vpnc 0.5.4beta & VPNC Front End 1.0 Nateis Edition - Client VPN libre GPL compatible Juniper SRX - Versions Linux, Mac OS X and Windows

17 juin 2012 :
Nateis ajoute une fonctionnalité de Watchdog à VPNC FE avec possibilité de monitoring d'adresses IP afin de relancer automatiquement VPNC sur une perte de connexion. Cette fonctionnalité nécessite de renseigner le champ Xauth password dans le fichier de configuration invoqué. Elle est accessible via : Click droit sur icône VPNC > Options > Program Settings : Cocher Watchdog et renseignez le champ Monitor IP addresses avec les adresses IP que vous souhaitez surveiller (3 maxi.) séparées par des virgules. Vous pouvez aussi cocher Connect At Startup si vous souhaitez que le VPN se connecte au démarrage de VPNC FE.
Ajout d'un wrapper / watchdog pour Linux.
15 janvier 2011 :
Nateis a validé le fonctionnement de ses versions de VPNC et VPNC FE avec les firewalls Fortinet Fortigate, en mode d'authentification locale puisque nous ne disposions pas d'un serveur radius sur le site distant. Un exemple de configuration a été ajouté à la suite de la configuration et des explications pour les SRX.
22 octobre 2010 :
Nateis lance vpnc et VPNC Front End Nateis Edition compatibles Juniper SRX. vpnc est un client vpn gratuit sous licence GPL qui permet d'établir, sous Linux, des tunnels IPSec avec des firewalls Juniper SRX, Netscreen SSG, Cisco ASA... VPNC Front End est l'adaptation de vpnc pour Windows grâce à une interface graphique conviviale. Dans l'esprit de la GPL, Nateis met sa contribution à disposition de la communauté en publiant les sources du projet. Nous espérons ainsi que le code sera encore amélioré par les contributions à venir.
ATTENTION : L'utilisation d'un client VPN en Pre-Shared-Key + XAUTH présente un risque connu : Cisco Security Notice 50600
Ce logiciel gratuit est fourni tel quel, sans aucune garantie, sous licence GPL. La société Nateis ne peut être tenue responsable de l'usage qui en est fait. Si vous souhaitez utiliser un client VPN approuvé par Juniper, délivré directement par le SRX, envisagez d'acquérir des licences SRX-RAC-xx-LTU Juniper Dynamic VPN Client.
Avant de télécharger et d'utiliser ce logiciel, merci de vous tenir informé des lois sur la cryptographie (i.e. chiffrement) en vigueur dans votre pays : Restrictions on the import of cryptography
Vous pouvez donc télécharger les dernières versions de vpnc et VPNC FE :
Code source de VPNC :
- vpnc SRX sources : vpnc-0.5.4beta-20101022-1824.tgz
- 0.5.3 to 0.5.4beta patch : vpnc-0.5.3-to-0.5.4beta.patch
VPNC pour Linux :
- vpnc SRX debian package : vpnc_0.5.4beta_i386.deb
- vpnc SRX rpm package : vpnc-0.5.4beta-2.i386.rpm (non testé)
Watchdog wrapper pour Linux :
vpnc_safe.sh (à insérer par exemple dans /etc/rc.local sous la forme : /usr/local/sbin/vpnc_safe.sh >> /home/tmp/vpnc_safe.out &)
N.B. : Nécessite d'utiliser le fichier de configuration default.conf et d'y insérer les champs Xauth username et Xauth password.
VPNC pour Mac OS X (MacOS X Snow Leopard) :
- vpnc SRX Mac OS X package : vpnc-0.5.4beta-macosx-snow.pkg (testé sur Snow Leopard)
Vous devrez installer le package Tun/Tap que vous trouverez à la racine de votre disque avant d'utiliser vpnc.
Note : pour les dernières versions de MacOS X, merci de télécharger la dernière version du pilote TUN TAP :
VPNC FRONT END pour Windows XP & 7 (SRX compatible VPNC FE Windows installer) :
- VPNC FE Nateis Edition : vpncfe-1.0-nateis-edition-setup.exe (intègre une fonction de Watchdog avec IP Monitoring)
Windows 10 nécessite pour l'instant l'utilisation du driver tap suivant (passage en NDIS 6) :
Sous Windows 10, les routes ne s'implémentent pas correctement et nécessitent l'utilisation de scripts Post-Script et Disconnect-Script dont voici les exemples (onglet Scripts dans Connection settings : cliquer sur les labels - pas les champs ! - Post-Script et Disconnect-Script pour naviguer dans l'explorateur et sélectionner les fichiers) :
Post-Script :
@echo off
:: Using VPN IP address (%INTERNAL_IP4_ADDRESS%) instead echo Tunnel IP Address: [%MyIP%] echo. for /f "tokens=1 delims=." %%a in ('"route print | find "TAP-Win32""') do set /a ifindex=%%a :: Delete any left-over old routes (just in case they are still around) ping -4 %MyIP% > nul :: Create routes echo. :: C:\Program Files\VPNC Front End\etc\vpnc\vpnc-script.exe echo. |
Disconnect-Script :
@echo off
:: Using VPN IP address (%INTERNAL_IP4_ADDRESS%) instead echo Tunnel IP Address: [%MyIP%] echo. :: Delete any left-over old routes (just in case they are still around) echo. echo. |
- ancienne version : vpncfe-0.9.8beta-setup.exe (testé sur XP et 7)
Code source de VPNC FRONT END :
- VPNC Front End SRX sources : vpncfe-0.9.8-20101022-1934.tgz
- 0.9.7 to 0.9.8 patch : vpncfe-0.9.7-to-0.9.8.patch
Ces versions de VPNC contiennent un exemple de configuration du client, fichier default.conf, permettant de se connecter en Split Tunneling sur un SRX :
# Adresse du firewall distant IPSec gateway 172.31.31.31 # Domaine utilisé comme ID IPSec IPSec ID yourdomain.com # Preshared-key IPSec secret YOUR_SECRET_KEY # Pour permettre la connexion à des équipements sous JunOS Vendor juniper # Activation de la NAT Traversal NAT Traversal Mode force-natt # Pas de PFS Perfect Forward Secrecy nopfs # DPD idle timeout à 0 pour maintenir la connexion aussi longtemps que possible DPD idle timeout (our side) 0 # Force le split tunneling et permet d'ajouter automatiquement la route vers le réseau # mentionné en IPSEC target network Target split tunneling # Interface utilisée sous Windows. # 2 lignes suivantes à supprimer sous Linux : Interface name tap0 Interface mode tap # Réseau cible IPSEC target network 10.0.0.0/255.0.0.0 # Réseau local nécessaire pour le SRX qui vérifie les Proxy ID IPSEC local network 172.16.1.0/255.255.255.0 Local Port 0 |
La configuration du SRX est expliquée dans le document suivant de Juniper :
Remote Access VPN with XAuth Configuration and Troubleshooting
Note : Nous avons testé VPNC, client vpn compatible SRX, en utilisant un SRX240H et un serveur Linux avec freeradius.
Exemple de fichier default.conf pour Fortinet Fortigate :
# Adresse du firewall distant IPSec gateway 172.31.31.31 # Domaine utilisé comme ID IPSec IPSec ID yourdomain.com # Preshared-key IPSec secret YOUR_SECRET_KEY # Activation de la NAT Traversal NAT Traversal Mode force-natt # Pas de PFS Perfect Forward Secrecy nopfs # DPD idle timeout à 0 pour maintenir la connexion aussi longtemps que possible DPD idle timeout (our side) 0 # Force le split tunneling et permet d'ajouter automatiquement la route vers le réseau # mentionné en IPSEC target network Target split tunneling # Interface utilisée sous Windows. # 2 lignes suivantes à supprimer sous Linux : Interface name tap0 Interface mode tap # Réseau cible IPSEC target network 10.0.0.0/255.0.0.0 # Réseau local nécessaire pour le SRX qui vérifie les Proxy ID IPSEC local network 172.16.1.0/255.255.255.0 Local Port 0 |
Exemple de configuration du firewall Fortinet Fortigate :
config firewall address config user local config user group config vpn ipsec phase1-interface config vpn ipsec phase2-interface config firewall address configure firewall policy |
Nous vous remercions de l'intérêt que vous voudrez bien accorder à cette contribution et attendons vos remarques et suggestions.
Vous pouvez nous contacter à l'adresse suivante : vpnc.dev@nateis.fr
Many thanks to the communities and authors of previous releases of vpnc and VPNC Front End. Here are the links to the official websites of these projects :
- vpnc official website;
- VPNC Front End official sourceforge website
Ci-dessous un extrait du Changelog, montrant les évolutions apportées par Nateis :
VPNC FE 1.0-nateis-edition
- Added Watchdog and IP monitoring options to automatically reconnect when VPNC terminates or IP monitored hosts are unreachables : configuration files including credentials are required for this option to run correctly.
VPNC FE 0.9.8beta
- Uses vpnc-0.5.4beta with Juniper SRX support and better Windows support included (vpnc release notes following)
- Added a Local Network field in the GUI Advanced Tab to specify the Local Network to the VPN peer (needed for Proxy ID check with SRX)
- Added a Target Split tunneling checkbox (to force split tunneling and send target network information to vpnc)
- Made vpncfe interact better with vpnc (graceful shutdown of VPN connections when disconnecting)
* vpnc-0.5.4beta.tar.gz Thu Oct 17 20:34:00 GMT+1 2010
User visible changes:
Beta release by Mikael Cam - Nateis
* Added Juniper SRX VPN support, running with xauth (SRX + radius server)
* Added --local-network "IPSEC local network" option to comply with SRX needs for proxy ID check
* Added Juniper VENDOR for new Juniper SRX equipments
* Changed the ISAKMP "sequence" and QM to fit Juniper needs (reverse engineering of VPNC and ISAKMP sequences)
* Was tested on SRX240H with IP address dynamically assigned by the firewall
* Added some changes for Juniper SRX to make the re-association possible after lifetime expiration
* Added Jindrich Makovicka Patch
* Added --split-tunneling "Target split tunneling" option to force split tunneling using defined target network
* Added Windows graceful shutdown support to release tunnel before exiting (catching WM messages + SIGTERM) and to better interact with vpncfe
* Added and changed what was needed for these add-ons to vpnc-fe
* Tested successfully this release on linux and windows to connect Cisco ASA, Netscreen SSG and Juniper SRX