Introduction à la plateforme Raspberry Pi Partie I



Documents pareils
Linux et le Shell. Francois BAYART. Atelier du samedi 20 Novembre

Serveur Linux : FTP. Mise en place d un service FTP sous Linux. Bouron Dimitri 20/04/2014

Configuration réseau Basique

PRESENTATION RESSOURCES. Christian Dupaty BTS Systèmes Numériques Lycée Fourcade Gardanne Académie d Aix Marseille

TP1 - Prise en main de l environnement Unix.

TP SECU NAT ARS IRT ( CORRECTION )

Introduction à Linux (pour le HPC) «Linux 101» Présentation :

Contrôle distant par liaison SSH Christian Dupaty BTS Systèmes Numériques Lycée Fourcade Gardanne Académie d Aix Marseille

Réalisation d un portail captif d accès authentifié à Internet

Unix/Linux I. 1 ere année DUT. Université marne la vallée

Projet Administration Réseaux

Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6

Raspberry pi : Développer une petite application web sur Raspberry

Réseau - VirtualBox. Sommaire

Atelier individuel. Linux 101. Frédérick Lefebvre & Maxime Boissonneault frederick.lefebvre@calculquebec.ca U. Laval - Janv. 2014

C.M. 1 & 2 : Prise en main de Linux

TP1 : Initiation à l algorithmique (1 séance)

TP 1 Prise en main de l environnement Unix

Maintenance et gestion approfondie des Systèmes d exploitation Master 2 SILI. Année universitaire David Genest

BTS SIO SISR3 TP 1-I Le service Web [1] Le service Web [1]

TP n 2 : Installation et administration du serveur ProFTP. Partie 1 : Fonctionnement du protocole FTP (pas plus de 15min)

IP & Co. 1. Service DHCP. L'objectif de ce TP est de voir l'ensemble des services élémentaires mis en oeuvre dans les réseaux IP.

Comment configurer Kubuntu

Imprimantes et partage réseau sous Samba avec authentification Active Directory

Environnements informatiques

Installation d OwnCloud 8.0 sous Debian Avec connexion des utilisateurs active directory et mise en place de HTTPS

Configuration matériel. Tâche 2 : Installation proprement dite de l application sur un serveur de test virtualisé sous VmWare Workstation.

Tuto 2 : Configuration Virtual box, Configuration et installation du serveur XiBO

Sauvegardes par Internet avec Rsync

Documentation FOG. 3. Choisir le nom de la machine, le nom d utilisateur et le mot de passe correspondant (par exemple : fog, password)

TP 1 et 2 de Réseaux en Master 1 Informatique : Assemblage d un réseau, configuration d adresses IP sous Linux et Windows

ASR4 Réseaux Département Informatique, IUT Bordeaux 1. DHCP Prénom : Nom : Groupe :

Tutoriel Création d une source Cydia et compilation des packages sous Linux

DIFF AVANCÉE. Samy.

TP2 - Conguration réseau et commandes utiles. 1 Généralités. 2 Conguration de la machine. 2.1 Commande hostname

Serveur de messagerie sous Debian 5.0

L3 informatique Réseaux : Configuration d une interface réseau

L annuaire et le Service DNS

Service WEB, BDD MySQL, PHP et réplication Heartbeat. Conditions requises : Dans ce TP, il est nécessaire d'avoir une machine Debian sous ProxMox

Mise en place d un serveur DNS sous linux (Debian 6)

TD séance n 2c Mise à jour des Systèmes

LOSLIER Mathieu. Filière Informatique et Réseau 1 ère année. TP DNS. Responsable : LOHIER Stephane. Chargé de TD : QUIDELLEUR Aurélie

TP Service HTTP Serveur Apache Linux Debian

Mise en place d'un Réseau Privé Virtuel

Note de première mise en service. Passerelle ipro-04n. TTPMSiPRO04N R1.0 fr

LiveUSB clefisn. Meilland jean claude et Kbida Abdellatif. 16 septembre 2012

Atelier La notion de session utilisateur sous Linux

Administration de Parc Informatique TP02 : Utilisation du logiciel Marionnet

Personnes ressources Tice. Académie de Rouen

Protection des protocoles

Aide-Mémoire unix. 9 février 2009

2X ThinClientServer Guide d utilisation

Contrôle de la DreamBox à travers un canal SSH

MANUEL D INSTALLATION D UN PROXY

TP : Introduction à TCP/IP sous UNIX

Atelier Migration. Mohamadi ZONGO Formateur assistant Kassim ASSIROU Atelier Migration.

1 Démarrage de Marionnet

TP 1 : LES COMMANDES RESEAUX Matière: RESEAUX LOCAUX

Guide d installation du serveur vidéo

Bravo! Vous venez d acquérir un routeur large bande à 4 ports Conceptronic C100BRS4H.

CONVERTISSEUR RS 232/485 NOTICE

BTS SIO Dossier BTS. PURCHLA Romain

Serveur de partage de documents. Étude et proposition d'une solution afin de mettre en place un serveur de partage de documents.

Administration UNIX. Le réseau

Contrôleur de communications réseau. Guide de configuration rapide DN

Mise en place des TPs Réseau en machines virtuelles. Utilisation de VmPlayer

Installation des outils OCS et GLPI

PocketNet SNMP/Modbus

INSTALLATION DEBIAN 7 (NETINSTALL) SUR VM

TP 4 de familiarisation avec Unix

But de cette présentation. Contrôleur de domaine avec Samba (rédigé pour Ubuntu Server) Introduction. Samba: principes

Guide de démarrage rapide

Internet Protocol. «La couche IP du réseau Internet»

DHCPD v3 Installation et configuration

Outils pour la pratique

Plan. Programmation Internet Cours 3. Organismes de standardisation

OpenMediaVault installation

Capture, Filtrage et Analyse de trames ETHERNET avec le logiciel Wireshark. Etape 1 : Lancement des machines virtuelles VMWARE et de Wireshark

Machine virtuelle W4M- Galaxy : Guide d'installation

CASE-LINUX MAIL - ROUNDCUBE

Installation d un Serveur de Messagerie

TD séances n 3 et n 4 Répertoires et Fichiers sous Unix

Netfilter & Iptables. Théorie Firewall. Autoriser le trafic entrant d'une connexion déjà établie. Permettre le trafic entrant sur un port spécifique

WEBMESTRE : CONCEPTION DE SITES ET ADMINISTRATION DE SERVEURS WEB

PPe jaune. Domingues Almeida Nicolas Collin Leo Ferdioui Lamia Sannier Vincent [PPE PROJET FTP]

WGW PBX. Guide de démarrage rapide

Université Pierre Mendès France U.F.R. Sciences de l Homme et de la Société Master IC²A. TP réseau firewall

Figure 1a. Réseau intranet avec pare feu et NAT.

Installation du serveur WEB Apache ( MySQL, PHP) sous Debian 7.

Il est courant de souhaiter conserver à

Travaux Pratiques Introduction aux réseaux IP

La Comptabilité UNIX System V Acctcom

Étude de l application DNS (Domain Name System)

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée VMWare ESX Server 3, 3.5

BTS SIO option SISR Lycée Godefroy de Bouillon Clermont-Ferrand

Année Universitaire session 1 d automne Parcours : CSB5 Licence 3 STS Informatique

But de cette présentation. Proxy filtrant avec Squid et SquidGuard. Serveur proxy. Serveur proxy. Hainaut P

Procédure d'installation

Table des matières Hakim Benameurlaine 1

Transcription:

Introduction à la plateforme Raspberry Pi Partie I B. QUOITIN, D. HAUWEELE et G. HUYSMANS Faculté des Sciences, Université de Mons 26 novembre 2014 1 Objectifs de la séance L objectif de cette séance est la découverte du système d exploitation Linux sur la plateforme Raspberry Pi. La plateforme sera utilisée sans écran ( headless ). La séance couvrira des éléments tels que la gestion des utilisateurs, la gestion des fichiers, l installation de nouveaux paquets logiciels ainsi que quelques éléments d administration réseau. A la fin de la séance, les étudiants devraient être capables d installer un serveur web qui servira à exécuter des commandes shell à distance. 2 Console série La première étape de cette séance consiste à obtenir une console série sur la platine Raspberry Pi au travers d un adaptateur USB/série. Cette console permettra d effectuer la configuration initiale du système. Attention! une connexion incorrecte peut endommager la platine. Les manipulations qui suivent doivent être réalisées lorsque la platine est hors tension. Nous consulter en cas de doute. L adaptateur USB/série doit être relié d une part à la platine Raspberry Pi (connecteur P1) et d autre part (côté USB) à l ordinateur hôte. La Table 1 indique comment les connexions doivent être effectuées. La connexion d un adaptateur est illustrée à la Figure 1. Afin de faire fonctionner l adaptateur sur l ordinateur hôte, il peut être nécessaire d installer un gestionnaire de périphérique sous Windows ou sous Mac OS X. FIGURE 1 Raccordement d une platine Raspberry Pi (modèle A ou B) et d un adaptateur USB/série. Afin d envoyer des commandes à la platine Raspberry Pi au travers de l adaptateur USB/série, on utilise un logiciel appelé émulateur de terminal. Sous Linux et Mac OS X, il est recommandé d utiliser screen. 1

Adapteur USB/série Raspberry Pi GND GND, pin 6 RXD RXD, pin 10 TXD TXD, pin 8 TABLE 1 Connexions entre adaptateur USB/série et carte Raspberry Pi. Sous Windows, il est recommandé d utiliser TeraTerm. Il est nécessaire de spécifier certains paramètres de la liaison série à l émulateur de terminal. Ces paramètres sont donnés à la Table 2. Paramètre Valeur Débit (baudrate) 115200 bauds Bits de données 8 Bit(s) de stop 1 Bit de parité aucun Contrôle de flux aucun TABLE 2 Paramètres de la liaison série. Sous Linux et Mac OS X, screen est invoqué dans un terminal comme illustré ci-dessous. Les seuls paramètres nécessaires sont le nom du périphérique et le débit. L adaptateur sera désigné par /dev/ttyusbn sous Linux et par /dev/tty.slab USBtoUARTn sous Mac OS X. Pour quitter screen, entrez la séquence Ctrl-a k. bob@hostpc: $ screen /dev/ttyusb0 115200 3 Mise sous tension et ligne de commande Afin de démarrer la platine Raspberry Pi, brancher une alimentation USB au connecteur USB micro B nommé S1 ( Power ). La LED rouge PWR s allume de façon continue. La LED verte ACT s allume de façon intermittente, au rythme des accès à la carte SD. Le système démarre dès la mise sous tension et les messages de démarrage de Linux s affichent dans l émulateur de terminal. Attention! Avant de mettre la platine hors tension, il est nécessaire d arrêter le système d exploitation en utilisant la commande sudo poweroff!!! Lorsque le démarrage du système est terminé, l utilisateur est invité à s authentifier. Un utilisateur nommé pi a été prédéfini. Son mot de passe est raspberry. Attention, le login et le mot de passe sont sensibles à la casse! Une fois authentifié, une session utilisateur est créée et une invite de commande similaire à celle illustrée ci-dessous) est affichée. Il est alors possible d adresser des commandes au système afin de lancer des programmes, changer la configuration, etc. Les commandes sont interpretées par un programme spécial appelé shell. Il existe plusieurs shells différents, mais celui configuré ici est appelé bash (Bourne again shell). pi@raspberrypi: $ La plupart des commandes de Linux sont documentées via des pages de manuel (man pages). Pour consulter la page de manuel d une commande, utilisez man nom commande. Il est possible de consulter la liste des messages de démarrage ainsi que ceux qui s y seraient éventuellement ajoutés avec la commande dmesg. 2

pi@raspberrypi: $ dmesg Afin d afficher les messages page par page, il est possible de rediriger la sortie de dmesg dans un programme pager tel que more ou less. Dans l exemple ci-dessous, le caractère indique au shell qu il faut rediriger la sortie de dmesg vers le programme more. Il suffit alors de presser la touche espace ou la touche entrée pour avancer d une page ou d une ligne dans les messages. La touche q termine le pager. Avec less, il est aussi possible de remonter dans les messages (flêche haut ou page up) ainsi que d effectuer des recherches (en pressant / suivie de la recherche). pi@raspberrypi: $ dmesg more A ce stade, il est possible d utiliser les commandes reprises à la Table 3 pour découvrir certaines caractéristiques du système. Commande Description cat Affiche le contenu d un fichier texte. hexdump Affiche le contenu d un fichier binaire. more, less Pagers : affichent un fichier ou la sortie d une commande page par page. grep Extrait les lignes d un fichier ou de la sortie d une commande qui correspondent à un pattern. nano, vi/vim, emacs Editeurs de texte. uname Donne le nom du système d exploitation. L option -a fournit des détails précieux tels que la version du noyau. uptime Détermine le temps écoulé depuis le dernier démarrage ainsi que la charge moyenne. free Détermine la mémoire disponible. L option -h permet d afficher les volumes de mémoire de façon plus lisible. lsusb Liste les périphériques USB. date Fournit le jour et la date du système 1. TABLE 3 Commandes donnant des informations sur le système. 4 Configuration initiale Avant de continuer la séance, un certain nombre de paramètres du système peuvent être changés. Ces changements sont facilités par l utilitaire raspi-config mais ils peuvent également être réalisés par d autres outils 2. La liste des paramètres à configurer pour cette initiation est limitée au mot de passe de l utilisateur et à l activation du serveur SSH. Pour lancer l utilitaire raspi-config, utiliser la commande suivante. La commande raspi-config nécessite des privilèges d administrateur du système. La commande sudo permet à certains utilisateurs d exécuter des commandes privilégiées. pi@raspberrypi: $ sudo raspi-config Password: Pour changer le mot de passe de l utilisateur pi, aller dans Change User Passwd. Pour autoriser le serveur SSH (Secure SHell), aller dans Advanced Options, puis SSH et sélectionner Enable. 1. Le Raspberry Pi n a pas d horloge temps réel (RTC) mais peut synchroniser son horloge via le réseau avec le protocole NTP. Il est nécessaire de configurer la timezone du système. 2. Le mot de passe d un utilisateur peut être changé par la suite via l utilitaire passwd. Le serveur ssh peut être activé/désactivé via la commande update-rc.d ssh defaults ou update-rc.d ssh disable. 3

5 Gestion des utilisateurs Chaque utilisateur porte un nom mais également un numéro d utilisateur (uid), un numéro de groupe (gid), un répertoire personnel (home) et un shell par défaut. Les utilisateurs sont définis dans le fichier /etc/passwd. Ce fichier contient une ligne par utilisateur 3. L utilisateur nommé root en particulier a tous les droits. Il est possible de consulter le contenu 4 de ce fichier avec un programme pager tel que more ou less. pi@raspberrypi: $ more /etc/passwd En utilisant l utilitaire grep, il est possible d extraire les lignes du fichier /etc/passwd qui concernent l utilisateur pi. Le paramètre ˆpi de grep est une expression régulière qui demande d extraire exclusivement les lignes qui commencent par pi. La seule ligne qui est fournie correspond à l utilisateur pi. Y figurent les numéros d utilisateur (1000) et de groupe (1000), le répertoire personnel (/home/pi) et le shell (/bin/bash). pi@raspberrypi: $ grep ˆpi /etc/passwd pi:x:1000:1000:,,,:/home/pi:/bin/bash Chaque utilisateur peut également faire partie d autres groupes d utilisateurs. Chaque groupe d utilisateurs est également identifié par un numéro de groupe (gid). Les groupes sont définis dans /etc/group. Il est possible de déterminer les utilisateurs d un groupe en lisant ce fichier. Pour déterminer les groupes auxquels un utilisateur appartient, il existe un utilitaire spécifique : groups. Le résultat de la commande groups ci-dessous indique notamment que pi appartient au groupe sudo. Ce sont les membres de ce groupe qui peuvent lancer des commandes privilégiées via l utilitaire sudo. pi@raspberrypi: $ groups pi adm dialout cdrom sudo audio video plugdev games users netdev input spi gpio La Table 4 liste des commandes utiles pour la gestion des utilisateurs. Pour chaque commande un court descriptif est fourni. Il est nécessaire de consulter la man page des commandes pour obtenir plus de détails. La plupart de ces commandes nécessitent des droits d administrateur et peuvent être invoquées avec la commande sudo. La commande passwd peut être utilisée par un utilisateur non privilégié pour changer son propre mot de passe. Commande passwd adduser deluser usermod addgroup delgroup id groups last lastb who Description Change le mot de passe d un utilisateur. Ajoute un utilisateur ou ajouter un utilisateur à un groupe. Supprime un utilisateur. Modifie un utilisateur. Ajoute un groupe. Supprime un groupe. Affiche l uid et le gid d un utilisateur. Affiche les groupes auxquels appartient un utilisateur. Affiche la liste des derniers utilisateurs qui se sont connectés. Affiche la liste des derniers utilisateurs qui ont échoué à se connecter. Affiche la liste des utilisateurs actuellement connectés. TABLE 4 Commandes utiles pour la gestion des utilisateurs. 3. Dans les versions antérieures d UNIX, les mots de passe des utilisateurs étaient stockés dans le fichier /etc/passwd. Aujourd hui, ceux-ci sont stockés dans le fichier /etc/shadow qui n est lisible que par l administrateur du système. 4. Un grand nombre d utilisateurs sont décrits dans /etc/passwd, cependant tous ne concernent pas des utilisateurs réels, mais des utilisateurs dédiés à l exécution de certains programmes. 4

6 Fichiers, répertoires et permissions Il est possible de lister les fichiers du répertoire courant en utilisant la commande ls. Lorsqu un utilisateur ouvre une nouvelle session, il est automatiquement placé dans son répertoire personnel. Dans le cas de l utilisateur pi, ce répertoire est /home/pi. La commande ls liste les fichiers de ce répertoire. La commande ls peut prendre un grand nombre de paramètres qu il est utile de connaître. pi@raspberrypi: $ ls pistore.desktop L option -a demande d afficher tous les fichiers, y compris ceux qui sont cachés. La commande révèle deux fichiers cachés dont le nom commence par un point (en rouge) ainsi que deux répertoires (en bleu) : le répertoire. (point) désigne le répertoire courant tandis que le répertoire.. (deux points) désigne le répertoire parent. pi@raspberrypi: $ ls -a....bash_logout.bashrc pistore.desktop.profile Il est possible de faire référence aux fichiers d un autre répertoire, en spécifiant le chemin de ce répertoire. Un chemin est une suite de noms de répertoires séparés par le caractère /. On distingue les chemins absolus qui commencent à la racine (p.ex. /home/pi) des chemins relatifs qui commencent au répertoire courant (p.ex. pi). Une autre option utile de ls est l option -l qui permet d obtenir plus d information sur les fichiers listés. Par défaut, les informations listées sont le type du fichier, les droits d accès, le nombre de hard links, le propriétaire (en rouge ci-dessous), le groupe (en bleu), la taille en octets (en vert), les date et heure de dernière modification et le nom. L exemple suivant montre comment ls permet d obtenir cette information pour des fichiers particuliers, en fournissant leur chemin complet 5. pi@raspberrypi: $ ls -l /etc/passwd -rw-r--r-- 1 root root 1275 Nov 19 16:02 /etc/passwd pi@raspberrypi: $ ls -ld /etc drwxr-xr-x 98 root root 4096 Nov 19 16:02 /etc Le premier caractère indique le type du fichier : - indique un fichier normal, d un répertoire et l un lien. D autres types de fichiers sont possibles. Les 9 caractères suivants désignent les droits d accès. La Table 5 montre sur des exemples comment ces droits d accès sont interprétés. Dans le cas d un fichier, la lettre r indique le droit de lecture, w le droit d écriture et x le droit d exécution. Dans le cas d un répertoire, r indique le droit d énumérer le contenu, w le droit de renommer ou supprimer le contenu et x le droit d entrer dans le répertoire. Fichier Type Propriétaire Groupe Autres (owner) (group) (others) /etc/passwd - rw- r-- r-- /etc d rwx r-x r-x TABLE 5 Type et droits d accès de fichiers. Ainsi, le fichier /etc/passwd peut être lu par tout le monde, mais seul le propriétaire (root) peut le modifier. De même, il est possible à tous les utilisateurs de lire et entrer dans le répertoire /etc mais seul son propriétaire (root) peut le modifier. La Table 6 liste des commandes utiles pour la gestion des fichiers et des répertoires. L exemple suivant illustre la manipulation de répertoires. L utilisateur se trouve initialement dans le répertoire /home/pi, ce qu il vérifie avec la commande pwd. Il crée un répertoire work avec la commande mkdir, se déplace dans ce répertoire avec cd et y édite un fichier. L utilisateur retourne au 5. L option -d permet d obtenir le listing d un répertoire et non celui de son contenu. 5

Commande mv cp rm chown chmod umask cd mkdir rmdir pwd ln -s find Description Déplace des fichiers et/ou un répertoires. Copie des fichiers et/ou répertoires. Supprime des fichiers et/ou répertoires. Change le propriétaire et/ou le groupe d un fichier ou d un répertoire. Change les droits d accès d un fichier ou d un répertoire. Change les droits assignés aux nouveaux fichiers et répertoires. Change le répertoire courant. En particulier, cd - permet de revenir au répertoire précédent et cd permet d aller vers le répertoire personnel. Crée un répertoire. Supprime un répertoire. Détermine le répertoire courant. Crée un lien symbolique vers un fichier ou un répertoire. Recherche des fichiers. TABLE 6 Commandes utiles pour la gestion des fichiers et répertoires. répertoire précédent avec cd - puis tente de supprimer le répertoire work. Le système refuse car le répertoire est non vide. L utilisateur supprime le répertoire et tout son contenu avec la commande rm munie des options -R (récursif) et -f (force). pi@raspberrypi: $ pwd /home/pi pi@raspberrypi: $ mkdir work pi@raspberrypi: $ cd work pi@raspberrypi: $ pwd /home/pi/work pi@raspberrypi: $ nano memoire.tex pi@raspberrypi: $ cd - /home/pi pi@raspberrypi: $ rmdir work rmdir: failed to remove work : Directory not empty pi@raspberrypi: $ rm -Rf work pi@raspberrypi: $ Attention! En ligne de commande, aucune confirmation n est demandée avant de modifier, écraser ou supprimer un fichier. Réfléchissez à 2 fois avant de presser Enter. 7 Configuration réseau Attention! Le réseau informatique est une ressource partagée. Une mauvaise manipulation locale peut causer des dommages tels qu une interruption de connectivité pour d autres utilisateurs. En particulier, ne configurez pas d adresse statique sur le réseau de l université. Le système est configuré pour obtenir une adresse IP automatiquement via le protocole DHCP (Dynamic Host Control Protocol). Connecter le câble Ethernet à la platine Raspberry Pi. Après quelques secondes, le système devrait avoir reçu une adresse IP. Ceci peut être vérifié avec l utilitaire ifconfig. L état de l interface Ethernet est affiché, comme illustré ci-dessous. 6

pi@raspberrypi: $ ifconfig eth0 eth0 Link encap:ethernet HWaddr b8:27:eb:81:6b:a3 inet addr:192.168.1.137 Mask:255.255.255.0 UP BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) Il est désormais possible de tester à partir de l ordinateur hôte si la carte Raspberry Pi est accessible. Pour cela, utiliser l utilitaire ping. L adresse IP donnée dans l exemple doit être remplacée par celle obtenue via ifconfig ci-dessus. Appuyer sur Ctrl-C pour arrêter ping. pi@raspberrypi: $ ping 192.168.1.137 PING 192.168.1.137: 56 data bytes 64 bytes from 192.168.1.137: icmp\_seq=0 ttl=64 time=11.910 ms 64 bytes from 192.168.1.137: icmp\_seq=1 ttl=64 time=9.120 ms (Ctrl-C) La configuration des interfaces réseau est spécifiée dans le fichier /etc/network/interfaces. La Table 7 liste un ensemble de commandes utiles pour la configuration et le diagnostic réseau. Commande ifconfig route ip netstat dig arp iwconfig iptables ip6tables ufw tcpdump, tshark ping traceroute iftop nmap Description Affiche ou modifie la configuration des interfaces réseau. Affiche ou modifie la table de routage. Outil versatile de configuration IP. Affiche des informations sur les connexions réseaux, les tables de routage, etc. Interroge le système DNS. Affiche la table ARP. Affiche ou modifie la configuration des interfaces réseau sans fil. Affiche ou modifie les règles de firewall. Equivalent de iptables pour IPv6. Uncomplicated FireWall : facilite la configuration du firewall. Capture les paquets réseau. Teste la joignabilité d un hôte. Trace le chemin jusqu à un hôte. Affiche l utilisation de la bande-passante d une interface. Scanneur de ports. TABLE 7 Commandes utiles pour la configuration et le diagnostic réseau. 8 Démarrer une session SSH A partir de l ordinateur hôte, ouvrez une connexion SSH vers l adresse IP qui vous a été rapportée par ifconfig. Pour ouvrir une connexion SSH sous Linux et Mac OS X, ouvrez un terminal et tapez la commande suivante en prenant bien soin de remplacer l adresse de l exemple par l adresse obtenue par votre propre platine Raspberry Pi en Section 7. Sous Windows, il est recommandé d utiliser l utilitaire putty. bob@hostpc: $ ssh pi@192.168.1.137 7

La plateforme Raspberry Pi est destinée à être connectée à un réseau. Il est primordial de veiller à sa sécurité en (1) remplaçant les mots de passe par défaut des utilisateurs par des mots de passe forts (utiliser p.ex. makepasswd) et (2) prêter attention aux services réseau actifs et configurer un firewall (utiliser p.ex. ufw). 9 Gestion de packages L installation de logiciels sous Linux passe généralement par un système de gestion de packages. Celuici maintient la liste des packages disponibles et leurs dépendances. Ainsi, si un package A dépend d un autre package B, l installation de A ne sera possible que si B est installé préalablement. De même, il ne sera pas possible de désinstaller un package dont d autres packages dépendent. La distribution Linux Raspbian installée sur la carte Raspberry Pi est dérivée d une distribution appelée Debian. Cette dernière utilise un gestionnaire de packages nommé APT (Advanced Package Tool). La Table 8 liste les commandes utiles pour la gestion de packages. Les commandes utilisées le plus fréquemment sont apt-get install pour installer un nouveau package, apt-cache search pour rechercher un package, ainsi que apt-get update pour maintenir la liste des packages à jour. La plupart des commandes apt- supportent l option --dry-run qui permet de vérifier ce que la commande fait sans apporter aucune modification au système. Commande apt-cache search P AT T ERN apt-cache show P KG NAME apt-cache depends P KG NAME apt-cache rdepends P KG NAME apt-get install apt-get remove apt-get purge apt-get clean apt-get autoclean apt-get autoremove apt-get update apt-get upgrade dpkg -L P KG NAME dpkg --search P AT T ERN dpkg-query -l P AT T ERN aptitude Description Liste les packages qui contiennent le pattern dans leur nom ou leur description. Utiliser l option --names-only pour restreindre la recherche aux noms de packages. Affiche des détails concernant un package. Liste les packages dont dépend le package fourni. Liste les packages qui dépendent du package fourni. Installe un package et ses dépendances. Supprime un package. Supprime un package (y compris ses fichiers de configuration). Nettoie le système des fichiers téléchargés par apt. Utile pour libérer de l espace. Variante de apt-get clean. Variante de apt-get clean. Met à jour la liste des packages disponibles à partir des sources (/etc/apt/sources.list). Met à jour les packages installés. Liste les fichiers installés par un package. Recherche un fichier parmi les packages installés. Liste les packages qui correspondent au pattern fourni. Interface de haut-niveau au gestionnaire de package APT. TABLE 8 Commandes utiles pour la gestion de packages. 10 Installation d un serveur web L objectif de cette section est d installer un serveur web (Apache) sur la carte Raspberry Pi. Il suffit pour cela d installer le package apache2. Une fois le package apache2 installé, le serveur doit être immédiatement opérationnel. La configuration d apache est effectuée au travers de plusieurs fichiers situés dans le répertoire /etc/apache2. Le fichier apache2.conf est le fichier de configuration principal. Il fait référence à d autres fichiers situés 8

dans les sous-répertoires conf.d, mods-enabled (options supplémentaires) et sites-enabled (liste des sites configurés). Afin de tester le serveur, ouvrir un navigateur sur l ordinateur hôte et pointer vers l adresse de la carte Raspberry Pi (voir Section 7). Une page web avec le message It works! devrait s afficher. La configuration de ce site est située dans /etc/apache2/sites-enabled/000-default. L emplacement des fichiers qui constituent ce site est spécifié par les éléments DocumentRoot et Directory. Par défaut, cet emplacement est dans /var/www. Il est possible d y ajouter des fichiers et/ou remplacer les fichiers existants afin de modifier le contenu du site web. La documentation du serveur Apache 2 peut être trouvée en ligne à l adresse http://httpd. apache.org/docs/2.2/. Le serveur Apache génère des logs qui peuvent être très utiles pour déterminer l origine d un problème de configuration. Le fichier /var/log/apache2/access.log liste les tentatives d accès à des fichiers inconnus ou interdits. Le fichier /var/log/apache2/error.log liste les erreurs qui se produisent lors de l accès aux pages. 10.1 Pages dynamiques avec PHP Cette sous-section propose d installer, configurer et tester PHP, un langage de programmation simple très fréquemment utilisé pour générer dynamiquement le contenu de pages web. Le serveur Apache est prévu pour fonctionner en tandem avec PHP. La première étape consiste à installer le package php5. Le package libapache2-mod-php5 qui permet l intégration à Apache est également installé automatiquement. Le serveur Apache est redémarré automatiquement par APT afin de rendre le module PHP opérationnel. Pour tester PHP, il suffit de créer un fichier PHP qui sera placé dans l arborescence de fichiers utilisée par Apache, par exemple sous /var/www ou dans un répertoire utilsateur sous /public html. Le fichier doit avoir l extension.php afin qu Apache le donne à PHP pour générer la page web demandée. Le fichier index.php donné en exemple ci-dessous génère une page HTML qui contient l heure sur le serveur. Les tags <?php et?> délimitent la partie du fichier qui est interpretée par PHP. Il peut y avoir plusieurs de ces sections. <html> <head> <title>raspberry Pi PHP test page</title> </head> <body> Heure serveur : <?php printf date("h:i");?> </body> </html> Attention, la configuration par défaut d Apache désactive l exécution de scripts PHP pour les répertoires utilisateurs (i.e. dans /public html. Il est nécessaire de changer le ficher php5.conf dans le répertoire /etc/apache2/mods-enabled : mettre en commentaire la fin du fichier qui se trouve entre les tags <IfModule> et </IfModule>. Une fonction très utile d Apache pour une application avec le Raspberry Pi est shell exec. Cette fonction permet d exécuter une commande sur le Raspberry Pi, à distance, via une page web. Le résultat de la commande peut être récupéré, éventuellement traité, puis retourné dans la page web générée. En guise d exercice, écrire une page PHP qui retourne le résultat de la commande free -k. L extrait ci-dessous montre comment utiliser la fonction shell exec. <?php $result= shell_exec("ls -lr /home/pi"); $array= explode("\n", $result); for ($i= 0; $i < count($array); $i++) { 9

print htmlentities($array[$i]); print "<br>"; }?> La documentation du langage PHP peut être trouvée en ligne à l adresse http://php.net/docs. php. En cas d erreur de programmation en PHP, il est utile de consulter le fichier de log d Apache /var/log/apache2/error.log. Par exemple, la commande suivante affiche en permanence la fin du fichier de log et se met à jour lorsque de nouveaux messages de log sont ajoutés. Il peut être utile d ouvrir une seconde session SSH dans laquelle s exécute cette commande. pi@raspberry: $ tail -f /var/log/apache2/error.log [Tue Nov 25 13:25:19 2014] [error] [client 192.168.1.137] PHP Fatal error: Call to undefined function shall_exec() in /home/pi/public_html/index.php on line 11 11 Pour ceux qui veulent aller plus loin... 11.1 Multicast DNS La configuration réseau actuelle n est pas pratique car elle nécessite une connexion préalable à la plateforme Raspberry Pi via la console série afin d en déterminer l adresse IP. Cette section s intéresse à la configuration de mdns (multicast DNS) afin que la correspondance nom de la machine (hostname) et adresse IP soit transmise automatiquement aux ordinateurs présents sur le même réseau local. L utilisation de mdns nécessite d avoir préalablement changé le nom d hôte de la platine Raspberry Pi. Cette section fait l hypothèse que le nom d hôte utilisé est lonely looking pi. Le changement du nom d hôte peut être effectué avec raspi-config (voir Section 4) ou en modifiant le fichier /etc/hostname. Sous Linux, le protocole mdns est implémenté par le service avahi-daemon. Il est nécessaire de l installer et le configurer. pi@raspberrypi: $ sudo apt-get install avahi-daemon pi@raspberrypi: $ sudo service avahi-daemon restart Restarting Avahi mdns/dns-sd Daemon: avahi-daemon. pi@raspberrypi: $ Il est ensuite possible de joindre la platine Raspberry Pi en spécifiant son nom, comme illustré cidessous avec ping. Cela devrait également fonctionner avec ssh et/ou HTTP (web). bob@hostpc: $ ping lonely looking pi.local Note : sous Windows, il est possible que la résolution de noms avec mdns ne fonctionne pas immédiatement. Il est nécessaire d installer Bonjour Print Services for Windows (http://support.apple. com/kb/dl999) et d autoriser le firewall à laisser entrer le trafic UDP sur le port 5353 (mdns). Sous Linux, il faut que la librairie libnss-mdns soit installée. 10