J'ai un portable fraîchement installé sous Debian Jessie avec l'environnement
de bureau XFCE que j'utilise soit en itinérance, soit en poste fixe avec un
moniteur externe en configuration double écran. La configuration brute des
écrans sous GNU/Linux passe par l'utilisation de la commande xrandr pour
définir leur nombre, la résolution de chacun et leur position respective. Pour
se faciliter la vie, on peut installer arand qui fournit une interface
pour définir ces réglages et les sauvegarder sous forme de shell script dans
un fichier.
Voici une capture d'écran de arandr :
Et un exemple de script généré pour une configuration en double écran avec le
moniteur externe à droite de l'écran LCD du portable :
En utilisant arand je vais facilement générer les deux scripts dont j'ai besoin :
une configuration simple avec l'écran du portable
une configuration en double écran
Pour savoir lequel appliquer, on va tester si le moniteur externe est connecté
en analysant le résultat de la commande xrandr. Au démarrage du portable, le
gestionnaire de connexions lightdm clone l'affichage des deux moniteurs
connectés. On peut corriger cela en appliquant notre joli script qui teste si
le moniteur externe est connecté et applique la bonne commande xrandr. Pour
cela, on édite le fichier de configuration /etc/lightdm/lightdm.conf et on
ajoute la directive display-setup-script dans la section SeatDefaults :
#!/bin/bash
if (xrandr | grep "VGA1 disconnected"); then
xrandr --output HDMI1 --off --output LVDS1 --mode 1366x768 --pos 0x0 --rotate normal --output DP1 --off --output VGA1 --off
else
xrandr --output HDMI1 --off --output LVDS1 --mode 1366x768 --pos 0x0 --rotate normal --output DP1 --off --output VGA1 --mode 1920x1080 --pos 1366x0 --rotate normal
fi
Le réglage est valable pour lightdm mais quand on ouvre une session XFCE, il
est perdu et on revient à la configuration par défaut à savoir l'affichage
cloné sur les deux écrans. On pourrait appliquer le même script pour la
session, en utilisant la directive session-setup-script prévu par ligthdm ou
en mettant le script en démarrage automatique dans la configuration Session
et démarrage de XFCE. Dans mon cas, je souhaite ajouter quelque chose au
script de session : déplacer le tableau de bord XFCE sur le moniteur externe,
quand il connecté. C'est possible grâce à la commande xfconf-query (le
programme en ligne de commande de configurationde XFCE) adéquate.
Finalement, cela donne le script xfce-monitor.sh au démarrage de la session:
Le sleep en début de script n'est pas élégant. Sans lui, l'exécution du
script intervient avant que la session XFCE soit initialisée et les commandes
xfconf-query ne sont pas appliquées. Si quelqu'un a une solution plus
élégante, je suis intéressé.
Si la connexion / déconnection des écrans a lieu pendant qu'une session est
ouverte, il suffit de relancer le script depuis un terminal pour reconfigurer
l'affichage.
Votre serveur va avoir sa première défaillance matérielle dès demain, mais pas de panique ! Je vais vous aider à créer votre premier backup. Les suivants vous offriront d’anciennes versions de vos fichiers.
Hélas pour un serveur, c’est une autre paire de manches. Bases de données, mails, fichiers de conf, logiciels installés hors des dépôts, sites web : il y en a partout. Un snapshot du disque serait insuffisant en cas de changement de matériel.
Problématique
Avant de foncer tête baissée, voyons comment ne pas créer les sauvegardes au même endroit que les fichiers originaux :
— Si vous disposez d’un autre serveur, vous pouvez lire ce comparatif d’outils dédiés (voir burp avec son interface ou obnam),
— Mais si vous n’avez qu’un seul serveur, il serait aberrant de perdre l’accès à vos données (résiliation, attaque, panne, etc).
Il faut à mon sens :
— Dans un premier temps, générer puis télécharger les sauvegardes du serveur sur un ordinateur local, hors du Net,
— Dans un second temps, sauvegarder les données du serveur en même temps que celles de l’ordinateur sur un support externe,
— Dans un troisième temps, synchroniser les sauvegardes en ligne, comme avec hubiC.
Bien sûr, tout le monde n’est pas du même avis, avec ce tuto vous pouvez tout autant synchroniser serveur et ordinateur directement vers le service en ligne de votre choix. Moi je considère que mon ordinateur contient une sauvegarde serveur récente. J’utilise ensuite la même solution pour sauvegarder le tout, en conservant différentes versions (états) des fichiers au fil du temps.
1- Plan d’action
Mon but n’est pas d’avoir une remise en service rapide de mon serveur. Si c’était le cas, j’aurais du matériel fiable.
Côté serveur, je réalise donc un script bash, cronné quotidiennement, qui copie en root dans un dossier tout ce que j’ai créé ou modifié. Il donne finalement la propriété du dossier à l’utilisateur autorisé à être utilisé en SSH.
Côté ordinateur, je réalise un second script bash, à exécuter manuellement, qui récupère en local le dossier de sauvegarde du serveur. Il récupère en supplément le contenu d’un serveur FTP sur un hébergement mutualisé.
2- Script de sauvegarde du serveur
Je vous laisse le soin de vous inspirer de mon script afin d’identifier tout ce qui vous importe. Copiez simplement ce qui suit dans un fichier, stocké où bon vous semble, et donnez lui le droit d’exécution.
J’utilise l’option inhabituelle –relative qui copie le chemin absolu d’un dossier, recréant ainsi l’architecture de la distribution dans le dossier de sauvegarde.
#!/bin/bash
# Rappels :
# - le script doit être exécuté en droits root
# - le script ne prend pas en charge les rotations de sauvegardes
# - les fichiers reçoivent à la fin la propriété d'un utilisateur SSH
# - le script ne copie que les fichiers personnalisés, pour les retrouver facilement
# Serveur web Nginx
rsync $options --exclude=phpmyadmin --exclude=data/cache /var/www $chemin_repertoire
# Base de données MySQL
mysqldump --user="UTILISATEUR" --password="MOT_DE_PASSE" --databases BASE_DE_DONNES > $chemin_repertoire/NOM_FICHIER.sql
# Autres dossiers potentiels
# /home/$nom_utilisateur_ssh/Maildir/
# /home/$nom_utilisateur_ssh/.procmailrc
# Uniformise les droits récursivement, pour permettre le téléchargement
chown -R $nom_utilisateur_ssh:$nom_utilisateur_ssh $chemin_repertoire
3- Script de récupération de la sauvegarde, sur ordinateur
Ce petit bout de script, simplissime, nécessite l’installation du logiciel lftp pour la synchronisation FTP en local. Faire des tests avec lftp vous évitera de perdre vos données réelles.
Attention, contrairement à rsync, lftp ne dispose pas d’une option –delete-excluded ce qui signifie que si vous excluez de nouveaux dossiers, il vous incombe de les supprimer localement.
Ce script peut comme toujours être automatisé avec crontab pour les évènements temporels, ou avec incrontab pour les évènements déclenchés par le système de fichiers (montage de disque, création ou modification d’un fichier, etc).
Via /etc/crontab : 0 0 * * * * root sh /home/NOM_UTILISATEUR/script_de_sauvegarde.sh >/dev/null 2>&1
Bon à ce stade je vous avoue que j’avais très envie d’achever cet article : pour sauvegarder votre base SQL de mutualisé, vous disposez peut être d’une URL sécurisée à appeler. Si c’est le cas, vous devriez vous en sortir avec curl. Sinon vous devrez chercher la solution qui vous convient (et je vous invite à laisser un commentaire) qui dump votre base dans le langage de votre mutualisé.
4- Chiffrement des sauvegardes
Toute méthode apporte son lot d’avantages et d’inconvénients. Je vous laisse le soin de faire vos propres recherches, sachez simplement qu’il est facile de le faire avec le logiciel Disques sous Ubuntu.
Mes deux sources principales sont cet article du blog de Romain Vimont (®om) pour le script et cet autre article du blog d’Aurélien Maigret (Dewep) pour la partie lftp en plus de ce wiki. Merci à eux pour leur aide précieuse !
L’an passé, Framasoft participait à la Fête de L’Humanité.
Nous avions alors longuement interviewé Yann Le Pollotec (informaticien, membre du conseil national et animateur de la réflexion sur la révolution numérique au Parti Communiste Français) à qui nous avions posé de nombreuses questions, notamment sur le positionnement du Parti Communiste vis-à-vis du logiciel libre.
Cette année, l’initiative est renouvelée… mais en plus grand ! Avec un « Espace du libre, des hackers et des fablabs ».
L’occasion pour nous de demander à Yann quelles sont les nouveautés de cette année 2015.
L’espace Logiciel Libre / Hackers / Fablabs de la fête de l’Huma 2014
Bonjour Yann, exceptionnellement, nous n’allons pas te demander de te présenter, ni de nous parler du rapport PCF/Logiciel libre, car tu nous avais déjà répondu l’été dernier. En revanche, peux-tu nous en dire plus sur cette version 2015 de l’Espace du libre ?
Cette année l’Espace du libre et des fablabs double sa superficie avec de nouveaux venus : l’association La Mouette qui présentera la dernière version de Libre office, Mozilla France, APEDEC Ecodesign Fab Lab, l’Electrolab, Marker Girls, Bionico Hand. Nous aurons un grand débat sur le « big data et digital labor » avec Yann Moulier Boutang le samedi 12 septembre à 10h30.
Un autre débat aura lieu le vendredi 11 à 17h30 sur « les libertés et les droits sur l’Internet après les lois anti-terroristes et renseignement », avec Cécile Cukierman sénatrice, Véronique Bonnet de l’April, la Quadrature du Net et la CNIL. Enfin Nicolas Huchet avec sa prothèse de bras intelligent « open hardware » qu’il a développée, sera présent.
Un mur entier sera consacré à l’exposition pédagogique sur le logiciel libre et ses enjeux, installation conçue pour cet événement par le collectif Tiyounim.
Garder une place pour les mouvements du Logiciel Libre, des Makers, Hackers et Fablabs à la fête de l’Huma a un sens… Quels ont été les moteurs de cette décision ?
Ce qui motive notre décision c’est que ces mouvements avec leurs contradictions, et parfois leurs difficultés à créer des écosystèmes viables, sont fascinants, et leurs acteurs jouent le rôle des accoucheurs passionnés et tourmentés du monde de demain et d’un autre rapport au travail, à la propriété et à la création. Ils préfigurent à bien des égards une société post-capitaliste fondée sur la notion de Commun, d’une manière certes encore minoritaire, fragile mais résiliente, balbutiante mais virale.
Tout cela ne se fait pas sans contradictions, et difficultés pour créer des écosystèmes viables, avec un « capitalisme cognitif » pour reprendre l’expression de Yann Moulier Boutang qui a à la fois besoin de ces communs numériques que sont par exemple les logiciels libres mais qui, en même temps, entrave leur développement en tentant de s’accaparer le bien commun en posant de nouvelles enclosures.
C’est, une fois de plus, un gros village associatif qui sera proposés aux visiteuses et visiteurs. Quels acteurs seront présents ?
Dans l’ordre alphabétique : APEDEC Écodesign Fab Lab, April, Bionico Hand, Camille Bosqué, Carrefour numérique au carré, Electrolab, Collectif Emmabuntüs, FDN, Franciliens.net, Framasoft, Licence Creative/Creative Commons France, Marker Girls, La Mouette (Libre office), Mozilla, Open-Edge, Les Ordis libres, Parinux, Petits Débrouillards Idf, La Quadrature du Net, Ubuntu.
Organiser une telle rencontre entre le Libre et les visiteurs et visiteuses de la fête de l’Huma, ce doit être un sacré travail… Tu peux nous expliquer à quoi ressemble tes (et vos) heures passées dessus ?
C’est d’abord un travail collectif avec tous les acteurs qui seront présents sur l’espace et qui l’auto-gèreront. C’est un travail de contacts, de communication, d’explication, de promotion, de pédagogie et de conviction. Il s’agit aussi et surtout d’organiser la coordination avec toutes les parties prenantes de la fête : architecte, programmateurs, régisseurs, services techniques, sécurité, prestataires de services et militants.
Afin de financer une partie des frais, vous avez initié une campagne de financement participatif. Pourquoi ce choix de la collecte et à quoi va servir cet argent ?
La fête de l’Huma met à disposition pour notre Espace une surface de 300m² qu’elle loue au Parc des expositions du Bourget. En échange, par le financement participatif nous assurons la réalisation et l’impression du mur d’expo sur les logiciels libres et les flyers présentant l’Espace, les frais liés à la venue de Rennes à la fête de Bionico Hand, l’électricité, l’accès l’internet haut-débit, la location de mobiliers, les parkings pour les livraisons, et une caisse de solidarité sur les passes d’entrée à la fête de l’Huma afin de permettre la participation des bénévoles nécessaires au fonctionnement des associations parties prenantes et de couvrir une partie des frais de location de surface engagés par la fête de l’Huma. Nous avons choisi le crowdfunding car il représente pour financer un projet la possibilité d’échapper aux banques et aux contraintes de la subvention publique, en s’émancipant de décideurs publics ou privés souvent au mieux indifférents ou étrangers à ce qu’on leur présente.
Alors pour faire vivre l’espace des logiciels libres, des hackers et des fablabs à la fête de l’Humanité, contribuer ou faites contribuer sur : https://fr.ulule.com/logiciellibre-fablab/ (clôture de la campagne le 6 septembre à minuit).
Un petit mot pour la fin ?
Nous avons la volonté de faire de cet espace co-produit part des acteurs du mouvement des logiciels libres et des fablabs, un lieu d’appropriation sociale et politique par le « faire », le ludique et le débat des enjeux cruciaux du numérique. Il s’agit, dans une démarche d’éducation populaire de faire toucher du doigt au public de la fête de l’Huma les potentialités émancipatrices comme les dangers de la Révolution numérique pour l’avenir de notre société.
—
Vous avez jusqu’à dimanche (6 septembre) pour soutenir et faire vivre cette initiative, en finançant et/ou partageant la collecte sur Ulule.
A force de lire tout et n'importe quoi à ce sujet, je me suis lancé dans mes propres analyses de trafic.
Voyons ce que contient ce Windows 10 qui fait tant parler de lui.
tcpdump
Avant tout j'en profite pour vous parler de ce super tutoriel pour lire du contenu HTTPS avec wireshark s'il provient de votre navigateur, simple et rapide. Dans mon cas ce n'est pas du flux venant d'un navigateur mais du système directement donc je ne pourrai pas utiliser cette méthode.
J'utilise Windows 10 sur une machine virtuelle (VirtualBox). J'ai donc commencé par analyser le trafic au moment de faire une recherche dans le menu démarrer. Je précise que j'ai désactiver la recherche en ligne dans les options de Windows, et pourtant il y a bien du trafic.
./tcpdump -s0 host win10 and port not 22 -n
IP 192.168.0.68.53226 > 204.79.197.200.443: . 1493:2933(1440) ack 4667 win 1024
IP 192.168.0.68.53226 > 204.79.197.200.443: P 2933:2986(53) ack 4667 win 1024
IP 204.79.197.200.443 > 192.168.0.68.53226: . ack 2933 win 513
IP 204.79.197.200.443 > 192.168.0.68.53226: . ack 2986 win 513
IP 204.79.197.200.443 > 192.168.0.68.53226: P 4667:6096(1429) ack 2986 win 513
IP 204.79.197.200.443 > 192.168.0.68.53226: . 6096:7556(1460) ack 2986 win 513
IP 204.79.197.200.443 > 192.168.0.68.53226: . 7556:9016(1460) ack 2986 win 513
IP 204.79.197.200.443 > 192.168.0.68.53226: P 9016:9349(333) ack 2986 win 513
IP 192.168.0.68.53226 > 204.79.197.200.443: . ack 9349 win 1024
IP 192.168.0.68.53190 > 204.79.197.200.80: P 5777:6789(1012) ack 1081 win 1020
IP 192.168.0.68.53190 > 204.79.197.200.80: P 6789:7206(417) ack 1081 win 1020
192.168.0.68 = IP de ma machine Windows 10
204.79.197.200 = a-0001.a-msedge.net
Et à chaque nouvelle recherche dans le menu démarrer on retrouve cette séquence.
Premièrement c'est une surprise car quand on se dit le trafic que ça doit pomper à l'échelle mondiale, c'est monumental.
Mais que transite dans ces paquets ?
Kali
Autant faire le barbu jusqu'au bout, j'ai donc sorti Kali! Cela évite d'avoir à installer une tonne d'outils qui sont déjà présents.
J'ai utilisé une deuxième machine virtuelle, sous Kali Linux 2.0 cette fois-ci. Avec deux interfaces, une sur le réseau local (eth0) et une autre sur un réseau interne à VirtualBox (eth1) que j'ai nommé "guest" :
eth0 = 192.168.0.68 (dhcp via tomato, accès par pont)
J'ai installé un serveur dhcp (pas obligatoire mais plus pratique) :
apt-get install udhcpd
Configuration minimaliste :
# grep -E -v '^(#|$|;)' /etc/udhcpd.conf
start 10.1.1.11
end 10.1.1.50
interface eth1 #default: eth0
opt dns 8.8.8.8
option subnet 255.255.255.0
opt router 10.1.1.254
option domain local
option lease 864000
Commenter la ligne /etc/default/udhcpd :
#DHCPD_ENABLED="no"
Et démarrer le service :
/etc/init.d/udhcpd start
[ ok ] Starting udhcpd (via systemctl): udhcpd.service.
J'ai basculé ma VM Windows dans ce même réseau interne "guest" pour vérifier que Kali lui donnait bien une IP.
Certificats
Je pensais qu'il était nécessaire de générer un certificat pour pouvoir intercepter le trafic SSL, surtout que j'étais parti sur l'outil sslstrip au départ. Et puis cet outil n'allait pas il permet seulement de ne pas rediriger du HTTP vers du HTTPS mais il est incapable d'intercepter du HTTPS.
Je vous met quand même la procédure au cas où ça vous serve dans un cas particulier :
mkdir cert && cd cert
apt-get install libssl-dev libevent-dev
openssl genrsa -out ca.key 4096
openssl req -new -x509 -days 1826 -key ca.key -out ca.crt
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:BM
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:A.BM
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:*.bing.com
Email Address []:
Seul le "common name" est important, il doit correspondre au site à intercepter. Dans l'exemple "*.bing.com" assure la compatibilité avec "www.bing.com" par exemple. Cela ne fonctionnera pas en revanche avec "bing.com" tout court, il faudra un sous domaine. Vous pouvez préciser plusieurs CN si vous utilisez un fichier de configuration.
On fusionne :
cat ca.key ca.crt > ca.pem
Récupérer ca.crt et importez le "autorité de certification racines de confiance > certificats" (windows + R > certmgr.msc). Cela fonctionnera pour Edge et IE, pour Firefox ça se passe dans
mitmproxy est présent dans Kali, c'est lui qui va relayer les requêtes web, comme un vulgaire proxy. Mais il vous permet au passage de voir ce qui transite.
Par défaut il écoute sur le port 8080 et il semblerait que le changer peut poser problème. Lançons-le :
mitmproxy -T --host --cert=cert/ca.pem
Nous précisons au passage le certificat ca.pem, bien que je le répète ça fonctionne aussi sans dans notre cas car Microsoft ne contrôle pas l'auto-signature du certificat et n'utilise pas HSTS. En effet HSTS rend impossible toute interception si votre navigateur l'implémente :
Vous devriez maintenant pouvoir surfer depuis la VM sous Windows 10 et voir les premiers paquets transiter, faites ENTREE pour en visualiser un :
Dans la capture c'est du HTTP mais ça fonctionne aussi en HTTPS
Résultats
Je constate que l'IP 204.79.197.200 est attaquée en direct, autrement dit elle est hardcodée. Voilà qui explique pourquoi on pouvait lire sur la toile que Windows 10 ne tenait pas compte du fichier host. Il en tient donc bien compte, mais il ne sert à rien quand une IP est attaquée en directe.
La qualité de la capture n'est pas terrible, mon on voit que chaque recherche déclenche du trafic :
D'ailleurs selon comment vous lancez tcpdump ou wireshark c'est l'outil qui fait la résolution inverse (IP vers domaine), ce qui peut amener cette confusion. L'option "-n" ne résoud pas les IP.
Et voici le contenu d'une trame interceptée avec Kali :
On trouve aussi un appel à http://www.msftncsi.com/ncsi.txt qui permet à Windows de savoir si la liaison internet fonctionne, mais ce n'est pas propre à Windows 10.
Conclusion
Cela confirme le sentiment que j'avais sur Windows 10, il est très bavard, trop bavard. Qu'il discute de temps en temps pour savoir s'il y a des mises à jour je veux bien, mais envoyer ma résolution, le modèle et marque de ma machine à chaque fois que je fais une recherche dans le menu démarrer... non merci. Sachant que j'ai désactivé la recherche en ligne...
Après coup j'ai pu voir que mes données se recoupent avec l'article de Ars Technica qui a utilisé Fiddler, de mon côté Fiddler ne voyait pas les données j'ignore s'il y a une configuration particulière à faire.
Je n'utiliserai donc pas Windows 10 tant que cette situation n'évoluera pas, malgré les quelques outils désactivent les mouchards. Je me demande bien d'ailleurs ce que la CNIL attend pour se pencher sur ce sujet. Je ne dis pas que c'est illégal, Microsoft a forcément blindé les conditions d'utilisation, mais ce n'est pas acceptable en l'état.
Je ferai peut-être d'autres analyses sans désactiver les mouchards et avec aucune entrée dans le fichiers hosts, histoire de voir ce qui peut transiter pour "monsieur tout le monde" comme se le demande aussi Nicolas Simon dans son billet.
Nattapong Pullkhow vient d’annoncer la disponibilité de son thème d’icônes, très coloré et rondouillet, inspiré de MeeGo et d’iOS.
Pour le moment distribué sous licence non libre Creative Commons 4.0 BY-NC-ND, son auteur promet un passage sous licence libre une fois les 1000 dollars de financement atteints.