Quels packages de base pour mes Raspberry Pi

Dans la suite de mon premier article présentant la partie réseau et les communications réseau de bas niveau entre les divers composants de mon installation, je vous propose de faire le tour des packages ou applications que j’ai installés sur mes deux RPi, en expliquant pourquoi les installer et à quoi ça sert. Cet article est donc le deuxième (et dernier) de présentation globale de mon environnement maison. Après ça, on rentrera dans le détail des projets.

Je n’entrerai pas dans le détail de comment installer les divers packages, d’abord parce que pour la plupart il suffit de faire un simple « apt-get install <le_nom_du_package> », mais aussi parce que le net regorge de ressources détaillant les procédures d’installation.

 Le RPI Frontal


Pour rappel, le RPI frontal sert de serveur web et serveur d’application pour l’ensemble de mon installation informatique/domotique. Il sert également de passerelle d’accès à l’ensemble de mon réseau lorsque je suis à l’extérieur de chez moi.

Le système du RPi frontal est:

  • OS: Raspbian GNU/Linux 7
  • Noyau: Linux raspberrypi 3.12.28+ (évidemment, sujet à mise à jour)

Les packages que j’ai installés pour un usage de base sont:

  • lsof
    Installation:

    $ sudo apt-get install lsof

    Utilitaire en ligne de commande permettant de lister les fichiers ouverts par les différents processus en cours. Comme sous Unix, tout est « fichier« , on trouve également la liste des connexions réseau ouvertes par un processus donné. C’est essentiellement pour cela que je m’en sers, mais c’est un outil à avoir sous la main pour du debug.

    $ sudo lsof -n -i TCP
    $ sudo lsof -n -i UDP
    
    
  • dnsutils
    Installation:

    $ sudo apt-get install dnsutils

    Ce package fournit divers utilitaires client DNS en ligne de commande, comme par exemple le célèbre nslookup.

  • sendemail
    Installation:

    $ sudo apt-get install sendemail

    Un client mail smtp en ligne de commande. Je n’ai pas trouvé plus simple en terme d’utilisation et de configuration. Je m’en sers dans tous mes scripts de notification ou de sauvegarde par e-mail.

  • apache2-utils
    Installation:

    $ sudo apt-get install apache2-utils

    Plusieurs utilitaires complémentaires bien pratiques pour les serveurs web, y compris quand on ne tourne pas un serveur apache, ce qui est mon cas. Je l’utilise entre autre pour la commande htpasswd qui permet de créer des mots de passe avec le bon hash utilisé par les serveurs web.

  • p7zip-full
    Installation:

    $ sudo apt-get install p7zip-full

    Le package complet de la célèbre application 7Zip permettant de créer des archives compressées et chiffrées AES256. Il s’agit là de l’utilitaire en ligne de commande. Je m’en sers pour la création de mes sauvegardes de RPi automatisées et chiffrées qui sont ensuite envoyées de le cloud.

  • nginx
    Installation: à la main, en suivant en suivant simplement ce guide.
    Le célèbre serveur web alternatif à Apache est réputé pour être léger, rapide et robuste. Il agit comme serveur web, mais également comme reverse-proxy pour certaines autres applications.
    A noter: à ce jour, la version de Nginx proposée sur les dépôts Raspbian est trop ancienne pour supporter l’usage des websocket puisque leur support a été introduit à partir de la version 1.3 de Nginx. Le support des websocket est nécessaire pour utiliser nginx en reverse-proxy sur l’application gateone. C’est pourquoi il faut compiler et créer manuellement la dernière version de Nginx.
  • php5-fpm, php-apc, php5-curl
    Installation

    $ sudo apt-get install php5-fpm php-apc php5-curl

    On ne présente plus le language de développement d’application web PHP, j’ai pris les packages dont j’avais besoin pour mes différents projets.

  • fail2ban
    Installation:
    $ sudo apt-get install fail2ban
    Fail2ban scan les fichiers de log de différents processus et surveille l’apparition de pattern indiquant une attaque potentielle. Fail2ban applique alors la règle configurée pour la détection du pattern comme par exemple de bannir pendant un certain temps l’adresse IP source (par une règle iptables) et/ou d’alerter par e-mail. C’est un outil idéal pour protéger tout service exposé sur Internet des d’attaques.
  • openssl
    Installation:

    $ sudo apt-get install openssl

    La suite cryptographique OpenSSL permet d’avoir tous les utilitaires ligne de commande pour, entre autre, créer les clefs et les certificats X509 nécessaires au chiffrement en SSL des communication HTTP. Je m’en suis servi, par exemple, pour créer le certificat auto-signé pour l’accès  en HTTPS à mon serveur web.

  • gateone
    Installation:

    $ wget https://codeload.github.com/liftoff/GateOne/zip/master
    $ unzip master.zip
    $ python setup.py install

    GateOne est une application de passerelle web vers SSH, incluant un client SSH avec émulation de terminal écrit en pur en HTML5 et une partie serveur écrite en Python. C’est une application fantastique, qui me permet de prendre la main en SSH à distance, via une page web, sur tous mes Pi, sans avoir besoin d’aucun client SSH autre qu’un navigateur web pas trop vieux. Je ferai un article détaillé sur son installation et sa configuration.

  • codiad
    Installation: copier le contenu de l’archive dans un répertoire quelconque de son site web.
    Codiad est un éditeur de code (IDE) basé web, écrit en PHP, permettant d’éditer son code dans un navigateur, en modifiant directement les fichiers à la source sur le serveur web. Très pratique, il supporte de nombreux langages, ainsi que la coloration syntaxique.
  • monit
    Installation: à la main après avoir téléchargé le package sur le site.
    Monit permet de surveiller des processus, des fichiers, des connexions réseau et de relancer les processus et/ou d’alerter par e-mail si certaines conditions sont remplies. Il dispose d’une petite interface web minimaliste permettant d’avoir un état sur les différents objets surveillés. Je ferai un article détaillé sur son installation et sa configuration.

Le DomoPi


Le DomoPi (joli petit nom donné à mon RPi dédié domotique) est utilisé…. pour la partie domotique, c’est à dire que c’est sur ce RPi que j’utilise les GPIO, connectés à une platine de prototypage (breadboard) où sont à leur tour branchés différents composants électroniques. D’une manière générale c’est sur ce RPi que je connecte tout équipement lié à des services domotique, ce qui inclut également, non exhaustivement, une clef USB GPRS/UMTS pour l’envoi de SMS, un récepteur XBee pour la réception des trames radio des différents capteurs (projets à venir).

Le système du DomoPi est:

  • OS: Raspbian GNU/Linux 7
  • Noyau: Linux raspberrypi 3.12.35+ (évidemment, sujet à mise à jour)

Les packages que j’ai installés pour un usage de base sont:

  • lsof
  • sendemail
  • p7zip-full
  • monit
  • xinetd
    Installation:

    $ sudo apt-get install xinetd

    Xinetd est le super démon qui permet de gérer des connexions TCP ou UDP sur un système. S’occupant de la partie communication réseau, Xinetd laisse le traitement des données à une application ou un script tiers en redirigeant leurs entrées/sorties standards vers la socket réseau qu’il gère. Xinetd ajoute des fonctionnalités de sécurité d’accès via le TCP Wrapper et des ACL. J’utilise Xinetd pour fournir une couche de communication réseau à un script bash qui traite les requêtes aux divers services domotiques gérés en local. C’est par ce canal que le RPi frontal communique avec le DomoPi pour les ordres domotiques. Un prochain article traitera de toute cette communication dans le détail.

Vous aimez cet article ? Faites le savoir avec quelques bitcoins !

Publicités

7 réflexions sur “Quels packages de base pour mes Raspberry Pi

  1. lamine 29 mars 2017 / 12 h 03 min

    Bonjour , avant tout je vous remercie pour votre publication .

    svp je viens de remarque que les packages que j’ai installé disparaissent automatiquement quand je redémarre le raspberry

    je dois faire des reinstallations a chaque reboot .

    merci de votre aide

    J'aime

  2. Squal78 22 mars 2015 / 21 h 19 min

    Hate de voir la suite ! tres interessant comme contenu, je travaille sur un modele proche. Bonne continuation

    J'aime

    • arno0x0x 22 mars 2015 / 21 h 56 min

      Merci ! Il va y avoir plusieurs articles en un temps assez court car je rattrape, en terme de blog, sur les divers projets RPi déjà réalisés, et autres sujets de sécu informatique que je souhaite traiter. Par la suite, ça suivra un rythme plus tranquille, au fil de l’eau de mes nouvelles avancées.

      J'aime

  3. bastoof 21 mars 2015 / 19 h 49 min

    Tout d’abord merci pour cet article qui est tres interessant.
    j’aimerai savoir si on peut faire quelque chose de semblable avec une seul raspberry et sans la box
    je me suis procuré une raspberry il y a quelques mois et jusqu’a maintenant je n’ai reussi a reproduire que quelques exemples
    merci de votre collaboration

    J'aime

    • arno0x0x 22 mars 2015 / 1 h 39 min

      Bonjour, tout dépend de ce que vous voulez faire au juste, mais si c’est juste pour de la domotique de base, un seul RPi fera parfaitement l’affaire. Pour un usage domestique, le serveur web et le serveur d’application peuvent tourner sur le même RPi qui gère l’installation domotique via ses GPIO.
      J’ai en préparation plusieurs articles qui iront dans le détail que chaque petit projet. Cela répondra peut-être à vos attentes en terme de réalisation.

      J'aime

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s