Hotplug SATA sous linux

Je fais mes sauvegardes avec un disque dur branché directement en SATA. C’est plus rapide qu’avec l’USB.
Pour cela j’utilise la fonctionnalité de changement à chaud (sans redémarrage) des connexions SATA.

Au branchement du disque, il n’y a rien à faire, le disque est reconnu au branchement et il n’y a plus qu’à monter les partitions.

Avant de débrancher, il faut démonter les partitions. Cela synchronise l’écriture des données (ouf!). Ensuite, j’ai trouvé sur internet plusieurs commentaires conseillant de supprimer le disque du système avant de le débrancher. C’est sensé arrêter mécaniquement le disque et empêcher toute application d’y accéder :

#echo 1 > /sys/block/sdb/device/delete

Est-ce la « bonne » méthode?

Si vous avez de l’expérience sur le hotplug SATA, ca m’intéresse.

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

Gaming on Linux : le site d’actu des jeux vidéos sur Linux

Le site web gamingonlinux.com est une source assez exhaustive sur les jeux vidéos tournant sur Linux. Du moins c’est ce que j’ai trouvé de mieux pour l’instant, donc je vous en fait profiter.

Les sites de jeux vidéos sur Linux ayant la forte tendance à mourir, ca vaut son pesant d’or :) RIP jeuxlinux.fr

La top list des jeux auxquels j’ai joué sous linux :

Je les ai appréciés sous Linux (donc passé beaucoup de temps) et ils fonctionnent très bien. J’utilise actuellement une AMD Radeon 7850 avec le driver libre (mesa 10.5.5) sur Debian Jessie.

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

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(3)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)

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)

Strife, un équivalent de League of Legends pour Linux

Strife est le nouveau MOBA gratuit développé par S2Games à qui l’on doit Heroes of Newerth et Savage 2.

Celui-ci se veut plus accessible aux débutants et moins frustrant que Dota, LoLou HoN. Cela afin que la frustration des joueurs ne se transforme pas en animosité comme c’est trop souvent le cas dans les MOBA. Il y a un tutoriel très bien fait, un mode solo et des modifications profondes par rapport aux MOBA classiques.

Comme d’habitude avec les jeux S2Games, celui-ci fonctionne nativement sous GNU/Linux. Il n’y a pas d’installation à faire, juste dé-compresser une archive que vous pouvez télécharger ici.

Le dossier bin contient des librairies embarquées qui sont parfois incompatibles avec votre distribution. Voici la liste des librairies (.so*) à garder dans le dossier bin pour faire fonctionner Strife sur Debian Jessie :

  • cgame.so
  • game.so
  • libcef.so
  • libfmodex64.so
  • libgame_shared.so
  • libgcrypt.so.11
  • libjpeg.so.8
  • libk2.so
  • libpng15.so.15
  • physx.so
  • vid_gl.so

Vous pouvez me retrouver en jeu sous le pseudo « tuxicoman »

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

Changer son adresse MAC

L’adresse MAC est un identifiant physique stocké dans votre carte réseau. Elle ressemble à ceci :

5E:FF:56:A2:AF:15

Elle est définie par le fabricant de votre carte réseau parmi les 248 (environ 281 000 milliards) d’adresses MAC possibles et donc unique au monde. C’est pourquoi on l’appelle souvent « adresse physique » car elle identifie de façon unique votre ordinateur.

Cette adresse est utilisée pour vous assigner un IP fixe, filtrer votre connexion réseau, vous traquer, lier une licence logicielle à votre ordinateur, ou vous donner seulement 15 minutes gratuites de wifi dans les aéroports…

Mais on peut la changer logiciellement. Sous linux, avec le logiciel macchanger vous pouvez générer une nouvelle adresse MAC de cette façon, en root dans un terminal :

# macchanger -A eth0

Remplacer eth0 par l’interface réseau qui vous intéresse: wlan0 pour le wifi par exemple.

Pour revenir à votre adresse MAC d’origine:

# macchanger -p eth0

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

Lister et tuer les processus en cours sous Linux

Pour lister les processus de tous les utilisateurs du système : ps -faux
Pour lister uniquement vos processus : ps -fux

$ ps -fux
 USER  PID  %CPU %MEM VSZ   RSS TTY STAT START TIME COMMAND
 toto 3377 0.0 0.1 600268  13212  ? Ssl 16:06 0:00 x-session-manager
 toto 3418 0.0 0.0 10584   336    ? Ss  16:06 0:00 \_ /usr/bin/ssh-agent /usr/bin/dbus-launch --exit-with-session x-session-manager
 toto 3442 0.0 0.2 816644  21384  ? Sl  16:06 0:00 \_ /usr/lib/gnome-settings-daemon/gnome-settings-daemon
 toto 3520 1.7 2.5 1893352 202408 ? Sl  16:06 1:29 \_ /usr/bin/gnome-shell
 toto 5067 3.9 3.8 1242492 302140 ? Sl  16:24 2:39 | \_ iceweasel
 toto 6172 0.0 0.3 906316  25784  ? Sl  17:13 0:00 | \_ nautilus --new-window
 toto 3572 0.0 0.1 551768  9596   ? SNl 16:06 0:00 \_ /usr/lib/tracker/tracker-miner-fs

C’est beaucoup plus pratique que la commande top car il n’y a pas de limitation de hauteur d’écran.

On y trouve des infos très utiles :

  • l’user qui a lancé le processus
  • la commande complète avec arguments qui a servie à lancer le processus
  • l’arborescence des commandes pour savoir quels sont les processus parents et enfants.
  • la date à laquelle le processus a été lancé et sa durée de vie
  • la charge du CPU
  • le PID, identifiant propre à chaque processus

Pour arrêter les processus qui vous intéressent, récupérez le PID correspondant (ex: 5067) et lancez :

$ kill 5067

.
Si le programme ne se ferme pas assez rapidement, vous pouvez le forcer à s’arrêter immédiatement :

$ kill -9 5067
J'aime(4)Ferme-la !(2)

Lister les connexions entrantes de votre ordinateur

La commande netstat -tape permet de lister les processus qui acceptent des connections entrantes sur votre ordinateur. Facile à se rappeler !
Pour plus d’information, man netstat.

# netstat -tape
Connexions Internet actives (serveurs et établies)
Proto Recv-Q Send-Q Adresse locale          Adresse distante        Etat        User       Inode       PID/Program name
tcp        0      0 localhost:60061         *:*                     LISTEN      mysearch   7850        2813/python     
tcp        0      0 *:43173                 *:*                     LISTEN      statd      13393       1844/rpc.statd  
tcp        0      0 *:sunrpc                *:*                     LISTEN      root       13372       1816/rpcbind    
tcp        0      0 *:ssh                   *:*                     LISTEN      root       33422       6097/sshd       
tcp        0      0 *:gdomap                *:*                     LISTEN      root       6788        2253/gdomap     
tcp6       0      0 [::]:sunrpc             [::]:*                  LISTEN      root       13375       1816/rpcbind    
tcp6       0      0 [::]:32947              [::]:*                  LISTEN      statd      13397       1844/rpc.statd  
tcp6       0      0 [::]:ssh                [::]:*                  LISTEN      root       33424       6097/sshd
J'aime(0)Ferme-la !(1)