P9 Système d'hébergement domestique : Différence entre versions

De Wiki d'activités IMA
(Objectif du projet)
(Choix techniques : matériel et logiciel)
Ligne 15 : Ligne 15 :
 
====Description du projet====
 
====Description du projet====
 
====Choix techniques : matériel et logiciel====
 
====Choix techniques : matériel et logiciel====
Matériel choisi :
+
Matériel obtenu à ce jour :
 +
- 1 Raspberry Pi 2 [<span style="color: green;">obtenue le 07/10/2015</span>]
 +
- 1 Carte µSD 8 GB [<span style="color: green;">obtenue le 07/10/2015</span>]
 +
- 1 Cable USB/µUSB [<span style="color: green;">obtenu le 07/10/2015</span>]
 +
- 1 Câble RJ45 [<span style="color: green;">obtenu le 07/10/2015</span>]
  
 
===Etapes du projet===
 
===Etapes du projet===

Version du 7 octobre 2015 à 14:24

Cahier des charges

Présentation générale du projet

Contexte

Les gens font confiance à des organismes comme google pour gérer leurs courriels, voire pour les protéger. Il n'est pas évident que leur confiance soit bien placée. Ce projet doit permettre à tout utilisateur de créer quelques comptes de messagerie sur une système embarqué de type raspberry et permettre de conserver les données à la maison.

Le système doit être constitué à base de standards (base LDAP, serveur de messagerie connu et maintenu, client de messagerie idem). L'interface d'administration doit être elle aussi très simple d'utilisation.

Un effort particulier doit être porté sur l'alimentation du système embarqué. L'idéal serait un mode de veille lorsqu'aucun paquet TCP/IP n'est adressé à la machine. Il est aussi demandé de mettre au point une alimentation à base d'énergie renouvelable (e.g. panneau solaire) permettant d'alimenter totalement ou partiellement le système. Enfin pour permettre de se passer de la box grande consommatrice d'énergie, le système embarqué doit pouvoir en reprendre les fonctionnalités principale (connexion avec le DSLAM, redirection des ports UDP/TCP, ...).

Objectif du projet

L'objectif est de réaliser un système embarqué avec une alimentation autonome pour héberger une messagerie électronique domestique. Par domestique, il faut comprendre pour une dizaine de boites aux lettres. En outre, le système devra pouvoir être alimenté par un panneau solaire ou, le cas échéant, prendre relai sur le secteur lorsque l'alimentation fournie par le soleil n'est plus suffisante.

Description du projet

Choix techniques : matériel et logiciel

Matériel obtenu à ce jour : - 1 Raspberry Pi 2 [obtenue le 07/10/2015] - 1 Carte µSD 8 GB [obtenue le 07/10/2015] - 1 Cable USB/µUSB [obtenu le 07/10/2015] - 1 Câble RJ45 [obtenu le 07/10/2015]

Etapes du projet

Système d'hébergement domestique : développement détaillé

Suivi de l'avancement du Projet

Semaine 1 (21/09/2015)

Notre but étant la réalisation d'une messagerie électronique domestique capable de gérer une dizaine de boites aux lettres, nous nous orientons dans un premier temps sur les points suivants que nous allons éclaircir afin d'en tirer un cahier des charges.

Nous allons étudier et approfondir les points suivants :

  • Installer une base LDAP, ou avoir plutôt avoir plusieurs comptes UNIX
  • Installer un serveur de messagerie SMTP, et IMAP/POP
  • Investiguer du côté de POSTFIX
  • Étudier la taille d'un mail vide, et en moyenne, et voir combien ça fait par rapport au système
  • Enquêter sur la forme des fichiers utilisateurs (généraliser les données)

Ce qui doit pouvoir être fait :

  • Distinction administrateur / utilisateur
  • Un administrateur doit pouvoir gérer les comptes de messagerie (addition/suppression/etc)
  • Gestion des quotas/espace disque réservé par ex
  • Choix du quota (par qui ? options ?)
  • SECURISER : apache, mod_security, étudier l'utilisation d'un pare-feu logiciel ?

Prévision du Matériel :

  • Raspberry Pi
  • Alimentation RPi
  • Carte SD (4Go?)

Le module énergétique sera équipé des éléments suivants :

  • 1 MPPT
  • Convertisseur Numérique Analogique : MAX5250
  • Potentiomètre : MCP4261
  • Relai : R561D.56 NTE
  • Résistances : Deux de 100Ω et deux de 10kΩ
  • une LED
  • 40 pins broches mâle/mâle (Digikey Parts : A26509-40-ND), découpé par la suite en 8-8-6-4
  • Circuit d'alimentation autonome : cellule photovoltaique
  • Circuit d'alimentation autonome : batterie (avec port micro-USB et port USB)

Semaine 2 (28/09/2015)

Dans un premier temps l'idée est de développer le système principal avec les fonctionnalités. Autrement dit les différents packages et fonctionnalités installées sur la raspberry ainsi que l'interface utilisateur sur le site web. Dans cette partie nous listerons les différentes fonctionnalités que nous aimerions implémenter.


☐ Serveur SMTP (communications entre serveurs mails SMPT) et serveur IMAP/POP3 (postier)

  • Postfix pour SMTP
  • Dovecot, Courier ou Cyrus pour IMAP/POP3
  • Implémentation de protocoles plus complexes et offrant notamment des fonctionnalités de chiffrement (SMTPS / ESMTP / SSL / HTTPS / Certificat)
  • LMTP

☐ Gestion particulière des gros mails et notamment de leurs pièces jointes

  • Bigfile pour un stockage en ligne
  • Décodage base 64 des pièces jointes ? (difficulté++)

☐ Gestion des utilisateurs

  • Plusieurs comptes, en utilisant LDAP
  • La possibilité de s'identifier en tant qu'administrateur

☐ Listes de diffusion

☐ Comptes mail temporaires (10 minutes mail like)

☐ Antivirus & Spam

  • ClamAV ou SpamAssassin ou autres : lourd.
  • iptables dans un premier temps.
  • Antispam maison, gestion du contenu, marquage de spam par l'utilisateur, "boites intelligentes" de spams.

☐ Les noms de domaines sont peut être nécessaires dès le départ pour tester le fonctionnement des fonctionnalités (telnet qui dit nope ?)

  • Record A
  • Record MX

☐ Sauvegarde automatique périodique de la Raspberry Pi (pendant le développement, pour éviter de perdre les données)

Il faudra aussi prêter attention aux fonctionnalités disponibles sur l'interface et ne pas laisser des fonctionnalités fantômes issues d'un template générique que l'on a pu trouver sur l'Internet.

Semaine 3 (05/10/2015)

Semaine 4 (12/10/2015)

Semaine 5 (19/10/2015)

Semaine 6 (26/10/2015)

Semaine 7 (02/11/2015)

Semaine 8 (09/11/2015)

Semaine 9 (16/11/2015)

Semaine 10 (23/11/2015)

Semaine 11 (30/11/2015)

Semaine 12 (07/12/2015)

Semaine 13 (14/12/2015)

Semaine 14 (04/01/2016)

Semaine 15 (11/01/2016)

Semaine 16 (18/01/2016)

Semaine 17 (25/01/2016)

Semaine 18 (01/02/2016)

Semaine 19 (08/02/2016)

Semaine 20 (15/02/2016)

Semaine 21 (22/02/2016)

Fichiers Rendus

Interface web : [http:// Soon™] Rapport de Mi-Projet : [http:// Soon™] Rapport de Projet : [http:// Soon™]