Affichage des articles dont le libellé est tunnel. Afficher tous les articles
Affichage des articles dont le libellé est tunnel. Afficher tous les articles

dimanche 9 octobre 2011

Debug VPN sur Check Point / Les domaines d'encryption

Dans le cadre d'un debug de tunnel VPN, un des éléments sur lequel doit porter votre attention est le domaine d'encryption.
En fait, il y en a deux: un local et un distant. Et ces paramètres sont à configurer de part et d'autre du tunnel VPN.

Le domaine d'encryption correspond tout simplement aux plages IP qui seront amenées à transiter au travers de ce tunnel.

Prenons le cas d'un VPN reliant les plages IP 10.0.0.0/24 côté client et 192.168.0.0/16 côté prestataire de service.
Du côté client, le domaine d'encryption local est 10.0.0.0/24, le distant est 192.168.0.0/16 ... et c'est l'inverse côté prestataire.

Maintenant, le comportement de Check Point va différer en fonction de:
 . Domaines d'encryptions erronées
 . Domaine d'encryption local intégrant la plage IP locale ET distante (c'est un cas particulier et, et oui, çà m'est arrivé... :) )
 . Sens de communication des requêtes


Dans le premier cas, vous allez devoir utiliser le mode de débogage VPN ainsi que l'outil (magique ?) IKE Viewer (cf. précédent POST).

Dans les deux derniers cas, il faut comprendre le fonctionnement du firewall pour interpréter les erreurs présentes dans les logs du SmartView Tracker.
Le firewall voit arriver la requête. Les règles sont dépilées jusqu'à celle qui nous concerne. Or la plage IP cible de cette requête est intégrée au domaine d'encryption local => le firewall n'a aucune raison de faire emprunter le tunnel VPN à cette requête (pourtant conformes aux règles de sécurité établies).
Vous verrez donc la requête refusée (très certainement par la dernière règle) et vous vous tirerez les cheveux quelque temps...

Deux raisons pour lesquelles pareille situation peut vous arriver:
 . la plage IP distante fait partie intégrante d'un LAN plus large et déjà présent dans ce domaine d'encryption local.
 . vous deviez initialement translater, en source, les requêtes à destination de ce tunnel. Vous aviez donc placé ce LAN dans le domaine d'encryption local du firewall. Puis, changement de programme... plus besoin de NAT... vous reprenez l'objet, lui attribuez la plage IP cible, modifiez l'objet 'Interoparable device' afin de luis attribuer ce nouveau domaine d'encryption distant... mais qui reste placé dans votre domaine d'encryption local :(

Pour le troisième cas: en fonction du sens des requêtes, Check Point et l'autre équipement d'extrémité VPN vont négocier l'établissement du tunnel VPN différemment.
Il faut savoir que Check Point va agréger les routes (cf. Agrégation des adresses) de son domaine d'encryption local.
En prenant l'exemple plus haut, côté client, le domaine d'encryption local contient également la plage IP 10.0.1.0/24 et 10.0.2.0/24 mais les requêtes ne concernent qu'un poste appartenant à 10.0.0.0/24. La passerelle VPN du client est un Check Point.
Côté prestataire, on ne change rien à propos de son domaine d'encryption local, et sa passerelle VPN est le produit d'un autre fabriquant.

Lorsqu'une requête est à l'initiative du client, le domaine d'encryption local négocié côté Check Point est la plage IP 10.0.0.0/24.
Par contre, lorsqu'une requête va être émise côté prestataire, ce domaine  d'encryption négocié sera le fruit de cette agrégation de plage IP: 10.0.0.0/22. Pour que le tunnel fonctionne correctement, il faudra donc demander au prestataire de configurer son domaine d'encryption distant avec cette dernière plage IP.

samedi 1 octobre 2011

Debug VPN sur Check Point / en CLI avec 'vpn debug' et 'vpn tunnelutil' & IKE Viewer

Lorsque votre tunnel VPN ne monte pas ou lorsque les requêtes autorisées n'aboutissent pas, l'application 'vpn' accessible en commandes en ligne (CLI) peut être d'une très grande aide (en fait... c'est quasi obligatoire :) ).

Vous devez donc accéder en CLI sur la Security Gateway VPN active.

Exécutez la commande 'vpn' de sorte à en voir les modalités d'utilisation:

# vpn

Usage:
vpn debug ...                            # print debug msgs to VPN log files
vpn crl_zap                              # erase all CRLs from cache
vpn drv ...                              # attach vpn driver to fw driver and more
vpn ver [-k]                             # display VPN version
vpn accel ...                            # operations on VPN accelerator card and VPNx
vpn crlview ...                          # debugging tool for CRLs
vpn compstat                             # display compression/decompression statistics
vpn compreset                            # reset compression/decompression statistics
vpn macutil [user_name]                  # display generated MAC address by username or
                                         # DN from arg or stdin (also: vpn mu)
vpn tunnelutil                           # launch TunnelUtil tool to control
                                         # VPN Tunnels (also: vpn tu)
vpn export_p12 ...                       # tool to export p12 from gw certificate
vpn nssm_topology ...                    # generate topology in NSSM format for
                                         # Nokia clients
vpn rll dump fileName                    # Route Lookup Layer: Dump DB
vpn rll sync                             #                     Sync DB
vpn sw_topology ...                      # Download topology for SofaWare GWs
vpn overlap_encdom ...                   # Display overlapping encryption domains
vpn dll dump fileName                    # DNS Lookup Layer: Dump DB
vpn dll resolve [hostname]               #                   Request Resolve
vpn ipafile_check filename [level]       # Verify candidate for ipassignment.conf
vpn set_slim_server...                   # Starting/stopping the slim web server
vpn set_snx_encdom_groups...             # enabling/disabling the encryption domain per usergroup feature for snx
vpn mep_refresh                          # Initiate MEP re-decision in case of
                                         # backup stickiness configuration
vpn rim_cleanup                          # Clean RIM routes
vpn shell ...                            # Command Line Interface
vpn set_trac disable/enable              # Starting/Stopping trac server
vpn neo_proto [on/off]                   #switching neo client protocol

Vous le voyez: cette commande va vous permettre de faire un travail très fin autour de votre VPN.

Les commandes les plus utiles (ou en tous cas celles qui sont suffisantes) sont:
 . vpn debug
 . vpn tunnelutil

La première va vous permettre d'activer certains niveau de debugage => la génération de fichier de debug à utiliser avec des outils externes.
La seconde vous permettra d'interagir avec l'établissement du tunnel et de ses deux phases: IKE et IPSec


Utilisation de la commande 'vpn debug'
Les options suivantes sont disponibles:

# vpn debug --help
 Usage: vpn debug < on [ DEBUG_TOPIC=level ] | off | ikeon [ -s size(Mb) ]| ikeoff | trunc | truncon | truncoff | timeon [ SECONDS ] | timeoff | ikefail [ -s size(Mb) ]| mon | moff >

Les fichiers de debug seront générés dans l'arborescence des fichiers de log $FWDIR/log.

La commande 'vpn debug ikeon' activera ainsi la génération du fichier de debug ike.elg. Celui-ci renseigne sur l'établissement des deux phases de votre VPN: si l'une d'entre-elles a échouée, le fichier en stipulera la raison.
Ce fichier est exploitable par l'outil (magique ?) IKE Viewer.
Ce dernier est accessible depuis le Usercenter à l'URL: http://dl3.checkpoint.com/paid/11/IKEView-NGX.zip?HashKey=1352291050_70cdc9eff560511a1a696b6ebe1d072f&xtn=.zip

Utilisation de la commande 'vpn tunnelutil'
Les options suivantes sont diponibles:

# vpn tunnelutil --help      

**********     Select Option     **********

(1)List all IKE SAs
(2)List all IPsec SAs
(3)List all IKE SAs for a given peer (GW) or user (Client)
(4)List all IPsec SAs for a given peer (GW) or user (Client)
(5)Delete all IPsec SAs for a given peer (GW)
(6)Delete all IPsec SAs for a given User (Client)
(7)Delete all IPsec+IKE SAs for a given peer (GW)
(8)Delete all IPsec+IKE SAs for a given User (Client)
(9)Delete all IPsec SAs for ALL peers and users
(0)Delete all IPsec+IKE SAs for ALL peers and users

(Q)Quit

*******************************************
Et oui: vous allez pouvoir vous assurer du statu des phases IKE et IPSec et interagir avec elles.