Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente |
issue107:tutoriel2 [2016/04/15 16:05] – [5] auntiee | issue107:tutoriel2 [2016/04/17 11:49] (Version actuelle) – andre_domenech |
---|
J'aimerais commencer cet article en présentant mon nouveau serveur au lecteur. | J'aimerais commencer cet article en présentant mon nouveau serveur au lecteur. |
| |
Oui, c'est lui (ci-dessus). Une version de 2013 (en fait, de 2014) de la tablette Nexus 7, dont le système d'exploitation est Ubuntu Touch. Bien entendu, aujourd'hui ce n'est plus d'actualité que les téléphones mobiles et les tablettes (je parle du matériel même) ont la capacité d'être utilisés de façon créative comme des serveurs - le Raspberry Pi a réglé cela. Et sans trop se dépenser. On pourrait même dire que les processeurs ARM sont parfaits pour des serveurs dont l'utilisation est légère ou sporadique, puisque les mêmes caractéristiques de gestion d'alimentation qui aident tellement à conserver la batterie de votre portable, peuvent être employées à bon escient, car elles mettraient un tel serveur en veille quand il ne traite pas des requêtes, économisant ainsi l'électricité et vos factures. | Oui, c'est lui (ci-dessus). Une version de 2013 (en fait, de 2014) de la tablette Nexus 7, dont le système d'exploitation est Ubuntu Touch. Bien entendu, ce n'est plus une nouveauté aujourd'hui de pouvoir utiliser les téléphones mobiles et les tablettes (je parle du matériel même) de façon créative comme des serveurs, le Raspberry Pi a réglé cela. Et sans trop se dépenser. On pourrait même dire que les processeurs ARM sont parfaits pour des serveurs dont l'utilisation est légère ou sporadique, puisque les mêmes caractéristiques de gestion d'alimentation qui aident tellement à conserver la batterie de votre portable, peuvent être employées à bon escient, car elles mettraient un tel serveur en veille quand il ne traite pas des requêtes, économisant ainsi l'électricité et vos factures. |
| |
Ce qui manquait, c'était le système d'exploitation. On ne peut considérer ni iOS ni Android comme des systèmes d'exploitation de classe serveur, car ils n'ont pas été construit pour. Leur paradigme est plutôt celui du système à un seul utilisateur avec un bureau graphique, ce qui est très bien puisque la plupart des dispositifs sont utilisés précisément à ces fins. Mais quid d'Ubuntu Touch ? Puisque la version tablette d'Ubuntu est une dérivée directe de la version pour ordinateur de bureau, beaucoup des caractéristiques du système pourraient se prêter à la création d'un serveur de poche. Je vais en examiner quelques-unes dans les lignes qui suivent. | Ce qui manquait, c'était le système d'exploitation. On ne peut considérer ni iOS ni Android comme des systèmes d'exploitation de classe serveur, car ils n'ont pas été construits pour ça. Leur paradigme est plutôt celui du système à un seul utilisateur avec un bureau graphique, ce qui est très bien puisque la plupart des dispositifs sont utilisés précisément à ces fins. Mais quid d'Ubuntu Touch ? Puisque la version tablette d'Ubuntu est une dérivée directe de la version pour ordinateur de bureau, beaucoup des caractéristiques du système pourraient se prêter à la création d'un serveur de poche. Je vais en examiner quelques-unes dans les lignes qui suivent. |
===== 2 ===== | ===== 2 ===== |
| |
In Ubuntu Touch, on the other hand, we can just fire up the terminal - and yes, there is a terminal available as standard. Much as you would on any Ubuntu computer, the default user (who goes by the login “phablet”) just needs to issue a sudo bash, and there one is with root privileges. The password is the same password or PIN code used to set up the device. ** | In Ubuntu Touch, on the other hand, we can just fire up the terminal - and yes, there is a terminal available as standard. Much as you would on any Ubuntu computer, the default user (who goes by the login “phablet”) just needs to issue a sudo bash, and there one is with root privileges. The password is the same password or PIN code used to set up the device. ** |
| |
NOUS AVONS ROOT | Nous avons Root |
| |
Pour faire fonctionner un serveur, il est absolument nécessaire d'avoir un accès d'administrateur (root) au système sous-jacent. Il faut pouvoir installer et configurer des logiciels et, en fait, certains services ont besoin d'un accès root ne serait-ce que pour démarrer - principalement ceux qui utilisent des ports TCP/IP privilégiés, dans la page 1-1023 (notamment des serveurs Web). | Pour faire fonctionner un serveur, il est absolument nécessaire d'avoir un accès d'administrateur (root) au système sous-jacent. Il faut pouvoir installer et configurer des logiciels et, en fait, certains services ont besoin d'un accès root ne serait-ce que pour démarrer, principalement ceux qui utilisent des ports TCP/IP privilégiés, dans la plage 1-1023 (notamment des serveurs Web). |
| |
Nous savons tous que les utilisateurs d'iOS et d'Android doivent franchir un véritable parcours d'obstacles pour pouvoir accéder à root. Des programmes spécifiques doivent être installés et ceux-ci utilisent presque les mêmes outils dont un pirate aurait besoin pour augmenter ses droits et devenir administrateur. C'est bien évidemment un peu problématique, et ça, pour deux raisons. D'abord, le fait que des applications soient rootées veut dire qu'il y a des défauts bien connus dans la sécurité du système. Alors, qu'est-ce qui empêcherait d'autres applications ou des malwares d'utiliser les mêmes défauts à des fins néfastes ? En outre, l'utilisateur qui installe un tel kit devrait toujours se demander si la personne qui rend une telle appli disponible serait jamais tentée d'inclure une porte dérobée, pour pouvoir contrôler le dispositif complet à distance sans que le propriétaire légitime en sache quoi que ce soit. Un individu qui sait comment rooter le système d'exploitation d'un dispositif aura sans doute les informations nécessaires pour y mettre un tel cheval de Troie. | Nous savons tous que les utilisateurs d'iOS et d'Android doivent franchir un véritable parcours d'obstacles pour pouvoir accéder à root. Des programmes spécifiques doivent être installés et ceux-ci utilisent presque les mêmes outils dont un pirate aurait besoin pour augmenter ses droits et devenir administrateur. C'est bien évidemment un peu problématique, et ça, pour deux raisons. D'abord, le fait que des applications soient rootées veut dire qu'il y a des défauts bien connus dans la sécurité du système. Alors, qu'est-ce qui empêcherait d'autres applications ou des malwares d'utiliser les mêmes défauts à des fins néfastes ? D'autre part, l'utilisateur qui installe un tel kit devrait toujours se demander si la personne qui rend une telle appli disponible serait jamais tentée d'inclure une porte dérobée, pour pouvoir contrôler le dispositif complet à distance sans que le propriétaire légitime en sache quoi que ce soit. Un individu qui sait comment rooter le système d'exploitation d'un dispositif aura sans doute les informations nécessaires pour y mettre un tel cheval de Troie. |
| |
En revanche, dans Ubuntu Touch, il suffit de lancer le terminal - et, oui, un terminal est disponible en standard. De la même façon que sur n'importe quel ordinateur sous Ubuntu, l'utilisateur par défaut (dont le nom d'utilisateur est « phablet » doit tout simplement envoyez un sudo bash et, voilà, on a les droits d'administrateur. Le mot de passe est le même, ou le code PIN, utilisé pour configurer le dispositif. | En revanche, dans Ubuntu Touch, il suffit de lancer le terminal - et, oui, un terminal est disponible en standard. De la même façon que sur n'importe quel ordinateur sous Ubuntu, l'utilisateur par défaut (dont le nom d'utilisateur est « phablet »), doit tout simplement envoyer un sudo bash et, voilà, on a les droits d'administrateur. Le mot de passe est le même, ou le code PIN, utilisé pour configurer le dispositif. |
===== 3 ===== | ===== 3 ===== |
| |
Source: Ubuntu Snappy Filesystem Layout Guide https://developer.ubuntu.com/en/snappy/guides/filesystem-layout/.** | Source: Ubuntu Snappy Filesystem Layout Guide https://developer.ubuntu.com/en/snappy/guides/filesystem-layout/.** |
| |
On peut le considérer une fonctionnalité qui soit à la fois bonne et mauvaise. D'un côté, on n'a pas à bricoler avec des logiciels dont l'origine est douteuse. De l'autre, n'importe quel logiciel créé avec assez d'imagination pourrait à la longue convaincre l'utilisateur de saisir son mot de passe, accédant ainsi à root. Si Ubuntu Touch gagnait pas mal de parts du marché, de telles tentatives de hameçonnage deviendrait malheureusement probables, au lieu d'être seulement hypothétiques. | On peut le considérer comme une fonctionnalité qui soit à la fois bonne et mauvaise. D'un côté, on n'a pas à bricoler avec des logiciels dont l'origine est douteuse. De l'autre, n'importe quel logiciel créé avec assez d'imagination pourrait à la longue convaincre l'utilisateur de saisir son mot de passe, accédant ainsi à root. Si Ubuntu Touch gagnait pas mal de parts du marché, de telles tentatives de hameçonnage deviendraient malheureusement probables, au lieu d'être seulement hypothétiques. |
| |
LE GESTIONNAIRE DE PAQUETS | Le gestionnaire de paquets |
| |
Puisque nous avons root, ce serait plutôt simple d'installer les paquets de nos logiciels préférés à partir des dépôts et le tour est joué. Malheureusement, ce n'est pas aussi simple. | Puisque nous avons root, ce serait plutôt simple d'installer les paquets de nos logiciels préférés à partir des dépôts, et le tour est joué. Malheureusement, ce n'est pas aussi simple. |
| |
D'abord, Ubuntu Touch a opté pour Snappy. C'est une nouvelle façon de distribuer les fichiers que contient un paquet logiciel dansle système de fichiers de notre ordinateur. Dans les versions normales des distributions *buntu, le système des paquets apt est utilisé. Chaque paquet (en fait, un fichier avec une extension.DEB), contient beaucoup de fichiers individuels. À l'installation, chaque fichier est écrit dans le dossier approprié de notre ordinateur. Ainsi, des fichiers de configuration sont placés dans /etc, des fichiers binaires (programmes) vont dans /usr/bin, les bibliothèques, dans /usr/lib et les données du programme dans /var. Les paquets Snappy fonctionnent différemment : | D'abord, Ubuntu Touch a opté pour Snappy. C'est une nouvelle façon de distribuer les fichiers que contient un paquet logiciel dans le système de fichiers de notre ordinateur. Dans les versions normales des distributions *buntu, le système des paquets apt est utilisé. Chaque paquet (en fait, un fichier avec une extension .DEB), contient beaucoup de fichiers individuels. À l'installation, chaque fichier est écrit dans le dossier approprié de notre ordinateur. Ainsi, des fichiers de configuration sont placés dans /etc, des fichiers binaires (programmes) vont dans /usr/bin, les bibliothèques, dans /usr/lib et les données du programme dans /var. Les paquets Snappy fonctionnent différemment : |
| |
« Chaque paquet snappy est installé dans son propre répertoire. Les paquets snappy n'écraseront jamais des fichiers qui font partie d'autres paquets ou de versions anciennes du même paquet. Un paquet snappy normal ne peut lire que son propre espace et écrire vers une zone spécifique. Ces règles sont respectées grâce au profil apparmor pour les applications ubuntu-core. » | « Chaque paquet snappy est installé dans son propre répertoire. Les paquets snappy n'écraseront jamais des fichiers qui font partie d'autres paquets ou de versions anciennes du même paquet. Un paquet snappy normal ne peut lire que son propre espace et écrire vers une zone spécifique. Ces règles sont respectées grâce au profil apparmor pour les applications ubuntu-core. » |
| |
| |
Source: Ubuntu Snappy Filesystem Layout Guide https://developer.ubuntu.com/en/snappy/guides/filesystem-layout/. | Source : Ubuntu Snappy Filesystem Layout Guide https://developer.ubuntu.com/en/snappy/guides/filesystem-layout/. |
| |
| |
/custom/click/com.ubuntu.terminal/0.7.121/lib/x86_64-linux-gnu/bin/terminal | /custom/click/com.ubuntu.terminal/0.7.121/lib/x86_64-linux-gnu/bin/terminal |
| |
Ubuntu Touch possède aussi un gestionnaire de logiciels différent. Une version graphique (l'appli « Ubuntu Store » et une version console (« pkcon ») sont disponibles. Malheureusement, ni l'une ni l'autre n'a accès à toute la large gamme de logiciels disponibles dans les dépôts apt. Pire encore, certains paquets ont l'air d'être disponible avec pkcon, mais ne peuvent pas être installés de cette façon. | Ubuntu Touch possède aussi un gestionnaire de logiciels différent. Une version graphique (l'appli « Ubuntu Store » et une version console (« pkcon ») sont disponibles. Malheureusement, ni l'une ni l'autre n'a accès à toute la large gamme de logiciels disponibles dans les dépôts apt. Pire encore, certains paquets ont l'air d'être disponibles avec pkcon, mais ne peuvent pas être installés de cette façon. |
===== 5 ===== | ===== 5 ===== |
| |
Alors, comment installer nos logiciels serveur préférés ? La réponse est, naturellement, les mêmes commandes apt-get, aptitude, etc., auxquelles nous sommes habitués sur Ubuntu Server. Bon. Avant de continuer, j'aimerais souligner que c'est quelque chose que Canonical n'aime pas, ce qui est tout à fait compréhensible, puisqu'il n'y a pas de garantie que les paquets Snappy/Click et les paquets apt s'entendront bien ensemble demain. S'il vous plaît, soyez prudent - et soyez prêt à réinstaller le système à partir de zéro si tout plante. (Il y a peu de chances que quelque chose d'horrible se passe, mais c'est POSSIBLE, alors...) | Alors, comment installer nos logiciels serveur préférés ? La réponse est, naturellement, les mêmes commandes apt-get, aptitude, etc., auxquelles nous sommes habitués sur Ubuntu Server. Bon. Avant de continuer, j'aimerais souligner que c'est quelque chose que Canonical n'aime pas, ce qui est tout à fait compréhensible, puisqu'il n'y a pas de garantie que les paquets Snappy/Click et les paquets apt s'entendront bien ensemble demain. S'il vous plaît, soyez prudent - et soyez prêt à réinstaller le système à partir de zéro si tout plante. (Il y a peu de chances que quelque chose d'horrible se passe, mais c'est POSSIBLE, alors...) |
| |
Avant de continuer, je dois signaler que le système de fichiers de root est monté par défaut en lecture seule sur Ubuntu Touch. Ainsi, la première chose que nous devons faire, c'est le remonter en lecture et en écriture. Pour ce faire, commencez sur votre dispositif en allant à Paramètres > À propos de > Mode développeur et activer celui-ci. Ensuite, utiliser son câble USB pour connecter le dispositif à l'ordinateur au vous avez utilisé pour installer Ubuntu Touch - ou n'importe quel ordinateur où le paquet phablet-tools est installé. En tant que root, saisissez la commande suivante sur l'ordinateur : | Avant de continuer, je dois signaler que le système de fichiers de root est monté par défaut en lecture seule sur Ubuntu Touch. Ainsi, la première chose que nous devons faire, c'est le remonter en lecture et en écriture. Pour ce faire, commencez sur votre dispositif en allant à Paramètres > À propos de > Mode développeur et activer celui-ci. Ensuite, utiliser son câble USB pour connecter le dispositif à l'ordinateur que vous avez utilisé pour installer Ubuntu Touch, ou n'importe quel ordinateur où le paquet phablet-tools est installé. En tant que root, saisissez la commande suivante sur l'ordinateur : |
| |
# phablet-config writable-image | # phablet-config writable-image |
| |
Après un temps d'attente, vous devez voir le redémarrage du dispositif dont le système de fichiers est maintenant en écriture et en lecture. | Après un temps d'attente, vous devrez voir le redémarrage du dispositif, avec son système de fichiers en écriture et en lecture. |
| |
===== 6 ===== | ===== 6 ===== |
| |
Once the apt system is up and running, we can start installing the software to turn our tablet into a server. Just to make things clear: we will be installing software that is meant to work in the background, with, at most, error messages on the console or in log files. There will be no graphical programs on this one, basically because most graphical software for Ubuntu is still compiled for the X server. Ubuntu Touch runs Mir, which is not compatible.** | Once the apt system is up and running, we can start installing the software to turn our tablet into a server. Just to make things clear: we will be installing software that is meant to work in the background, with, at most, error messages on the console or in log files. There will be no graphical programs on this one, basically because most graphical software for Ubuntu is still compiled for the X server. Ubuntu Touch runs Mir, which is not compatible.** |
| |
| À l'intérieur de l'appli Terminal du dispositif même, ou à partir d'un terminal sur l'ordinateur (essayez la commande « abd shell » sur l'ordinateur quand le dispositif y est connecté), nous pouvons maintenant donner une série de commandes : |
| |
| phablet@ubuntu-phablet:~$ sudo bash |
| |
| [sudo] password for phablet: |
| |
| root@ubuntu-phablet:~# apt-get update |
| |
| et l'on devrait voir la tablette se connecter normalement aux dépôts Ubuntu. |
| |
| Utiliser les techniques disponibles |
| |
| Une fois que le système apt fonctionne bien, nous pouvons commencer à installer les logiciels pour faire de notre tablette un serveur. Pour que les choses soient claires : nous allons installer des logiciels faits pour fonctionner en arrière-plan, avec, tout au plus, des messages d'erreur sur la console ou dans les journaux système. Il n'y aura pas de programme graphique sur celui-ci, parce que la plupart des logiciels graphiques pour Ubuntu sont encore compilés pour le serveur X. Ubuntu Touch exécute Mir qui n'est pas compatible. |
| |
===== 7 ===== | ===== 7 ===== |
| |
Root entry through SSH and password-less access can be configured in the usual way.** | Root entry through SSH and password-less access can be configured in the usual way.** |
| |
| Comme première étape, on pourrait installer un serveur SSH, pour nous permettre d'entrer dans la tablette à partir d'un autre ordinateur. Toutefois, cela n'est pas nécessaire puisque le paquet openssh-server est déjà installé dans Touch. Cependant, pour une raison inconnue il n'est pas lancé automatiquement au démarrage. Une solution rapide est d'éditer le fichier /etc/rc.local pour y insérer la commande appropriée à la fin. Il devrait maintenant se terminer comme ceci : |
| |
| service ssh start |
| |
| exit 0 |
| |
| Entretemps, le service SSH peut-être lancé manuellement n'importe quand, en utilisant la commande service : |
| |
| service ssh restart |
| |
| Quand vous accédez à la tablette via SSH à partir d'un autre ordinateur, vous devez vous rappeler que l'utilisateur par défaut est « phablet », aussi, en supposant que 192.168.0.117 est l'adresse IP de la tablette, essayez : |
| |
| ssh phablet@192.168.0.117 |
| |
| L'accès par root via SSH et un accès sans mot de passe peuvent être configurés normalement. |
| |
| |
| |
===== 8 ===== | ===== 8 ===== |
| |
# service smbd restart** | # service smbd restart** |
| |
| Puisque SSH prend en charge la copie de fichiers, les commandes scp et rsync fonctionneront pour transférer des fichiers vers, et à partir de, la tablette. SFTP fonctionnera également, ce qui permettra à la plupart des gestionnaires de bureau de monter le système de fichiers du dispositif à partir du réseau. |
| |
| Un deuxième service qui peut être utile est un serveur Web. Apache est un candidat probable : |
| |
| # apt-get install apache2 |
| |
| Une fois que tout cela fonctionnera, nous pourrions explorer certaines options telles que l'utilisation d'Apache pour webDAV. Cela voudrait dire qu'une fois en fonctionnement, les autres dispositifs (ou ordinateurs) sur le même réseau pourraient accéder aux fichiers sur le dispositif et - si un logiciel où webDAV (tel que Cadaver) est activé - pourraient envoyer des fichiers vers le dispositif. Certains systèmes d'agenda aiment utiliser webDAV pour synchroniser des éléments. |
| |
| Le partage des fichiers avec Windows est facile à activer. Il suffit d'installer Samba et le fichier de configuration /etc/samba/smb.conf. N'oubliez pas d'ajouter un mot de passe pour samba à l'utilisateur phablet ! Ainsi : |
| |
| # apt-get install samba |
| |
| # vi /etc/samba/smb.conf |
| |
| # smbpasswd -a phablet |
| |
| # service smbd restart |
| |
| |
| |
===== 9 ===== | ===== 9 ===== |
| |
** | ** |
| |
| À partir d'un autre ordinateur, nous pouvons maintenant parcourir le réseau et nous connecter à notre dispositif. Essayez de vous connecter à <nowiki>“smb://phablet@192.168.0.117”</nowiki> (en substituant l'adresse IP de votre dispositif). C'est toujours chouette de voir un simple dispositif mobile reconnu comme un serveur à part entière. |
| |
| Pour des points Geek supplémentaires, installer un dépôt git et l'utiliser pour travailler sur un projet en collaboration avec d'autres personnes. Enregistrer des changements dans un dépôt à partir de votre téléphone est sans doute au-delà de l'expérience d'un utilisateur normal. |
| |
| Enfin, une façon simple - et élégante - de partager de la musique et/ou des vidéos de votre dispositif vers le réseau local est d'utiliser un outil logiciel Universal Plug-n-Play pour exporter la bibliothèque de vos média. Malheureusement, il serait impossible d'y installer un système Home Cinéma tel que Kodi/XBMC, car cela dépend trop d'un affichage graphique. Même le mode autonome ne semble pas fonctionner sur Touch. Toutefois, des outils UPnP/DLNA plus petits, tels que miniupnp fonctionnent très bien. Pour l'installer, il suffit de : |
| |
| |
| # apt-get install sqlite minidlna |
| |
===== 10 ===== | ===== 10 ===== |
| |
** | ** |
| |
| Puis, éditer les fichiers /etc/default/minidlna et /etc/minidlna.conf avec les séquences appropriées de configuration, telles que : |
| |
| media_dir=A,/home/phablet/Music |
| |
| media_dir=V,/home/phablet/Videos |
| |
| et |
| |
| network_interface=wlan0 |
| |
| Redémarrez le serveur : |
| |
| # service minidlna restart |
| |
| En cas de problème, vous pourriez sans doute trouver des indications de ce qui se passe dans les fichiers log (journaux) : |
| |
| # tail /var/log/minidlna.log |
| |
| Le contenu de la tablette devrait maintenant être disponible à partir de tout autre ordinateur ou tablette sur le même réseau. Par exemple, sur VLC : |
| |
| |
===== 11 ===== | ===== 11 ===== |
| |
With this in mind, there is no lack of interesting projects that can be investigated with an Ubuntu Touch device. Basically, if a Raspberry Pi can handle it, chances are the ‘phone in your pocket can also do so. In any case, it is nice to know that such possibilities are now available to make your device a little more than just a window for browsing the Internet.** | With this in mind, there is no lack of interesting projects that can be investigated with an Ubuntu Touch device. Basically, if a Raspberry Pi can handle it, chances are the ‘phone in your pocket can also do so. In any case, it is nice to know that such possibilities are now available to make your device a little more than just a window for browsing the Internet.** |
| |
| Pour conclure |
| |
| Enfin, il serait souhaitable de s'intéresser à certains aspects de la sécurité. Configurer un serveur sûr est censé être une tâche complexe, et ça l'est. Les techniques décrites ci-dessus ouvrent des portes vers le monde, des portes par lesquelles ceux à l'extérieur pourraient éventuellement entrer dans votre système. Si vous stockez des informations sensibles sur le dispositif, elles pourraient être compromises à la longue. |
| |
| Ainsi, vaut peut-être mieux envisager d'utiliser un mélange de techniques sécuritaires, telles que des mots de passe forts et des protocoles encryptés (HTTPs) quand ils sont disponibles. La bonne pratique veut que des services moins sûrs comme Samba (partage de fichiers avec Windows) et UPnP ne restent pas ouverts sur des réseaux que vous ne contrôlez pas entièrement. Si vous voulez les utiliser néanmoins, alors vous devriez sans doute vous assurer que ces serveurs n'émettent pas sur un réseau public. Vous pourriez par exemple les lier à une seule adresse IP spécifique - une que le dispositif utilise sur votre réseau domestique, mais pas sur d'autres -, ou tout simplement de garder ces services inactifs par défaut et de les activer uniquement quand c'est nécessaire. |
| |
| Tout en gardant la sécurité à l'esprit, les projets intéressants, utilisables sur un dispositif sous Ubuntu Touch, ne manquent pas. Essentiellement, si un Raspberry Pi peut le gérer, il y a de fortes chances que le téléphone dans votre poche peut le faire aussi. Quoi qu'il en soit, il est bon de savoir qu'il est possible maintenant de faire de votre dispositif plus qu'une simple fenêtre pour naviguer sur Internet. |