Mobile Access – The user’s phone number list is empty. Failed to send an SMS with a verification code.

Ce message indique que Mobile Access n’a pas réussi a identifier le numéro de téléphone de l’utilisateur dans le cas d’une authentification forte intégré nativement au Check Point.

La récupération de cet élément peut se faire soit :

  • Via Annuaire. Dans ce cas, c’est le champ Mobile qui est utilisé. Si il contient une adresse email, c’est un email qui sera envoyé au lieu SMS
  • Via une base locale

Comment configurer la base locale ?

Configure the list of phone numbers or email addresses on each Mobile Access gateway. For a Mobile Access cluster, configure the directory on each cluster member.

To configure a list of phone numbers on a gateway:

  1. Log in to the Mobile Access gateway using a secure console connection.
  2. Change to Expert mode: Type expert and then the expert mode password.
  3. Backup $CVPNDIR/conf/SmsPhones.lst
  4. Edit $CVPNDIR/conf/SmsPhones.lst, and add to it a list of user names and phone numbers, and/or email addresses. The list must be followed by a blank line. Use this syntax:

    <user name | Full DN> <phone number | email address>

    Parameter

    Meaning

    user name
    or
    Full DN

    Either a user name or, for users that log in using a certificate, the full DN of the certificate.

    phone number

    All printable characters can be used in the phone number, excluding the space character, which is not allowed. Only the digits are relevant.

    email address

    A valid email address in the format user@domain.com

    Example of acceptable ways to enter users and their phone numbers or email addresses in$CVPNDIR/conf/SmsPhones.lst

    bob +044-888-8888
    jane tom@domain.com
    CN=tom,OU=users,O=example.com +044-7777777
    CN=mary,OU=users,O=example.com +mary@domain.com

Configuring Multiple Phone Numbers

You can let users choose from multiple phone numbers when resending the verification code.

To configure choice of numbers:

  • Enter one number in the LDAP directory in the Mobile field and one or more in the gateway configuration file:
    $CVPNDIR/conf/SmsPhones.lst

    Enter multiple phone numbers separated by white space in the gateway configuration file:
    $CVPNDIR/conf/SmsPhones.lst

    For example, user_a 917-555-5555 603-444-4444

Mobile Access – Problème d’envoi SMS via API HTTPS

En tant que client Free Mobile, j’ai accès à une option gratuite me permettant de m’envoyer des SMS automatiquement au travers d’une API Web.

Sur mon lab Check Point j’ai décider d’utiliser cette option pour l’authentification forte sur Mobile Access.

Cependant lors de mes tests j’avais un message d’erreur du type « Failed to send an SMS with a verification code. »

En creusant un peu le sujet, j’ai identifié le script qui envoi le sms (ou le mail quand on choisi ce mode).

C’est le script $CVPNDIR/bin/sendsms et la fonction send_sms

En l’analysant, je trouve la commande d’envoi et le contenu.

curl « ${args[@]} » -D – -o /dev/null -s

Exemple :

curl –capath /opt/CPcvpn-R77/var/ssl/ca-bundle/ https://smsapi.free-mobile.fr/sendmsg?user=1234567&pass=cestlemientulaurapas&to=123456789&msg=Mobile+Access+DynamicID+one+time+password%3A+652038 -D – -o /dev/null -s

En l’exécutant à la main je me retrouve avec ce message : « curl: (51) SSL peer certificate or SSH remote key was not OK »

En regardant les certificats en place (/opt/CPcvpn-R77/var/ssl/ca-bundle/) et ceux utilisé par le site, je m’apperçois que la SubCA « RapidSSL SHA256 CA – G3 » n’est pas dans le Check Point.

Il faut donc l’ajouter dans le répertoire /opt/CPcvpn-R77/var/ssl/ca-bundle/ ou bien rajouter le paramètre -k à la commande curl dans le script pour ne pas vérifier le certificat.

curl -k « ${args[@]} » -D – -o /dev/null -s

Mise en place d’un firewall Check Point sur un ESXi Dedibox

Pour des besoins de labs, je me suis pris un serveur Dedibox sur lequel j’ai mis en place un ESXi 6.0

L’idée étant de mettre en place sur l’ESXi (qui porte l’IP publique), un firewall Check Point qui permettra de gèrer plusieurs VLAN de labs.

Cependant, le fonctionnement IP de Dedibox m’a posé quelques problèmes dans le cadre de la mise en place du firewall.

En effet, pour faire cela, il me faut une autre IP publique pour mon Check Point. Chez Dedibox, ce sont les IP de failover. Chaque IP de failover est associé à une MAC adresse qu’il faut utiliser, sinon Dedibox nous bloque le port.

Tout est expliqué ici

Mais problème, les IPs de failover proposé ne sont pas dans le même subnet que l’IP de l’ESXi. Mais la gateway de l’IP de failover doit être la même que celle de l’ESXi.

Ceux qui ont suivi, comprenne donc qu’il faut router 0.0.0.0/0 du Check Point vers une passerelle qui n’est pas dans son réseau.

Mon premier réflexe fût de faire une route logique vers l’adresse de la gateway et ensuite de faire la route par défaut.

set static-route X.X.X.X nexthop gateway logical eth0

set static-route default nexthop gateway address X.X.X.X

Mais cela ne marche pas. La route logique s’ajoute bien mais pas la route par défaut. De mes constatations, cela est du au flag D positionné par le Check Point sur les routes logiques car en appliquant à la main ces routes, cela fonctionne comme attendu

route add X.X.X.X dev eth0

route add default gw X.X.X.X

J’ai eu beau retourné le problème dans tout les sens, je n’ai pas trouvé d’autre solution que d’appliquer les routes manuellement/automatiquement a chaque boot au niveau système.

Sans la première route, la route par défaut configuré dans le CLISH ne pouvait pas s’appliquer. Il faut donc bien ajouter manuellement/automatiquement au niveau système les 2 routes. Cependant, mettre en statique l’IP de gateway me plaisait que moyennement si elle venait à changer. Et comme je suis fainéant, j’avais pas envie de la changer à 2 endroits (CLISH et système) car j’aime bien voir la route dans l’interface WebUI ou dans le CLISH.

Donc pour gérer ce cas là, il faut créer le fichier /etc/rc.d/rc.local.user avec dedans :

#!/bin/sh

###########################
#        Add route for Internet        #
#         marc@mguyard.com        #
#          ***Never Remove***         #
###########################

DEFAULT_GW=$(/bin/grep -m 1 « routed:instance:default:static:default:gateway:address » /config/active | /bin/awk -F « [: ] » ‘{print $8}’)

if [[ $DEFAULT_GW ]]
then
/usr/bin/logger -t MGU -p info Default GW configured in Gaia : $DEFAULT_GW
/sbin/route add $DEFAULT_GW dev eth0
/usr/bin/logger -t MGU -p info Add logical route to $DEFAULT_GW on dev eth0
/sbin/route add default gw $DEFAULT_GW
/usr/bin/logger -t MGU -p info Add default gw to $DEFAULT_GW
else
/usr/bin/logger -t MGU -p info No default route configured in Gaia
fi

Dans ce script, je récupère dans la configuration Gaia, l’IP de la passerelle par defaut pour créer les routes au niveau système. Une fois le script en place, un reboot est tout est ok (idem si on change au niveau Gaia la route par defaut)

vSphere ESXi 6.0 – To disable/enable the Host Welcome login web page and Datastore Browser

  1. Connect to the ESXi/ESX host directly.
  2. Run these commands:
    • ESX 4.x:

      vmware-vim-cmd proxysvc/remove_service « / » « httpsWithRedirect »

    • ESXi 4.x, ESXi 5.x, ESXi 6.0:

      vim-cmd proxysvc/remove_service « / » « httpsWithRedirect »

Note: This does not disable vSphere Web Services SDK. See vmware-vim-cmd proxysvc/service_list .
To re-enable the Host Welcome login web page:
  1. Connect to the ESXi/ESX host directly.
  2. Run these commands:
    • ESX 3.5:

      vmware-vim-cmd proxysvc/add_np_service « / » httpsWithRedirect /var/run/vmware/proxy-webserver

    • ESX 4.x:

      vmware-vim-cmd proxysvc/add_tcp_service « / » httpsWithRedirect localhost 8309

    • ESXi 4.x, ESXi 5.x and ESXi 6.0:

      vim-cmd proxysvc/add_tcp_service « / » httpsWithRedirect localhost 8309

RSYSLOG : How to use debug on demand?

This article should show how the « debug on demand » function works in rsyslog. It has been tested and verified with rsyslog 6.1.0 (v6-Devel) on Fedora 13 (steps may vary on different OS). It is assumed, that rsyslog is already working on the system. On notes regarding the installation and configuration, please take a look at the documentation. Debug on Demand is available since version 4.5.7.

To get this option working, we need to enable it first. This is done by enabling it and specifying a path for the debug log file. Open up a terminal with root rights and use the following commands:

export RSYSLOG_DEBUG="DebugOnDemand NoStdOut"
export RSYSLOG_DEBUGLOG=/somepath/example.log

The first option enables the « debug on demand » itself without standard output. This is necessary to have it disabled when starting the service. The second option specifies the path and name of the log file.

Now we have to stop the rsyslog service, before we are ready. Use the following command:

/etc/rc.d/init.d/rsyslog stop

We have now stopped the service and need to start it again. In the current configuration we need to start rsyslog as a foreground application. Due to it being much simpler to configure it this way, rsyslog needs to be a foreground application for « debug on demand » to work instead of a background service. Start it again as foreground application with the following command:

rsyslogd -n

Open up a second terminal (again with root) so we can enable or disable the « debug on demand ». Use this command:

kill -USR1 `cat /var/run/rsyslogd.pid`

Using this command once will enable the debug mode. Using it again will disable it. Please note that you definately need « -USR1″ else the rsyslog will be really killed. Further make sure to use the backticks. These are important.

That’s it basically. You can now review your « debug on demand » log files.

Au revoir Subversion…. Bonjour Git

Ca y est, j’ai sauté le pas, je viens de passer sur Git.

 

Alors c’est vrai que j’avais eu un peu de mal à me mettre sous SVN, donc j’allais avec un peu d’apréhension vers Git.

Finalement c’est assez simple (la passage par SVN a surement aidé).

Voici quelques commandes utiles à titre de Memo :

  • git clone https://xxxxxxxxx
    • Equivalent d’un svn checkout. Permet donc de télécharger un repo Git en local
  • gitadd
    • Ajout un/des fichier(s) dans le repo
  • git status
    • Statut du repo
  • git commit -m « Mon message de commit »
    • Commit dans le repo local
  • git push
    • Envoi les commits locaux vers le repo distant
  • git update-index –chmod=+x
    • Ajout le bit executable sur un fichier