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

English version

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 :
http://tuntaposx.sourceforge.net/download.xhtml

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) :
https://swupdate.openvpn.org/community/releases/tap-windows-9.21.1.exe

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
:: of VPN Gateway (%VPNGATEWAY%). In some cases it's better
:: to use the VPN Gateway.
set MyIP=%INTERNAL_IP4_ADDRESS%

echo Tunnel IP Address: [%MyIP%]

echo.
echo ORIGINAL ROUTES
route print | find "%MyIP%"

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)
route delete 10.0.0.0 MASK 255.0.0.0 > nul

ping -4 %MyIP% > nul

:: Create routes
route add 10.0.0.0 MASK 255.0.0.0 %MyIP% > nul

echo.
echo FINAL ROUTES
route print | find "%MyIP%"

:: C:\Program Files\VPNC Front End\etc\vpnc\vpnc-script.exe

echo.
echo Post-Script Exiting
echo.

Disconnect-Script :

@echo off

:: Using VPN IP address (%INTERNAL_IP4_ADDRESS%) instead
:: of VPN Gateway (%VPNGATEWAY%). In some cases it's better
:: to use the VPN Gateway.
set MyIP=%INTERNAL_IP4_ADDRESS%

echo Tunnel IP Address: [%MyIP%]

echo.
echo ORIGINAL ROUTES
route print | find "%MyIP%"

:: Delete any left-over old routes (just in case they are still around)
route delete 10.0.0.0 MASK 255.0.0.0 > nul

echo.
echo FINAL ROUTES
route print | find "%MyIP%"

echo.
echo Disconnect-Script Exiting
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
edit "Net_10s8"
set associated-interface "internal"
set subnet 10.0.0.0 255.0.0.0
next
end

config user local
edit "youruser"
set type password
set passwd YOURPASSWORD
next
end

config user group
edit "FSAE_Guest_Users"
set group-type directory-service
next
edit "yourdomain.com"
set member "youruser"
next
end

config vpn ipsec phase1-interface
edit "dialup"
set type dynamic
set interface "port1"
set dhgrp 2
set proposal 3des-sha1
set xauthtype pap
set mode aggressive
set mode-cfg enable
set authusrgrp "yourdomain.com"
set ipv4-start-ip 172.16.1.2
set ipv4-end-ip 172.16.1.253
set ipv4-netmask 255.255.255.0
set ipv4-dns-server1 10.10.10.10
set ipv4-split-include "Net_10s8"
set psksecret YOUR_SECRET_KEY
next
end

config vpn ipsec phase2-interface
edit "dialupp2"
set keepalive enable
set pfs disable
set phase1name "dialup"
set proposal 3des-sha1
set dst-subnet 172.16.1.0 255.255.255.0
set keylifeseconds 3600
set src-subnet 10.0.0.0 255.0.0.0
next
end

config firewall address
edit "vpn-net"
set associated-interface "dialup"
set subnet 172.16.1.0 255.255.255.0
next
end

configure firewall policy
edit your_next_rule_id
set srcintf "dialup"
set dstintf "internal"
set srcaddr "vpn-net"
set dstaddr "Net_10s8"
set action accept
set schedule "always"
set service "ANY"
set nat enable
next
end

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

Découvrir

vpnc & VPNC Front End Nateis Edition
Un client VPN Open Source pour Juniper SRX et SSG, Fortinet Fortigate, Cisco ASA...

Iperf, l'outil de mesure de performances IP.

Focus Produit
Télétravail :


Intégration de matériels :

Produits de sécurité Juniper :

© Nateis 2015 - Réseau et Sécurité Informatique