NetDrive: configuration et utilisation pour un Cloud Icodia

Dans ce tutoriel, nous allons vous montrer comment configurer et utiliser le logiciel NetDrive pour votre IcoCloud. Ce logiciel est un client de stockage (FTP, Webdav,…).
Il vous permettra de gérer plus facilement et plus rapidement votre espace Cloud qu’avec le client Windows par défaut. La configuration de ce logiciel est légèrement différente, mais l’utilisation de votre espace Cloud sera totalement transparente.
A la fin de ce tutoriel, vous pourrez donc utilisez votre IcoCloud comme un disque dur de votre ordinateur.

1 /  Téléchargement de Netdrive, client FTP et Webdav

Vous trouverez le logiciel NetDrive au format ZIP sur note site (Télécharger NetDrive ici).

Pour l’installer, décompressez-le en faisant un clique-droit sur le fichier télécharger et « Extraire ici ».
Lancez ensuite l’installation.

2 / Configuration de Netdrive en Webdav

Une fois le logiciel installé et lancé, voici la page qui s’affiche :

etape1

Pour créer une nouvelle connexion, cliquez sur le bouton « New Site ».

La page ci-dessous s’affiche et montre que votre nouvelle connexion a bien été créée.

Il faut maintenant la configurer.

etape2

Descriptions des champs à remplir :

  • Champ 1 : Le nom de votre connexion, vous pouvez mettre ce que vous souhaitez. Ce sera le nom de votre connexion qui s’affichera sur votre « Poste de travail » Windows de votre ordinateur. Cela n’aura pas d’incidence sur la réussite de la connexion.
  • Champ 2 : L’adresse URL de votre IcoCloud. Vous devez inscrire l’URL qu’ICODIA vous a fourni dans vos paramètres de connexion Webdav. L’URL fournit sera de la forme https://XXXXXX.icocloud.fr/XXXXXX/ avec XXXXXX étant un chiffre supérieur à 110000.
  • Champ 3 :  Le type de connexion (FTP ou Webdav).  Pour accéder à vos données comme pour un disque dur de votre ordinateur, vous devrez choisir Webdav.
  • Champ 4 :  L’identifiant de votre IcoCloud ( fourni dans vos paramètres de connexion).
  • Champ 5 : Le mot de passe de votre IcoCloud (fourni dans vos paramètres de connexion).
  • Champ 6 : Cochez cette case si vous souhaitez que la connexion à votre IcoCloud se fasse dès le démarrage de votre ordinateur. Si vous ne la cochez pas, vous devrez ouvrir NetDrive pour établir la connexion.
  • Champ 7 : Le numéro du port de la connexion au serveur. Indiquez 443 pour la connexion en WebDav.
  • Champ 8 : La lettre correspondant à votre IcoCloud. Elle apparaîtra de la même manière que le nom de la connexion sur votre « Poste de travail » Windows. Elle n’influe en rien la connexion à votre IcoCloud mais devra être renseignée.

Pour nos IcoClouds, nous avons mis en place un certificat de sécurité afin que vos données ne circulent pas en clair.
Pour utiliser votre IcoCloud, vous devez obligatoirement activer cette option dans le logiciel NetDrive.
La page ci-dessous montre de quelle forme doivent être tous les champs remplis précédemment et comment activer cette option.

configuration_compte

Pour activer l’option de sécurité, vous cliquez sur le bouton « Advanced« .

La page suivante s’affiche avec l’option à cocher:

etape4

Cochez la case « Use HTTPS » afin de pouvoir utiliser votre IcoCloud.

Pour « Encoding », choisissez UTF-8.

Validez en cliquant sur le bouton OK et essayez de vous connecter en cliquant sur le bouton « Connect »  comme sur la page ci-dessous.

validation_connexion

Après validation, la connexion s’effectue et l’explorateur Windows de votre espace Cloud se lance comme sur la page ci-dessous.

Si vous obtenez un message d’erreur « Login Failed », veuillez vérifier que les informations renseignées correspondent parfaitement aux données figurants sur vos paramètres de connexion IcoCloud fournis par ICODIA.

Si vous avez effectué un copier/coller pour le mot de passe, veuillez vérifier qu’il y a bien 8 points dans la case « Password ».

utilisation

A votre première connexion, votre IcoCLoud est vide, vous pouvez y stocker vos documents

Il apparaîtra sur votre « Poste de travail » comme un disque dur physique de votre ordinateur comme sur l’image ci-dessous:

utilisation_ordinateur

Ainsi vous pourrez utiliser votre IcoCloud en toute transparence.

N’hésitez pas à contacter le support d’ICODIA si vous avez des difficultés à vous connecter.

Fichier .htaccess : Erreur SSI, Internal Server Error,…

1) Principe et fonctionnement

Un serveur d’hébergement sans aucune restriction technique et fonctionnelle, exposerait vos sites et services à de nombreuses failles de sécurité.  Il s’exposerait lui même à des failles, également.
De ce fait,  nous avons pré-configuré nos serveurs dédiés ainsi que nos hébergements mutualisés de façon à ce qu’ils soient prémunis de ces failles de sécurité.

Cette pré-configuration empêche la modification des directives sensibles du serveur.
Afin d’utiliser certaines fonctionnalités, vous avez la possibilité d’utiliser des fichiers .htaccess.

Les fichiers .htaccess servent à modifier localement la configuration du serveur Apache.
Il est donc possible d’adapter la configuration du serveur en fonction des différents dossiers de l’hébergement.
De ce fait vous pouvez créer autant de fichier .htaccess que de dossier qu’il y a sur l’hébergement.

Cet article a pour but de parcourir les erreurs fréquentes dues à un fichier .htaccess sur votre hébergement dédié ou mutualisé.

Si vos directives ne figurent pas dans ce tutoriel, vous pourrez les trouver sur le site officiel d’Apache (Site officiel d’Apache).

2) Erreurs .htaccess sur hébergement mutualisé

Lorsque que vous essayez d’agir sur les directives Apache dans un fichier .htaccess, il est possible que le serveur vous retourne un message d’erreur du type :

ERREUR SSI

Erreur SSI dans votre fichier
SSI instruction error in your file.

Cette erreur est courante. Voici les trois cas les plus courants qui peuvent la générer:

2.1 ) Lorsque vous tentez d’exécuter un script php qui demande trop de ressource

taille mémoire: memory_limit, temps d’exécution:max_execution_time,…,

Le script est « tué » par le serveur et renvoie cette erreur.

Les variables php sont modifiables dans votre icoAdmin (avant dernier onglet),
Si vous pensez que le problème vient de là, veuillez  augmenter les valeurs des variables php et relancer votre script.

2.2 ) Lorsque vos données de connexion à votre base de donnée Mysql sont incorrects

Vérifiez la configuration de votre connexion dans le fichier concerné : Serveur, base de données, identifiant, mot de passe

2.3 ) Lorsque vous essayez  d’activer ou de désactiver une option ou une directive dans un fichier .htaccess qui y serait déjà ou qui ne serait pas autorisée, le serveur renvoie une erreur.

Sur tous nos packs mutualisés, nous avons mis en place une configuration de sécurité qui ne permet pas par exemple une intrusion sur le serveur via un compte FTP.
Cela vous semble peut-être bloquant mais cette configuration est nécessaire pour ne pas pénaliser l’ensemble des hébergements mutualisés de la plateforme.

Directives d’Apache les plus courantes qui sont autorisées ou non  par le serveur sur votre hébergement mutualisé :

DirectoryIndex index.php index.html index.htm : Autorisée, elle permet de diriger un utilisateur vers une page web lorsqu’il tape www.domaine.fr dans un navigateur. Le serveur affiche le premier fichier existant de la liste (en partant de la gauche).

ErrorDocument 404 /pageinexistante.php : Autorisée, elle permet de personnaliser votre page d’erreur 404.
Elle redirige vers une page particulière lorsqu’un utilisateur appelle une page qui n’existe pas .
Dans ce cas, l’utilisateur sera dirigé vers pageinexistante.php .

AddDefaultCharset UTF-8 : Autorisée, elle permet de modifier le décodage de la page.
Cela est utile quand la page a été encodée dans un autre format (dans votre éditeur de code).
Si le décodage ne correspond pas à l’encodage, vous allez voir apparaître des caractères spéciaux à la place des caractères accentués par exemple.

RewriteEngine on : Autorisée, elle permet de pouvoir effectuer des réécriture d’url.

RewriteCond %{HTTP_HOST} ^www.votredomaine.com$ : Autorisée, elle permet d’autoriser la directive RewriteRule qui la suit.
Elle permet par exemple de rediriger dans un sous-dossier en fonction du nom de domaine demandé si une directive RewriteRule la suit.

RewriteRule ^(.*)\.html$ $1.php [L] : Autorisée (si RewriteEngine a été activée), elle permet de réécrire les urls se terminant en .php par des urls en .html

Options +Indexes : Refusée, cette option permet de lister tous les fichiers présents dans un dossier qui n’aurait pas de directive DirectoryIndex. Elle peut être la source de problèmes de sécurité.

Options +FollowSymLinks : Refusée, cette option est déjà activée par défaut sur la configuration du serveur.
Elle permet de garder la hiérarchie des liens dans chaque sous-dossier. Par exemple, elle est nécessaire pour utiliser la directive RewriteRule sans être obligé de répéter ces directives dans chaque .htaccess des sous-dossiers.

AllowOverride All : Refusée pour des raisons de sécurité, elle permet d’autoriser TOUTES les directives du serveur.

Options +Includes : Refusée pour des raisons de sécurité, elle permet de réaliser des inclusions coté serveur.

Options +Multiview : Refusée pour des raisons de sécurité, elle permet , si dans l’url demandée un dossier n’existe pas alors le serveur va rechercher dans le dossier précédent (du chemin de l’url) un fichier qui porterait le même nom.

L’ensemble des directives est disponible sur le site d’Apache (Directives d’Apache).

3)Erreurs .htaccess sur serveur dédié

Sur nos serveurs dédiés nous mettons également en place une configuration du serveur Apache par défaut.
Cette configuration est néanmoins entièrement modifiable selon vos besoins.
Les erreurs rencontrées à cause des .htaccess ou de la configuration d’Apache est l’erreur 500:

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, support@icodia.com and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.

Cette erreur étant assez générique pour Apache, elle vous permettra simplement d’identifier le type du problème.
Dans ce cas, il viendra d’un fichier .htaccess ou du fichier général de la configuration d’Apache (httpd.conf pour CentOs par exemple).

De la même manière que pour nos serveurs mutualisés, les règles d’Apache les plus sensibles sont désactivés par défaut (dans les fichiers .htaccess) :  AllowOverride All, Options +Includes, Options +Multiview,… .
Vous pouvez analyser les directives qui posent problèmes dans les fichiers de logs d’erreurs de votre site.

Ce genre d’erreur apparaît souvent quand vous essayez d’installer une application comme Magento (par exemple) qui utilise des options sensibles.

Mise à jour automatique de WordPress via FTP impossible

WordPress-logo-brokenLa mise à jour automatique de WordPress utilise le protocole FTP pour récupérer chaque dossier et fichier de la nouvelle version.

Cette action est effectuée dans un processus PHP unique et donc assez long.

De plus, un contrôle et une mise à jour des droits des fichiers copiés est systématiquement effectuée, ce qui allonge énormément le processus et qui est inutile.

Si la mise à jour est en échec sur votre CMS, vous pouvez modifier la methode « chmod » de la class. Voici comment procéder :

– Ouvrez le fichier « /wp-admin/includes/class-wp-filesystem-ftpext.php » dans votre editeur de code.
– en ligne 149 (pour la version 3.5 de WordPress) remplacez le code suivant :

function chmod($file, $mode = false, $recursive = false) {
if ( ! $mode ) {
if ( $this->is_file($file) )
$mode = FS_CHMOD_FILE;
elseif ( $this->is_dir($file) )
$mode = FS_CHMOD_DIR;
else
return false;
}

// chmod any sub-objects if recursive.
if ( $recursive && $this->is_dir($file) ) {
$filelist = $this->dirlist($file);
foreach ( (array)$filelist as $filename => $filemeta )
$this->chmod($file . '/' . $filename, $mode, $recursive);
}

// chmod the file or directory
if ( ! function_exists('ftp_chmod') )
return (bool)@ftp_site($this->link, sprintf('CHMOD %o %s', $mode, $file));
return (bool)@ftp_chmod($this->link, $mode, $file);
}

par :

function chmod($file, $mode = false, $recursive = false) {
return(true);
}

Si votre site passe en maintenance à la fin de la mise à jour, il faut supprimer le fichier .maintenance en racine de votre répertoire FTP.

Prestashop – Module ATOS – Bug sur les URLs de retour

Le module ATOS utilise deux binaires pour encrypter (REQUEST) les paramètres d’un paiement pour les envoyer à l’interface de la banque et pour décrypter le retour du terminal de paiement (RESPONSE).
Lors de la préparation de la chaîne encryptée qui est postée sur le TPE par le formulaire d’accès (les logos des différents types de cartes bancaires), le module prépare une chaîne de paramètres séparés par des espaces qui est passé en argument lors de l’exécution du binaire REQUEST.

Or, ces paramètres contiennent des URL (de retour, de réponse automatique, d’annulation) dans lesquelles sont passées dynamiquement des variables en GET (session, etc.)
Les caractères de séparation utilisés (& et ?) doivent être échappés pour être correctement transmis au binaire.

Le module ne le faisant pas, les liens de retour à la boutique sont incorrects, les « ? » et « & » sont précédés d’un « \ ».

Pour corriger ce bug, il suffit de mettre ces caractères entre double-quotes avant de passer la chaîne au binaire :

Dans le fichier atos.php, ligne 223 environ, remplacer :

// Do not add \n or something else
$parm = 'merchant_id='.Configuration::get('ATOS_MERCHANT_ID').' language='.$lang->iso_code.' customer_id='.intval($cart->id_customer).' caddie='.intval($cart->id).' merchant_country=fr amount='.(int)round(sprintf('%f', $cart->getOrderTotal() * 100)).' currency_code='.$currency_num.' pathfile="'.dirname(__FILE__).'/pathfile" normal_return_url="'.$returnPage.'" cancel_return_url="'.$cancelPage.'" automatic_response_url="'.$ipnPage.'" customer_ip_address='.$_SERVER['REMOTE_ADDR'].$redirect;

par :


// Do not add \n or something else
$parm = 'merchant_id='.Configuration::get('ATOS_MERCHANT_ID').' language='.$lang->iso_code.' customer_id='.intval($cart->id_customer).' caddie='.intval($cart->id).' merchant_country=fr amount='.(int)round(sprintf('%f', $cart->getOrderTotal() * 100)).' currency_code='.$currency_num.' pathfile="'.dirname(__FILE__).'/pathfile" normal_return_url="'.$returnPage.'" cancel_return_url="'.$cancelPage.'" automatic_response_url="'.$ipnPage.'" customer_ip_address='.$_SERVER['REMOTE_ADDR'].$redirect;
/* Bugfix Icodia */
$parm = str_replace("?", "\"?\"", $parm);
$parm = str_replace("&", "\"&\"", $parm);
/* Fin bugfix Icodia */

PHP – is_executable() – Bug sans solution officielle

La fonction is_executable de PHP permet de savoir si un fichier est exécutable.

Mais le champ d’action de la fonction est limité à l’open_basedir (liste des chemins accessible à PHP en récursif) uniquement.

 

Or, les binaires (fichiers exécutables justement) sont en général stockés à part, dans le dossier /home/WwwBSD/modules par exemple sur notre plateforme mutualisée, ou dans un répertoire cgi-bin, etc.

Pour sécuriser PHP, on définit pour le restreindre un répertoire spécifique pouvant seul contenir des fichiers exécutables autorisés, et pour être vraiment sécurisé dans un environnement mutualisé, ces fichiers sont mis en place et maintenus par l’opérateur système lui même (l’hébergeur).

Son emplacement est défini par le safe_mode_exec_dir.

 

Ainsi, on peut exécuter des binaires (cryptage/décryptage ATOS, etc.) tout en maintenant l’environnement sécurisé (safe_mode actif, etc.).

Or la fonction is_executable de PHP ne peut pas atteindre le répertoire du  safe_mode_exec_dir et il n’est donc pas possible de savoir si un fichier du répertoire qui est prévu pour stocker les binaires est exécutable…

Autant dire que la fonction perd tout son intérêt…

Le bug est entre les mains de la fondation PHP depuis 2005, sans solution pour l’instant dans les versions officielles, malgré une intégration dans CVS.

Le lien vers le bug : https://bugs.php.net/bug.php?id=29840