sept
5

L’architecture d’hébergement de NBS System

NBS System annonce ses IP sur son AS (Autonomous System) AS51335. NBS System est ainsi membre de la DFZ (Default Free Zone), les organisations qui n’ont pas de route par défaut puisqu’elle sont directement connectée « en direct » sur Internet et participe à son maillage.

NBS System héberge de très nombreux sites de E-commerce, notamment en Magento et notre infrastructure à très fortement évoluée ces derniers temps, voici l’état de notre réseau, mis à jour au 16 aout 2010. Nos équipements d’hébergement sont maintenant massivement implantés dans deux datacenters : Equinix PA3 (Saint Denis) et Iliad (Vitry) :

Implantations NBS System Lieu Statut
Level 3 Nanterre Implantation fermée fin 2008
Claranet Paris VIII° Implantation fermée fin 2009
NBS System Paris VIII° – Haussmann Implantation de secours tierce
Equinix PA2 Saint Denis Implantation fermée mi 2010
Equinix PA3 Saint Denis Nouvelle implantation primaire depuis mars 2010
Cogent La Garenne Colombes Implantation fermée fin septembre 2010
Iliad Vitry Nouvelle implantation primaire depuis Juillet 2010

Nos 12 classes d’IP totalisent 1072 adresses, dont une nouvelle classe PI (Provider Independant) : 194.213.124.0/23 de 512 adresses IP.

Nos deux principales implantations sont éloignées de plus de 25 Km l’une de l’autre, ce qui permet à NBS System d’être un des très rares hébergeurs « multi home », capable de fournir de la très haute disponibilité sur plusieurs sites distincts et distants de plusieurs kilomètres.

Nos deux sites principaux sont reliés par une fibres privée qui permet à chacun des datacenters de pouvoir utiliser la connexion de l’autre en cas de coupure, de mobiliser les serveurs présent dans l’autre infrastructure, même sans connexion internet dans un des datacenters. Voici un schéma simplifié de cette architecture redondante, haute disponibilité :

Ce travail de transformation de nos architectures a été réalisé par notre pôle Système et Réseau, mené par Émile Heitor (directeur de la production) et ses ingénieurs (et bras droits) : Adrien Urban & Denis Pompilio.

aoû
19

Regrouper les .htaccess dans la configuration Apache

Magento et ses Htaccess

Les fichiers htaccess, c’est une grande partie de la force d’Apache. Que ce soit dans Magento ou d’autres Framework, beaucoup utilisent des .htaccess locaux à chaque répertoires pour paramétrer des comportements du serveur Web.

En ajoutant un .htaccess dans un répertoire, on remplace la configuration du serveur Apache par la sienne, tout au moins sur certains points. Le dernier qui a parlé a raison donc quand un fichier htaccess redéfinie quelque chose qui a été définit dans un fichier centrale de configuration Apache, c’est cette portion de configuration qui est dans le fichier htaccess qui aura gain de cause.

Htaccess et I/O

Oui, mais… Les htaccess, c’est aussi un peu gênant car Apache les lit à chaque fois qu’il se balade dans le répertoire, autant dire très souvent. Donc cela génère des I/O inutiles puisque dans le fichier centrale, ces directives sont lues une bonne fois pour toute et pas à chaque accès. Du coup, il devient intéressant de « compiler » ou plus exactement de regrouper ces .htaccess dans un même fichier central de configuration d’apache pour optimiser les I/O disque.

Regrouper les htaccess

La manœuvre est relativement simple, on crée un petit bout de script qui va générer les directives à partir des contenus des différents fichiers htaccess qui sont répartis dans l’arborescence, appelons le « berger.sh » par exemple (c’est un peu le berger des .htaccess) :

emacs /usr/bin/berger.sh

#!/bin/bash
PATH=$PATH:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:/usr/local/sbin
echo -e "\n" >> $2
cat `pwd``echo $1|cut -f2,3 -d"."` >> $2
echo -e "\n" >> $2

CTRL+X+S (on ne lache pas la touche CTRL entre l’appuie sur X et celui sur S)

On le rend exécutable :

chmod 755 /usr/bin/berger.sh

Ensuite, on peut lancer une commande qui appelle le berger.sh à chaque fichier .htaccess trouvé dans l’arborescence :

cd /var/www/mon_site
find -name .htaccess -type f -exec /usr/bin/berger.sh '{}'  /etc/apache2/mon_site.conf \;

(attention, n’oubliez pas l’espace avant le \; sinon ca ne marche pas)

Il faut remplacer /etc/apache2/mon_site.conf par le chemin vers votre fichier de configuration apache du site concerné et cd /var/www/mon_site par le répertoire où se trouve le site. Ensuite on test, prudemment, que tout marche toujours bien :

find -name .htaccess -type f -exec mv '{}' '{}'.old  \;
/etc/init.d/apache2 restart

et on constate si ca fonctionne. Si tout est ok, on peut se débarrasser de nos anciens .htaccess :
(n’oubliez pas de vous replacer de le répertoire du site concerné)

find -name .htaccess.old -type f -exec rm '{}' \;

Sinon, on restaure nos .htaccess, on prépare un petit script de restauration :

emacs /usr/bin/resto_berger.sh

#!/bin/bash
PATH=$PATH:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:/usr/local/sbin
mv $1 `echo $1|cut -f1,2 -d"."`CTRL+X+S (on ne lache pas la touche CTRL entre l'appuie sur X et  celui sur S)

On le rend exécutable :

chmod 755  /usr/bin/resto_berger.sh

et on l’exécute :
(n’oubliez pas de vous replacer de le répertoire du site concerné)

find -name .htaccess.old -type f -exec resto_berger.sh '{}' \;

Et voila, normalement, vous avez regroupé tous vos .htaccess dans le fichier de configuration central d’apache et vous gagnez en performances !

aoû
17

Détecter les attaques, pas si facile. Tracer le pirate ? Encore pire !

Un pirate qui effectue une attaque met souvent en place des méthodes de protection pour éviter qu’on puisse remonter jusqu’à lui. L’arrestation de ces criminels n’en est que plus complexe surtout lorsqu’ils pratiquent leurs activités depuis des pays laxistes dans le domaine.

Cette protection (par le pirate, pour le pirate) peut avoir lieu à deux niveaux. Soit il arrive à rendre son attaque furtive de manière à ce que la victime ne sache pas qu’elle a été compromise, soit il se débrouille pour que les logs des machines piratées ne contiennent pas d’information permettant de remonter jusqu’à lui. Dans les faits il a bien entendu intérêt à utiliser conjointement l’usage des deux techniques de protection.

Dans l’article  »http://www.nbs-system.com/blog/verizon-data-breach-report » publié sur ce même blog, il est fait allusion aux statistiques de Verizon qui nous montrent que dans la plupart des cas il reste possible de trouver des traces du pirate dans les logs des machines compromises. Toutefois, il convient de lever une question d’importance : dans combien de cas cette trace qu’il a été possible de trouver sur le poste de la victime permettait réellement de retrouver le pirate ?

Gageons que cette statistique soit nettement moins favorable aux professionnels de la sécurité. En effet, de nombreuses méthodes de dissimulation peuvent être employées par un pirate. Cet article a pour objectif de mettre en avant l’une de ces méthodes : le fast flux. Rien de nouveau sous le soleil me direz vous. Oui bien sur, toutefois il s’agit d’une technique puissante utilisée quotidiennement par les pirates. Il nous a donc semblé important de l’aborder.

Le principe de base est simple, lorsqu’une attaque a été détectée, l’IP qui s’affiche ne doit pas permettre de remonter jusqu’à la source de l’attaque. D’une manière ou d’une autre le pirate va donc créer des chaines de machines pour rendre de plus en plus complexe la remontée. Le fast flux est une méthode de création de chaine de machine et est d’ailleurs couramment utilisé dans les attaques par Phishing.

Je vous donne un exemple. Vous recevez dans votre boite mail un spam vous proposant d’acheter une nouvelle médecine de manière illégale. Pour ce faire vous devez cliquer sur un lien. Comme d’habitude le protocole DNS vous permet de transformer l’adresse DNS du site sous sa forme décimale pointée (en une IP). L’idée du fast flux est que cette IP sera ici chaque fois différente (grâce à différents mécanismes du protocoles DNS).

Ces IPs n’hébergeront d’ailleurs pas le site mais redirigeront simplement votre requête vers le vrai site web de fishing qui du coup demeure caché beaucoup plus longtemps. Le pirate peut se permettre d’utiliser cette technique car il possède un grand nombre de machine (donc d’IPs) sous son contrôle sur lequel il installe des reverse proxy qui du coup pointeront vers le véritable site de phishing. Voilà, le fast flux c’est ça. On utilise à un moment un nommage qui se retrouve en fait à pointer sur un ou plusieurs éléments qui du coup restent masqués.

Donc là, on vous a présenté un fast flux qui faisait pointer un DNS vers plusieurs IPs faisant du reverse proxy mais l’attaque peut s’effectuer à d’autres niveaux simultanément. Cela peut par exemple s’effectuer en même temps au niveau du serveur DNS comme vous pouvez le voir sur cette image tirée du blog Orange Business Services :

Image Fast Flux Orange Business Services
(source Orange Business services)

On peut même imaginer que cela se passe au niveau du reverse proxy. Ainsi, nous aurions le reverse proxy (sur une des machines piratées) qui pointerait non pas sur 1 seul serveur de phishing réel mais alternativement sur plusieurs serveurs rendant encore plus complexe la désactivation du mécanisme de phishing. Rien n’oblige d’ailleurs, dans ce scénario, que tous les serveurs Reverse Proxy possèdent les IPs de tous les serveurs réels de phishing. Le pirate peut également décider que les DNS utilisés au départs soient aussi multiples (tout en continuant d’utiliser les autres couches de fast flux).

 

Vous pouvez le constater, c’est une chose de trouver des traces d’IPs sur une machine compromise mais s’en est une autre que de pouvoir retrouver le pirate. Rajoutez à ce problème que les machines compromises sur lesquelles le pirate met en place des reverses proxy peuvent se trouver partout sur la planète et vous aurez de nombreuses complications à gérer.

Si le sujet vous intéresse, je vous propose d’aller visiter le site de l’APWG (Anti Phishing Working Group) à l’adresse http://www.antiphishing.org/ ou ce PDF du site de l’ICANN (http://www.icann.org/en/committees/security/sac025.pdf) qui détaille bien de manière plus détaillée que le présent article le mécanisme de fast flux.
aoû
11

Verizon Data Breach Report

Bien qu’en général ce type de rapport ne présente que peu d’intérêt à mes yeux, il y en a bien un qui fait exception : celui de Verizon. C’est pourquoi j’ai décidé de vous en parler aujourd’hui. Ce rapport est une analyse des différentes compromissions sur lesquelles Verizon a effectué des foreinsic sur l’année, et en livre une analyse globale, le pourquoi, le comment, le qui. Pour une fois que le gigantisme d’une entreprise présente des avantages !

Ici cette entreprise internationale peut se targuer d’avoir une vision presque exhaustive des compromissions, et les données et faits présentés dans cette analyse sont les résultats de constations effectués au cours des forensic (149 cas ont ici étés utilisés pour cette analyse) que pratique Verizon pour ses clients.

En effet, le databreach report 2010 regorge, comme à son habitude, d’informations intéressantes, et de beaucoup de statistiques, souvent surprenantes.

Rentrons dans le vif du sujet :

  • 86% de victimes disposent, dans leurs logs, de traces de l’intrusion, qui auraient généralement suffit à mettre en échec l’attaquant, ou à le retrouver.
  • 94% des victimes faisaient partie des services financiers.
  • 85% des attaques émanent de groupes criminels connus.

Avant de rentrer plus en détail dans l’aspect statistique, il faut savoir que l’année 2009 a connu une baisse significative de vols de numéros de cartes bancaires par rapport aux années précédentes.

Cette information est cependant à prendre avec des pincettes, puisque l’on ne découvre en général ces vols que lors des transactions frauduleuses. Or, les lois des marchés s’appliquant aussi au marché illégal, il est possible que l’équilibre entre l’offre et la demande soit actuellement compromis. Il est envisageable que beaucoup de vols aient étés commis, mais que les transactions n’ayant pas encore étés effectuées, et donc que ces vols ne soient pas encore connus.

La récente condamnation de Albert Gonzalez, qui a pris 20 ans de prison pour la plus grande opération de vol de numéros de carte bancaires connue de l’histoire, en a probablement refroidi plus d’un …

Un schéma (classique) ressort généralement dans les vols les plus importants : le/les pirates pénètrent d’abord le LAN en utilisant une erreur de configuration ou une vulnérabilité triviale, puis installent des malwares sur les postes de travails et les serveurs afin d’extraire l’information monayable.

L’utilisation de malware (drive-by-downloads post compromission, infection des postes etc.) n’est présente que dans 38% des cas mais représente 94% en volumes de données volées.

L’analyse va jusque dans le comportement dudit malware : dans plus de 70% des cas il s’agit « simplement » d’une backdoor ou d’une action type spyware/keylogger. De plus (et c’est une donnée qui me fait « plaisir ») 97% des données volées l’ont étés grâce à des malwares « fait maison » ou « customizés » et donc invisible des anti-virus.

Quand on parle de ce schéma, vous vous demandez par ou cette première « compromission » a pu arriver, bien que certains d’entre vous s’en doutent déjà … L’injection SQL fête donc son 10 ème anniversaire en grande pompe, puisqu’il s’agit (et de loin) du vecteur d’attaque le plus utilisé pour la compromission externe qui précède l’implantation de malwares sur les postes de travail/serveurs.

Espérons que ce vecteur d’attaque ne restera pas en tête d’affiche pendant de trop nombreuses années (non je ne suis pas utopiste, juste plein d’espoir) et que les sociétés vont « finalement » se mettre à former leurs développeurs comme il se doit et que l’on arrêtera de croiser des développeurs qui « ont vaguement entendu parler des injections SQL, mais ne savent pas vraiment ce que c’est » (lire : je ne sais pas les détecter, les tester, ou les corriger).

Un point intéressant de ce rapport, concerne le nouveau terme à la mode (pas si nouveau, mais qui s’est répandu en 2009 dira-t-on)  « APT » Advanced Persistant Threat, directement lié à l’attaque sur Google (et les 30 autres sociétés ciblés). Il s’agit là d’un débat à part, et je ne rentrerais pas dedans. En revanche, cela me permet de rebondir, de manière plus générale, sur le niveau des attaques employées.

Je ne ferais pas plus durer le suspens :

  • 13% des attaques ne requéraient aucune connaissance technique
  • 28% des attaques étaient du niveau  « script kiddie » (tout débutant aidé de Google)
  • 44% des attaques demandaient des connaissances techniques modérées
  • 15% des attaques impliquaient un niveau technique avancé, et impliquaient beaucoup de customisation (dans les outils utilisés et/ou les méthodes d’attaque) ou des ressources importantes

L’autre question qui me taquinait – et je l’espère, vous aussi – était : Attaque opportuniste vs attaque ciblée ?

Si les attaques ciblées ne représentent que 27% du nombre des intrusions, elles représentent en revanche 89% du volume de données volées, et les attaques opportunistes, pour 70% des attaques, ne représentent que 11% du volume de données volées.

Pour finir, je vous recommande de lire tout ce rapport (si vous êtes arrivés jusque ici c’est que ce sujet vous a plus ou moins intéressé) car, comme vous vous en doutez, je n’ai pu vous relater ici qu’un échantillon des données qu’il contient, et au final, 66 pages (en anglais), ce n’est pas si long.

aoû
5

Introduction à la sécurité informatique

Menaces, enjeux et démarches à suivre
Par Ayoub FIGUIGUI (afi@nbs-system.com) le 17/07/2010

(Lire la suite…)

juil
21

Forensic et Piratage : Un cas original

Introduction

Un ami, qui travaille dans une société d’infogérance, me parle d’un fait troublant : Une de leur machine a été compromise, par bruteforce SSH apparemment. En effet, on constate dans le /var/log/auth.log, plus de 35.000 tentatives de connexion infructueuses. La ou cela sort de l’ordinaire, c’est que le mot de passe utilisé sur le compte piraté, le compte root, utilise un mot de passe de 13 caractères en alphanumérique étendu, et que chaque machine utilise un mot de passe différent, de robustesse équivalente. Bref, quelque chose ne colle pas. Ayant piqué ma curiosité au vif, je lui propose de lui prêter main forte afin d’y voir plus clair.

Mais avant tout, il s’agit la encore d’une preuve irréfutable que « AllowRootLogin » is the root of all evil !

En inspectant les logs de la machine (que l’attaquant n’a pas pris la peine de nettoyer, preuve d’un amateurisme manifeste), on constate bien des dizaines de millier d’essais de tentatives de connexion infructueuses, puis, tout d’un coup :

sshd[XXXX]: Accepted password for root from x.x.x.x port xxxx ssh2

Le pirate aurait-il réellement craqué en bruteforce un mot de passe robuste de 13 caractères ? Voila qui parait improbable, ou alors l’attaquant dispose d’une chance telle qu’il ferait mieux de jouer au loto ! Pour rappel, il avait à peu près 94^13 chances de trouver le mot de passe.

S’agissait-il d’une stratégie de sa part pour camoufler une autre attaque, plus évoluée ? Cela paraissait peu probable, mais envisageable … Quoi qu’il en soit, peu convaincus par l’explication actuelle, nous décidons de continuer nos investigations.

Mon ami et son équipe avaient déjà pu trouver une première toolkit laissée par le pirate. Celle-ci avait pu être détectée, car son scanneur de masse avait littéralement « mis à la rue » leur serveur mail, ce qui avait été le premier point d’alerte. Les processus n’ayant pas étés cachés, ils ont pu très rapidement mettre la main sur ce premier kit.


Analyse du premier kit déposé par l’attaquant

Voici le contenu de la toolbox déposée par l’attaquant :

index.html
LC_MESSAGES
LC_TIME
mech.jpg
pn
.r
.ssh
ssh.tgz
  • Le répertoire « pn » contient une série d’exploits plesk, ainsi qu’un bruteforcer de mots de passe plesk :
    • Un script shell, qui, en s’appuyant sur un scanneur de masse, tente du bruteforce sur le mot de passe administrateur PLESK.
    • Un exploit multi-target PLESK
  • Le répertoire « .r » contient lui ce qui semble être un bot IRC. Il ne semble pas s’agir d’un bot connu, mais comme celui-ci n’est pas strippé, il est assez facile de deviner son but avec un coup de GDB :
void do_banlist(char *, char *, char *, int);
void do_deop(char *, char *, char *, int);
void do_deopme(char *, char *, char *, int);
void do_idle(char *, char *, char *, int);
void do_invite(char *, char *, char *, int);
void do_join(char *, char *, char *, int);
void do_kick(char *, char *, char *, int);
void do_kickban(char *, char *, char *, int);

Par ailleurs, en regardant de plus près les fichiers de configuration du bot, on trouve assez rapidement des infos sur le covert channel, tel que le channel IRC ou se trouvent les différentes machines compromises. Au vu de la date de l’attaque, nous ne communiquerons pas de détails « techniques » sur le botnet de l’attaquant, afin d’éviter tout effet de bord.

  • Un répertoire « .ssh », qui contient la aussi, un bruteforceur (ssh-scan), accompagné du même scanneur de masse.

Bref, somme toute, uniquement des outils de « script kiddie », très bas niveau. Autant cela aurait pu être une bonne nouvelle, mais ici cela ne colle pas, les mots de passe sont bien trop robustes pour tomber avec un simple bruteforce.

Deuxième analyse

En s’appuyant sur l’analyse de la toolkit de l’attaquant, nous nous rendons sur le channel du pirate, et découvrons qu’il n’y a pas une, mais 49 machines (y compris les machines virtuelles) qui ont étés compromises dans sa société, bref, la piste du bruteforce deviens de moins en moins crédible, mais nous retrouvons bien, sur la plupart des machines piratées des traces de tentatives de connexion en SSH, et, sur TOUTES les machines, au moins une authentification ssh en root réussie … de quoi y perdre son latin.

Nous décidons donc d’exploiter d’autres pistes :

  • Logiciels vulnérables présents sur tous les serveurs compromis
  • Points communs qui pourraient expliquer la compromission de masse.
  • Présence d’utilisateurs autres, qui disposeraient des mêmes mots de passe sur les différentes machines

De cette piste, ne ressort rien de viable. Quelques logiciels vulnérables (notamment Rsync) présents sur plusieurs machines, mais des machines sans ce logiciel ont aussi étés compromises. Bref, rien de concluant.


Un autre point intéressant rentre alors dans la réflexion : Le RADIUS. En effet, dans la société, a été mis en place, il y a peu de temps, un système radius avec OTP et Ubikey (http://www.yubico.com/products/yubikey/). Il s’agit d’un système d’authentification otp/bi-facteur. Ce dernier avait été éliminé de facto, puisque l’attaquant semblait être d’un niveau technique trop faible pour ne serait-ce que songer à effectuer ce genre d’attaques. Certes, il ne faut jamais sous évaluer l’attaquant, mais vu les conditions et les éléments qui avaient étés relevés… Vu que les autres pistes n’avaient rien données, nous avons décidé d’investiguer de ce coté la. Il s’avère, au final que l’erreur n’était pas du tout la où on l’attendait. Le RADIUS était effectivement fautif, mais pour une raison tout à fait surprenante :

- Le script qui gérait l’authentification radius avec l’Ubikey,lorsqu’il recevait un challenge trop long, exitait avec le code « 9″. Or, pour radius, exit 9 correspond à « aller au module suivant ». Or le module suivant était « send-accept » (un module qui valide la tentative d’authentification). Ce qui s’est donc passé, est que le pirate, avec un mot de passe extrêmement long, déclenchait une erreur « HMAC Verification failed », et le script exitait avec le code 9, radius passait la main au module suivant (send-accept) et le pirate voyait son authentification réussir.

La finalité est que, le pirate, par chance, disposait d’un mot de passe extrêmement long (plus de 128 caractères), qui provoquait l’erreur 9 , et le pirate pouvait donc s’authentifier sur TOUTES les machines du réseau en utilisant ce mot de passe. La vulnérabilité est pour le moins originale, « dans la vraie vie ». Le bon point est que le pirate a réussi ses compromissions par pure chance, et pense (après discussion avec lui), avoir trouvé le mot de passe « root » de toutes les machines, puisque, qui dit radius, dit authentification centralisée, dit, toutes les machines peuvent être compromises avec ce même mot de passe.

Et jamais deux sans trois !

Une fois le vecteur d’attaque, il est FINALEMENT possible de chasser le pirate des machines. En effet, tant que le vecteur d’infection n’a pas clairement été identifié, il est « risqué » de fâcher le pirate. Il n’est pas possible de le bloquer tant que l’on n’a pas identifié le vecteur d’attaque, rien ne l’empêchant de revenir depuis une autre IP (sans même parler de la forte probabilité de mise en place d’un covert channel), et, pour peu qu’il soit irrité par cette tentative, de RM les machines. Maintenant qu’il est possible d’empêcher le pirate de compromettre à nouveau les machines, le script RADIUS étant fixé, il est possible de nettoyer les machines et de mettre le pirate à la porte. Et la, une nouvelle surprise nous attends. En effet, en regardant la configuration des covert channel IRC, nous avions vu deux serveurs apparaitre : Undernet, et Quakenet. Or, certaines machines normalement « nettoyées » étaient toujours présentes sur les channels, ce qui signifiait qu’il y avait une autre backdoor que celle identifié originellement. Après quelques recherches, il s’est avéré que l’attaquant avait installé Suckit ou T0rn sur la plupart des machines. Ces rootkits ont pu être principalement détectées grâce aux dates de modification des fichiers, notamment le binaire de suckit qui sert à l’injection dans /dev/kmem.


Le mot de la fin

J’ai décidé de vous faire part de ce cas, car j’ai trouvé celui-ci assez original, et il montre bien que la sécurité d’un système d’information n’est jamais plus forte que celle de son maillon le plus faible !

juil
19

Howto IDS/IPS

IDS/IPS Mise en place et techniques anti-IDS

Préconisations, Installation, configuration.
Par Ayoub FIGUIGUI (afi@nbs-system.com) le 17/07/2010

(Lire la suite…)

juin
17

Magento – Séparation des bases de données production et backoffice

Il est possible, via une petite modification du fichier index.php de magento, d’utiliser deux bases de données séparées pour la production et la backoffice. Ces deux base de données devront être en master/master.

Cela permet de séparer les requêtes « gourmandes » du backoffice et ainsi d’avoir une production allégée des opérations de maintenance. Nous assumerons que le document root de production s’appelle « prod » et celui du backoffice « bo« . Ci-dessous la procédure de séparation des bases de données, toute les commandes ci-dessous sont executées depuis le document root de la production.

  • Créer deux répertoires de configuration pour la production et le backoffice. Ces deux répertoires seront de préférence hors du document root du site.
  • mkdir -p ../includes/{prod,bo}_etc
  • Le document root de « bo » est un lien vers « prod« .
  • ln -s ../bo prod
  • Copions l’intégralité des fichiers et répertoire présent dans « app/etc/ » vers les deux répertoires créés dans « ../includes« .
  • cp -a app/etc ../include/prod_etc cp -a app/etc ../include/bo_etc 
  • On révise les droits sur le répertoire « ../includes » pour autoriser le serveur WEB à lire/écrire ces fichiers. (L’écriture n’est pas forcement nécessaire) chown -R websrv:websrv ../includes find ../includes -type f -exec chmod 600 {} ';' find ../includes -type d -exec chmod 700 {} ';'

  • Le repertoire app/etc est « hard codé » dans la vérification d’installation magento. Nous laisserons donc un fichier local.xml avec la date définie lors de l’installation. Voici le contenu de notre fichier :

  • Rajoutons maintenant ces quelques lignes dans le fichier **index.php**. cela permet à magento de prendre un répertoire de configuration spécifique à chaque document root. # # $doc_root = $_SERVER["DOCUMENT_ROOT"]; $arrDocRoot = explode( "/", $doc_root ); $cur = $arrDocRoot[ count( $arrDocRoot ) - 1 ]; $arrDocRoot[ count( $arrDocRoot ) - 1 ] = "includes"; $arrDocRoot[] = $cur."_etc"; $etc_dir = implode( "/", $arrDocRoot ); $options = Array( 'etc_dir'=>$etc_dir ); Mage::run($mageRunCode, $mageRunType, $options); # # # Mage::run($mageRunCode, $mageRunType);

  • Nous pouvons désormais configurer distinctement notre instance de production et de backoffice. Le lien symbolique « bo » pointant » sur « prod » nous permettant d’éviter les problèmes de synchronisation entre les deux répertoires. (Notons qu’un montage « bind » aurait produit le même résultat)
mai
6

Nouveau site pour NBS System

Bonjour à tous !

Voici notre nouveau site enfin en ligne.
C’est toujours une épreuve et un combat mais c’est fait, nous sommes maintenant au point.

Vous trouverez nos activités réorganisées et remise en page pour plus de clarté. Si vous détectez des erreurs ou des 404, n’hésitez pas à nous le signaler.

Le site s’agrémente maintenant d’un blog, nous y reposterons prochainement les deux howtos IPtables et OpenVPN ainsi que les articles de sécurité de l’ancien site. Dans le futur proche, vous y trouverez également des informations sur la société, sur les technologies en cour de développement ou d’étude dans nos laboratoires de R&D ainsi que des billets postés par nos experts.

Merci de votre visite, l’équipe de NBS System vous souhaite un agréable surf sur notre nouveau site.

mai
4

Howto Openvpn 2

mai
4

Howto Iptables / Netfilter

IPtables HOWTO français

Préconisations, Installation, configuration.
Par Philippe Humeau (philippe.humeau@nbs-system.com) le 18/03/2005

(Lire la suite…)