-
Notifications
You must be signed in to change notification settings - Fork 0
Analyse Services Internes
Pour les services internes, nous devons mettre en place:
- Un serveur DNS pour un SOA interne et un résolveur
- Un serveur web pour un site intranet
- Un serveur de base de données qui sera lié à la page php b2b et également à la page intranet.
- Des postes utilisateurs
- Powerdns: Powerdns est un produit divisé en trois logiciels open source vendu séparément les uns des autres. Nous avons un serveur dans récursif et celui-ci faisant autorité ainsi qu'un logiciel DNSDIST(améliorant la circulation). La société Powerdns fut fondée dans les années 90 et fait depuis 2015 parties d'Open-Xchange, une société de développement existant depuis 2005.
- Unbound: résolveur DNS récursif, Unbound a été développé par "NLnet Labs, Verisign Inc., Nominet et Kire" et est apparu en 2007. Il est distribué sous licence BSD
- Bind: selon Wikipédia, bind est apparu en 1984 et est actuellement développé par l'internet Systems Consortium. Il est le serveur DNS le plus utilisé sur internet (79% des serveurs en 2008).
- Les trois logiciels sont Open Source et gratuit
- Plates-formes: BIND est prévu à l'origine pour toutes les plates-formes UNIX. Au fil du temps et après de nombreuses mises à jour, il est maintenant aussi utilisable sur toutes les plates-formes. Unbound lui aussi était prévu pour UNIX mais a évolué pour être utilisable sur Windows. Seul Powerdns n'est toujours qu'utilisable sur UNIX.
- Serveur récursif et/ faisant autorité: sur ce point, Unbound est désavantagé. Il est la seule des trois à ne faire que serveur récursif la ou les autres font aussi autorité. Sur les deux derniers, il y a un léger avantage pour BIND qui propose dès le début les deux types alors que Powerdns lui les propose aussi mais en deux versions séparées.
- Interface d'utilisation: Les trois technologies sont faites pour travailler en ligne de commande. Cependant, BIND possède aussi une interface web pour faciliter la gestion du serveur. Unbound aussi propose une autre interface. Ce qui fait que Powerdns est le seul obligeant l'utilisateur à maitriser l'interface en ligne de commande pour être utilisé.
- Documentation: Bind existe depuis très longtemps ce qui rend sa documentation et ses ressources beaucoup plus faciles à trouver mais aussi en plus grande quantité qu'Unbound. Sa communauté est aussi plus présente car BIND est sur encore une grande majorité des serveurs Web actuels. Unbound possède aussi une bonne documentation surtout lorsque nous le comparons à Powerdns qui semble être connu mais dont les ressources et autres documentations semblent impossibles à trouver.
Nous avons choisi de travailler avec Bind9 pour les raisons suivantes;
- Étant encore considéré comme l'un des meilleurs logiciels de serveur DNS avec une grande communauté, nous avons accès à de nombreux documents pour nous aider à la configuration, contrairement à Unbound parc son existence plus récente et Powerdns par son manque de documentation.
- BIND, contrairement à beaucoup d'autres logiciels qui sépare les deux services, peut être utilisé à la fois comme serveur de noms faisant autorité et comme serveur de noms récursif. Comme énoncé dans les comparaisons, Powerdns en est capable aussi mais demandé l'achat de logiciels supplémentaire.
- Il possède aussi différentes fonctionnalités avancées comme les transferts IPv6, DNSSEC, TIG,... .
- Grâce aux nombreuses évolutions, BIND est utilisables sur de nombreuses plates-formes.
- Nginx: Selon Wikipedia, le logiciel Nginx est un serveur http ainsi qu'un proxy reverse développé par Nginx Inc et Igor Sysoev l'un des créateur. Son développement a commencé en 2002 pour un site russe à fort trafic, ce qui expliquerait son besoin prioritaire de performance. La première version est apparu en 2004 et il est devenu le serveur Web le plus utilisé en 2019.
- Apache: Selon Wikipedia, Le logiciel apache est un serveur HTTP créé par Apache Software Foundation et maintenu au sein de la fondation Apache. Il existe depuis 1995 et jusqu'en 2019, fut le plus populaire du Worl Wide Web.
- Architecture: Apache possède une structure basé sur une approche multithread. Pour chaque requête, apache créé un nouveau thread ce qui peut amener à une consommation conséquente de ressources, cela pouvant mener à des ralentissements ou encore des bugs. Nginx possède une architecture plus légère et rapide parce qu'il se base sur le principe d'évènement, ce qui veut dire qui traitera plusieurs requêtes dans un seul thread.
- Contenu statique: Bien que les deux technologie sont capables de faire tourner du contenu statique, il a été prouvé que Nginx est 2 à 2.5 fois plus rapide que Apache et consomme moins de mémoire.
- Contenu dynamique: Si un traitement de contenu dynamique est nécessaire, Apache possède les outils de base permettant de le faire alors que Nginx lui est obliger de passer par un processeur externe. En terme de performance, les deux sont équivalent.
- Le support du système d'exploitation: Le deux supportes les systèmes UNIX mais seul Apache prend totalement en charge Windows la où Nginx le supporte mal.
- Configuration: Nginx ne permet pas de configuration additionnelle et peut donc servir les fichiers plus vite qu'Apache. Ce dernier lui permets des configurations additionnelles sur la base de répertoire via un fichier .htaccess .
- Interprétation des requêtes: Nginx passe par URI pour interpréter les requêtes ce qui le rend plus rapide et donc meilleur que Apache qui lui traite les requêtes comme des File System Location.
Apache permet de traiter du PHP. Apache est parfaitement adéquat pour la gestion du trafic sur le site de Woodytoys. Il fournira un hébergement stable, rapide d'accès et performant. Enfin, Apache est très bien sécurisé ce qui en fait aujourd'hui l'hébergeur web le plus utilisé au monde.
-
Mysql: MySQL est un serveur de bases de données relationnelles SQL développé dans un souci de performances élevées en lecture, ce qui signifie qu'il est davantage orienté vers le service de données déjà en place que vers celui de mises à jour fréquentes et fortement sécurisées. Il est multi-thread et multi-utilisateur.
C'est un logiciel libre7, open source8, développé sous double licence selon qu'il est distribué avec un produit libre ou avec un produit propriétaire. Dans ce dernier cas, la licence est payante, sinon c'est la licence publique générale GNU (GPL) qui s'applique. Un logiciel qui intègre du code MySQL ou intègre MySQL lors de son installation devra donc être libre ou acquérir une licence payante. Cependant, si la base de données est séparée du logiciel propriétaire qui ne fait qu'utiliser des API tierces (par exemple en C# ou php), alors il n'y a pas besoin d'acquérir une licence payante MySQL. Ce type de licence double est utilisé par d'autres produits comme le framework de développement de logiciels Qt (pour les versions antérieures à la 4.5). -
MariaDB est un système de gestion de base de données édité sous licence GPL. Il s'agit d'un fork communautaire de MySQL : la gouvernance du projet est assurée par la fondation MariaDB4, et sa maintenance par la société Monty Program AB, créateur du projet5. Cette gouvernance confère au logiciel l’assurance de rester libre.
-
SQLite est une bibliothèque en langage C qui implémente un petit , rapide , autonome , haute fiabilité , complet , moteur de base de données SQL. SQLite est le moteur de base de données le plus utilisé au monde. SQLite est intégré à tous les téléphones mobiles et à la plupart des ordinateurs et est intégré à d'innombrables autres applications que les gens utilisent chaque jour. Plus d'information.
| Solution | Utilisation | Sécurité | Prix |
|---|---|---|---|
| Mysql | 37% | Mot de passe | License gratuite limitée |
| MariaDB | 1.37% | sécurisation à chaque niveau | Gratuit |
| Sqlite | +- 1% | pas de gestion d'utilisateur | Gratuit |
- DNS: La solution utilisée est la même que pour le SOA externe
- Intranet: La solution utilisée est la même que pour le site web
- Base de données: Pour la base de données, nous travaillons avec Mysql, c'est un SGDBR avec lequels nous sommes habitué de travailler, ce qui nous permet de mettre en place sans trop de problème la base de données. Sqlite ne serait pas adapter car ce système ne propose pas de gestion utilisateurs.
- Créer le Dockerfile
- Installer les différents services nécessaire dans le Dockerfile (Bind9, dnsutils, bind9utils, bind9-doc)
- Activation de l'ipv4 grâce à la commande 'sed'
- Création d'un répertoire contenant les fichiers de configurations, éditing de ces fichiers pour que la configuration corresponde aux besoins.
- Création d'un fichier de zone pour le domaine "woodytoys.local"
- Ajout des ressources record pour le ns, web (intranet)
- Rendre le NS joignable sur le port 53 TCP et UDP.
- Faire répondre le NS aux requêtes DNS interne du réseau.
- Ne pas répondre aux requêtes venant de l'extérieur du réseau
- Pas de délégation pour le SOA interne
- Copier les fichier de configuration dans le container docker.
- Lancer le container docker.
- Créer un Dockerfile dans le répertoire web
- Installer les différents service avec le Dockerfile (apache2, php, php-mysql)
- Créer les fichers de configurations, les éditer pour que la configuration convienne aux besoins
- Créer une page HTML pour intranet.
- Configurer le "virtualhost" sur le port 80 avec le serveur name et le "documentRoot" de la page HTML.
- Ajouter ces fichier de configuration dans le répertoire "site-available"
- faire le lien entre "site-available" et "site enable"
- Lancer le container docker
- Installation de mysql
- Création de la base de données
- Ajout de User
- ajout de table et de données dans la db
- Connecter la DB à la page php du site b2b
Nous allons configurer des utilisateurs selon le plan d'adressage suivant:
| Département | sous réseau |
|---|---|
| Direction | 172.17.10.0/24 |
| Administration | 172.17.11.0/24 |
| Commerciaux | 172.17.12.0/24 |
| Production | 172.17.13.0/24 |
Les appareils de chaque département possède une ip selon leurs sous réseau. ex: le pc du directeur aura l'ip 172.17.10.1
Pour chacun de ces département, il faut:
- Créer le poste utilisateur
- lui attribuer une adresse IP dans le sous réseau du département
- Installer des outils pour les mails