Syndiquer le contenu
Mis à jour : il y a 17 heures 46 min

Sortie d’Ubuntu 14.10

11 novembre, 2014 - 21:19

Sortie le 23 octobre 2014, Ubuntu 14.10 est la vingt-et-unième version d’Ubuntu. Son nom de code est Utopic Unicorn, soit « licorne utopique » dans la langue de Molière.

Pour rappel, Ubuntu est une distribution GNU/Linux basée sur Debian, et déclinée en plusieurs variantes selon l'environnement de bureau utilisée (GNOME, KDE, etc) et la cible visée (serveurs, studio de son, ou encore pour les mobiles et tablettes à venir, etc). Soutenue par Canonical, et après un succès sur les sentiers battus, les décisions quant aux choix techniques des prochaines déclinaisons d'Ubuntu font souvent parler d'elle, en bien (notamment l'ergonomie) comme en mal (tel que le choix des licences pour les projets internes).

Pour autant, conséquence directe des ambitions pour l'Ubuntu 15.04 qui sortira dans six mois, les modifications à l'ordre du jour sont assez courtes. Cette sortie de la nouvelle version d'Ubuntu reflète donc un syndrome déjà vu pour d'autres distributions : dans l'ensemble, on met à jour les mêmes composants que les autres, et on change quelques ressources graphiques.

Fort heureusement, si cette 14.10 est faible en modifications spécifiques à Ubuntu, la 15.04 s'annonce déjà plus intéressante.

Les principales nouveautés mises à jour

Comme à chaque nouvelle version d'une distribution, la plupart des paquets logiciels présents dans les dépôts ont été mis à jour. Parmi les changements, on peut trouver :

  • le noyau Linux 3.16 ;
  • Unity en version 7.3.1, pour ceux utilisant l'environnement proposé par défaut et par la majorité des utilisateurs ;
  • Plasma en version 4.11, et KDE SC 4.14, ainsi que la possibilité d'essayer Plasma 5, pour les utilisateurs de Kubuntu ;
  • Gnome en version 3.12, pour les utilisateurs d'Ubuntu Gnome ;
  • Firefox est présent en version 33, LibreOffice en version 4.3.2.2, etc

Le logiciel phare de Canonical pour cette fois, Unity, se contente de se stabiliser pour la version 15.04 à venir. Firefox fait partie des quelques logiciels à recevoir un traitement de faveur et à avoir des mises à jour même dans la version LTS 14.04. Dans l'immédiat, le seul intérêt de passer à la version 14.10 serait d'éviter de tomber sur les bugs qui auront été corrigés et de profiter de quelques améliorations de performance, mais aucune nouvelle fonctionnalité vraiment à la clé : si tout fonctionne sur votre bécane, vous pouvez très bien attendre février, ou de voir à quoi ressemblera la 15.04, avant de penser à une quelconque mise-à-niveau.

Ubuntu Kylin

C'est plutôt une actualité, mais Ubuntu Kylin, la variante d'Ubuntu pour la Chine, a été ajoutée au Government Centralised Procurement Program, une liste des technologies approuvées pour une utilisation au sein du gouvernement chinois.

Préparons le pop-corn : la 15.04

Le nom de code d'Ubuntu 15.04 a été dévoilé par Mark Shuttleworth le 20 octobre dernier (jour fêtant les 10 ans d'Ubuntu). Il s'agira de Vivid Vervet, soit le vervet vif.

La 14.04 étant une LTS, elle a servi de socle pour débuter un travail de stabilisation, qui a ensuite été continué dans la 14.10. C'est pour nettoyer un peu le terrain avant les gros chantiers.

La conquête des téléphones

La prochaine version embarquera une nouvelle version de Mir avec Unity 8. Or, ces versions sont déjà utilisées sur Ubuntu Phone, le système pour smartphone basé sur Ubuntu. Slashdot nous apprend que le but de Canonical est de converger vers une « interface unifiée pour mobiles et bureaux » (dans le sens Microsoft qui fait un four, ou dans le sens ''responsive design'' comme pour les sites web ? À suivre).

Cela annonce t-il l'arrivée d'un ordiphone sous Ubuntu ?

Les batailles de clocher : Mir, Wayland, Upstart, Systemd

Même si la communauté semble se ranger derrière le protocole de serveur d'affichage Wayland, Canonical continue de soutenir un concurrent développé en interne, Mir. Cela pourrait entraîner quelques problèmes (quid des pilotes pour Mir par exemple ?). Cependant Mir reste utilisé pour Ubuntu Phone (cf ci-dessus).

Canonical soutient le sytème de démarrage Upstart depuis longtemps. Or, Debian devrait a priori adopter le concurrent Systemd. Par conséquent, Canonical réfléchit à revenir sur systemd également. À noter que Fedora (et donc RHEL 6), qui était d'abord parti sur Upstart, l'a remplacé par systemd depuis Fedora 15. Les choses se précisent côté Ubuntu : la transition finale vers systemd comme init par défaut est prévue pour la première moitié du cycle de développement.

Télécharger ce contenu au format Epub

Lire les commentaires

La marque Gnome convoitée par la société Groupon

11 novembre, 2014 - 17:04

Tout le monde connaît GNOME, l'environnement de bureau né en 1999, sélectionné par défaut sur beaucoup de distributions Linux, et utilisable sur tablette.

Groupon, un site d'achat groupé, a baptisé du même nom « Gnome » son nouveau produit informatique, une tablette destinée aux points de vente.

Jugeant cette homonymie nuisible à son image de marque, la Fondation GNOME est en branle-bas de combat, sa marque déposée ne l'empêchera pas d'avoir à dépenser des frais de justice estimés à 80 000 dollars. Un appel aux dons est en cours sur le site de la fondation.

NdM : la situation a évolué rapidement (voir les réactions de Groupon et l'annonce GNOME). D'une part il y a déjà plus de 70k$ collectés, et d'autre part Groupon a indiqué renoncer à utiliser le nom Gnome pour sa tablette, bref résolution à l'amiable.

NdM : citons quelques cas autour du droit des marques précédemment évoqués, avec :

Télécharger ce contenu au format Epub

Lire les commentaires

Red Hat Software Collections 1.2

11 novembre, 2014 - 14:33

Red Hat a annoncé, le 30 octobre dernier, les « Software Collections » en version 1.2. Il s'agit d'un canal (terminologie de Red Hat pour désigner un dépôt logiciel) contenant des logiciels dont les versions sont plus récentes que dans les canaux habituels de la distribution RHEL.

Comme chaque canal logiciel de Red Hat, celui-ci est soumis à souscription auprès de la société.

La deuxième partie de dépêche aborde une sélection des mises à jour de ce dépôt. Si vous souhaitez vous renseigner sur les modalités d'utilisation, vous êtes invités à lire la dépêche sur la version 1.0 bêta.

Côté développeurs

Cette mise à jour est très orientée développeur, avec en phare l'arrivée de Red Hat Developer Toolset 3. Cet ensemble de logiciels apporte des outils récents de développement et de compilation, comme Eclipse, GCC 4.9 ou ltrace 0.7.91.

Un autre outil entre dans RHSCL : DevAssistant 0.9.1, pour mettre en place un environnement de développement et publier du code.

Vous êtes plutôt fan de Java ? Maven 3.0 devrait vous ravir !

Git a été séparé du Red Hat Developer Toolset et dispose donc de sa propre collection, pour arriver en version 1.9.4 !

Côté serveurs

Ça y est, Nginx c'est du sérieux pour Red Hat, il a d'ailleurs été mis à jour dans sa dernière branche stable (version 1.6.1). On regrettera par contre que Node.js (présent en version 0.10, accompagné de npm 1.3.24) soit toujours en avant-première technologique.

Pour les serveurs de bases de données, on retrouve, comme en version 1.1 :

  • MongoDB 2.4.9 ;
  • MariaDB 5.5.37 ;
  • MySQL 5.5.37 ;
  • PostgreSQL 9.2.8.

Enfin, Apache est toujours disponible en version 2.4.6.

Côté langages

Rien d'exceptionnel ici, il s'agit essentiellement des mêmes versions des briques déjà présentes :

  • Ruby 1.9.3 et 2.0.0 ;
  • une version de Rails par version de Ruby, 3.2.8 mais aussi 4.0.2 dans sa propre collection ;
  • Python 2.7.5 et 3.3.2 ;
  • PHP 5.4.16 et 5.5.6 ;
  • Perl 5.16.3.
La cerise sur le gâteau ?

Docker serait-il le nouveau chouchou de Red Hat ? Quoi qu'il en soit, Red Hat annonce que des Dockerfiles sont disponibles pour certaines collections, afin d'aider les développeurs à construire et déployer rapidement des applications sous forme de conteneurs. C'est KVM qui va être jaloux !

Télécharger ce contenu au format Epub

Lire les commentaires

MonitoringLover ? Viens au BarCamp Centreon #5 le 22 novembre 2014 à Paris

11 novembre, 2014 - 11:36

Centreon est un logiciel libre de supervision. Il collecte, consolide et présente les métriques de disponibilité et de performance des infrastructures IT.

Les équipes de développement de Centreon organisent leur cinquième Barcamp le samedi 22 novembre prochain. Traditionnellement hébergé à Gentilly dans les locaux de la société éditrice de Centreon, l'événement aura lieu cette fois au Loft Bastille à Paris le 22 novembre.

Pendant une journée, nous échangerons ensemble autour des nouveautés de Centreon et de la supervision en général. L’actualité est riche en ce moment et les ateliers traiteront également des projets Rudder, Docker, Elasticsearch, Sensu, Packetbeat.

Nous aurons également un gros retour d'expérience de l'utilisation de Centreon chez CRITEO par Charles JUDITH et Herve CHRUN : Centreon + Chef + RackMonkey + Gitorious + ModGearman.

Monitoring Lover ? Cette journée est faite pour toi :)

La participation à cet événement est libre et gratuite mais l’inscription est obligatoire.

Des questions, des idées ? écrivez-nous !

Télécharger ce contenu au format Epub

Lire les commentaires

Revue de presse de l'April pour la semaine 45 de l'année 2014

10 novembre, 2014 - 23:42

La revue de presse de l'April est régulièrement éditée par les membres de l'association. Elle couvre l'actualité de la presse en ligne, liée au logiciel libre. Il s'agit donc d'une sélection d'articles de presse et non de prises de position de l'association de promotion et de défense du logiciel libre.

Sommaire

[ZDNet] Créatifs libres et open source: les lauréats étudiants de l'Open World Forum

Par Thierry Noisette, le dimanche 9 novembre 2014. Extrait:

Six projets, nominés à la Student DemoCup, ont été présentés à l'OWF. Les lauréats ont pour objet la mesure de la neutralité du Net, un éditeur visuel pour jeux vidéo 3D et une appli pour les personnes ayant des troubles d’élocution graves.

Lien vers l'article original: http://www.zdnet.fr/actualites/creatifs-libres-et-open-source-les-laureats-etudiants-de-l-open-world-forum-39809259.htm

[Le Monde.fr] Les tablettes au collège, la fausse bonne idée de François Hollande

Par Damien Leloup, le vendredi 7 novembre 2014. Extrait:

«Des cours de codage» et «une tablette et une formation au numérique» pour tous les élèves de cinquième à partir de la rentrée 2016: voilà les deux principaux points du «plan numérique» pour l'école qu'a précisé François Hollande, jeudi 6 novembre sur TF1. Les tablettes au collège, c'est presque une spécialité du président de la République: la Corrèze, son fief, équipe depuis 2010 les collégiens en iPad, la tablette d'Apple, dans le cadre d'un programme pilote qui prévoyait initialement d'équiper les élèves d'ordinateurs portables.

Lien vers l'article original: http://www.lemonde.fr/pixels/article/2014/11/07/les-tablettes-au-college-la-fausse-bonne-idee-de-francois-hollande_4520005_4408996.html

[La Presse] Quand l'austérité est aveugle

Par Mylène Moisan, le vendredi 7 novembre 2014. Extrait:

Miguel Ross était tout content, il avait décroché un super boulot. Il allait aider le gouvernement à économiser de l'argent en trouvant des logiciels libres, donc gratuits, pour remplacer ceux qui coûtent une petite fortune à l'État.

Lien vers l'article original: http://www.lapresse.ca/le-soleil/opinions/chroniqueurs/201411/06/01-4816600-quand-lausterite-est-aveugle.php

[Capital.fr] «Demain, presque tout sera gratuit»

Par Gilles Tanguy, le vendredi 7 novembre 2014. Extrait:

Dans son dernier livre «La Nouvelle Société du coût marginal zéro» (Ed. Les Liens qui libèrent), le célèbre économiste américain Jeremy Rifkin, qui a conseillé Angela Merkel, ne pronostique rien de moins que la fin du capitalisme actuel. Grâce à l'explosion des plates-formes de partage.

Lien vers l'article original: http://www.capital.fr/enquetes/economie/demain-presque-tout-sera-gratuit-978272

Et aussi:

[Silicon.fr] L'Open Source gagne du terrain dans l'administration

Par Alain Merle, le jeudi 6 novembre 2014. Extrait:

L’Open Source infuse de plus en plus de couches d’infrastructures au sein de l’administration. Ce mouvement est doublement bénéfique: il limite l’adhérence aux grandes technologies propriétaires et laisse libre court à l’expérimentation, explique la DSI de l’Etat dans cette tribune.

Lien vers l'article original: http://www.silicon.fr/open-source-administration-bases-donnees-cloud-tribune-101296.html

[Challenges] "Open innovation": quand les grands groupes lorgnent les start-up

Par Olivier Ezratty, le jeudi 6 novembre 2014. Extrait:

Olivier Ezratty, consultant high-tech, explique comment les grands groupes lorgnent sur les start-up pour faire éclore l'innovation à bon compte. Opération gagnant-gagnant?

Lien vers l'article original: http://www.challenges.fr/tribunes/20141104.CHA9800/innovation-ouverte-quand-les-grands-groupes-lorgnent-les-start-up.html

[Next INpact] L'Allemagne pourrait forcer les sociétés américaines à dévoiler leurs codes-source

Par Vincent Hermann, le mercredi 5 novembre 2014. Extrait:

L’Allemagne travaille actuellement sur un projet de loi assez radical: l’obligation pour les entreprises américaines de montrer patte blanche si elles veulent fournir du matériel et des services à des secteurs jugés critiques de l’économie. Une décision qui pourrait largement favoriser les sociétés allemandes, en particulier Deutsche Telekom.

Lien vers l'article original: http://www.nextinpact.com/news/90772-l-allemagne-pourrait-forcer-societes-americaines-a-devoiler-leurs-codes-source.htm

Et aussi:

[01netPro.] L'Open source et l'Inria, une relation durable

Par Marie Jung, le mardi 4 novembre 2014. Extrait:

Depuis 30 ans, l'engagement de l'Inria en faveur des logiciels libres ne faiblit pas. Présent à l'Open World Forum, l’institut de recherche a fait le panorama de ses différentes initiatives dans le domaine.

Lien vers l'article original: http://pro.01net.com/editorial/630702/l-open-source-et-l-inria-une-relation-durable

Télécharger ce contenu au format Epub

Lire les commentaires

Gel de Debian 8.0 Jessie

10 novembre, 2014 - 23:27

Le gel de Debian 8, nom de code Jessie, la future version stable donc, a eu lieu comme prévu le 5 novembre 2014 à 23h59.

NdM : pour mémoire, Debian gère une version ancienne dite oldstable encore mise à jour (Debian 6 Squeeze pour l'instant), une version courante dite stable (Debian 7 Wheezy), une version avancée/préparatoire dite testing (Debian 8 Jessie) et une version en évolution constante dite unstable (nom fixe, Debian Sid). Tous les noms de version sont tirés des noms de personnage des films d'animation Toy Story (à venir Debian 9 Stretch et Debian 10 Buster).

Les changements possibles ne sont plus que des corrections de bogues critiques et importants dans des logiciels qui ne font pas partie du noyau. À 18h (UTC) le jour de gel, 310 bugs critiques pour la sortie de Jessie étaient recensés. Des paquets non indispensables contenant des bugs critiques pourront être supprimés.

Comme de coutume, aucune date de sortie n'est prévue (mais la politique de gel prévoit des étapes les 5 décembre 2014, janvier et février 2015).

D'après le site listant les paquets Debian, les versions suivantes devraient être présentes (liste évidemment non exhaustive) :

  • noyaux Linux 3.16.3 / Kfreebsd 10.1 ;
  • Xen 4.4 / QEMU-KVM 2.1 ;
  • Apache 2.4.10 / Nginx 1.6.2 ;
  • MySQL Server 5.5.39 / Mariadb 10.0.14 /PostgreSQL 9.4 ;
  • Squid 3.4.8 ;
  • Exim 4.84 / Postfix 2.11.2 ;
  • Dovecot 2.2.13 / Cyrus 2.4.17 ;
  • Gnome 3.14 / KDE 4.14.2 / Xfce 4.10.1.
Télécharger ce contenu au format Epub

Lire les commentaires

Debian bug Squashing Party (Jessie) du 14 au 16 novembre 2014 à Paris

9 novembre, 2014 - 16:11

Une chasse aux bogues (Bug Squashing Party, BSP) est organisée dans les locaux de Mozilla à Paris (Mozilla, 16 bis boulevard Montmartre, 75009 Paris, France). L'évènement aura lieu du vendredi 14 novembre jusqu'au dimanche 16.

Le but d'une BSP est de rassembler des contributeurs Debian pour corriger un maximum de bogues dans la distribution Debian. Des développeurs Debian seront présents pour aider à comprendre le fonctionnement du projet ainsi qu'aider à l'intégration des correctifs à Debian.

Pour des raisons d'organisation, l'inscription sur le Wiki Debian ou sur meetup.com est obligatoire.

Télécharger ce contenu au format Epub

Lire les commentaires

Votre blogue à la maison sur Raspberry Pi

9 novembre, 2014 - 14:42

Nous verrons dans ce tutoriel comment installer un Raspberry Pi pour en faire un serveur web hebergé chez vous, derriere votre box internet.

    Sommaire Conventions établies adresse IP du rpi = 192.168.1.10 (nom : rpi) adresse IP de votre ordinateur = 192.168.1.11 (nom : pc) adresse IP de votre box Internet = 192.168.1.1 (nom : box) votre compte sur le pc = votre_login_pc votre compte sur le rpi = votre_login_rpi nom du site = nomsite.sytes.net (un fournisseur de DNS dynamique gratuit)
    • Je n'utilise pas sudo, donc les commandes se font par un passage en root par su ;
    • Sur le rpi, la connexion est possible par wifi avec une clé USB, mais j'utilise l'Ethernet ;
    • Le tutoriel est entièrement basé sur Linux et il n'y a pas d'interface graphique, sauf accident. J'ai testé TV + souris + clavier, je n'en ai pas trouvé l'intérêt dans le cadre choisi ici ;
    • Lorsque le système sera sur la clé USB, il restera une seule sortie USB, suffisante pour une utilisation du clavier s'il y a besoin d'une connexion en mode console pour un dépannage ;
    • La légèreté a été privilégiée contre toute autre considération, entraînant le choix de Nginx et de Pluxml. Nginx est réputé pour être moins lourd qu'Apache, et Pluxml n'utilise pas de bases de données. Mais d'autres choix peuvent être faits.
    Achat du rpi

    J'ai acheté les produits ci-dessous chez www.kubii.fr.

    32,99 € Raspberry Pi 512Mo Model B 3,15 € Cordon d'alimentation 1.8 mètres, USB A M-MICRO B M 7,90 € Adaptateur USB euro noir 2,40 € Cable HDMI 2 mètres 6,87 € Boitier 11,95 € Expédition 65,26 € TOTAL

    Après cet achat et après avoir fait du rangement chez moi, j'ai trouvé un vieux mini-hub USB 4 ports avec son câble USB mâle-mini mâle (ou micro) qui permet d'assurer l'alimentation du rpi et d'avoir plus d'entrées USB. Mais il faut avoir la bonne tension, je n'y connais rien, donc si vous n'êtes pas sûr, achetez tout le nécessaire. La longueur des câbles doit être décidée en fonction de l'endroit où vous poserez votre rpi (prise de courant, boîtier Internet, TV). De plus, si vous n'en avez pas, achetez aussi un câble Ethernet. Vous aurez aussi besoin d'une carte SD et d'une clé USB de 8 Go. Si vous suivez ma configuration, achetez la carte SD la plus petite et la moins chère, elle ne servira qu'à démarrer, le reste étant sur la clé USB. Celle-ci servira de disque dur, elle doit donc être robuste et rapide, mais les spécifications ne sont jamais précisées. Je possède trois clés USB et une carte SD de classe 4, j'ai donc fait des tests de lecture/écriture, peu fiables apparemment, mais qui donnent peut-être des indications. J'ai tout formaté en ext4.
    Tests de lecture (relancer plusieurs fois pour trouver une moyenne) :

    hdparm -t --direct /dev/sdc sd 20 MB/s hdparm -t --direct /dev/sdd usb1 29 MB/s hdparm -t --direct /dev/sde usb2 22 MB/s hdparm -t --direct /dev/sdf usb3 22 MB/s

    Tests d'écriture (relancés plusieurs fois pour trouver une moyenne) :

    sync;time bash -c "(dd if=/dev/zero of=/mnt/test bs=8k count=10000; sync)" sd 930 MB/s usb1 1.1 GB/s usb2 1.1 GB/s usb3 850 Mb/s

    Bien sûr, ces résultats en écriture sont délirants, mais je constate que la SD et l'USB3 sont les moins rapides, et que l'USB1 s'en sort le mieux, c'est donc celle que j'ai choisie pour installer Raspbian.

    Installation de Raspbian et partitionnement

    Plusieurs distributions sont disponibles, j'ai choisi la Raspbian Wheezy, une dérivée de la Debian Wheezy, téléchargeable ici. Elle se présente sous la forme AAAA-MM-JJ-wheezy-raspbian.img et pèse 500 Mb. Vous la dézippez sur le PC et l'installez sur la clef USB (/dev/sdX avec X=c dans mon cas, mais ça peut changer chez vous) par la commande :

    dd if=AAAA-MM-JJ-wheezy-raspbian.img of=/dev/sdX

    Attention : /dev/sdX doit bien être votre clef USB, et non un disque dur, sinon le contenu sera écrasé. Vous obtiendrez le partitionnement suivant :

    • un espace vide de 4 Mb (taille probablement aléatoire)
    • partition /dev/sdX1 en FAT32 d'une taille de 56 Mb, c'est la partition /boot
    • partition /dev/sdX2 en ext4 d'une taille de 1.75 Gb, la partition système /

    Sur le PC vous formatez votre carte SD en FAT32 (/dev/sdY avec Y=d dans mon cas). Ensuite vous montez la partition /boot de votre clef USB, et la partition de la carte SD, afin de copier les fichiers de démarrage de la carte USB vers la carte SD :

    mkdir /tmp/mnt_usb ; mount -t vfat /dev/sdX1 /tmp/mnt_usb mkdir /tmp/mnt_sdcard ; mount -t vfat /dev/sdY1 /tmp/mnt_sdcard cp -av /tmp/mnt_usb/* /tmp/mnt_sd/

    Il faut indiquer maintenant au rpi où se situe la partition système. Pour cela éditez le fichier cmdline.txt de la carte SD, /tmp/mnt_sd/cmdline.txt, et remplacez root=/dev/mmcblk0p2 (ce nommage de la carte SD peut être différent chez vous) par root=/dev/sda2 : ce qui se présente actuellement sous le nom de /dev/sdY2 (ou autre) sur votre ordinateur, sera nommé /dev/sda2 sur le rpi. Vous pouvez démonter la carte et la clef USB. Cette dernière peut être laissée en l'état ou repartitionnée selon vos besoins.

    Personnellement j'ai supprimé l'espace vide et la partition FAT32 puis déplacé /dev/sdY2 au début du disque en l'agrandissant à 3 Go (actuellement mon / ne dépasse pas 1,5 Go).

    Il est aussi possible de créer d'autres partitions (swap, données, etc.), mais vous pourrez toujours le faire ultérieurement si besoin. Il y a aussi un fichier de swap de 100 Mo dans le système qu'on peut réduire ou agrandir (/etc/dphys-swapfile & /var/swap), mais n'ayant pas de problème de mémoire je n'y ai pas touché (mon blogue est très léger et requiert entre 200 et 250 Mo sur les 512 Mo du rpi).

    Vous pouvez maintenant insérer la carte SD et la clef USB sur le rpi, connecter le câble Ethernet et le câble d'alimentation, et enfin lancer la petite bestiole.

    Configuration de base du rpi Raspi-config

    Le rpi a démarré et devrait fonctionner. Comment vous connecter ? La première chose à faire est de consulter votre boîtier Internet pour connaître l'adresse IP dynamique attribuée au rpi. Vous trouvez par exemple 192.168.1.30. La commande ssh pi@192.168.1.30 avec le mot de passe raspberry vous permet de vous identifier avec l'utilisateur par défaut pi. Cette commande ssh nom_user@adresse_ip_rpi est la seule commande vous permettant d'accéder au rpi sans interface graphique. Commencez par attribuer un mot de passe à root par sudo passwd root, vous permettant de vous identifier en root par su, afin de de configurer le rpi avec la commande raspi-config (ce menu peut changer si votre version de raspbian est plus récente que la mienne). Il est imprudent de s'indentifier directement en root par SSH, nous verrons comment l'interdire plus loin.

    Dorénavant nous serons presque exclusivement en root pour toute la suite des démarches :

    ssh pi@192.168.1.30 sudo passwd root password su raspi-config

    La dernière commande affiche cet écran sur 2 colonnes, chaque ligne pouvant être sélectionnée pour modification; je mets en commentaire à droite mes propres choix.

    info Information about this tool expand_rootfs Expand root partition to fill SD card # inutile overscan Change overscan # inutile configure_keyboard Set keyboard layout # mettez fr pour avoir l'azerty en cas de connexion TV change_pass Change password for 'pi' user # votre mot de passe change_locale Set locale # je garde par défaut [*] en_GB.UTF-8 UTF-8, sinon la connexion SSH est graphiquement polluée change_timezone Set timezone # Europe/Paris change_hostname Set hostname # raspberrypi par défaut memory_split Change memory split # gpu=4 : l'utilisation de la carte graphique étant inutile, je donne au GPU la valeur minimale de 4 Mb, tout le reste étant disponible pour le CPU overclock Configure overclocking : * None 700MHz ARM, 250MHz core, 400MHz SDRAM, 0 overvolt * Modest 800MHz ARM, 250MHz core, 400MHz SDRAM, 0 overvolt * Medium 900MHz ARM, 250MHz core, 450MHz SDRAM, 2 overvolt # j'ai choisi Medium * High 950MHz ARM, 250MHz core, 450MHz SDRAM, 6 overvolt * Turbo 1000MHz ARM, 500MHz core, 600MHz SDRAM, 6 overvolt ssh Enable or disable ssh server # enable boot_behaviour Start desktop on boot? # non camera Enable/Disable camera addon support # non rastrack Add this Pi to Raspberry Pi Map - Rastrack # non update Try to upgrade raspi-config # non (on le fera plus tard)

    Vous pouvez redémarrer, vous reconnecter par SSH, puis passer en root et vérifier que le surcadencement (« overclocking ») est correct de différentes manières :

    vcgencmd get_config int vcgencmd get_config arm_freq cat /boot/config.txt

    Il est aussi conseillé de modifier le fichier /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor en remplaçant powersave par ondemand.

    Au fait, ça chauffe un rpi? Allez voir /opt/vc/bin/vcgencmd measure_temp.

    IP statique

    Pour un serveur Web je préfère une IP statique, ce qui s'obtient en modifiant /etc/network/interfaces (j'ai diésé les options se référant au DHCP et au wifi)

    auto lo iface lo inet loopback iface eth0 inet static address 192.168.1.10 netmask 255.255.255.0 network 192.168.1.1 broadcast 192.168.1.255 gateway 192.168.1.1

    Après un redémarrage, vous vous connectez par ssh pi@192.168.1.10

    Faisons un peu de ménage

    Le rpi va nous servir uniquement à créer un blogue, et c'est tout. Pour un serveur Web, de nombreux éléments sont inutiles, ce qui va nous permettre de faire un grand nettoyage à la tronçonneuse. Pour commencer, supprimons des consoles inutiles dans notre cas. Dans le fichier /etc/inittab vous pouvez diéser les 4 dernières lignes, c'est-à-dire les consoles 3 à 6.

    1:2345:respawn:/sbin/getty --noclear 38400 tty1 2:23:respawn:/sbin/getty 38400 tty2 #3:23:respawn:/sbin/getty 38400 tty3 #4:23:respawn:/sbin/getty 38400 tty4 #5:23:respawn:/sbin/getty 38400 tty5 #6:23:respawn:/sbin/getty 38400 tty6 Gestion des utilisateurs et des groupes

    Je préfère supprimer l'utilisateur pi qui est connu et donc identifiable pour les intrus. Créons d'abord un nouvel utilisateur et son groupe, qui par convention auront pour nom votre_login_rpi

    useradd --home-dir /home/votre_login_rpi --create-home --skel /etc/skel --user-group --uid 1000 votre_login_rpi passwd votre_login_rpi

    Vérifiez que votre nouvel utilisateur est bien créé :

    id votre_login_rpi uid=1000(votre_login_rpi) gid=1000(votre_login_rpi) groups=1000(votre_login_rpi)

    Vous devez vous déconnecter en faisant 2 fois Ctrl+d (exit de root, puis exit de pi), puis vous reconnecter par ssh votre_login_rpi@192.168.1.10, repasser en root et supprimer l'utilisateur pi:

    userdel --remove pi groupdel pi

    Je décide aussi de supprimer les utilisateurs et groupes inutiles
    userdel

    • games
    • lp

    groupdel

    • fax
    • voice
    • cdrom
    • floppy
    • tape
    • sudo
    • audio
    • video
    • lpadmin
    • indiecity
    Les modules son

    lsmod affiche des modules de son dont nous n'aurons pas besoin. Dans le fichier /etc/modules il suffit de commenter le module son #snd-bcm2835

    Suppression des services inutiles

    Pour désactiver un service sans supprimer son script de lancement (dans /etc/init.d/):

    /etc/init.d/nom_service stop update-rc.d -f nom_service remove

    Procédez ainsi avec les services triggerhappy plymouth plymouth-log.

    Pour visualiser les services présents et/ou actifs il faut installer sysv-rc-conf avec les commandes:

    apt-get update apt-get install sysv-rc-conf sysv-rc-conf --list # liste de tous les services présents sysv-rc-conf # interface minimale (mais ça rame) pour activer/désactiver les services Gestion des logiciels Raspbian

    La version de Raspbian que vous avez installée peut nécessiter une première mise à jour, opération que vous effectuerez de temps à autre de cette manière :
    apt-get update qui réactualise le fichier répertoriant les logiciels disponibles ; relancez cette commande chaque fois que vous souhaitez rechercher, mettre à jour ou installer des paquets ; apt-get dist-upgrade fait une mise à jour globale de la distribution

    Il se peut qu'une mise à jour du micrologiciel (« firmware ») du rpi soit nécessaire, pour cela il faut lancer rpi-update. Depuis peu c'est un paquet intégré à Raspbian, mais je ne sais pas s'il est intallé d'office. Si la commande ne répond pas, installez ce paquet par apt-get install rpi-update
    Avant cette mise à jour lancez les commandes /opt/vc/bin/vcgencmd version et uname -a et notez les résultats.
    Puis lancez rpi-update, redémarrez, et comparez les nouvelles versions du système.

    Suppression des paquets inutiles

    Vous pouvez également utiliser raspbian-ua-netinst, qui produit une image minimale sans fantaisie (pas d'utilisateur pi et d'autres trucs).
    Après la mise à jour, dans l'optique d'un serveur Web, de nombreux paquets sont inutiles, donc vous pouvez les supprimer par la commande aptitude purge:

    aptitude purge alsa alsa-base alsa-utils cups-bsd cups-client cups-common dillo gconf-service gconf2 gconf2-common ghostscript gnome-themes-standard libgconf-2-4 gksu libgksu2-0 gnome-accessibility-themes gnome-icon-theme gnome-themes-standard gnome-themes-standard-data gpicview lxde leafpad lightdm liblightdm-gobject-1-0 libxklavier16 lightdm-gtk-greeter libsamplerate0 libqt4-network libqt4-xml libqtdbus4 libqtwebkit4 lxappearance lxde-common lxde-core lxde-icon-theme lxinput lxpanel lxpolkit lxrandr lxsession lxsession-edit lxshortcut lxtask lxterminal pistore scratch squeak-plugins-scratch squeak-vm libfm-data libfm-gtk-bin libfm-gtk1 libfm1 libmenu-cache1 lxmenu-data omxplayer pcmanfm penguinspuzzle sudo xarchiver ed galculator midori wpasupplicant xpdf libraspberrypi-doc libiw30 wireless-tools wpagui libcupsimage2 sudo wolfram-engine

    Pour achever cette suppression, installez deborphan qui vous permettra de lister les dépendances devenues inutiles à supprimer, puis lancez-le

    apt-get update apt-get install deborphan deborphan

    Si vous êtes accro aux éditeurs vi, nano ou autres passez votre chemin. Personnellement, pour la mise en place et la configuration du blogue, j'ai choisi de laisser un peu de X-Window afin d'utiliser le petit éditeur nedit par SSH, donc apt-get install nedit

    Le serveur web Installation de Nginx

    Tout d'abord il faut un utilisateur et un groupe dédiés au serveur web. Raspbian l'a fait pour vous, ils se nomment www-data : uid=33(www-data) gid=33(www-data) groups=33(www-data).
    Il faut aussi un répertoire dédié au blogue :

    mkdir /var/www; chown -R www-data.www-data /var/www

    Tant qu'on y est, dans /etc/passwd changez www-data:x:33:33:www-data:/var/www:/bin/sh par www-data:x:33:33:www-data:/var/www:/bin/false afin d'empêcher une connexion sous ce nom, ce qui est plus sécurisé, mais vous devrez tout faire en root et penser à rétablir les propriétaires pour chaque fichier et répertoire créé ou modifié. Pour cela :

    chown -R www-data.www-data /var/www/répertoire # pour la totalité du répertoire chown www-data.www-data /var/www/répertoire/fichier # pour un fichier

    Passons à l'installation proprement dite de Nginx

    apt-get update aptitude install nginx-full nginx-common geoip-database libgeoip1

    Avec les dépôts de Raspbian, j'ai eu la version 1.2.1-2.2 de Nginx, qui date de juillet 2012, alors que la version stable de juin 2013 est la 1.4.0. Mais rien ne vous empêche de compiler aux petits oignons la dernière version de Nginx, avec tous les modules qui vous plaisent.

    Ensuite, pas de serveur web sans php (NdM: enfin sauf LinuxFr.org bien sûr :-)

    apt-get update aptitude install php5 php5-common php5-fpm php5-gd libonig2 libqdbm1 Configuration de Nginx

    Les fichiers de configuration de Nginx sont sous /etc/nginx, les principaux étant:

    • nginx.conf le fichier principal de configuration
    • sites-available/ répertoire contenant les fichiers de configuration du ou des sites
    • sites-enabled/ répertoire contenant les fichiers de configuration du ou des sites actifs (liens symboliques vers le répertoire site-availables)

    Maintenant on va faire un peu joujou avec le serveur, ca vous fera comprendre un peu mieux comment ça se passe. D'abord, dans le fichier /etc/hosts du pc, ajoutez l'adresse IP du rpi et le nom du site : 192.168.1.10 nomsite.sytes.net.

    Si, comme moi, vous avez un XP virtuel installé, il faut mettre la même information dans le fichier C:\windows\system32\drivers\etc\hosts, ce qui permettra de vérifier l'aspect du blog sur un autre système d'exploitation.

    Nginx a été installé, mais pas encore activé. Pour lancer un service sur Raspbian : service nginx start (start pour démarrer le serveur, restart pour le relancer, stop pour l'arrêter).

    Ouvrez un navigateur web et entrez l'adresse IP du rpi, vous devriez obtenir un « Welcome to nginx! »

    Mais ce que vous voulez, c'est créer votre propre site, il faut donc configurer un fichier spécifique, ce sera donc /etc/nginx/sites-available/nomsite, avec une configuration minimale pour tester.

    server { listen 80; root /var/www; server_name localhost; location / { index index.php index.html; } # enable php location ~ \.php$ { fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; include fastcgi_params; } }

    Ce site est « available », mais pas « enabled », donc :

    cd /etc/nginx/sites-enabled rm default # suppression du lien sur le site par défaut présent à l'installation de Nginx ln -s ../sites-available/nomsite service nginx restart

    On va maintenant créer deux petits fichiers de test dans le repertoire /var/www/ où seront rangées toutes les données qui apparaîtront sur votre site. Personnellement, j'ai tout rangé à la racine du répertoire, mais vous pouvez créer un répertoire dédié à votre site sous /var/www/.
    Un premier fichier index.html avec :

    <html><body>Hello world, c'est ma page de mon nouveau site !</body></html>

    Et un petit script php info.php avec :

    <?php phpinfo(); ?>

    N'oubliez pas, vous êtes en root et vous créez des fichiers root pour un serveur dont l'utilisateur est www-data. Les fichiers qui n'ont pas www-data comme propriétaire ne s'afficheront pas sur le site, donc

    chown -R www-data.www-data /var/www/

    ou

    chown www-data.www-data /var/www/index.html /var/www/info.php

    Maintenant affichez dans la barre d'adresse de votre navigateur 192.168.1.10/index.html, et vous devriez voir s'afficher son contenu.
    Pour afficher les infos PHP de votre système, entrez 192.168.1.10/info.php.

    Bon, tout fonctionne, mais le fichier /etc/nginx/sites-available/nomsite est minimaliste. Incapable de faire un tutoriel sur nginx, je vous présente tel quel mon propre fichier, fabriqué à partir de mes recherches, et notamment des références que je donne à la fin. Ce fichier est sûrement approximatif et très perfectible.

    /etc/nginx/sites-available/nomsite

    server { listen 80; server_name localhost: root /var/www; index index.php index.html index.htm; client_max_body_size 20M; # set maximum upload size access_log /var/log/nginx/access.log combined; # format combined pour logwatch error_log /var/log/nginx/error.log; autoindex off; # pour eviter de lister les répertoires # drop.conf include drop.conf; # voir fichier plus bas # default try order location / { # First attempt to serve request as file, then as directory, then as /index.php?$args try_files $uri $uri/ /index.php?$args; } # enable php location ~ \.php$ { try_files $uri =404; fastcgi_index index.php; fastcgi_pass php5-fpm-sock;#/etc/php5/fpm/pool.d/www.conf /etc/nginx/conf.d/php5-fpm.conf fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }

    /etc/nginx/drop.conf

    ### protection de fichers et répertoires contenus dans /var/www/ # # protection des fichiers caches location ~ /\. { deny all; } # # protection du fichier de version de pluxml location /version { return 404; } # #protection de répertoires location ~ /(update|data)/ { deny all; }

    Selon les informations du blogue de pablo-ruth, on configure php5-fm comme suit.

    Création du fichier /etc/nginx/conf.d/php5-fpm.conf :

    upstream php5-fpm-sock { server unix:/var/run/php5-fpm.sock; }

    et modification du fichier /etc/php5/fpm/pool.d/www.conf (le point-virgule dans la ligne suivante indique un commentaire) :

    ;listen = 127.0.0.1:9000 listen = /var/run/php5-fpm.sock

    Pour finir j'ai modifié le fichier /etc/php5/fpm/pool.d/www.conf, mais les valeurs dépendent de la taille du contenu de votre site, vous trouverez des informations dans cette réponse.

    pm = dynamic pm.max_children = 8 pm.start_servers = 3 pm.min_spare_servers = 2 pm.max_spare_servers = 5 pm.max_requests = 500 ;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com ;php_flag[display_errors] = off ;php_admin_value[error_log] = /var/log/fpm-php.www.log ;php_admin_flag[log_errors] = on ;php_admin_value[memory_limit] = 32M php_flag[display_errors] = on php_admin_value[error_log] = /var/log/fpm-php.www.log php_admin_flag[log_errors] = on

    Dans /etc/nginx/nginx.conf il faut dédièser server_tokens off;, ce qui permet de cacher la version de Nginx, ce que vous pouvez tester depuis votre pc par telnet (ou nc ou lynx -head ou d'autres) :

    telnet 192.168.1.10 80 HEAD HTTP/1.1

    Ce qui affiche nginx au lieu de nginx.numversion. Pour cacher plus d'informations, il faut compiler Nginx.

    Vous créez un répertoire pour les journaux de Nginx et redémarrez le service :

    mkdir /var/log/nginx/ service nginx restart Hello The World La box Internet

    Pour le moment vous êtes le seul à pouvoir accéder à votre site, mais le reste de l'univers s'impatiente. Il faut rendre votre site accessible à l'extérieur, d'abord par votre boîtier Internet. Le mien est celui de SFR, mais le principe est le même partout. Dans la partie NAT, Il faut effectuer une translation de port entre votre rpi et l'Internet par le port 80. Vous entrez l'adresse IP du rpi, établissez un protocole TCP, et définissez le port 80 comme port de communication.

    Votre nom de domaine chez noip

    Le boîtier a ouvert une porte, mais il vous manque une adresse. Vous pouvez acheter un nom de domaine, autour de 15 euros, mais dans ma démarche de solutions gratuites, j'utilise un nom de domaine attribué par www.noip.com. Bien sûr, cette solution comporte le risque de la disparition soudaine d'un service gratuit mais privé. Vous pouvez vous inscrire ici, prenez l'option « Free » et créez votre compte No-IP. Vous pouvez choisir un nom selon les disponibilités, en le faisant suivre de .noip.me, .zapto.org, .sytes.net, etc.

    Attention, il y a un petit piège. Remplissez le formulaire, avec par exemple nomsite.sytes.net, et cochez le petit carré blanc « Create my hostname later », et ensuite validez par un Sign Up. Ensuite confirmation par mail, vous êtes redirigé dans votre espace membre et vous pouvez « Add a host ». Ici vous enregistrez votre adresse nomsite.sytes.net, choisissez le type DNS Host(A), et ajoutez l'adresse IP externe de votre boîtier Internet.

    Si vous avez comme moi une adresse IP dynamique, le boîtier de SFR gère bien le lien avec no-ip dans Menu Réseau/DynDNS. Activez le service, sélectionnez no-ip.com, entrez vos compte et password no-ip, ainsi que l'adresse nomsite.sytes.net. La prochaine fois que vous redémarrerez votre boîter Internet, 3 ou 4 minutes suffiront pour que votre nom de domaine soit associé à la nouvelle adresse IP dynamique.

    Si vous êtes chez un autre fournisseur d'accès, vous pouvez utiliser ce logiciel fourni pour no-ip pour mettre à jour votre DNS : http://www.noip.com/downloads.php?page=linux

    Maintenant que votre nom de domaine est visible depuis l'extérieur, dans le fichier /etc/nginx/sites-available/nomsite il faut remplacer server_name localhost; par server_name nomsite.sytes.net; puis

    service nginx restart Installation et configuration de Pluxml

    Récupérez le fichier d'installation ici, dézippez-le et copiez-le dans /var/www/ en lui donnant les droits appropriés.

    chown -R www-data.www-data /var/www/ chmod -R 770 /var/www/ service nginx restart

    Depuis votre navigateur allez à l'adresse http://nomsite.sytes.net/install.php et remplissez le formulaire:

    langue+heure Nom de l'administrateur Identifiant de connexion à l'administration Mot de passe Installer

    Après cela supprimez le fichier /var/www/install.php. Vous pourrez installer différents thèmes, ajouter des extensions, etc. Visitez le site, où vous trouverez un wiki, des thèmes, un forum, etc.

    Modifier le thème

    Un petit conseil si vous souhaitez modifier les fichiers PHP et CSS du thème du blogue (mais rien ne vous y oblige si votre thème vous satisfait) :
    Je n'ai pas supprimé tous les paquets graphiques de Raspbian afin d'éditer ces fichiers plus confortablement avec Nedit. Pour cela vous lancerez ssh -X -Y -p 22 votre_login_rpi@192.168.1.10. Ensuite vous pouvez éditer avec nedit les fichiers concernés situés dans /var/www/themes/defaut/, defaut étant le nom du thème par défaut.

    Par contre cela pose des problèmes de droit sur ces fichiers dont www-data.www-data est propriétaire. Deux possibilités s'offrent à vous :

    • ajoutez votre_login_rpi au groupe www-data dans /etc/group ;
    • chmod o+w *.php style.css, édition des fichiers, puis chmod o-w *.php style.css.

    J'ai choisi la deuxième solution, plus contraignante mais plus sécurisée.

    Corriger un bogue

    Il y a un bogue dans Pluxml lorsque les personnes qui viennent poster un commentaire souhaitent inscrire leur site web. Le site nomsite.sytes.net est récupéré tel quel sans « http:// », donc si on clique dessus la redirection ne s'effectue pas. J'utilise le thème « defaut », peut-être que ce boque est absent des autres thèmes. Pour ajouter « http:// » par défaut dans le formulaire, il faut modifier le fichier /var/www/themes/defaut/commentaires.php et remplacer:

    <input id="id_site" name="site" type="text" size="20" value="<?php $plxShow->comGet('site',''); ?>" />

    par

    <input id="id_site" name="site" type="text" size="20" value="<?php $plxShow->comGet('site','http://'); ?>" /> Administration du serveur

    Maintenant vous avez un blogue, vous postez vos articles, recevez des commentaires, etc. Tout va bien. Vraiment bien ? Votre serveur est une porte ouverte sur internet, votre nom de domaine est fixé pour l'éternité, connu du plus grand nombre. Il faut donc lui prodiguer protection et surveillance, à l'aide de quelques outils à mettre en place et à configurer.

    Le pare-feu Iptables

    Je ne vais pas vous faire un cours, mais seulement vous montrer mon pare-feu. Les règles iptables sont le moyen le plus simple de filtrer les entrées/sorties de votre rpi. Attention à cette étape, une mauvaise règle ssh peut vous faire perdre votre connexion avec le rpi, et dans ce cas la seule solution sera de vous connecter via la tv pour réparer le script.

    Il y a 3 scripts à écrire, et pour les rendre plus lisibles, j'emploierai cette nomenclature :

    • adresse.ip.rpi (192.168.1.10)
    • adresse.ip.pc (192.168.1.11)
    • adresse.ip.box (192.168.1.1)

    /etc/init.d/fw

    #!/bin/sh ### BEGIN INIT INFO # Provides: fw # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: pare-feu iptables # Description: iptables ### END INIT INFO case $1 in "start") /etc/fwstart ;; "stop") /etc/fwstop ;; "restart") /etc/fwstop /etc/fwstart ;; esac

    /etc/fwstop

    #!/bin/sh # remise à zero des règles de filtrage iptables -t filter -F iptables -t filter -X iptables -t nat -F iptables -t nat -X iptables -t mangle -F iptables -t mangle -X # nous les faisons pointer par défaut sur ACCEPT iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT

    /etc/fwstart

    #!/bin/sh if=eth0 # remise a zero des règles de filtrage iptables -t filter -F iptables -t filter -X iptables -t nat -F iptables -t nat -X iptables -t mangle -F iptables -t mangle -X # règles par défaut iptables -t filter -P INPUT DROP iptables -t filter -P OUTPUT DROP iptables -t filter -P FORWARD DROP # rebouclage/loopback iptables -t filter -A OUTPUT -o lo -s 0.0.0.0/0 -d 0.0.0.0/0 -j ACCEPT iptables -t filter -A INPUT -i lo -s 0.0.0.0/0 -d 0.0.0.0/0 -j ACCEPT # règles pour abandonner/droper silencieusement les transmissions internes du réseau local iptables -I INPUT -i $if -s adresse.ip.box -d 224.0.0.1/24 -p igmp -j DROP iptables -I INPUT -i $if -s 172.16.255.254 -d 224.0.0.1/24 -p igmp -j DROP # dns local iptables -A OUTPUT -o $if -s adresse.ip.rpi -d adresse.ip.box -p udp -m udp --sport 1024: --dport 53 -m conntrack --ctstate NEW,RELATED,ESTABLISHED -j ACCEPT iptables -A INPUT -i $if -s adresse.ip.box -d adresse.ip.rpi -p udp -m udp --sport 53 --dport 1024: -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT # ssh rpi - pc ### ATTENTION à cette règle : mal écrite, elle supprime votre connexion au rpi ### iptables -A OUTPUT -o $if -p tcp --source adresse.ip.rpi --source-port 22 --destination adresse.ip.pc --destination-port 1024: -j ACCEPT iptables -A INPUT -i $if -p tcp --source adresse.ip.pc --source-port 1024: --destination adresse.ip.rpi --destination-port 22 -j ACCEPT # règles http du serveur iptables -A OUTPUT -o $if -p tcp --source adresse.ip.rpi --source-port 80 --destination-port 1024: -j ACCEPT iptables -A INPUT -i $if -p tcp --source-port 1024: --destination adresse.ip.rpi --destination-port 80 -j ACCEPT # règles http du rpi comme client internet, à activer pour les mises à jour apt-get et Pluxml (plugins et une partie de l'administation), à dédièser selon les besoins (les mises à jour ne sont pas fréquentes, une fois par semaine au maximum) #iptables -A OUTPUT -o $if -s adresse.ip.rpi -d 0.0.0.0/0 -p tcp -m multiport --dports 80,443 -m conntrack ! --ctstate INVALID -j ACCEPT #iptables -A INPUT -i $if -s 0.0.0.0/0 -d adresse.ip.rpi -p tcp -m multiport --sports 80,443 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT # whois pour awstats iptables -A OUTPUT -o $if -p tcp --source adresse.ip.rpi --source-port 1024: --destination-port 43 -j ACCEPT iptables -A INPUT -i $if -p tcp --destination adresse.ip.rpi --source-port 43 --destination-port 1024: -j ACCEPT # ntp iptables -A OUTPUT -o $if -p udp --source adresse.ip.rpi --source-port 123 --destination-port 123 -j ACCEPT iptables -A INPUT -i $if -p udp --source-port 123 --destination adresse.ip.rpi --destination-port 123 -j ACCEPT # journalisation des connexions abandonnées/dropées iptables -t filter -A INPUT -p all -j LOG --log-prefix="DROPIN: " iptables -t filter -A OUTPUT -p all -j LOG --log-prefix="DROPOUT: "

    Vous pouvez enregistrer votre script puis le démarrer

    update-rc.d fw defaults service fw start

    Il est recommandé d'installer nmap et de vérifier l'état des ports du rpi par nmap -v nomsite.sytes.net.

    Rsyslog

    Pour obtenir une meilleure lisibilité des journaux du site, il faut modifier /etc/rsyslog.conf, au début de la partie RULES et avant les premières règles.

    :msg, contains, "DROPIN: " -/var/log/dropin.log & ~ :msg, contains, "DROPOUT: " -/var/log/dropout.log & ~

    En lien avec les 2 dernières règles de /etc/fwstart, ceci permettra à Iptables d'envoyer les messages de drop dans des fichiers à part, à consulter régulièrement.

    service fw restart service rsyslog restart SSH

    SSH est un moyen sécurisé de connexion entre ordinateurs. Le fichier /etc/ssh/sshd_config du rpi peut être configuré plus finement. Attention des erreurs vous feront perdre votre connexion SSH avec le rpi. Améliorons le fichier /etc/ssh/sshd_config :

    • Port 22 par défaut le port SSH est 22, vous devriez en choisir un autre (et revoir les règles SSH d'Iptables). Prenez un port disponible (voir /etc/services et Google).
    • PermitRootLogin no il vaut mieux activer cette option et vous loguer sur le rpi comme utilisateur non privilégié, puis passer en root par su
    • AllowUsers votre_login_pc@adresse.ip.pc seul l'utilisteur « votre_login_pc » de cette machine (le nom de l'utilisateur du pc) pourra se connecter au rpi par SSH (ne pas confondre le nom de l'utilisateur du rpi « votre_login_rpi » et le nom d'utilisateur du pc « votre_login_pc »)

    Puis service ssh restart

    Quelques commandes SSH :

    • connexion simple

    ssh -p 22 votre_login_rpi@adresse.ip.rpi

    • connexion graphique
    ssh -X -Y -p 22 votre_login_rpi@adresse_ip_rpi nedit /var/www/themes/defaut/style.css &
    • depuis le pc, copie de fichier du pc vers le rpi
    scp -P 22 nom_fichier votre_login_rpi@adresse_ip_rpi:/home/votre_login_rpi/ Les clefs SSH

    Il y a une méthode plus sécurisée pour assurer la connexion SSH entre le PC et le rpi, par un système de clefs. Alors que la connexion classique est autorisée par un mot de passe, la connexion par clefs entrepose des données sur les 2 machines, et SSH ira vérifier la validité de ces données sur chacune, ainsi qu'un mot de passe, pour autoriser la connexion. Sur votre PC en tant qu'utilisateur votre_login_pc (je suis sur Arch mais la procédure doit être la même partout) :

    • ssh-keygen -t rsa génération d'une paire de clefs, une clef privée id_rsa et une clef publique id_rsa.pub dans le répertoire par défaut /home/votre_login_pc/.ssh/
    • Enter passphrase (empty for no passphrase): entrez une passphrase, c'est-à-dire un mot de passe
    • Your identification has been saved in /home/votre_login_pc/.ssh/id_rsa
    • Your public key has been saved in /home/votre_login_pc/.ssh/id_rsa.pub

    Il faut maintenant envoyer au rpi la clef publique ssh-copy-id -i ~/.ssh/id_rsa.pub votre_login_rpi@adresse.ip.rpi -p 22

    Vous vous connectez comme auparavant par ssh -p 22 votre_login_rpi@adresse.ip.rpi, mais dorénavant c'est la passphrase qui vous sera demandée.

    Logwatch

    Logwatch parcourt et analyse les fichiers journaux dans /var/log/ et envoie un courriel.
    apt-get install logwatch installe les paquets exim4-base exim4-config exim4-daemon-light heirloom-mailx libdate-manip-perl libyaml-syck-perl logwatch.

    L'installation va jusqu'à sa fin, mais au moment du lancement du serveur de courriels Exim, j'ai eu cette erreur:

    [ ok ] Starting MTA: exim4
    ALERT: exim paniclog /var/log/exim4/paniclog has non-zero size, mail system possibly broken
    C'est un problème avec IPv6 qui n'est pas présent sur le rpi, il faut donc modifier /etc/exim4/update-exim4.conf.conf en remplaçant
    dc_local_interfaces='127.0.0.1 ; ::1' par dc_local_interfaces='127.0.0.1'
    puis lancez update-exim4.conf

    Afin de lire les courriels root sous votre compte votre_login_rpi, modifiez /etc/aliases en ajoutant root:votre_login_rpi
    service exim4 restart

    mkdir /var/cache/logwatch cp /usr/share/logwatch/default.conf/logwatch.conf /etc/logwatch/conf/

    J'ai modifié /etc/logwatch/conf/logwatch.conf en commentant les lignes suivantes :

    #MailTo = root #MailFrom = Logwatch #Service = "-zz-network" #Service = "-zz-sys" #Service = "-eximstats" #mailer = "/usr/sbin/sendmail -t"

    et remplacé « Detail = Low » par « Detail = 10 » afin d'avoir de plus amples informations.

    Un script cron lancera un script logwatch tous les jours à 6h25, l'étude se faisant sur les fichiers journaux de la journée précédente, et sur vos services activés et présents dans le fichier /usr/share/logwatch/default.conf/services. Demain, sous votre compte, vous n'aurez qu'à taper mail.

    Le problème, c'est que Nginx n'est pas présent dans la liste de Logwatch, il faut donc s'en occuper.

    D'abord Logwatch lit un certain format de fichier, c'est pour cela que les fichiers de log de Nginx sont au format combined dans /etc/nginx/sites-available/nomsite access_log /var/log/nginx/access.log combined;
    Nginx rejette le format combined pour error.log, je ne suis pas parvenu à l'intégrer.

    On peut maintenant configurer des fichiers Nginx pour logwatch, en prenant comme modèle les fichiers http.conf.

    cd /usr/share/logwatch/default.conf/logfiles cp http.conf nginx.conf

    et modifier ce dernier en supprimant toutes les lignes LogFile = et Archive =

    puis ajoutez

    LogFile = nginx/*access.log LogFile = nginx/*access.log.1 Archive = nginx/*access.log.*.gz cd /usr/share/logwatch/default.conf/services/ cp http.conf nginx.conf

    et modifier ce dernier en remplaçant au début http par nginx

    Title = "nginx" LogFile = nginx cd /usr/share/logwatch/scripts/services cp http nginx

    pas de modification

    En attendant les prochains courriels de Logwatch, vous pouvez le lancer en direct, en ciblant les services et en utilisant les logs de Today ou Yesterday:

    logwatch --output stdout --format text --detail 10 --service cron --service iptables --service pam_unix --service sshd --service nginx --range Today --hostname raspberry

    Cependant, vous comprendrez mieux ce qui se passe sur votre système en examinant directement les journaux dans /var/log/, et en particulier ceux de /var/log/nginx/, où nginx.error vous informe des problèmes du serveur, et access.log qui vous montrera la liste de vos visiteurs, les tentatives de connexions illicites, etc.

    Logrotate

    Logrotate fait tourner les fichiers journaux dans /var/log/, donc ceux de Nginx aussi. Mon fichier /etc/logrotate.d/nginx se présente comme suit, avec une rotation par semaine :

    /var/log/nginx/*.log { weekly missingok rotate 10 compress delaycompress notifempty create 0640 www-data adm sharedscripts postrotate [ ! -f /var/run/nginx.pid ] || kill -USR1 cat /var/run/nginx.pid` endscript } Sauvegarde du système

    Bon, il y a les méthodes subtiles et la mienne, genre bourrin, mais c'est efficace : débrancher le rpi, retirer la carte SD et l'USB, et les monter sur le pc afin de les sauvegarder dans les répertoires SD et USB.

    cp /chemin_de_montage_sd/* SD/ (en n'oubliant pas le fichier caché .firmware_revision) rsync -aAXv /chemin_de_montage_usb/* USB/

    Pendant que vous y êtes, un petit e2fsck sur la carte et la clef ne sont pas inutiles e2fsck -f -v /dev/sd...

    Bien sûr on peut faire les sauvegardes sans arrêter le rpi, avec rsync ou tar (à distance?) sur les bons répertoires, puis copie scp sur le pc. Mais quand tout est bien installé et finalisé, les sauvegardes deviennent rares et les seules informations à sauvegarder restent les données Pluxml dans /var/www/data/.

    Analyse et tests Awstats

    Afin de lire les statistiques de votre site, créez un répertoire où elles seront lisibles.

    mkdir /var/www/statistiques chown -R www-data.www-data /var/www/statistiques

    Pour utiliser Awstats, vous aurez besoin de Whois, ainsi qu'une règle Iptables, déjà écrite dans le script en 7.1. L'installation se fait ainsi :

    apt-get update apt-get install awstats libnet-xwhois-perl whois cp /etc/awstats/awstats.conf /etc/awstats/awstats.nomsite.sytes.net.conf

    avec quelques lignes à remplacer :

    • LogFile="/var/log/apache2/access.log" par LogFile="/var/log/nginx/access.log"
    • LogFormat=4 par LogFormat=1
    • SiteDomain="" par SiteDomain="nomsite.sytes.net"
    • HostAliases="localhost 127.0.0.1" par HostAliases="localhost 127.0.0.1 nomsite.sytes.net"
    • SkipHosts="" par SkipHosts="192.168.1.11" afin de masquer l'adresse ip de votre pc dans les statistiques, avec une modification de /usr/lib/cgi-bin/awstats.pl comme indiqué ici :

    Remplacez

    my @arrayunreg = map { if (/\(\?[-^\w]\*:(.*)\)/) { $1 } } @$array;

    par

    my @arrayunreg = map { UnCompileRegex($_) } @$array;

    Un script Cron relance régulièrement la mise à jour des statistiques en envoyant des données dans /var/lib/awstats/. C'est le fichier /etc/cron.d/awstats, avec, par exemple, une mise à jour toutes les 2 heures :

    MAILTO=root 5 */2 * * * www-data [ -x /usr/lib/cgi-bin/awstats.pl -a -f /etc/awstats/awstats.nomsite.sytes.net.conf -a -r /var/log/nginx/access.log ] && /usr/lib/cgi-bin/awstats.pl -config=nomsite.sytes.net -update > /dev/null

    Lorsque vous souhaitez lire les statistiques sur votre site, le plus simple est de lancer :

    /usr/share/awstats/tools/awstats_buildstaticpages.pl -dir=/var/www/statistiques/ -update-config=nomsite.sytes.net

    Inscrivez nomsite.sytes.net/statistiques/awstats.nomsite.sytes.net.html dans votre navigateur et vous pourrez voir de nombreuses statistiques sur le mois en cours. Après l'ivresse de votre succès, vous pourrez faire rm /var/www/stat/*

    Tests du site

    Des sites existent pour savoir si votre blogue fonctionne correctement :

    Références

    sans lesquelles je n'aurais pas pu faire cette installation ni ce tutoriel

    Télécharger ce contenu au format Epub

    Lire les commentaires

    OpenWrt Barrier Breaker 14.07 guide vos routes

    8 novembre, 2014 - 08:35

    La communauté OpenWrt a annoncé la nouvelle version de leur système d'exploitation éponyme pour routeurs, le 31 juillet dernier, soit un peu plus d'une année après Attitude Adjustment. La recette du cocktail Barrier Breaker sera disponible sur tous vos routeurs dès leur mise à jour.

    _______ ________ __ | |.-----.-----.-----.| | | |.----.| |_ | - || _ | -__| || | | || _|| _| |_______|| __|_____|__|__||________||__| |____| |__| W I R E L E S S F R E E D O M ----------------------------------------------------- BARRIER BREAKER (14.07) ----------------------------------------------------- * 1/2 oz Galliano Pour all ingredients into * 4 oz cold Coffee an irish coffee mug filled * 1 1/2 oz Dark Rum with crushed ice. Stir. * 2 tsp. Creme de Cacao ----------------------------------------------------- Nouveautés principales depuis Attitude Adjustment (12.09) Principaux changements
    • L'interface web utilise désormais BootStrap
    • Le noyau Linux est passé à la version 3.10
    • Un nouveau système d'init et d'évènements systèmes écrit en C : systemd^W procd
    • Des logiciels/services installables en plus du système de base comme, par exemple :
      • ocserv : service VPN de type OpenConnect
    Les systèmes de fichiers
    • La mise à jour du firmware (sysupgrade) peut être faite sur la mémoire flash NAND
    • Un système de snapshot et de rollback a été rajouté
    • Le système de montage a été réécrit en C pour le rootfs et les block devices.
    Le gestionnaire de configuration UCI
    • Il gère maintenant le test des configurations et permet de revenir sur la dernière configuration qui fonctionnait
    • Le système de déclencheur de changement système a été unifié pour redémarrer les services sur demande
    • Une couche de validation des données a été ajoutée.
    Quel est l'intérêt de mettre OpenWrt sur son routeur ?

    De prime abord, j'ai été un peu sceptique face à l'interface web d'origine de mon routeur qui ne me permettait pas d'avoir une configuration fine de mon réseau.

    Ensuite, ça permet d'avoir des mises à jour régulières des logiciels qui tournent sur le routeur. Ce qui peut permettre de régler des problèmes de sécurité, et autres, assez facilement en téléchargeant une nouvelle image et en le flashant.

    Enfin, OpenWrt m'a permis d'ajouter de nouvelles fonctionnalités sur mon routeur qui n'étaient pas incluses dans le firmware de base, comme le service VPN par exemple, ou encore la séparation en sous-réseaux différents selon les ports ethernet disponibles.

    En outre, on obtient du confort, notamment grâce à un accès SSH à la machine. Donc la possibilité d'exécuter des commandes directement dessus et de lire les sorties d'erreurs facilement lors de tests.

    Télécharger ce contenu au format Epub

    Lire les commentaires

    Joker, un logiciel pour doubler des films sous licence GPL

    7 novembre, 2014 - 09:30

    Après avoir travaillé 6 ans dans deux studios de post-production parisiens spécialisés dans le doublage de film et de série, j'ai décidé de me mettre à mon compte et de développer un nouvel outil sous licence GPL. Il faut savoir que les logiciels utilisés en post-production sont quasiment tous propriétaires (Pro Tools, Final Cut, Avid, Mosaic, Synchronos…). Seul ffmpeg sert de temps en temps de boîte à outils vidéo mais parce que c'est gratuit et que ça permet de bidouiller dans son coin.

    Joker est un logiciel capable de lire un fichier vidéo et un fichier texte (différents formats sont supportés). La lecture peut être synchronisée à un enregistreur externe en MIDI. La bande rythmographique qui défile donne des indications très précises de timing de début et fin. Il existe une vidéo illustrant le fonctionnement du logiciel et une autre du résultat que l'on peut obtenir (un peu d'indulgence, j'enregistre avec des amis débutants).

    Pour information, j'ai créé ma société (« Phonations ») et j'essaye de faire financer le développement par les professionnels. L'outil a entre autres choses servi à doubler la dernière saison de How I Met Your Mother. Cependant, j'ai fait le choix de le diffuser sous licence libre GPL pour deux raisons :

    • favoriser sa dissémination au sein des studios de doublage ;
    • permettre à des particuliers de s'approprier l'outil.

    J'utilise le framework Qt et pour l'instant le projet fonctionne sur MacOSX et Windows qui correspondent à l'environnement de mes clients. J'ai commencé à regarder la compatibilité sur Ubuntu mais ça avance doucement par manque de temps. Si quelqu'un est intéressé pour m'aider la dessus, le projet est disponible sur Github.

    Les versions Windows et Mac sont téléchargeables sur le site du projet. Pour tester, vous pouvez utiliser cette séquence vidéo (plus texte original) et une adaptation réalisée par un ami adaptateur de doublage.
    NB: pour comprendre le principe de la bande rythmographique, je vous invite à regarder une petite vidéo sur le doublage.

    Télécharger ce contenu au format Epub

    Lire les commentaires