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)

Retour sur l’utilisation de Mumble

Dans un précédent article, j’ai installé un serveur Mumble en guise de solution de VoIP chiffrée. Voici mon retour d’utilisation :

Le serveur plante souvent, sans que j’en sache la raison. Ce ne m’arrive jamais en conversation mais le fait est que quand j’en ai besoin, le serveur est éteint et que je dois le relancer. Systemd ne voit pas que le service a planté et ne le relance pas automatiquement. -> Bug Debian #780300

Il n’y a pas de système de réduction d’écho performant. Cette fonctionnalité a l’air de dépendre du client et est souvent de mauvaise qualité. On s’entend parler avec un décalage ou pire, ça larsen à cause du bruit de fond qui est amplifié en boucle. En tout état de cause, on s’entend bien uniquement quand tout le monde a un casque avec micro.

J’ai essayé Firefox Hello. Ou plutôt j’ai tenté de l’essayer, j’ai jamais pu voir ou entendre mon correspondant.

Et vous, vous utilisez quoi?

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

Proxy Web avec SSH

Imaginons que vous soyez sur un réseau où certains sites web sont bloqués.
Si vous avez une machine à l’extérieur et un accès SSH dessus, vous pouvez l’utiliser comme proxy.

1ère étape

Lancez la commande suivante pour créer un proxy :

$ ssh Utilisateur@MachineExterne -C -N -D 8080

Les options sont les suivantes :

  • -C : compresse la transmission pour économiser la bande passante
  • -N : n’ouvre pas de shell
  • -D : ouvre un proxy dynamique

Vous devez garder le proxy ouvert, ne fermez donc pas la console sur laquelle vous l’avez ouvert !

Cette commande fonctionne pour Linux et MacOS. Pour Windows, je vous laisse regarder du coté de Putty.

2eme étape

Configurez ensuite votre navigateur pour pour rediriger le flux TCP et DNS vers le proxy :
proxyN’oubliez pas de cocher la case « DNS distant ». Et voila !

Vous avez en plus changé d’IP sur Internet. Vous utilisez désormais celle du serveur proxy.

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

OpenMailBox

Vous cherchez à quitter Gmail ou Hotmail mais ne savez pas comment avoir un email ailleurs? Pourquoi ne pas héberger vos mails sur OpenMailBox?

Il n’y a pas de business pour revendre ou exploiter vos données. Les conditions de services sont simples à comprendre.
Vous payez ce que vous voulez, voir rien.
Les protocoles de communications sont sécurisés.
C’est géré uniquement avec des logiciels libres.
Vous avez 1Gb d’espace à vous. (Pas besoin de garder 10 ans de mails en ligne alors que l’espace coûte rien chez vous. Vous pouvez aussi les ranger ou supprimer ce qui est obsolète.)
ll y a un webmail sympa.
Vous avez en plus un compte XMPP (Jabber) pour faire de la messagerie instantanée avec vos potes barbus.

Ca ne vous protégera pas des lois liberticides de Ho’llandouille. Mais vos mails ne serviront plus à vous profiler comme le dindon de la farce. De plus, vos amis vous remercieront car les emails qu’ils vous enverront seront aussi protéger des yeux des GAFA.

Comme le site est très succinct sur comment configurer votre logiciel de mail, je vous donne ici les réglages de manière plus détaillée :

Réception des mails:

Serveur: imap.openmailbox.org
Port: 993
Sécurité: SSL/TLS
Nom d’utilisateur: username@openmailbox.org
Authentification: clair/mot de passe normal

Envoi des mails:

Serveur : smtp.openmailbox.org
Port: 465
Sécurité : SSL/TLS
Authentification requise : oui
Nom d’utilisateur: username@openmailbox.org
Authentification: clair/mot de passe normal

J'aime(8)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)

Cacher ses adresses mail, numéros de téléphone, etc… des spammeurs sur WordPress

Si vous laissez votre adresse email sur un site web, nul doute qu’un robot va venir la lire et l’ajouter à son fichier de SPAM. Pour éviter cela, on peut encoder l’email en Javascript.

Les humains regardant la page web verront l’email proprement car leur navigateur va décoder le javascript. (Aucun problème de copier coller contrairement aux images)

Les robots ne vont pas exécuter le javascript car c’est trop long et trop complexe pour eux.

Cette technique s’applique aux emails mais aussi à tout contenu que vous voudriez protéger des bots comme votre numéro de téléphone etc…

Il existe un plugin pour WordPress pour mettre en place cette technique facilement : Email encoder bundle

Pour cacher un email ou tout autre contenu des robots, écrivez celui-ci entre balises dans votre article :

[eeb_content]toto@gmail.com[/eeb_content]

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

MySearch and GooglePlayDownloader passent en version 1.6

Voila c’est Noël avant l’heure, je sors une nouvelle version de mes 2 logiciels libres :

  • Mysearch : un métamoteur de recherche anonymisateur, sans pub, et avec la pertinence des résultats Google.
  • GooglePlayDownloader : il vous permet de télécharger les applications gratuites du PlayStore sans nécessiter d’utiliser un compte Google personnel ni d’installer les applis Google avec les droits root sur votre smartphone Android

Par un hasard incroyable ils atteignent le même numéro de version (1.6) en même temps :-)

Si vous voulez me faire plaisir, faite connaître ce blog plus largement sur la toile, ça me suffit.

Amusez-vous bien !

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