ARCH LINUX – Installer CheckPoint SSL extender VPN (SNX)

La version du logiciel SNX au moment de l’écriture de l’article est 75

Voici la procédure simple pour installer le logiciel SNX de CheckPoint dans Arch Linux.

Tout d’abord il faut télécharger l’installeur SNX à partir de la page web du firewall. Pour cela, connectez-vous au firewall et authentifiez-vous à l’aide de votre login et mot de passe.

Une fois authentifiés, il faut se rendre dans le menu « settings » puis cliquez sur « Edit Native Applications Settings ». Dans cette page vous trouverez 2 installeurs, un pour Linux et l’autre pour OS X.

Sélection_001

Le fichier téléchargé n’est pas exécutable, vous pouvez l’exécuter soit avec sh snx_install.sh ou en ajoutant bit d’exécution chmod +x snx_install.sh puis ./snx_install.sh . Le script va installer 2 fichiers binaires dans /usr/bin , snx et snx_uninstall .

Voici la liste de dépendances SNX – toutes les dépendances doivent être installées avant que l’exécution du programme ne soit possible

sudo ldd /usr/bin/snx

Mot de passe [sudo] :

linux-gate.so.1 – libX11.so.6 – libpthread.so.0 – libresolv.so.2 – libdl.so.2 – libpam.so.0 – libnsl.so.1 – libstdc++.so.5 – libc.so.6 – libxcb.so.1 – libm.so.6 – libgcc_s.so.1 – libXau.so.6  libXdmcp.so.6

Dans ARCH, Il y a de fortes chances que le soft SNX vous dise qu’il n’arrive pas à trouver la libpam.so.0. Dans ce cas, installez sudo pacman -S pam et lib32-pam.

A partir de maintenant il faut juste créer le fichier de ressources pour SNX dans votre home.

Sélection_002

Éditez le fichier → Sélection_003

Et ajoutez les renseignements suivants

server adresse_de_votre_firewall

username nom_utilisateur

reauth yes

debug yes, 5

cipher 3DES

Sauvegardez et quittez l’éditeur de texte.

Maintenant vous pouvez vous connecter par le VPN à votre firewall CheckPoint en allant sur la page web. Vous passez l’authentification puis cliquez sur le bouton « connect » .

Sélection_004

Fenêtre du type pop-up va se lancer et vous demandera d’écrire le mot de passe root.

Sélection_005

Ceci est nécessaire car l’application doit créer une interface Ethernet.

Si tout est OK, vous constaterez que votre machine possède maintenant une nouvelle interface ethernet avec l’adresse IP assigné.

Sélection_006

Sélection_007

Publié dans Linux | Marqué avec | 2 commentaires

Cisco Ironport – la queue SMTP corrompue (Queue: Your queue has been corrupted)

Suite à un problème de la batterie UPS, notre SMTP proxy Ironport c170 de chez Cisco est tombé en panne…Alerte envoyé est du genre :

The Critical message is:

Queue: Your queue has been corrupted; UNABLE TO REPAIR: unable to mount queue: ‘(\’egg/gcq.py load|1045\’, « <class \’gcq.QueueError\’> », « could not resolve 47 BODY loc64\’s », \'[egg/gcq.py mount|1388] [egg/gcq.py load|1045]\’)’

En gros la queue SMTP est corrompue, impossible de réparer.

Il existe cependant une commande cachée qui n’est pas invocable automatiquement avec <TAB> en tapant reset + <TAB> – cette commande est resetqueue .

Vous vous connectez en ssh ou COM vers votre ironport et exécutez la commande, elle va complètement :

  1. Supprimer tout e-mail qui se trouve dans la queue
  2. Supprimer la « working queue » ou la queue actuelle
  3. Supprimer tout e-mail de la quarantaine
  4. Faire un commit automatique et redémarrer l’ironport.
Publié dans Cisco | Marqué avec , , , | Laisser un commentaire

HyperFileSQL – importer un fichier Excel dans la base de données HyperfileSQL

Importer les données à partir d’un fichier Excel  vers une table HyperFileSQL est tout à fait possible et simplement réalisable en WLangage.

Voici la structure du fichier Excel (2 colonnes * 604 lignes)

 

Et voici la structure de ma table HyperFileSQL

 

Colonne A du fichier Excel va être importée vers « code_langue »

Colonne B du fichier Excel va être importée vers « traduction »

Le code:

 

XLSFileHandler est un entier //file handler
nombre_lignes est un entier //total lignes du fichier excel

SI fFichierExiste(« traductions-chinois-last.xls ») ALORS
HCréation(zbar_translate)
XLSFileHandler = xlsOuvre(« traductions-chinois-last.xls »)
nombre_lignes = xlsNbLigne(XLSFileHandler)
HOuvre(zbar_translate)
POUR cpt=1 A nombre_lignes
SI XLSFileHandler <> -1 ALORS
zbar_translate.code_langue= xlsDonnée (XLSFileHandler,cpt,1,Vrai)
zbar_translate.traduction= xlsDonnée (XLSFileHandler,cpt,2,Vrai)
zbar_translate.code_z = « Z02 »
HAjoute(zbar_translate)
FIN
FIN
SINON
Erreur(« Le fichier Excel traduction-chinois-last.xls n’existe pas »)
FIN

Bon dev!

 

Publié dans Webdev, Windev | Marqué avec , , , , , | 3 commentaires

Windev et Java – JavaExécuteFonction ou JavaExécute avec JavaCharge – comment intégrer les .class java externes au projet Windev

Vous travaillez avec WinDev et on vous demande de développer une application Java pour qu’on puisse l’exécuter dans l’environnement Mac ou Linux, par exemple.

Cela m’est arrivé et tout juste après avoir commencé mon projet je me suis rendu compte que « développer 10 fois plus vite » ne s’applique pas à un projet Windev en Java… Par conséquent, il est plus simple de commencer à coder en java en utilisant IDE Eclipse (http://www.eclipse.org/)

Pourquoi ?

Les raisons sont multiples, commençons par les Fonctions WLangage disponibles :

Et voici les limitations :

http://doc.pcsoft.fr/fr-FR/?9000056&name=fonctionnalites_disponibles_limitations_java

 

Mais imaginons que vous ne savez pas programmer en Java alors que vous avez des classes déjà développé par une autre personne et que vous désirez intégrer dans votre projet.

Voici comment faire :

Un exemple concret – comment détecter la plateforme (mac ou windows) d’exécution pour prendre en compte les particularités du système (ex. : les path windows c:\mon dossier\mon fichier.txt – mac /home/utilisateur/mon dossier/mon fichier.txt etc…)

Voici un simple bout de code java fait en 2 minutes, il y a moyen de retourner la valeur tout de suite mais pour raisons d’apprentissage je fais étape par étape :

Nom : checkOsVersion.java

 

 

Du côté de Windev, pas grand-chose à faire si ce n’est que de lui dire de charger les .class à partir d’un dossier :

SI PAS JavaCharge(fRepExe()) ALORS

RETOUR

FIN

 

ostype = JavaExécuteFonction(« checkOsVersion », » estWindows »,javaChaîne)

Info(ostype)

 

 

 

 

Publié dans Windev | Marqué avec , , , , , , , , , | Laisser un commentaire

Gestionnaire de licences pour Terminal serveur 2008 n’affiche pas le nombre correct de licences attribuées – le log système affiche un avertissement ID 4105

Pendant plus d’un an notre serveur Citrix XenApp 6 fonctionne correctement et le rapport sur l’utilisation de licences terminal de Microsoft affichait toujours le bon nombre d’utilisateurs. Aujourd’hui, j’ai demandé un nouveau rapport et à mon grand étonnement le nombre de licences utilisés n’affichait que 107 sur 120…

En vérifiant les sessions ouvertes, j’ai pu constater que l’utilisateur « XY » est bien connecté mais aucune info le concernant ne se trouve dans le rapport.

Je suis allé voir les logs du serveur et j’ai pu voir l’avertissement avec comme ID 4105 qui disait quelque chose du genre :

Nom du journal : système
Source:-Windows-TerminalServices-licence de Microsoft
ID d’événement4105
Niveau : avertissement
Utilisateur : n/A
Ordinateur :<computer name= » »></computer>
Description :

Le serveur de licences des Services Terminal Server ne peut pas mettre à jour les attributs de licence pour utilisateur <user name= » »>dans le domaine Active Directory <domain name= » »>. Assurez-vous que le compte d’ordinateur du serveur de licences est membre du groupe de serveurs de licences Terminal Server dans le domaine Active Directory <domain name= » »>.</domain> </domain> </user>

Si le serveur de licences est installé sur un contrôleur de domaine, le compte Service réseau doit également être un membre du groupe de serveurs de licences Terminal Server.

Si le serveur de licences est installé sur un contrôleur de domaine, après avoir ajouté les comptes appropriés pour le groupe de serveurs de licences Terminal Server, vous devez redémarrer le service Gestionnaire de licences des Services Terminal Server pour effectuer le suivi ou l’état de l’utilisation de CAL TS par utilisateur.

Code d’erreur Win32: 0 x 80070005

 

Je suis allé voir  si mon serveur de licences se trouve bien dans le bon groupe et c’était le cas.

Pourquoi alors la mise à jour dans l’active directory ne se faisait plus ?

Parce que le groupe Terminal Server License Servers n’avait plus le droit d’écrire les attributs de l’utilisateur dans l’active directory. Voici donc ce qu’il faut faire pour résoudre ce problème.

  1. Dans le contrôleur du domaine lancer adsiedit.msc
  2. Choisir le « OU » qui contient les utilisateurs du domaine dans le panneau de gauche, cliquer avec le bouton droit de la souris et choisir l’option propriété
  3. Cliquer sur « Sécurité » et choisir « avancé »
  4. Cliquer sur ajouter et inscrire « Terminal Server License Servers »
  5. Cliquer sur « propriété », dans la liste déroulante « appliquer sur » choisir « utilisateurs »
  6. Dans la liste de permissions choisir « lire terminalServer » et « écrire terminalServer »
  7. Confirmer
  8. Redémarrer le service

Suite à ces changements l’avertissement devra disparaître des logs du serveur.

Publié dans Terminal Serveur | Marqué avec , | Laisser un commentaire

WebDev – IIS et POUND – installation et configuration d’un répartiteur de charge (load balancer) comme serveur de proxy pour IIS

Dans le cadre d’un grand développement WebDev nous devrions prendre en compte la disponibilité  de serveurs et faire une (fausse)(*) répartition de charge entre une batterie de serveurs IIS, tous installés derrière un serveur frontal. Avantages sont multiples :

-Sécurité

-Disponibilité de serveurs

* fausse répartition de charge car la solution choisie n’interroge pas les serveurs IIS pour voir leur état de charge. Il s’agit plutôt d’un calcul dependant de la priorité que nous avons donnée à un serveur de la batterie

Sécurité car aucun de serveurs IIS n’est directement exposé sur l’internet, ils se trouvent dans le LAN. Il n’y a donc que le serveur reverse proxy qui est exposé du côté de WAN. Dans notre cas nous avons fait le choix de serveur pound installé sur une machine Ubuntu qui ne tourne aucun service mis à part le SSH pour l’administration à distance et Pound qui écoute les portes 80 et 443 (http et https) (voir photo ci-dessous)

 

Au moment où la requête d’un client arrive sur notre adresse web (ici pour l’exemple monserveur.local), en réalité elle arrive sur le serveur Pound qui selon les règles prédéfinies dans son fichier de config (/etc/pound/pound.cfg) nous renvoie vers IIS_1, IIS_2 ou IIS_3 (IIS_1, IIS_2,IIS_3 étant les noms de serveurs qui hébergent les sites WebDev). En plus, le concept de Pound est fait de telle manière qu’aucun accès disque n’est fait pendant son exécution. Seule lecture du fichier config et du certificat est faite au moment de son démarrage – aucune altération de l’OS n’est possible.

Disponibilité car au lieu d’avoir un seul serveur IIS nous en avons 3 (ou plus). Dans le cas où un serveur IIS cesse de fonctionner car l’alimentation du serveur ne fonctionne pas ou mises à jour de Windows empêchent IIS de démarrer car il y a une incompatibilité ou tout simplement car nous devons faire une mise à jour du site avec la nouvelle version du projet.
Il nous est alors très simple d’isoler un serveur à la fois pour effectuer les procédures de maintenance. Pour ce faire nous pouvons juste isoler le serveur en question du fichier de config pour que plus aucune requête ne lui soit adressé tout en le gardant en ligne et disponible pour tâches administratives. Comme il reste encore 2 serveurs aucun client n’est bloqué et site est toujours affiché.

 

Pour que ce système soit opérationnel, il faut veiller à ce que la Base de données ne soit pas HyperFile classic mais bien une vraie base de données client-serveur. Pourquoi ? Parce que si l’emplacement de la DB est local à un serveur donné, toute modification ne sera pas visible par autre serveurs. Il en va de même pour toutes les images du site. Pour éviter de devoir répliquer images sur chaque serveur lors de modification du site, il vaut mieux de les avoir soit dans la base de données soit dans un dossier partagé sur le réseau. Vous pouvez commencer l’implémentation de la solution à partir du moment que vous trouverez une solution à cette problématique.

Ici, nous n’allons pas nous concentrer sur la configuration du moteur de déploiement WebDev sous IIS, l’aide en ligne de Pc Soft explique cela très bien.

Commençons tout d’abord par l’installation de Pound :

Sous ubuntu cela se fait avec la commande suivante apt-get install pound

 

Pound ne démarre pas automatiquement car le fichier pound qui se trouve dans /etc/default/ n’est pas modifié. Il faut éditer le fichier avec vi ou vim et changer le paramètre startup=0 en startup=1.

Pour les novices dans le monde de Linux, quand vous installez votre distribution linux préféré, veuillez à ne pas installer apache ou autre serveur http car le port 80 sera utilisé par pound. Si apache est installé, il écoutera le port 80 et empêchera pound de fonctionner. Si vous voulez quand même avoir apache sur la même machine, il faudra lui dire d’écouter un autre port.

Le fichier principal de configuration de pound se trouve dans /etc/pound/pound.cfg.

Voici une configuration basique qui prends en compte 3 serveurs IIS et leurs assigne une priorité.

User            « www-data »

Group           « www-data »

LogLevel        1

Alive           10

Client          30

Timeout         15

Control « /var/run/pound/poundctl.socket »

#Ici on définit le port sur lequel Pound écoute (équivalent à 127.0.0.1)

ListenHTTP

Address 10.0.0.100

Port    80

#Ici on définis  que Pound prends en charge que POST, GET et HEAD

xHTTP           0

Service

#c’est ici qu’on définis les serveurs dit backend (IIS_1, IIS_2, IIS_3)

BackEnd

Address 10.0.0.30

Port    80

#plus le numéro de priorité est grand plus il est important dans le choix d’un serveur de backend

Priority 8

End

BackEnd

Address 10.0.0.31

Port    80

Priority 5

End

BackEnd

Address 10.0.0.32

Port    80

Priority 3

End

 

Session

#Webdev suis les informations sur sessions par apport à l’adresse IP

Type IP

TTL 600

End

End

End

Après avoir sauvegardé le fichier de config il faudra démarrer pound

/etc/init.d/pound start (ou /restart)

Voilà, ça devrai fonctionner, pour vérifier ouvrez votre navigateur et mettez l’adresse IP de Pound et normalement vous devriez avoir un de serveurs IIS (1,2 ou 3)

 

 

Publié dans Webdev | Marqué avec , , , , , | Laisser un commentaire

WebDev – Intégration d’un composant jquery UI dans WebDev 16

Intégration d’un composant jquery UI dans WebDev

Dans un de mes projets de développement avec Webdev j’étais contraint d’intégrer un sélecteur de valeurs entre 2 bornes tel que l’on voit assez souvent sur les sites de vente en ligne pour rechercher les produits ou le prix se situe dans la fourchette entre MIN et MAX.

http://jqueryui.com/demos/slider/range.html

J’ai tout d’abord commencé mes recherches dans Webdev pour voir si un tel composant existe. Après avoir constaté son inexistence, je me suis naturellement tourné vers jQueryUI. N’étant pas un expert de Webdev, je me suis demandé s’il était possible d’y parvenir de l’intégrer vu la philosophie de programmation Webdev et son code HTML anarchique.

A la fin, je me suis rendu compte que l’intégration d’un « composant » jQueryUI dans webdev est vraiment très simple.  Ci-dessous je décris différentes étapes de l’intégration d’un « slider » dans une page Webdev. Il se peut que la manière dont je procède n’est pas la meilleure, mais c’est la mienne 🙂 Par contre, je ne tournerais pas la tête d’une autre manière d’intégrer un composant jQuery dans un projet Webdev.

Voici donc comment moi je fais :

Tout d’abord il faut choisir un composant que nous souhaitons intégrer, ici je prends comme exemple le « slider » qui représente les valeurs de 2 bornes :

Avant de commencer il faudra se rendre sur le site de jqueryui -> jqueryui.com afin de télécharger le framework, ici au moment de la rédaction de l’article il s’agit de la version 1.8.16 stable pour jquery 1.3.2 et supérieur .
Copiez le contenu de l’archive dans le dossier projet_WEB (dossiers css, js, res). Par la suite, vous pouvez soit ouvrir le fichier index de l’archive pour voir comment le slider de base est généré, mais comme il y a plusieurs « versions » de slider, vous pouvez aller sur la page de démo et choisir celui qui vous intéresse afin de l’afficher dans une page isolé. Ceci facilitera la lecture du code HTML.

http://jqueryui.com/demos/

Choisisssez « range slider » -> http://jqueryui.com/demos/slider/#range

Cliquez sur « new window » – puis affichez la source de la page.

 

Ce qui nous intéresse est la partie qui se trouve entre balises <head> et </head>

Vous devez adapter la partie css pour qu’elle corresponde à vos paramètres ainsi que la partie script pour définir les bornes min et max du slider ainsi que les valeurs par défaut.

Ici min = 0 et max = 100

Valeurs initiales sont 25 et 75

$(function(){
// Slider
$('#slider').slider({
range: true,
min: 0,
max: 100,
values: [25, 75]

 

Passons maintenant dans Webdev et faisons apparaître le slider sur une nouvelle page.Double-cliquez sur la page en question et choisissez l’onglet avancé puis HTML

Collez le code qui correspond à votre configuration, ici chez moi :

<title>jQuery UI Example Page</title>
<link type= »text/css » href= »css/ui-lightness/jquery-ui-1.8.16.custom.css » rel= »stylesheet »/>
<script type= »text/javascript » src= »js/jquery-1.6.2.min.js« ></script>
<script type= »text/javascript » src= »js/jquery-ui-1.8.16.custom.min.js« ></script>
<script type= »text/javascript »>
$(function(){
$(‘#slider’).slider({
range: true,
min: 0,
max:100,
values: [25, 75],
slide: function( event, ui ) {
$( « #A2 » ).val( «  » + ui.values[ 0 ] +  » –  » + ui.values[ 1 ] );
}
});
$( « #A2 » ).val( «  » + $( « #slider » ).slider( « values », 0 ) +  » –  » + $( « #slider » ).slider( « values », 1 ) );
});
</script>

Déposez par la suite le composant champ HTML sur la page. C’est là que nous allons construire le slider en faisant un double-clic sur le composant et en copiant le code HTML suivant :

<h2>Slider</h2>

<div id= »slider »></div>

Ici demoheaders car j’utilise le CSS d’origine. Vous êtes libres de définir vos propres classes.
Et voici le slider affiché dans la page HTMLMaintenant il va falloir récupérer les valeurs de 2 bornes. Pour l’exemple, j’ai fait le choix d’afficher les valeurs dans un champ de saisiePour ce faire déposez un champ de saisie dans la page – je lui donne comme nom Webdev « valeur_slide » et comme libellé « Min – Max ». Prenez notre que ces valeurs sont une référence Webdev pour l’utilsiation avec WLangage, vous verrez par la suite que le nom HTML du composant n’est pas le même !

Voici donc la page :

Il va falloir par la suite afficher le code source de la page pour trouver l’id et nom du champ afin de le passer au scripte pour remplissage :

Entouré en bleu l’id et nom HTML du champ (A2)

 

Nous allons donc revenir dans le code HTML de la page et adapter le code pour que le remplissage du champ se fasse correctement :

Et voici le slider s’affichant dans la page avec le champ qui contient la valeur

 

 

Il est donc tout à fait possible d’intégrer jquery et jquery UI dans une page Webdev. Ce à quoi il faut faire l’attention c’est de bloquer la génération de pages HTML une fois que vous avez obtenus le résultat voulu car il est possible (je n’ai jamais eu le cas) que suite à la recompilation du projet Webdev régénère les pages HTML et qu’il modifie les noms (A2).
Vous pouvez le faire dans l’onglet « Avancé » – « Optimisation du code HTML – « Personnalisé » et « Ne plus générer le fichier HTML »

Bon dev!

Publié dans Webdev | Marqué avec , , | 5 commentaires