Sortie de Debian 8.0 Jessie

Debian Jessie vient de sortir et remplace Wheezy en tant que version « stable ». C’est la 8ème version « stable » du projet Debian.

Son développement aura pris 2 ans, ce qui est la durée voulue entre 2 versions majeures par Debian.
Ce temps de développement long permet à ses utilisateurs d’éviter de passer leur temps à mettre à jour leur distribution ainsi que de ne pas avoir à craindre de régression durant ce laps de temps, ce qui est essentiel quand on a besoin d’une machine fonctionnelle tous les jours.
Debian porte une forte attention à délivrer le moins de bugs possible dans sa version stable. Debian préfère inclure les logiciels dans une version qui a subi une période de correction de bugs qu’une nouvelle version à peine démoulée dont on ne peu pas encore estimer la fiabilité. De plus, une période de « freeze » assez longue (6 mois), où l’on n’introduit plus de nouvelle version des programmes dans la distribution permet de s’assurer d’avoir décelé et résolu les bugs gênants avant la mise en production.

Cette politique explique la qualité et robustesse de la distribution en même temps que son défaut, à savoir des versions déjà vieilles des logiciels à sa sortie et que l’on devra garder pour la plupart pour 2 ans… Mais bon, si on utilise son PC pour produire, ce qu’il compte c’est qu’il marche bien!

Voici les versions de quelques logiciels :

  • Noyau linux 3.16.7
  • Mesa 10.3.2
  • Iceweasel(Firefox) 31.6
  • LibreOffice 4.3.3
  • Apache 2.4.10
  • MySQL 5.5
  • Python 3.4.2 & 2.7.9

Il y a le choix de l’interface graphique qui vous convient :

  • Gnome 3.14.1
  • KDE 4.14
  • XFCE 4.10
  • Cinnamon 2.2.16
  • LXDE 1.809

Le site web de Debian est toujours imbitable :

debian websiteVoici donc un bon marque page pour télécharger les ISOs des installeurs de Debian 8.0. Note, vous pouvez facilement utiliser une clé USB à la place d’un CD pour démarrer l’installeur.

Mes 2 astuces que je fais toujours :

J'aime(3)Ferme-la !(0)

Installer un .deb en local: Exemple avec Skype

Parfois, on nous demande d’installer un programme privateur et espion sur un PC sous Linux. Exemple: Skype ou Teamviewer pour partager l’écran, Google Chrome pour regarder Netflix…
Sauf qu’on a pas trop envie d’installer ce genre de bestiole dans le système !
On peut cependant l’installer uniquement dans un compte utilisateur pour contenir l’intrusion. Exemple avec l’installation de Skype.

Skype propose un paquet .deb sur son site web. Mais comment connaite la liste des paquets que je dois installer pour le faire marcher sans l’installer dans le système? Facile avec gdebi:

# gdebi --apt-line skype-debian_4.3.0.37-1_i386.deb
Reading package lists... Done
Building dependency tree
Reading state information... Done
Building data structures... Done
Building data structures... Done
gcc-4.9-base:i386 gstreamer1.0-plugins-base:i386 i965-va-driver:i386 libasound2-plugins:i386 libasound2:i386 libasyncns0:i386 libattr1:i386 libaudio2:i386 libavahi-client3 libavahi-client3:i386 libavahi-common-data libavahi-common-data:i386 libavahi-common3 libavahi-common3:i386 libavcodec56:i386 libavresample2:i386 libavutil54:i386 libbsd0:i386 libc-dev-bin libc6 libc6-dev libc6-i386 libc6-i686:i386 libc6:i386 libcap2 libcap2:i386 libcdparanoia0:i386 libcomerr2:i386 libcups2:i386 libdbus-1-3:i386 libdrm-intel1:i386 libdrm-nouveau2:i386 libdrm-radeon1:i386 libdrm2:i386 libedit2:i386 libelf1:i386 libexpat1:i386 libffi6:i386 libflac8:i386 libfontconfig1:i386 libfreetype6:i386 libgcc1:i386 libgcrypt20 libgcrypt20:i386 libgl1-mesa-dri:i386 libgl1-mesa-glx:i386 libglapi-mesa:i386 libglib2.0-0:i386 libglu1-mesa:i386 libgmp10:i386 libgnutls-deb0-28:i386 libgpg-error0:i386 libgsm1:i386 libgssapi-krb5-2 libgssapi-krb5-2:i386 libgstreamer-plugins-base1.0-0:i386 libgstreamer1.0-0:i386 libhogweed2:i386 libice6:i386 libjack-jackd2-0:i386 libjbig0:i386 libjpeg62-turbo:i386 libjson-c2:i386 libk5crypto3 libk5crypto3:i386 libkeyutils1:i386 libkrb5-3 libkrb5-3:i386 libkrb5support0 libkrb5support0:i386 liblcms2-2:i386 libllvm3.5:i386 liblzma5:i386 libmng1:i386 libmp3lame0 libmp3lame0:i386 libnettle4:i386 libogg0:i386 libopenjpeg5:i386 libopus0:i386 liborc-0.4-0:i386 libp11-kit0:i386 libpam-systemd libpciaccess0:i386 libpcre3:i386 libpng12-0:i386 libpulse0:i386 libqt4-dbus:i386 libqt4-network:i386 libqt4-opengl:i386 libqt4-xml:i386 libqt4-xmlpatterns:i386 libqtcore4:i386 libqtdbus4:i386 libqtgui4:i386 libqtwebkit4:i386 libsamplerate0:i386 libschroedinger-1.0-0:i386 libselinux1:i386 libsm6:i386 libsndfile1:i386 libspeex1:i386 libspeexdsp1:i386 libsqlite3-0:i386 libssl1.0.0 libssl1.0.0:i386 libstdc++6:i386 libsystemd0 libsystemd0:i386 libtasn1-6 libtasn1-6:i386 libtheora0:i386 libtiff5 libtiff5:i386 libtinfo5:i386 libtxc-dxtn-s2tc0:i386 libudev1 libudev1:i386 libuuid1 libuuid1:i386 libva1:i386 libvdpau1:i386 libvisual-0.4-0:i386 libvisual-0.4-plugins:i386 libvorbis0a:i386 libvorbisenc2:i386 libvpx1:i386 libwrap0:i386 libx11-6:i386 libx11-xcb1:i386 libx264-142:i386 libxau6:i386 libxcb-dri2-0:i386 libxcb-dri3-0:i386 libxcb-glx0:i386 libxcb-present0:i386 libxcb-sync1:i386 libxcb1:i386 libxdamage1:i386 libxdmcp6:i386 libxext6:i386 libxfixes3:i386 libxi6:i386 libxrender1:i386 libxshmfence1:i386 libxss1:i386 libxt6:i386 libxtst6:i386 libxv1:i386 libxvidcore4:i386 libxxf86vm1:i386 locales systemd systemd-sysv udev uuid-runtime va-driver-all:i386 vdpau-va-driver:i386 zlib1g:i386

Et voila, plus qu’à recopier la dernière ligne qui contient la liste des paquets à installer après un # apt-get install

Pour ensuite utiliser Skype, je décompresse le .deb localement dans un dossier de l’utilisateur.

$ mkdir ~/skype
$ dpkg -x skype-debian_4.3.0.37-1_i386.deb ~/skype

On peut alors le lancer pour vérifier que ça marche:

$ ~/skype/usr/bin/skype

Pour l’avoir dans les applications disponibles dans Gnome ou KDE, copiez le fichier ~/skype/usr/share/applications/skype.desktop dans ~/.local/share/applications/. Vous devrez éditer les chemins dans ce fichier pour pointer correctement vers l’exécutable et l’icône.

[Desktop Entry]
Name=Skype
Comment=Skype Internet Telephony
Exec=/home/user/skype/usr/bin/skype %U
Icon=/home/user/skype/usr/share/pixmaps/skype.png
Terminal=false
Type=Application
Encoding=UTF-8
Categories=Network;Application;
MimeType=x-scheme-handler/skype;
X-KDE-Protocols=skype

J'aime(1)Ferme-la !(0)

Date de sortie pour Debian 8.0 (Jessie)

L’équipe de publication Debian a annoncé sur la liste de développement que Debian 8.0 (nom de code: Jessie) sortira officiellement le 25 Avril 2015 (sauf retard de dernière minute).

Cette version viendra remplacer Debian 7 (nom de code: Wheezy) en tant que branche « stable » de Debian.

Et à la même occasion, la préparation de la prochaine Debian 9 (nom de code: « Zurg ») va commencer dans la branche « testing ».

Si dans votre fichier /etc/apt/sources.list vous faites référence à « jessie », vous passerez de « testing » à « stable » en douceur. Vous n’avez rien à faire.

J'aime(4)Ferme-la !(2)

Solution au message « La date de dernière écriture du superbloc est dans le futur »

Au démarrage de mon ordi sous Debian, j’avais ce message qui apparaissait à l’écran :

La date de dernière écriture du superbloc est dans le futur. (de moins d’un jour, probablement à cause d’une horloge matérielle mal configurée)

Le problème provient du fait que l’horloge matérielle (CMOS ou RTC) n’est pas alignée sur l’heure UTC. Pour régler cela, une simple commande depuis linux :

# timedatectl set-local-rtc 0

J'aime(2)Ferme-la !(0)

Aide à une noob par reverse SSH

Imaginons que Alice veuille se faire dépanner par Bob.

Problème, Bob ne peut pas se connecter directement à l’ordinateur d’Alice à cause d’un routeur NAT (une box ADSL, un réseau d’entreprise, un réseau wifi public, etc…).

Il existe un moyen assez simple pour Alice de se faire dépanner grâce à SSH.

Bob a un peu de travail avant

Bob va créer sur sa machine un utilisateur aux droits très restreints. Alice va utiliser celui-ci pour faire un tunnel inversé. On commence par la création du nouvel utilisateur dénommé « help » :

# adduser help

Dans /etc/ssh/sshd_config faites un règle spéciale pour cet utilisateur :

Match User help
   #AllowTcpForwarding yes
   X11Forwarding no
   PermitTunnel no
   GatewayPorts no
   AllowAgentForwarding no
   PermitOpen localhost:60000
   ForceCommand echo 'Only reverse port forwarding allowed'

En gros, l’utilisateur ne peut qu’écouter sur le port 60000 local.

Authentification par clé de chiffrement

Bob doit avoir une paire de clés de chiffrement SSH.
Ensuite il doit transmettre sa clé publique à Alice. Pour cela, Bob doit envoyer son fichier ~/.ssh/id_dsa.pub à Alice.

Alice doit vérifier avec Bob que la clé reçue est bien la bonne. Pourquoi? Parce qu’Alice va maintenant autoriser le détenteur de la clé privée correspondante (Bob logiquement) à se connecter à son compte avoir son mot de passe. Pour cela, Alice doit ajouter le contenu du fichier « id_dsa.pub » à son fichier ~/.ssh/authorized_keys:

$ echo id_dsa.pub >> ~/.ssh/authorized_keys

Note, le fichier ~/.ssh/authorized_keys doit se terminer par un ligne vide.

Alice doit ensuite copier-coller ceci en dans un terminal en remplacant l’IP de Bob:

$ ssh -R 60000:localhost:22 help@ip_de_bob

L’empreinte de la clé publique de la machine de Bob sera présentée. Tapez « yes ».

Le mot de passe à entrer est donné par Bob, c’est celui de l’utilisateur « help » que Bob a créé chez lui. Note pour Alice : le mot de passe ne s’affiche pas quand on le tape, c’est normal :)

Voila. c’est fini pour Alice.

Prise de contrôle

Bob peut ensuite se connecter à l’ordinateur d’Alice, sous le compte d’Alice sans connaitre le mot de passe d’Alice :

$ ssh -p 60000 alice@localhost

Critique

Cette technique est une alternative à Teamviewer pour Linux et Mac. Elle permet notamment d’avoir un accès confortable au terminal à distance et aux possibilités évoluées de SSH par la suite (partage de fichier par SFTP, redirection de port, proxy SOCKS pour naviguer sur le réseau local, VNC sécurisé, etc…).

Au début, je me suis dit que j’allais enfin tordre le cou au « man in the middle » de Teamviewer. Mais en réalité, il y a pas mal de failles de sécurité dans la mise en place de ce processus.

Premièrement, Alice doit vérifier et ajouter la clé publique de Bob. Pas facile ! Aussi, elle donne l’accès à ses fichiers pour se faire aider et n’aura aucun contrôle sur ce que fera Bob avec cet accès. Donc il faut une grande confiance dans Bob.

Ensuite, par quel canal est transmis la commande à taper? la clé publique de Bob? Comment est vérifiée l’authentification de la machine de Bob par Alice?

Il y a peut être moyen de wrapper tout ça dans un utilitaire avec une double authentification et une interface graphique qui affiche sur l’écran d’Alice un suivi en temps réel des commandes effectuées par Bob, des fichiers transférés… le tout sans nécessiter le mot de passe de session d’Alice. Mais ce sera peut être moins flexible pour Bob… (auto-complétion, sshfs, etc..)

J'aime(2)Ferme-la !(0)

Mise à jour Flash player

Des vulnérabilités ont récemment été corrigées dans le plugin Adobe Flash Player. Si vous l’utilisez sous Linux, vous devez rapidement le mettre à jour à la version 11.2.202.451

Comme la mise à jour de ce plugin ne se fait pas automatiquement, je vous renvoie vers la procédure pour mettre à jour le plugin Flash sous Debian.

Je vous conseille également de profiter de cette occasion pour essayer de ne plus l’utiliser : bloquage du plugin dans le navigateur et si vous ne rencontrez pas de problème -> désinstallation du paquet flashplugin-nonfree. Youtube utilise HTML5 pour la majorité de ses vidéos désormais.

J'aime(2)Ferme-la !(0)

SteamOS pousse les jeux à venir sous Linux

Ce week end, Steam proposait une étrange promotion. En fait il s’agissait de mettre en avant les jeux qui seront disponibles cette année sur ses SteamBox.

On peut citer, parmi les jeux AAA :

  • Batman Arkham Night
  • TotalWar : Attila
  • Shadow of the Mordor
  • Borderlands 2, Borderlands Pre-Sequel
  • Company of heroes 2
  • Witcher 2, Witcher 3
  • Saint Row 4
  • Torchlight 2
  • GRID Autosport
  • Civilization 5, Beyond Earth

Mais derrière cela, il est indiqué noir sur blanc que ces jeux seront aussi disponible sur nos machines Linux sans SteamOS :-) Sur chaque page magasin des jeu il est indiqué la date de disponibilité sous Linux.

On peut noter que certains jeux ne sont pas encore sortis sous Windows actuellement. Steam essaie donc d’avoir des sorties sur sa console pas trop décalées par rapports aux plateformes concurrentes.

Ajoutez à cela, les performances pas mauvaises des drivers libres pour les Radeon 7000/R270 :-)

Le marché du jeu sous Linux bouge !

J'aime(4)Ferme-la !(0)

Mettre à jour le microcode de son CPU sous Debian

Les CPU ont aussi un firmware appelé microcode. Normalement, c’est le BIOS de votre carte mère qui le met à jour. Mais si le fabricant de sa carte mère ne publie pas de nouveau BIOS avec de nouveaux microcodes pour son CPU, il est possible de le faire à la volée avant le chargement du noyau Linux.

Le microcode corrige des bugs connus du CPU. Si vous rencontrez des freeze ou des erreurs de calcul, il peut être intéressant de voir si une mise à jour du microcode ne corrige pas votre problème.

Tout d’abord on vérifie la version du microcode de son CPU :

$ grep microcode /proc/cpuinfo
microcode : 0x19

Puis on installe le paquet intel-microcode ou amd64-microcode selon son modèle de CPU. Vous avez besoin d’activer les dépôts contrib et non-free pour y avoir accès.

On redémarre. Et voilà !

$ dmesg | grep -i microcode
[    0.000000] CPU0 microcode updated early to revision 0x1c, date = 2014-07-03
[    0.071491] CPU1 microcode updated early to revision 0x1c, date = 2014-07-03
[    0.085625] CPU2 microcode updated early to revision 0x1c, date = 2014-07-03
[    0.099732] CPU3 microcode updated early to revision 0x1c, date = 2014-07-03
[    0.448963] microcode: CPU0 sig=0x306c3, pf=0x2, revision=0x1c
[    0.448968] microcode: CPU1 sig=0x306c3, pf=0x2, revision=0x1c
[    0.448972] microcode: CPU2 sig=0x306c3, pf=0x2, revision=0x1c
[    0.448976] microcode: CPU3 sig=0x306c3, pf=0x2, revision=0x1c
[    0.449007] microcode: Microcode Update Driver: v2.00 <tigran@aivazian.fsnet.co.uk>, Peter Oruba

J'aime(1)Ferme-la !(1)

Fail2ban pour Owncloud 7 sur Debian Jessie

Petit guide pour couper court au crackage de vos passwords par le formulaire de login d’Owncloud.

Ajouter dans le fichier /etc/fail2ban/jail.conf :

[owncloud]
enabled = true
port = http,https
filter = owncloud
logpath = /var/log/owncloud.log
maxretry = 3

Modifier le fichier /etc/owncloud/config.php

'loglevel' => '2',
'logtimezone' => 'Europe/Brussels',

Le loglevel ne doit pas être supérieur à 2 pour que les tentatives de login soient enregistrées dans le log !
le logtimezone doit être accordé avec l’heure de votre serveur. Sinon fail2ban pensera toujours que la connexion est ancienne et ne bannira rien.

Créer un fichier /etc/fail2ban/filter.d/owncloud.conf:

[Definition]
failregex = .*"message":"Login failed:.*IP: '<HOST>'.*
ignoreregex =

Relancer le service fail2ban:
# systemctl fail2ban restart

Faites trois mauvaises tentatives de login sur Owncloud pour vérifier !
Pour vérifier le status de fail2ban:

# fail2ban-client status owncloud

Pour débloquer une IP:

# fail2ban-client set owncloud unbanip 192.168.0.13

Cette configuration de Owncloud et Fail2ban devraient être par défaut dans Debian à mon sens.

On peut également se connecter à Owncloud par l’API REST. Je n’ai pas testé si les erreurs de connexion par cette API étaient aussi enregistrées dans le fichier de log, et donc prises en compte par Fail2ban.

J'aime(6)Ferme-la !(1)

Installer un serveur Mumble sur Debian

Ils commencent à m’emmerder ces ploutocrates à vouloir m’espionner sans juges ! Voici comment avoir des discussions audio en toute intimité avec le logiciel libre Mumble.

Et ce sera la preuve que leurs systèmes d’écoute automatisée sur les réseau téléphone, Skype, etc… ne va renifler que les honnêtes gens, ou les terroristes de pacotille.

mumbleDonc pour discuter en toute discrétion, il vous faut:

  • un PC
  • dont vous connaissez l’IP sur Internet
    (astuce pour la connaître en ligne de commande : $ curl ifconfig.me)
  • et qui accessible depuis Internet sur les ports UDP and TCP 64738. Ca se configure dans la box/routeur de votre FAI si vous avez ça.

Une fois que vous avez ça. Il suffit d’installer le serveur libre Murmur.

Je donne l’exemple d’installation pour Linux pour la suite, mais Murmur marche aussi sous Windows et Mac OS. Donc voila la commande d’installation et configuration pour Debian :

# apt-get install mumble-server

Et voila, c’est tout! Dur hein?

Le serveur tourne, est accessible à tous les clients Mumble et les communications sont chiffrées entre le serveur et chaque client (chacun a un certificat). La classe.

Vous pouvez y accéder depuis votre Linux,Windows,Mac avec Mumble et de votre smartphone android avec Plumble, un logiciel libre disponible sur Fdroid ou Mumblefy sur iPhone.

Pour rendre le serveur privé, vous avez juste à renseigner un mot de passe derrière le paramètre serverpassword= dans le fichier /etc/mumble-server.ini.

Et cerise sur le gateau, le codec audio Opus est supporté par défaut :

J'aime(9)Ferme-la !(0)