Vous êtes sur la page 1sur 43

Projet de Fin d’Etude

Filière : Informatique Electronique Automatique


SMP Semestre 6

Initiation à la sécurité informatique :


application à l’ERP open source Odoo

Réaliser par : Encadrant à la FSR :


- Achmi Gnae DIBY - Pr. Mourad GHARBI
- Brahim ILLAOU Encadrant dans l’organisme d’accueil :
- Mr. Saad EL ISMAILI

Membres de Jury :
- Pr. Mohammed Majid HIMMI
- Pr. El Houssaine EL RHALEB

Juillet 2016
Remerciement

Louange a Allah, nous adressons nos sincères remerciements à nos parents pour leur
prière, leur présence et leur soutien inconditionnel, à notre encadrant Pr Mourad GHARBI qui
nous a initié à la programmation par son enseignement, pour son encadrement et sa patience
tout au long de ces 4 derniers mois, à notre encadrant au stage Mr Saad EL ISMAILI qui nous
a ouvert les portes de sa société, pour ses conseils et sa constante bonne humeur. Nous
remercions les membres du jury Pr Mohammed Majid HIMMI et Pr El Houssaine EL RHALEB
qui nous ont honorés de leur présence pour leurs remarques et leurs conseils. Nous remercions
Mr Otmane GHANDI directeur technique d’OVERSOME pour son aide en programmation
sous Odoo et Mr Mohammed HANNAT pour son soutien. Nous adressons nos remerciements
les plus respectables à l’ensemble du corps enseignant de la faculté des sciences de Rabat chez
le quels nous avons redécouvert le sens de la physique.

Projet de Fin d’Etude 2 2015/2016


LISTE DES ABREVIATIONS
Abréviation Désignation

ERP Enterprise Resource Planning

PGI Progiciel de Gestion Intégré

XML eXtended Markup Language

SQL Structured Query Language

MVC Modéle Vue Contrô leur

Odoo On Demand Open Object

BD Base de Donnêes

Oversome Over Solutions Maroc

RPC Remote procedure call

PME Petite et moyenne entreprise

PMI Petite et moyenne industries

TPE très petites entreprises

SGBDRO système de gestion de base de données relationnelle et objet

ORM Object Relational Mapper

MVC Model View Controller

JVM Java Virtuelle Machine

SCM Supply Chain Management

GPL licence publique générale

OWASP open web application security project

SAAS Software As A Service

SMS Short Message Service

Projet de Fin d’Etude 3 2015/2016


LISTE DES FIGURES

Figure 1 : Logo Oversome ........................................................................................................................ 7


Figure 2 : Oversome sur la carte ............................................................................................................. 7
Figure 3: Représentation d'un ERP .......................................................................................................... 8
Figure 4 : Représentation et logo d’Odoo ............................................................................................. 12
Figure 5 : Licence dans Odoo 9.0 ........................................................................................................... 15
Figure 6 : Architecture Odoo ................................................................................................................. 15
Figure 7 : Architecture MVC .................................................................................................................. 16
Figure 8 : La sécurité informatique ........................................................................................................ 18
Figure 9 : Authentification forte ............................................................................................................ 25
Figure 10 : les fichiers du module auth_sms ......................................................................................... 26
Figure 11 : fichier __openerp__.py ....................................................................................................... 26
Figure 12 : fichier SmsAuth.py part1 .................................................................................................... 28
Figure 13 : fichier SmsAuth.py part2 .................................................................................................... 29
Figure 14 : fichier SmsAuth_view.xml part1......................................................................................... 30
Figure 15: fichier SmsAuth_view.xml part2 ......................................................................................... 30
Figure 16 : Connexion au système......................................................................................................... 31
Figure 17 : Accueil Odoo - client web .................................................................................................... 32
Figure 18 : Module auth_sms ................................................................................................................ 32
Figure 19 : Réglage paramètre utilisateur ............................................................................................. 33
Figure 20 : essai 1 test1 ......................................................................................................................... 33
Figure 21 : sms1 reçu............................................................................................................................. 33
Figure 22 : essai 2 test1 ......................................................................................................................... 33
Figure 23 : Traçabilité test1 .................................................................................................................. 34
Figure 24 : sms2 reçu............................................................................................................................. 34
Figure 25 : essai 1 test2 ......................................................................................................................... 34
Figure 26 : Traçabilité test2 .................................................................................................................. 35
Figure 27 : Communication avec le modem .......................................................................................... 35

Projet de Fin d’Etude 4 2015/2016


Table des matières
Remerciement ......................................................................................................................................... 2
INTRODUCTION GENERALE ..................................................................................................................... 6
L’organisme d'accueil : ............................................................................................................................ 7
La société : .......................................................................................................................................... 7
Encadrant au stage : ............................................................................................................................ 7
Chapitre 1 : Les ERPs ............................................................................................................................... 8
I- Introduction ..................................................................................................................................... 9
II- Les Avantages .................................................................................................................................. 9
III- Les inconvénients ........................................................................................................................... 9
IV- La mise en œuvre d’un ERP.......................................................................................................... 10
V- ERP entre propriétaire et open source : ....................................................................................... 10
VI- Conclusion : .................................................................................................................................. 11
Chapitre 2 : Odoo .................................................................................................................................. 12
I- Introduction.................................................................................................................................... 13
II-Historique d’Odoo .......................................................................................................................... 13
III- L’architecture d’Odoo .................................................................................................................. 15
V- Conclusion : ................................................................................................................................... 17
Chapitre 3 : La sécurité sur Odoo .......................................................................................................... 18
I- Introduction ............................................................................................................................... 19
II- Odoo vs top 10 OWASP .............................................................................................................. 20
III- Conclusion : .................................................................................................................................. 24
Chapitre 4 : Module d’authentification par SMS .................................................................................. 25
I- Introduction........................................................................................................................................ 26
II-Description du code source : ......................................................................................................... 26
III-Teste du module : ......................................................................................................................... 30
IV- Conclusion : ................................................................................................................................ 35
Conclusion générale .............................................................................................................................. 36
Bibliographie Et Webographie .............................................................................................................. 37
 Bibliographie ............................................................................................................................. 37
 Webographie ............................................................................................................................. 37
Annexe .................................................................................................................................................. 38

Projet de Fin d’Etude 5 2015/2016


INTRODUCTION GENERALE
Les ERP open source sont arrivées aujourd’hui à maturité et commence à concurrencer les
ERP propriétaire dans le marché des PME et des TPE, il devient alors intéressant d’étudier
leurs sécurités et plus précisément celle d’Odoo (anciennement OpenERP) qui a pris la
position du leader en ce moment. C’est dans cette perspective que s’inscrit notre projet de fin
d’étude que nous avons réalisé au sein de la société Oversome.

Ce rapport est structuré comme suit:

Le premier chapitre présente une étude générale des ERP, leurs propriétés, leurs avantages,
leurs inconvénients.

Le second est consacré à Odoo, l’histoire de l’évolution du logiciel et de la société derrière, et


une description de l’architecture du logiciel et de ses composants.

Le troisième chapitre est une présentation des dispositifs prise par Odoo contre les principales
attaques applicatives que peuvent subir une application web.

Le dernier chapitre décrit le module d’authentification par SMS que nous avons développé
sous Odoo.

Projet de Fin d’Etude 6 2015/2016


L’organisme d'accueil :

La société :
Over Solutions Maroc est une Société de Services et un
espace de coworking qui accompagne les entreprises et
institutions dans le choix des solutions open source ainsi
que dans l’intégration, l'adaptation aux besoins
Figure 1 : Logo Oversome
spécifiques, la maintenance et le support, afin de bénéficier
des meilleures solutions libres dans la gestion des systèmes d'information.

Adresse : 2 Rue Al Annabia, Rabat 10106,


Maroc

Tél : +212 5377-10070


Fax : +212 (0)5 22 50 61 43
Site : http://www.oversome.net/

Forme juridique : Société à Responsabilité


Limitée
Figure 2 : Oversome sur la carte
Année de création : 2014

Secteur d’activités : - Études et consulting.


- services aux entreprises.

Encadrant au stage :
Saad EL ISMAILI

Poste : Directeur d’Oversome

Formation : Ingénieur en télécommunication (diplômé de l’INPT)

Tél : +212 6 61 41 54 10

Email : saad@oversome.net

Projet de Fin d’Etude 7 2015/2016


Chapitre 1 : Les ERPs

Figure 3: Représentation d'un ERP

Projet de Fin d’Etude 8 2015/2016


I- Introduction

Les ERP (Enterprise Resource Planning) ou PGI (Progiciels de Gestion Intégrés), est une
catégorie de logiciel de gestion d’entreprise incluant une multitude de programmes
spécifiques à chaque activité de chaque service de l’entreprise, tous ces programmes
partagent une base de données unique et commune. Ce type de logiciel est un outil
incontournable dans l’aide à la décision, la planification, le suivi de l’activité et l’analyse.
Ces logiciels sont apparus dans les années 90 et ont connu leur essor en profitant des
avancées technologiques, l’explosion des technologies web dans les années 2000 et puis
l’apparition des technologies de cloud computing et de SAAS (Software As A Service) à
partir de 2010. Ils sont aujourd’hui indispensables à toute multi national et un puissant
levier de performance pour les entreprises de toutes tailles.

II- Les Avantages

• Ils couvrent tous les besoins d’une entreprise en termes de système d’information.
• Maitrise des processus de bout en bout.
• Homogénéité du système.
• Vue global sur toutes les activités de l’entreprise.
• Disparition des doubles saisis.
• Facilitation de la communication en interne (entre les différents services) et en externe
(avec les clients et les fournisseurs).
• Système multi langues et multi devises.
• Réduction considérable des durés de mise en œuvre et d’intervention.
• Automatisation des processus.
• Elimination des processus et des données inutile.

III- Les inconvénients

• Difficulté de définir les besoins précis de l’entreprise.


• Duré de déploiement très longue (elle peut atteindre 4 ans dans le cas de grande
entreprise).
• Ils imposent d’importantes modifications fonctionnelles et opérationnelles dans les
pratiques des employés.
• Difficultés de la migration des données existant vers le nouvel ERP.
• Nécessite une connaissance parfaite de tous les processus de l'entreprise

Projet de Fin d’Etude 9 2015/2016


IV- La mise en œuvre d’un ERP

Le projet de déploiement d’un ERP peut être découpé en sept sous projets :
- Le pilotage : La préparation du déploiement.

- La gestion du changement : La prise en compte des


modifications des pratiques opérationnelles imposées par
l’intégration de l’ERP.

- L’ERP : Le choix de l’ERP adapté aux caractéristiques de


l’entreprise (sa taille, son secteur d’activité et ses besoins).

- Les extensions : Les adaptations et développements spécifiques.

- L’intégration : Ce sous projet comporte les programmes


d’interfaces responsables de la communication entre l’ERP et
les autres applications et la modification des applications
existants pour les rendre compatible avec l’ERP.

- La technique : Les infrastructures techniques nécessaires à


l’ERP.

- La préparation des données : l’ensemble des activités de


nettoyage, de modification et d’harmonisation des données.

Le déploiement ce fait en cinq phases : Le lancement, la conception de la solution, la


réalisation de la solution, l’intégration et le passage en production.

Le déploiement d’un ERP est processus généralement long qui durera entre 5 mois et 4 ans
selon la taille de l’entreprise.

V- ERP entre propriétaire et open source :

Exemple d’ERP propriétaire :

- SAP : (Systems, Applications and Products for data processing)


est le leader du monde des ERP, il est utilisé par un grand
nombre de multi national comme Danone et le géant de
l’hôtellerie Accord. Il tient 25% du marché mondiale des ERP.

- Oracle JDEdwards EnterpriseOne : ERP développer par la


société Oracle. 13% du marché des ERP.

- Microsoft Dynamics : ERP de Microsoft successeur de la suite


Microsoft Business Solutions. 5% du marché des ERP.

Projet de Fin d’Etude 10 2015/2016


- Sage ERP X3 : ERP destiné au marché des PME/PMI. Il tient
6% du marché mondiale des ERP.

Exemple d’ERP open source :

- Odoo : Leader actuelle des ERP open source, il est développé en


Python, XML et utilise PostgreSQL pour sa base de données.

- Compiere : Il utilise les technologies J2EE et JBoss

- ERP5 : Python et Zope

- Aria : ERP développé en PHP et MySQL

Avantages des ERP open source :

- Economie des prix de licence, entre 25% et 50% du prix totale

- Aucune limite de modification et de personnalisation de l’ERP,


vous pouvez l’adapter comme bon vous semble à votre
entreprise, ce qui n’est pas le cas des ERP propriétaires.

VI- Conclusion :

Au sein de ce chapitre nous avons défini les ERP, on a cité leurs avantages, leurs
inconvénients et on a parlé du processus de leur mise en œuvre. Alors quelle sont les
caractéristiques d’Odoo et quelle a été son évolution ?

Projet de Fin d’Etude 11 2015/2016


Chapitre 2 : Odoo

Figure 4 : Représentation et logo d’Odoo

Projet de Fin d’Etude 12 2015/2016


I- Introduction
Créée et dirigée par Fabien Pinckaers, Odoo est une société de 300 collaborateurs qui a sue
combiner la force d’un éditeur et celle d’une large communauté comprenant près de 700
partenaires et plus de 5000 développeurs pour atteindre aujourd’hui plus de 2 million
d’utilisateur dans plus de 110 pays.

Le logiciel Odoo est une solution ERP open source complétement personnalisable et modulaire,
Il est basé sur une architecture MVC, des flux de travail
flexibles, une interface utilisateur graphique dynamique, une
interface XML-RPC, un système personnalisable de
comptes rendus, la possibilité d’avoir des applications Android/IOS et la possibilité d’avoir un
site web de e-commerce. Comme tout ERP Odoo est un package destiné à tous les secteurs et
à toutes les fonctions d’une entreprise telle que les ventes, les achats, la facturation, la gestion
des relations client (CRM), la gestion de projet, la gestion d’entrepôt, la production, la
comptabilité et les ressources humaines. En tous Odoo comporte 500 modules officiels et plus
de 6500 modules communautaires, chacun d’eux peut être installé indépendamment et son
Framework permet l’adaptation rapide d’un module aux contextes spécifiques.

II-Historique d’Odoo
Cette partie est destinée à décrire l’histoire du logiciel et de la société derrière de TinyERP à
Odoo.

Mars 2002 : Fabien Pinckaers crée la société Tiny SPRL pour commercialiser des services
pendant qu’il était encore étudiant.

Juillet 2004 : Annonce de la première version publique sous le nom de TinyERP.

Mars 2005 : Sortie de la deuxième version comportant des améliorations du coté fonctionnelle
et dans la méthode d’installation.

La troisième version qui était lancé en septembre 2005, apporta un module de gestion de la
production (MRP), ainsi que des améliorations en gestion des données multilingues.

Les versions 3.1, 3.2, 3.3 et 3.4.1 lancées en 2006, apportaient des améliorations importantes,
à savoir la possibilité de concevoir les rapports avec OpenOffice, la réécriture du module de
comptabilité pour supporter la comptabilité générale et analytique.

En 2007 : La version 4.1 apporte des améliorations de l’interface graphique et la version 4.2
voix l’apparition de l’interface web.

Projet de Fin d’Etude 13 2015/2016


Juin 2008 : TinyERP change de nom et devient OpenERP pour mieux convaincre de plus gros
clients et des investisseurs (le nom petitERP n’est pas très vendeur quand on vise de grande
multinational)

Février 2009 : OpenERP version 5.0 marque un saut qualitatif significatif avec une amélioration
de l'interface Web, l'introduction des diagrammes de Gantt, de l'éditeur de workflow et de
nombreuses améliorations dans le code fonctionnel.

2010 : La société réalise une levée de fonds de 3 million de dollars et change son business plan,
OpenERP S.A (nouveau nom de la société) passe d’une société de vente de service à une
entreprise d’éditeur de logiciel, cela leur permi de renforcer leur département de recherche et
développement (R & D) et leur département de vente.

En Janvier 2011 : OpenERP version 6.0 marque de nouveau un saut qualitatif important, avec
une amélioration du code fonctionnel, la réécriture complète de la CRM et une amélioration de
l'interface Web. Cette version est la première à être diffusée sous licence AGPL, en
remplacement de la licence GPL (La licence publique générale GNU Affero (GNU AGPL) est
une version modifiée de la version 3 de la GNU GPL ordinaire. Elle a une seule exigence
supplémentaire : si vous exécutez un programme modifié sur un serveur et laissez d'autres
utilisateurs communiquer avec lui, votre serveur doit aussi leur permettre de télécharger le code
source correspondant à la version modifiée en fonctionnement.) . En cette année la société est
classée par Deloitte (un des quatre grands cabinets d'audit et de conseil (Big Four) ) comme la
société avec le plus grand taux de croissance en Belgique, en cette même année la société
dispose d’un réseau de 500 partenaire dans 100 pays et son logiciel est installer 1000 fois par
jour.

Décembre 2012 : OpenERP 7.0 (version avec support à long terme)


apporte une amélioration importante de l'ergonomie et de la facilité d'utilisation de l'interface
Web d'OpenERP, et marque l'abandon du client Gtk. Des fonctionnalités sociales font leur
apparition, avec un système de commentaires/discussion sur chaque objet, une intégration avec
LinkedIn.

2013 : Le logiciel atteint le 2 million d’utilisateurs.

Mai 2014 : OpenERP devient Odoo, La société réalise une levée de fonds de 10 million de
dollars et choisi de dépasser le cadre d’un ERP traditionnel.

Juin 2014 : Sortie de la version 8, La principale nouveauté technique sera l'introduction d'une
nouvelle API pour le développement des modules. L'API actuelle continuant d'être supportée.
Autres changements importants : la gestion des stocks a été réécrite pour la version 8.0, le

Projet de Fin d’Etude 14 2015/2016


moteur de rapport utilisé par défaut sera QWeb et non plus RML, l'introduction de
fonctionnalités de CMS et de boutique en ligne et un moteur intégré de Business Intelligence
(Informatique décisionnelle).

Octobre 2015 : Sorti d’Odoo version 9.0, la société à publier deux éditions, l’une open-source
appelée Odoo_Community et l’autre propriétaire
appelée Odoo_Enterprise. Odoo_Enterprise est
construite sur la base d’Odoo_Community en lui ajoutant
des développements propriétaires. L’ancienne licence
d’Odoo ne permet pas cette évolution ce qui a conduit
Odoo_SA, a changé de licence pour la licence LGPL. Les
principales évolutions sont : un nouveau design de
l’interface web, un module comptable ré-architecturé,
Figure 5 : Licence dans Odoo 9.0
l’évolution du module de gestion commerciale, une
nouvelle vue GANTT pour la gestion de projet et l’intégration d’un nouveau module de
communication VOIP.

III- L’architecture d’Odoo

L’architecture d’Odoo est une architecture à 3


niveaux (three-tiers architecture)

Le premier niveau

Est un serveur de base de données PostgreSQL contenant


toutes les données d’Odoo, toutes les données de
l’application ainsi que la plupart des éléments de
configuration d’Odoo.
PostgreSQL est un système de gestion de base de données
relationnelle et objet (SGBDRO). Le deuxième niveau

Figure 6 : Architecture Odoo


Le deuxième niveau

Est le serveur Odoo qui contient toute la logique de l’entreprise et assure qu’Odoo fonctionne
d’une manière optimale, il est constitué de :

a- Un moteur ORM :

Projet de Fin d’Etude 15 2015/2016


L'ORM (Object Relational Mapper) est la couche du serveur responsable de la création et la
communication avec la base de données.

b- Les modules :

C’est le cœur d’Odoo, ils contiennent tout le métier de l’entreprise et réalise tous les
traitements spécifiques à chaque métier tel que toutes les applications Odoo s'articulent en
modules.

c-Structure du module Odoo : La structure d’un


module suit l’architecture MVC (Model View
Controller) qui consiste en la séparation du
traitement de donnée (modèle) de l’interface
utilisateur (vue) par l’introduction d’un
composant intermédiaire (contrôleur). Ces trois
composants sont définits au sein d’un module
comme ceci :

Model : les modèles sont les objets déclarés Figure 7 : Architecture MVC
dans Odoo. Ils sont également des tables
PostgreSQL.

View : les vues constituent la couche présentation, qui s’occupe de tout ce qui est affiché à
l’utilisateur final. En fait, deux types de modules sont proposés par Odoo :
- Le premier suit la Template standard d’Odoo. C’est la vue qui règne sur la plupart
des modules existants, avec les différents blocs et sections qui composent l’interface
graphique affichée à l’utilisateur : menu global, menu gauche, vue principale en différent
mode (arborescence, formulaire, Kanban, …). L’adoption de cette Template générale donne à
l’utilisateur une sensation de l’intégrité d’Odoo comme étant un seul système et non pas une
diversité de programmes ou de modules séparés.

- Le deuxième type est le module web. Ce type permet au développeur de personnaliser


librement le contenu de l’interface graphique du module, en profitant des technologies web en
utilisant le moteur de rendu QWeb intégré dans Odoo.

Quelques modules officiels d’Odoo sont développés selon le deuxième type. Nous
citons ici le module du Point de vente.

Controller : les contrôleurs sont les classes Python qui contrôlent Odoo.

d- Le serveur web :

Responsable de la communication avec le navigateur et le traitement des requettes HTTP et


JSON-RPC.

Projet de Fin d’Etude 16 2015/2016


Le troisième niveau

Le client est une application JavaScript développée à l'aide des librairies jQuery et
Underscore.js. Le client s’exécute sur le navigateur web et communique avec le serveur en
utilisant JSON-RPC, il prend les actions des utilisateurs, émet des requêtes vers le serveur et
reçoit des données qu’il affiche de différente manière.

V- Conclusion :
L’objectif de ce chapitre était la présentation d’Odoo, la description de son évolution et celle
de l’entreprise derrière, l’étude de son architecture et ces caractéristiques. De là nous
pouvons nous demander Qu’est-ce que la sécurité informatique et quelle mesure l’éditeur
d’Odoo a-t-il pris pour l’assurer ?

Projet de Fin d’Etude 17 2015/2016


Chapitre 3 : La sécurité sur Odoo

Figure 8 : La sécurité informatique

Projet de Fin d’Etude 18 2015/2016


I- Introduction

La sécurité d’un système d’information est la garantie pour une entreprise que ces ressources
matérielles et logicielles ne seront utilisées que dans le cadre prévue, que ces données ne seront
consultables et modifiables que par les personnes auxquelles elles sont destinées est cela est
régit par plusieurs normes dans la norme ISO/CEI 27001 l’objectif est de garantir l’intégrité,
la confidentialité et la disponibilité des données.

Plus généralement les objectifs de la sécurité des systèmes informatiques sont :

L'intégrité, c'est-à-dire garantir que les données sont bien celles que l'on croit être ;
La confidentialité, consistant à assurer que seules les personnes autorisées aient accès aux
ressources échangées ;
La disponibilité, permettant de maintenir le bon fonctionnement du système d'information ;
La traçabilité(ou « Preuve ») : garantie que les accès et tentatives d'accès aux éléments
considérés sont tracés et que ces traces sont conservées et exploitables.
La non répudiation, permettant de garantir qu'une transaction ne peut être niée ;
L'authentification, consistant à assurer que seules les personnes autorisées aient accès aux
ressources.

Pour sécuriser les systèmes d'information, la démarche consiste à :

•évaluer les risques: quels risques et quelles menaces, sur quelles données et quelles activités,
avec quelles conséquences ?

On parle de « cartographie des risques ». De la qualité de cette cartographie dépend de la qualité


de la sécurité qui va être mise en œuvre.

•Rechercher et sélectionner les parades : que va-t-on sécuriser, quand et comment ?

Étape difficile des choix de sécurité : dans un contexte de ressources limitées (en temps, en
compétences et en argent), seul certaines solutions pourront être mises en œuvre.

•Mettre en œuvre les protections, et vérifier leur efficacité.

•Surveiller et détecter les vulnérabilités du système d’information, et se tenir informé des failles
sur les applications et matériels utilisés.

•Définir les actions à entreprendre et les personnes à contacter en cas de détection d'une menace.

Projet de Fin d’Etude 19 2015/2016


II- Odoo vs top 10 OWASP

Odoo est une application web (elle est placée sur un serveur et tout utilisateur n’y accède qu’à
travers un navigateur). De là il est logique de s’intéresser au mesure que l’éditeur d’Odoo à prix
pour contrer les principales vulnérabilités des applications web.

L’OWASP (open web application security project) est une communauté en ligne travaillant sur
la sécurité des applications Web. Sa philosophie est d'être à la fois libre et ouverte à tous. Elle
a pour vocation de publier des recommandations de sécurisation Web et de proposer aux
internautes, administrateurs et entreprises des méthodes et outils de référence permettant de
contrôler le niveau de sécurisation de ses applications Web, l’un de leurs travaux les plus
célèbre est une classification des 10 principales attaques sur les application web. Dans ce
présent paragraphe nous allons énumérer ces attaque et voire quelle sont mesure prise par Odoo
pour les contourner.

A1 – Injection

Définition :

Une faille d'injection se produit quand des données entrées par les utilisateurs sont utilisé dans
une commande ou une requête du serveur sans qu’elle soit vérifiée au préalable.

Mesure prise par Odoo :

Odoo a mis en place une couche de son serveur l’ORM, responsable de toute communication
avec la base de donné, la création des tables, la validation et la mise en forme des données pour
se protéger de vulnérabilité du type injection.

A2 – Violation de Gestion d'Authentification et de Session

Définition :

Cette attaque ce produit quand l’un des programme de gestion de la session d’utilisateur ou le
processus d’authentification inclue une faille.

Mesure prise par Odoo :

Odoo a mis en place le standard de cryptographie PKFDB2 + SHA-512, Pour protéger les mots
de passe enregistrer localement dans la base de donnée et permet l’utilisation de OAuth2.0. Si
on veut utiliser l’authentification d’une autre application telle que Facebook ou Google, pour
éviter le stockage interne, ou le standard LDAP d’authentification qui utilise les adresses IP et

Projet de Fin d’Etude 20 2015/2016


fait toutes les vérifications sur le serveur LDAP sans recopier le mot de passe ou l’enregistrer
dans une base de données externe.

Remarque:

L’authentification reste l’une des plus grandes vulnérabilités d’Odoo, car une simple attaque
par force brute permet de trouver le mot de passe de l’administrateur (surtout si le mot de passe
est court et qu’il n’y a pas de mise à jour fréquente), en effet la version communautaire actuelle
d’Odoo ne limite pas le nombre de mot de passe erroné et permet l’ouverture de plusieurs
session sur plusieurs machine avec le même compte sans aucun signale sur les autres sessions
déjà ouvertes, aucune traçabilité et aucune limite ne sont appliqué.

Notre travail se fera sur cette partie, nous essaierons de renforcer l’authentification.

Pour pouvoir réaliser une communication sécurisée il faut installer Odoo derrière un serveur
OpenSSL pour bénéficier du protocole de communication SSL (HTTPS) sinon les
communications ne sont pas sécurisées et l’utilisation OAuth2.0. Sur Odoo représentera une
vulnérabilité car les informations d’authentification échangée pourront être interceptées et
exploités par un hacker (les informations échanges ne sont pas cryptes).

A3 – Cross-Site Scripting (XSS)

Définition :

Les failles XSS se produisent lorsque l’application envoie des données non vérifiées à un
navigateur web. Ce qui permet au hacker de changer l’interface du site web ou d’y inclure une
redirection vers des sites malveillants.

Mesure prise par Odoo :

Pour contrer les attaques XSS Odoo transforme par défaut toutes les expressions en vue, sauf
celle qui ont été spécialement marqué par le développeur comme sure.

A4 – Références directes non sécurisées à un objet

Définition :

Cette faille intervient lorsqu’un simple changement d’URL permet à n’importe quel utilisateur
d’accéder à des données dont il n’est pas normalement autorisé.

Mesure prise par Odoo :

Le contrôle d'accès Odoo n'est pas mis en œuvre au niveau de l'interface utilisateur, donc il n'y
a aucun risque d'exposer des références à des objets internes dans les URL. Les attaquants ne
peuvent pas contourner la couche de contrôle d'accès par la manipulation de ces références,

Projet de Fin d’Etude 21 2015/2016


parce que chaque demande doit encore passer à travers la couche de validation d'accès aux
données.

A5 – Mauvaise configuration Sécurité

Définition :

C’est lorsque l’un des composants de l’application ou l’une des bibliothèques qu’elle utilise
comprend une faille.

Mesure prise par Odoo :

Odoo est open source, donc l'ensemble du code source est continuellement examiné par les
utilisateurs Odoo et les collaborateurs à travers le monde. Les rapports de bugs de la
Communauté sont une source importante de rétroaction en ce qui concerne la sécurité sur Odoo.

A6 – Exposition de données sensibles

Définition :

Cette vulnérabilité survient lorsque des données confidentielles sont stockées ou transférées
sans être préalablement crypté.

Mesure prise par Odoo :

Odoo utilise les standard PKFDB2 + SHA-512 pour crypter les mots de passe

_ Le serveur SSL est obligatoire pour garantir une communication sécurisée, et dans ce cas
Odoo fonctionnera par défaut sous HTTPS

_ Il est recommandé d’installer Odoo derrière un serveur web pouvant exécuter les fonctions
de chiffrement et de proxy à la demande d’Odoo, des serveurs tels qu’Apache, Lighttpd ou
nginx.

A7 – Manque de contrôle d’accès au niveau fonctionnel

Définition :

Cette vulnérabilité est présente dans les applications qui ne disposent pas d’un processus de
vérification du droit des utilisateurs, pour tout accès à chaque fonction de l’application.

Mesure prise par Odoo :

Projet de Fin d’Etude 22 2015/2016


Le contrôle d'accès Odoo n'est pas mis en oeuvre au niveau de l'interface utilisateur, ainsi que
la sécurité ne repose pas sur des caches d'URL spéciales. Les attaquants ne peuvent pas
contourner la couche de contrôle d'accès en réutilisant ou en manipulant une URL, parce que
chaque demande doit passer à travers la couche de validation d'accès aux données. Dans les
rares cas où une URL fournit un accès non autorisé aux données sensibles, telles que l'utilisation
d'URL spéciale de client pour confirmer une commande, ces URL sont signés numériquement
avec des jetons uniques et envoyés par mail au destinataire.

A8 - Falsification de requête intersite (CSRF)

Définition :

Une attaque CSRF (Cross Site Request Forgery) est une attaque faite par un autre site web
ouvert en même temps que l’application attaquer sur le même navigateur. Cette attaque
envoie des requêtes http que l’application vulnérable interprète comme des actions faites par
la victime.

Mesure prise par Odoo :

La meilleure option est d’inclure un jeton unique dans un champ caché. Ce jeton, envoyé dans
le corps de la requête HTTP, et non inséré dans l’URL, sera ainsi potentiellement moins exposé.

Cette solution est une des nouveautés d’Odoo 9.0 donc ce problème persiste dans les versions
antérieure. La question qui se pose là est es qu’on peut adapter cette solution au versions
antérieure, puisque pour un utilisateur d’Odoo il est très probable qu’il utilise des modules
communautaire qu’ils ne sont pas présent dans la version 9.0 et puis la migration des bases des
données est service payant offert par l’éditeur d’Odoo qui ne concerne que les modules
standards\certifié et ne supporte pas les transformations spécifiques et le recordage des données
pour les clients, par exemple recorder les bons de commande durant la migration.

A9 - Utilisation de composants avec des vulnérabilités connues

Définition :

Cette vulnérabilité survient lorsqu’un des composants de l’application, bibliothèque, module


ou API contient une vulnérabilité. Cela compromet toute l’application, cette application risque
d’être exploiter de différentes manières.

Mesure prise par Odoo :

L’éditeur d’Odoo garantie l’intégrité des bibliothèques, qu’il utilise dans la dernière version et
il assure qu’il prend en compte toute les vulnérabilités détecté par les utilisateurs, pour les

Projet de Fin d’Etude 23 2015/2016


modules communautaires chaque éditeur est responsable de toute bibliothèque externe utilisé
par ces développeurs.

A10 – Redirections et renvois non validés

Définition :

Cette attaque survient lorsque l’application laisse l’utilisateur ajouter des liens, ces liens
peuvent renvoyer une victime vers un site de fraude ou vers un logiciel malveillant.

Mesure prise par Odoo :

De par sa nature Odoo ne renvoie vers aucun lien externe et tous les URL. Sont créé dans le
serveur Odoo et non pas sur la couche utilisateur en plus toutes les informations, qu’entre les
utilisateurs sont transformer et vue et aucune redirection ou renvoi non vérifié n’est autoriser.

III- Conclusion :

Dans ce chapitre nous avons défini la sécurité informatique en définissant ses facteurs, puisque
Odoo est une application web, nous avons vu les dispositifs mis en place par l’éditeur contre
les principales attaques que peuvent subir une application web. Apres avoir vu tous cela nous
devons présenter notre contribution à l’édifice, comment pourrions-nous renforcer la sécurité
d’Odoo ?

Projet de Fin d’Etude 24 2015/2016


Chapitre 4 : Module
d’authentification par SMS

Figure 9 : Authentification forte

Projet de Fin d’Etude 25 2015/2016


I- Introduction
L’authentification est le cœur de la sécurité informatique, c’est le facteur principale de par
lequel découle la plus part des autres facteurs clé définissant la sécurité informatique tel que :
la confidentialité, la traçabilité ou l’intégrité des données. Et c’est de là qu’apparait
l’importance d’une authentification forte qui utilise différent type de facteurs tels qu’un
facteur biométrique, un facteur matériel ou un facteur mémorisable. C’est ainsi que nous
avons choisi d’utiliser en plus du facteur standard (le mot de passe) un facteur matériel très
accessible mais qui garantit quand même l’identité de son porteur qui est le téléphone
portable, un facteur bon marché que quasiment tout le monde a et qui peux nous afficher un
code d’authentification qu’il recevra par SMS.

Ce chapitre est consacré à notre module Odoo d’authentification par SMS, module que nous
avonst développer à l’aide du Framework Odoo et d’un simple modem GSM de Maroc
Telecom, le modem GSM est contrôlé avec les commandes AT pour jouer le rôle de serveur
SMS dans notre application.

II-Description du code source :

Tout module Odoo doit être constitué d’au moins quatre


fichiers qui sont :

Un fichier __init__ .py car un module Odoo est un module


python, ce fichier contient les imports des autres fichiers Figure 10 : les fichiers du module auth_sms
python.

Un fichier __openerp__.py qui décrit les caractéristiques du module :

Figure 11 : fichier __openerp__.py

Projet de Fin d’Etude 26 2015/2016


Ce fichier contient uniquement un dictionnaire Python dont les clefs ont la signification
suivante :

- name : le nom du module.

- summary : un sous-titre descriptif court.

- description : une description complète du module.

- author : l'auteur du module.

- version : la version actuelle du module.

- licence : la licence de sous laquelle le module sera publiée.

- depends : la liste des modules dont dépend notre module, si aucune dépendance spécifique
n'est requise, On utiliser simplement ['base'].

- data et demo : des fichiers de données XML ou CSV qui seront chargés lors de l'installation
ou de la mise à jour du module afin de décrire des écrans, des rapports, des droits d'accès et de
données de démonstration.

Un fichier python (SmsAuth.py dans notre cas) il comporte les variables et les fonctions du
module :

Projet de Fin d’Etude 27 2015/2016


Les bibliothèques dans dépend
notre module

La classe principale de notre


module

Les différents variables utilisés


dans notre module

Fonction qui génère le code et


l’envoi par SMS

Figure 12 : fichier SmsAuth.py part1

Projet de Fin d’Etude 28 2015/2016


Commande du modem
GSM par les commandes
AT

Fonction vérifiant si le code


saisi est correct et enregistre Figure 11 : fichier SmsAuth.py part1
la date de la connections

Figure 13 : fichier SmsAuth.py part2

Projet de Fin d’Etude 29 2015/2016


Un fichier XML (SmsAuth_view.xml dans notre cas) il constitue l’affichage de notre
module :

Page d’authentification

Figure 14 : fichier SmsAuth_view.xml part1

Page de traçabilité

Figure 15: fichier SmsAuth_view.xml part2


III-Teste du module :
a-Installation

Pour pourvoir installer notre module auth_sms, vous devez passer par les étapes suivantes :

1-Télécharger le répertoire du module s’il est disponible sur internet.

Projet de Fin d’Etude 30 2015/2016


2-Mettre ce répertoire dans /openerp/oddov8 /addons.

3-Se connecter au localhost via http:/localhost :8069/web puis choisir la base de donnés dans
laquelle vous voudriez installez votre module.

4-Accédez au menu configuration puis mettre à jour la liste des modules locaux pour que le
module auth_sms devient visible, puis cliquez sur installer.

Figure 16 : Connexion au système

Projet de Fin d’Etude 31 2015/2016


Figure 17 : Accueil Odoo - client web

b- Authentification

 Réglage des données de l’utilisateur (le numéro de téléphone de l’utilisateur utiliser dans
l’authentification est réglable dans les paramétrés de l’utilisateur) :

Figure 18 : Module auth_sms

Projet de Fin d’Etude 32 2015/2016


Figure 19 : Réglage paramètre utilisateur

 Echec d’authentification :

Figure 20 : essai 1 test1

Figure 21 : sms1 reçu Figure 22 : essai 2 test1

Projet de Fin d’Etude 33 2015/2016


Figure 23 : Traçabilité test1

 Authentification avec succès :

Figure 25 : essai 1 test2

Figure 24 : sms2 reçu

Projet de Fin d’Etude 34 2015/2016


Figure 26 : Traçabilité test2

c- Commande AT

ATZ : Cette commande demande au modem de


mettre tous les paramètres aux valeurs par
défaut.

OK : Commande exécuter, aucune erreur.

AT+CMGF : Cette commande contrôle le


format de présentation des messages courts
SMS, à partir du modem.

AT+CMGS : Cette commande envoie un court Figure 27 : Communication avec le modem


message du modem au réseau.

+CMGS: Réponse, Si le mode texte et l'envoi réussi.

IV- Conclusion :
Ce chapitre a été consacré à notre apport à la sécurité d’Odoo, un module d’authentification par
SMS, nous présentons dans ce chapitre un exemple de l’utilisation du Framework Odoo, et deux
exemples type d’utilisation de notre application.

Cette application peut être améliorée de différentes manières, l’un des axe d’amélioration
possible est l’ajout de l’adresse IP comme facteur décisionnel pour ajouter le deuxième facteur
dans des cas précis (changement de l’adresse IP ou pour quelque adresse bien définit (liste
noir)), un autre axe possible est l’ajout d’une protection contre les attaques par force brute.

Projet de Fin d’Etude 35 2015/2016


Conclusion générale

Au sein de ce rapport de projet de fin d’étude nous avons définis les ERP, leurs avantages et
leurs inconvénients, on a présenté Odoo, son architecture et son histoire, nous avons conclu
que la forme actuelle d’Odoo est celle d’une application web. On a défini la sécurité
informatique, les principales attaques que peut subir une application web et les dispositifs que
l’éditeur d’Odoo à mis en œuvre contre ces attaques, puis on a présenté notre apport à la
sécurité d’Odoo, un module d’authentification par SMS. Maintenant pour que l’étude de la
sécurité d’Odoo soit complète il faut prendre en compte tout l’environnement de l’application,
la configuration du réseau, les applications installées sur le même serveur qu’Odoo ainsi que
les droits d’accès des employés de l’entreprise. Des tests d’intrusions et de performances
doivent être faits sur tout le système.

Projet de Fin d’Etude 36 2015/2016


Bibliographie Et Webographie

 Bibliographie

- Piloter un projet ERP : Transformer et dynamiser l’entreprise durablement par un


système d’information intégré et orienté métier, (Jean-Luc DEIXONNE), 3e édition,
DUNOD

- Odoo Development Essentials, (Daniel Reis), avril 2015

- Le framework Odoo, (Sébastien Namèche), novembre 2015

- OWASP Top 10 – 2013 : Les Dix Risques de Sécurité Applicatifs Web les Plus
Critiques

- Mémoire pour obtenir le diplôme du Master spécialisé IPI« Ingénierie des Systèmes
d’information», Conception et réalisation d'une application de gestion intégrée au sein
de la société Eone Group basée sur OpenERP, (Ait mlouk Addi), juin 2013.

- Mémoire pour obtenir le diplôme d’ingénieur d’état en télécommunication et


technologies de l’information, La mise en place d'un ERP pour gestion d'école sous
Odoo, (MELIANI Othmane et ELKORCHI Oukacha), juin 2016

 Webographie

- www.odoo.com/fr_FR

- www.python.org

- www.odoo.com/documentation/8.0/reference/reports.html

- https://github.com/

- www.odoo.com/documentation/8.0/

- https://doc.odoo.com/trunk/server/02_architecture/

- www.odoo.com/page/security

- https://openclassrooms.com/courses/synthese-sur-la-securite-du-systeme-d-
information-s

Projet de Fin d’Etude 37 2015/2016


Annexe
Cette partie cite les technologies que nous avons utilisées.

Source 1 :

Mémoire pour obtenir le diplôme du Master spécialisé IPI« Ingénierie des Systèmes
d’information», Conception et réalisation d'une application de gestion intégrée au sein de la
société Eone Group basée sur OpenERP, (Ait mlouk Addi), juin 2013.

Ubuntu

Ubuntu est un système d’exploitation libre commandité par la société Canonical et une
marque déposée par cette même société.

Fondé sur la distribution Linux Debian et utilisant le bureau Unity, Ubuntu se veut «
convivial, intuitif et sûr ». Il est constitué de logiciels libres, est disponible gratuitement y
compris pour les entreprises, et bénéficie d'une nouvelle version (appelée « mise à
niveau ») tous les six mois.

Avec une utilisation globale estimée à plus de 25 millions d'utilisateurs, il est principalement
conçu pour une utilisation sur des ordinateurs personnels (portables et fixes), bien que
d'autres versions consacrées aux netbooks et aux serveurs existent aussi. Depuis
Ubuntu 11.04, la version Netbook a fusionné avec la version Desktop. Cette dernière
étant passée à l'interface Unity, il n'y avait plus de raison de maintenir deux branches
distinctes.

Environnement de développement Eclipse

Eclipse est un projet de la Fondation Eclipse visant à développer un environnement de


développement intégré libre, extensible, universel et polyvalent.

Son objectif est de produire et fournir des outils pour la réalisation de logiciels, englobant les
activités de programmation (notamment au moyen d’un environnement de développement
intégré) mais aussi de modélisation, de conception, de test et de reporting. Son
environnement de développement intégré vise à supporter tout langage de programmation.

Dans notre projet l’utilité d’éclipse consiste à développer certain taches en utilisant le
plugin python développement (pydev) et xml.

PostgreSQL

PostgreSQL est un système de gestion de base de données relationnelle et objet


(SGBDRO). C'est un outil libre disponible selon les termes d'une licence de type BSD.
Ce système est concurrent d'autres systèmes de gestion de base de données, qu'ils

Projet de Fin d’Etude 38 2015/2016


soient libres (comme MySQL et Firebird), ou propriétaires (comme Oracle, Sybase, DB2,
Informix et Microsoft SQL Server). Comme les projets libres Apache et Linux,
PostgreSQL n'est pas contrôlé par une seule entreprise, mais est fondé sur une
communauté mondiale de développeurs et d'entreprises.

. PostgreSQL peut stocker plus de types de données que les types traditionnels entiers,
caractères, etc. L'utilisateur peut créer des types, des fonctions, utiliser l'héritage de
type etc.

. PostgreSQL est pratiquement conforme (de plus en plus conforme) aux normes ANSI

SQL 89, SQL 92 (SQL 2), SQL 99 (SQL 3), SQL:2003 et SQL:2008. Il fonctionne
sur diverses plates-formes matérielles et sous différents systèmes d'exploitation.

. PostgreSQL fonctionne sur Solaris, SunOS, Mac OS X, HP-UX, AIX, Linux, IRIX,
Digital Unix, BSD, NetBSD, FreeBSD, OpenBSD, SCO unix, NeXTSTEP, UnixWare et
toutes sortes d'Unix. Depuis la version 8.0, PostgreSQL fonctionne également
nativement sur Windows. Avant la version 8, il fallait un émulateur de type cygwin
pour faire fonctionner PostgreSQL sur ce système d'exploitation.

. PostgreSQL est largement reconnu pour son comportement stable, proche d’Oracle.

Mais aussi pour ses possibilités de programmation étendues, directement dans le moteur
de la base de données, via PL/SQL. Le traitement interne des données peut aussi être
couplé à d'autres modules externes compilés dans d'autres langages.

Python

Python est un langage de programmation multi-paradigme. Il favorise la programmation


impérative structurée, et orientée objet. Il est doté d'un typage dynamique fort, d'une gestion
automatique de la mémoire par ramasse-miettes et d'un système de gestion d'exceptions ; il est
ainsi similaire à Perl, Ruby, Scheme, Smalltalk et Tcl. Le langage Python est placé sous une
licence libre proche de la licence BSD et fonctionne sur la plupart des plates -formes
informatiques, des supercalculateurs aux ordinateurs centraux, de Windows à Unix en
passant par Linux et Mac OS, avec Java ou encore .NET. Il est conçu pour optimiser
la productivité des programmeurs en offrant des outils de haut niveau et une syntaxe simple à
utiliser. Il est également apprécié par les pédagogues qui y trouvent un langage où la syntaxe,
clairement séparée des mécanismes de bas niveau, permet une initiation plus aisée aux
concepts de base de la programmation.

Python est un langage :

Projet de Fin d’Etude 39 2015/2016


. conçu pour produire du code de qualité, portable et facile à intégrer : grâce à sa
syntaxe claire, cohérente et concise, Python permet aux développeurs de produire du code de
qualité, lisible et maintenable.

. Fourni dès le départ avec des modules de tests, Python est un langage agile. Le terme agile
est originellement issu de la méthodologie de programmation agile, très proche de la
programmation itérative. Cette méthodologie, qui réduit les risques liés à la conception
de logiciels, introduit entre autres des principes de tests continus du code.

. De haut niveau, orienté objet et totalement libre : même si elle n’est pas imposée,
Python permet la programmation orientée objet. Tous les mécanismes objet essentiels sont
implémentés et toutes les données manipulées sont des instances de classes, comme
pour les langages SmallTalk ou Ruby.

. Dynamique : dans la plupart des implémentations, le code source n’est pas compilé
contrairement à des langages comme C ou Pascal, mais exécuté à la volée. On parle
alors de langage interprété.

Ce mode de fonctionnement rend la programmation beaucoup plus souple puisqu’il est


possible de changer un programme en cours d’exécution.

XML (eXtensible Markup Language)

XML est en quelque sorte un langage HTML amélioré permettant de définir de


nouvelles balises. Il s'agit effectivement d'un langage permettant de mettre en forme
des documents grâce à des balises (markup).

Contrairement à HTML, qui est considérer comme un langage défini et figé (avec un nombre

de balises limité), XML peut être considéré comme un métalangage permettant de


définir d'autres langages, c'est-à-dire définir de nouvelles balises permettant de décrire
la présentation d'un texte (Qui n'a jamais désiré une balise qui n'existait pas ?). La force de
XML réside dans sa capacité à pouvoir décrire n'importe quel domaine de données
grâce à son extensibilité. Il va permettre de structurer, poser le vocabulaire et la syntaxe des
données qu'il va contenir.

En réalité les balises XML décrivent le contenu plutôt que la présentation (contrairement
À HTML). Ainsi, XML permet de séparer le contenu de la présentation, ce qui permet
par exemple d'afficher un même document sur des applications ou des périphériques
différents sans pour autant nécessiter de créer autant de versions du document que l'on
nécessite de représentations.

XML a été mis au point par le XML Working Group sous l'égide du World Wide
Web Consortium (W3C) dès 1996. Depuis le 10 février 1998, les spécifications XML
1.0 ont été reconnues comme recommandations par le W3C, ce qui en fait un langage

Projet de Fin d’Etude 40 2015/2016


reconnu. XML est un sous ensemble de SGML (Standard Generalized Markup Language),
défini par le standard ISO8879 en 1986, utilisé dans le milieu de la Gestion Electronique
Documentaire (GED). XML reprend la majeure partie des fonctionnalités de SGML, il s'agit
donc d'une simplification de SGML afin de le rendre utilisable sur le web , XML fait partie du
code des modules composants OpenERP, les vues par lesquelles sont représentés les
différents objets sont écrites en XML, ainsi nous y trouvons la description détaillée de
l’affichage des arbres, formulaires, menus et autres actions.

Source 2 :

https://waqarafridi.wordpress.com/2015/01/22/how-to-setup-odoo-8-development-
envirnoment/

Installer odoo 8 sous ubuntu 14.04 à partir de GITHUB

Depuis que la version nightly n'est plus à jour et que le projet openerp /odoo à migrer sur
github

Voici la procédure pour installer odoo 8 sous la version LTS d’ubuntu 14.04 à partir de
github:

Installer les mises à jour


#apt-get update

#apt-get upgrade

Installer les dependances python pour openerp / odoo 8


#apt-getinstall python-dateutil python-docutils python-feedparser pythonjinja2 python-ldap
python-libxslt1 python-lxml python-mako python-mock

python-openid python-psycopg2 python-psutil python-pybabel python-pychart

python-pydot python-pyparsing python-reportlab python-simplejson python-tz

python-unittest2 python-vatnumber python-vobject python-webdavpythonwerkzeug python-


xlwt python-yaml python-zsipoppler-utils python-pip

python-passlib

Installer les packages nécessaire pour odoo 8


#apt-getinstallgcc python-dev mc bzr python-setuptools python-pyPdf python-babel python-
feedparser python-reportlab-accel python-zsipythonopenssl python-egenix-mxdatetime
python-jinja2 python-unittest2 pythonmock python-docutilslptoolsmake python-psutil
python-paramikopopplerutils python-decorator python-pdftoolsantiwordpostgresql.

#easy_install requests

Projet de Fin d’Etude 41 2015/2016


Package wkhtmltopdf

#wgethttp://download.gna.org/wkhtmltopdf/0.12/0.12.1/wkhtmltox- 0.12.1_linux-trusty
amd64.deb

#dpkg -i wkhtmltox-0.12.1_linux-trusty-amd64.deb

4- Install GIT
#apt-get install git-core

5- Installer l'utilisateur de la base de données pour Odoo


$sudoadduser --system --home=/opt/openerp --group openerp

$sudosu - postgres

postgres$ createuser --createdb --username postgres --no-createrole --nosuperuser -


pwpromptopenerp

postgres$exit

6- Installer Gdata
Cd /opt/

#wget http://gdata-python-client.googlecode.com/files/gdata-2.0.17.tar.gz

#tar zxvf gdata-2.0.17.tar.gz

#chmod -R 777 gdata-2.0.17

#cd gdata-2.0.17/

#python setup.py install

Cd.

7- Télécharger odoo
Le Télécharger la derniére version odoo 8 disponible de github
# cd /opt/openerp
# Git clone https://github.com/odoo/odoo.git

8- Démarrer le server odoo en tant que utilisateur openerp


#cd /opt/openerp/odoo

#su - openerp -s /bin/bash

openerp$./openerp-server

Projet de Fin d’Etude 42 2015/2016


http://localhost:8069

Source 3 :

https://fr.wikipedia.org/wiki/Commandes_Hayes

Les commandes AT:


Les Commandes Hayes, parfois appelées Commandes AT, constituent un langage de
commandes développé à l'origine pour le modem Hayes Smart modem 300. Ce jeu de
commandes s'est ensuite retrouvé dans tous les modems produits.

Ces commandes permettant par exemple :

De composer un numéro de téléphone

De commander le raccordement du modem à la ligne (l'équivalent de décrocher le téléphone)

De connaître l'état de la ligne : tonalité d'invitation à transmettre, ligne occupée...

De spécifier le type de transmission et le protocole de liaison à utiliser

De régler le volume sonore du haut-parleur interne du modem

D’envoyer les caractères transmis simultanément vers l'écran

D’afficher certains renseignements concernant le modem

De manipuler les registres internes du modem

Protocole

Chaque commande est envoyée sous la forme d'une ligne de texte encodée en ASCII,
terminée par le caractère \r seul (code ASCII 13). Le modem retourne une réponse sous la
forme d'une ou plusieurs lignes selon la commande envoyée, chaque ligne se terminant par les
caractères \r suivi de \n (codes ASCII 13 et 10).

Projet de Fin d’Etude 43 2015/2016

Vous aimerez peut-être aussi