diff --git a/Gemfile b/Gemfile deleted file mode 100644 index 6e3bf7e..0000000 --- a/Gemfile +++ /dev/null @@ -1,6 +0,0 @@ -# A sample Gemfile -source "https://rubygems.org" -gem 'guard' -gem 'guard-livereload' - -# gem "rails" diff --git a/Gemfile.lock b/Gemfile.lock deleted file mode 100644 index 92b52bc..0000000 --- a/Gemfile.lock +++ /dev/null @@ -1,57 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - celluloid (0.16.0) - timers (~> 4.0.0) - coderay (1.1.0) - em-websocket (0.5.1) - eventmachine (>= 0.12.9) - http_parser.rb (~> 0.6.0) - eventmachine (1.0.4) - ffi (1.9.6) - formatador (0.2.5) - guard (2.11.1) - formatador (>= 0.2.4) - listen (~> 2.7) - lumberjack (~> 1.0) - nenv (~> 0.1) - notiffany (~> 0.0) - pry (>= 0.9.12) - shellany (~> 0.0) - thor (>= 0.18.1) - guard-livereload (2.4.0) - em-websocket (~> 0.5) - guard (~> 2.8) - multi_json (~> 1.8) - hitimes (1.2.2) - http_parser.rb (0.6.0) - listen (2.8.5) - celluloid (>= 0.15.2) - rb-fsevent (>= 0.9.3) - rb-inotify (>= 0.9) - lumberjack (1.0.9) - method_source (0.8.2) - multi_json (1.10.1) - nenv (0.2.0) - notiffany (0.0.3) - nenv (~> 0.1) - shellany (~> 0.0) - pry (0.10.1) - coderay (~> 1.1.0) - method_source (~> 0.8.1) - slop (~> 3.4) - rb-fsevent (0.9.4) - rb-inotify (0.9.5) - ffi (>= 0.5.0) - shellany (0.0.1) - slop (3.6.0) - thor (0.19.1) - timers (4.0.1) - hitimes - -PLATFORMS - ruby - -DEPENDENCIES - guard - guard-livereload diff --git a/Guardfile b/Guardfile deleted file mode 100644 index 8c3922c..0000000 --- a/Guardfile +++ /dev/null @@ -1,34 +0,0 @@ -# A sample Guardfile -# More info at https://github.com/guard/guard#readme - -## Uncomment and set this to only include directories you want to watch -# directories %w(app lib config test spec feature) - -## Uncomment to clear the screen before every task -# clearing :on - -## Guard internally checks for changes in the Guardfile and exits. -## If you want Guard to automatically start up again, run guard in a -## shell loop, e.g.: -## -## $ while bundle exec guard; do echo "Restarting Guard..."; done -## -## Note: if you are using the `directories` clause above and you are not -## watching the project directory ('.'), the you will want to move the Guardfile -## to a watched dir and symlink it back, e.g. -# -# $ mkdir config -# $ mv Guardfile config/ -# $ ln -s config/Guardfile . -# -# and, you'll have to watch "config/Guardfile" instead of "Guardfile" - -guard 'livereload' do - watch(%r{app/views/.+\.(erb|haml|slim)$}) - watch(%r{app/helpers/.+\.rb}) - watch(%r{public/.+\.(css|js|html)}) - watch(%r{config/locales/.+\.yml}) - watch(%r{.+\.(css|js|html)}) - # Rails Assets Pipeline - watch(%r{(app|vendor)(/assets/\w+/(.+\.(css|js|html|png|jpg))).*}) { |m| "/assets/#{m[3]}" } -end diff --git a/cache/ArticlesGenerator-Readers b/cache/ArticlesGenerator-Readers index 043846e..8098ff3 100644 Binary files a/cache/ArticlesGenerator-Readers and b/cache/ArticlesGenerator-Readers differ diff --git a/cache/PagesGenerator-Readers b/cache/PagesGenerator-Readers index 5adb2c9..9d92b71 100644 Binary files a/cache/PagesGenerator-Readers and b/cache/PagesGenerator-Readers differ diff --git a/content/archlinux-made-simple.md b/content/archlinux-made-simple.md deleted file mode 100644 index 183038f..0000000 --- a/content/archlinux-made-simple.md +++ /dev/null @@ -1,262 +0,0 @@ -Title: Archlinux made simple -Date: 2012-10-05 14:48 -Author: Wxcafe -Category: OSes -Slug: archlinux-made-simple - -Archlinux est réputée être une distribution Linux très complexe a -installer et a maintenir. - -Je vais tenter ici de vous convaincre que ce n'est pas le cas, et -qu'elle peut se monter très intéressante et très instructive a installer -tout autant qu'a utiliser. - -Il convient tout d'abord de rappeler a quels principes obéit Arch: - -1. Le KISS : Keep It Simple and Stupid, Archlinux tente de faire des - programmes simples et utilisables par tous. Avec comme base de - simplicité les utilisateurs de LFS... Mais il n'empêche qu'avec un peu - de bonne volonté, la configuration n'est pas si compliquée! - -2. La philosophie UNIX : chaque programme est prévu pour ne remplir - qu'une seule tâche. Bien entendu, cela ne concerne que les programmes - conçus pour s’insérer dans la philosophie UNIX, et les installations de - dépendances avec le gestionnaire de paquet d'Arch fonctionnent - superbement bien. - -De plus, posons les bases d'Arch : le gestionnaire de paquets s'appelle -pacman, et les commandes de base sont : - -- recherche d'un paquet : - - pacman -Ss paquet - -- installation d'un paquet : - - sudo pacman -S paquet - -- désinstallation d'un paquet : - - sudo pacman -R paquet - -- mise a jour de tous les paquets installés : - - sudo pacman -Syu paquet - -Archlinux est une distribution dite "rolling release", ce qui signifie -qu'il n'y a pas de version a proprement dites, et que les paquets se -mettent a jour en permanence, sans jamais changer la "version" d'Arch. -Il n'y a d'ailleurs qu'une seule version de l'installeur sur le site, -puisqu'une version plus ancienne n'aurait aucun sens. - -Arch n'offre pas d'interface graphique par défaut : après avoir installé -le système, vous n'aurez qu'une invite de commande. Heureusement, je -vais ici vous guider a travers l'installation d'une interface graphique -(mate, le fork de gnome 2) - -L'installation d'Arch se fait par le réseau, veillez a avoir une -connection WiFi ou filaire a proximité avant de suivre ce guide. - -Ce guide utilise SystemV, alors qu'Arch va prochainement passer sous -systemd. N'ayant pas encore eu le temps d’expérimenter assez avec ce -dernier, je ferais un tutoriel pour passer votre Arch a systemd bientôt. - -Bon, passons a l'explication de l'installation proprement dite : - -Tout d'abord, téléchargeons l'iso d'arch la plus récente : - - wget http://mir.archlinux.fr/iso/2012.09.07/archlinux-2012.09.07-dual.iso - -Ensuite, gravons cette image sur un disque USB : - - dd if=archlinux-2012.09.07-dual.iso of=/dev/sdX - -Après reboot de la machine sur l'iso en question et choix de -l'architecture, nous sommes accueillis par un shell root. - -La première chose a faire est de paramétrer le clavier : - - loadkeys fr - -Puis nous pouvons passer a l'installation proprement dite. -Partitionnement : - - cfdisk # cfdisk est suffisamment clair pour ne pas nécessiter d'explications - -formatage des partitions : - - mkfs.ext4 /dev/sda1 # partition root - - pacman -Syu btrfs-progs && mkfs.btrfs /dev/sda2 # partition home - - mkswap /dev/sda3 && swapon /dev/sda3 # partition de swap - -Montons les partitions nouvellement créées, puis installons le système : - - mount /dev/sda1 /mnt - - mkdir /mnt/home && mount /dev/sda2 /mnt/home - - dhclient eth0 # si vous utilisez une connection filaire, sinon voire http://wiki.archlinux.fr/Wifi#Configuration - - pacstrap /mnt base base-devel - - genfstab -p /mnt > /mnt/etc/fstab - -Allons prendre un café le temps que ça charge, puis installons les -quelques paquets nécessaires a notre installation et au premier -démarrage: - - pacstrap /mnt syslinux btrfs-progs wireless_tools dhclient - -Maintenant, passons sur notre install toute fraîche d'Arch : - - arch-chroot /mnt bash - -configurons les bases : - - echo HOSTNAME > /etc/hostname - - ln -s /usr/share/zoneinfo/Europe/Paris /etc/localtime - - date MMJJhhmmAAAA - - hwclock --systohc - - vim /etc/locale.gen # Décommentez les lignes correspondant au français : fr_FR.UTF-8 et fr_FR.ISO-8859-1 - - echo 'LANG="fr_FR.UTF-8"' > /etc/locale.conf - - locale-gen - - mkinitcpio -p linux - -Enfin, vérifions que syslinux est correctement configuré : - - vim /boot/syslinux/syslinux.cfg # il devrait y avoir "append root=/dev/sda1" - -Si tout est correct, installons syslinux, et paramétrons un mot de passe -root : - - syslinux-install_update /dev/sda -mia - - passwd root - -Et voila, l'installation est terminée! Plus qu'a quitter la session et a -redémarrer l'ordinateur! - - exit - umount /mnt/home - umount /mnt - reboot - -Fini! - -Prenons une petite pause. La partie suivante de ce tutoriel consister en -un paramétrage des principaux services nécessaires a l'utilisation d'un -OS, disons, moyen : - -- Installation de MATE, le gestionnaire de bureau (voir -[http://mate-desktop.org/][]) - -- Installation de sudo et de networkmanager pour faire fonctionner les -composants essentiels du système sans avoir a tout activer a la main a -chaque démarrage - -- Installation de SLiM comme gestionnaire de login graphique, pour -présenter une interface plus accueillante que la console, et -configuration de celui-ci - -- Installation des principaux logiciels utiles non inclus dans mate ni -base (yaourt, chromium, thunderbird, etc...). - -Ce guide est bien sur optionnel, si vous souhaitez utiliser Arch avec un -gestionnaire de bureau autre que mate, ou sans, vous pouvez vous arrêter -ici. - -Bon, reprenons. - -Nous sommes donc sur une demande de mot de passe. Entrez donc le mot de -passe paramétré plus haut pour le root, puis retapez la commande -utilisée plus tôt pour vous connecter a internet. - -Il convient d'ajouter le dépôt de MATE pour installer ce dernier, puis -d'effectuer l'action en question : - - vim /etc/pacman.conf - -Ici, ajoutez les lignes suivantes : - - [mate] - Server = http://repo.mate-desktop.org/archlinux/$arch - -Installons maintenant les paquets : - - pacman -Syu mate mate-extras dbus dbus-core alsa networkmanager sudo - -Ajoutons un compte utilisateur pour utiliser les composants du système -sans tout crasher a chaque fois : - - useradd -g users -G wheel,audio,optical,lp,scanner,log,power,floppy,storage,games,video -m -s /bin/bash *votrenom* - passwd *votrenom* - su *votrenom* - -Il faut maintenant éditer le fichier \~/.xinitrc pour préciser a X.org -ce que l'on veut utiliser : - - echo "exec ck-launch-session mate-session" > ~/.xinitrc - -Profitons en pour ajouter les démons système au lancement : - - vim /etc/rc.conf - -Ajoutez donc `dbus, alsa. hwclock` et `networkmanager` dans la section -DAEMONS (entre les parenthèses, après crond normalement) - - DAEMONS=(syslog-ng network crond dbus alsa hwclock networkmanager) - -Pour éviter un reboot, il est ici possible de faire un - - su - -Puis un - - /etc/rc.d/dbus start && /etc/rc.d/alsa start && /etc/rc.d/networkmanager start - -Sinon, il est possible de juste redémarrer. -Une fois cela fait, profitez de ce moment pour vous autoriser vous même -a utiliser sudo. Loggez vous en root, et : - - vim /etc/sudoers - -Décommentez la ligne qui commence par \# %wheel ALL=(ALL) -Sauvegardez le fichier, puis, après un `su *votrenom*`, tentez de faire -un sudo ls / -Normalement, vous devriez avoir un listing du dossier / -Bon, maintenant, pourquoi ne pas tenter de lancer MATE? -C'est simple comme bonjour : - - startx - -Et PAF! Voila un MATE desktop flambant neuf a configurer! -Avant de faire ça, retournez sur un TTY (CTRL+ALT+Fx), loggez vous, -puis installez SLiM (`sudo pacman -Syu slim`). -Configurons le: - - echo "exec dbus-launch mate-session" > ~/.xinitrc && vim /etc/slim.conf - -Éditez la ligne -"`sessions xfce4,icewm-session,wmaker,blackbox`" de facon a -ce qu'elle ressemble a "`sessions mate-session`" -Puis ajoutez slim dans /etc/rc.conf, dans la section DAEMONS. -Normalement, tout devrait fonctionner! -Ah oui, et pour installer thunderbird, firefox, chromium, etc... - - sudo pacman -Syu chromium thunderbird xchat firefox rhythmbox pidgin transmission-gtk vlc - -Voila! Et comme dirait [@Spartition][], c'est sale, mais qu'est-ce que c'est -bon! -A plus~ - - [@Spartition]: https://twitter.com/spartition - [http://mate-desktop.org/]: http://mate-desktop.org/ diff --git a/content/debuts-presentation-etc.md b/content/debuts-presentation-etc.md deleted file mode 100644 index adce6b8..0000000 --- a/content/debuts-presentation-etc.md +++ /dev/null @@ -1,36 +0,0 @@ -Title: Débuts, présentation, etc... -Date: 2012-08-18 20:27 -Author: Wxcafe -Category: Notes -Slug: debuts-presentation-etc - -Bonjour! - -Je m'appelle Wxcafé, et ça fait pas mal de temps que je sévis sur -Twitter, mais aussi sur IRC (Je traîne pas mal sur -irc.freenode.net/\#\#nolife et \#debian-fr) - -J'ai 17 ans, je suis donc étudiant (bac général), je vis a Paris, et je -fais partie de ce genre de personne qui sont capables d'investir tout -leur temps et leur énergie a s’intéresser a un sujet en particulier, et -qui ne peuvent pas vivre sans leurs passions, avec une petite différence -cependant, qui est que je m’intéresse a plusieurs choses : -l'informatique, qui est un champ tellement large qu'on peut passer une -vie a apprendre des choses dessus, et plus particulièrement à -l'informatique avancée (Noyaux dérivés d'UNIX et de Linux, outils libres -{bien que n'étant pas un barbu intégriste [ceci est un troll assumé. Les -trolls seront a partir de maintenant indiqués avec le tag [tr]] du -libre, je préfère utiliser de l'open-source si c'est possible}, -programmation en C, python et java, etc...) , mais aussi a -l’électronique. - -Dans un tout autre registre, je m’intéresse aussi -beaucoup aux différents aspects du féminisme et des égalités sexuelles -(anti-homophobie/transphobie/biphobie/etc , anti-sexisme, et cætera) , -et a la culture dite "geek" en général. - -Je tenterai de poster ici le plus souvent possible, mais j'ai de gros -problèmes en terme de régularité de post, donc ne vous inquiétez pas si -vous ne voyez rien pendant deux semaines. - -Merci beaucoup de votre attention, et a bientôt! diff --git a/content/gnulinux-pour-les-non-technophiles-ou-los-libre-pour-votre-grand-mere.md b/content/gnulinux-pour-les-non-technophiles-ou-los-libre-pour-votre-grand-mere.md deleted file mode 100644 index 6842759..0000000 --- a/content/gnulinux-pour-les-non-technophiles-ou-los-libre-pour-votre-grand-mere.md +++ /dev/null @@ -1,84 +0,0 @@ -Title: GNU/Linux pour les non technophiles, ou l'OS libre pour votre grand-mère -Date: 2012-08-22 20:33 -Author: Wxcafe -Category: Teaching -Slug: gnulinux-pour-les-non-technophiles-ou-los-libre-pour-votre-grand-mere - -GNU/Linux est un vaste et extraordinaire territoire technologique, mais -je ne vais pas m'attarder ici sur les aspects profondément techniques de -ce territoire pour faire plutôt une sorte d'introduction a ce qu'est -vraiment GNU/Linux, pour les gens n'ayant aucune ou très peu de -connaissances en informatique. - -GNU/Linux, que j’abrégerai ici en Linux pour plus de simplicité, est un -Système d'Exploitation. Un système d'exploitation est, pour simplifier, -un ensemble d'outils informatiques qui vous permettent d'utiliser votre -ordinateur, ainsi, Windows est un système d'exploitation. L'abréviation -de système d'exploitation (Operating System en anglais) est OS. Les 4 -principaux OS existants aujourd'hui sont Windows, Mac OS, GNU/Linux, et -Solaris. Les trois derniers sont issus d'un autre système, plus ancien, -nommé UNIX. - -De ce fait, on pourrait penser que Linux remplace complètement Windows -une fois installé, et comprend une interface graphique, et toutes sortes -d'utilitaires permettant a l'utilisateur d'utiliser le système (sous -Windows, pensez a l'explorateur de fichiers, ou a Internet Explorer. -Pour l'interface graphique, pensez a... Pensez que votre système affiche -autre chose que des lignes de commande.) Or non, une fois installé, -Linux en lui même ne vous afficherait aucune interface graphique, et -s'il est effectivement livré avec des utilitaires, ils ne sont que des -programmes en ligne de commande. Autant les utilisateurs avancés sauront -s'en servir, et pourront argumenter que c'est plus efficace ou plus -rapide, autant les utilisateurs basiques préfèrent une interface -graphique. Alors comment en obtenir une? - -Ici, il convient de faire une précision importante. Si il n'existe -qu'une seule version de Windows, ou de Mac OS, il existe en fait -plusieurs centaines de "versions" différentes de Linux. Appelées -distributions, ces dernière sont développées par des groupes -complètement séparés, et se basent sur le fait que Linux soit -entièrement placé sous licence libre (ce qui leur permet de l'utiliser a -leur guise, a condition que leur travail soit lui aussi placé sous -licence libre). De ce fait, de nombreuses distributions existent et se -développent en parallèle. On peut ainsi citer [Debian][], qui est l'une -des distributions les plus importantes, ou encore [Ubuntu][], qui est -l'une des plus connues et des plus simples a utiliser. - -Ainsi, ces distributions intègrent une interface graphique. Cependant, -grâce a la liberté dont bénéficient les développeurs sous Linux, il -existe de nombreuses interfaces graphiques différentes : [Unity][], la -nouvelle interface d'Ubuntu; [GNOME][] , une interface qui vise a la -simplicité; ou encore [KDE][], une interface utilisateur ressemblant a -Windows 7. - -Ainsi, le choix astronomique de distributions Linux a bien un sens : -chacune d'entre elle intègre des outils différents. Par exemple, Debian -intègre GNOME 2, qui est l'ancienne version de GNOME, ce qui la rend -particulièrement stable. Ubuntu intègre Unity, ce qui en fait une -distribution particulièrement intuitive. Linux Mint intègre Cinnamon, -qui est une version dérivée de GNOME 3, ce qui permet encore une autre -expérience. Et Arch Linux n'intègre pas d'interface graphique du tout, -ce qui permet a l'utilisateur de choisir entre les multiples interfaces -existantes. - -Ce qu'il est important de retenir de cela, c'est que Linux est un OS -complètement libre, ce qui signifie que n'importe qui peut modifier et -utiliser tout le code de Linux gratuitement et comme il l'entend. Ainsi, -Linux est un OS qui est véritablement créé par des passionnés, pour tous -et toutes. Surtout, il convient de retenir que Linux n'est pas compliqué -a utiliser, ni a installer. Windows et Mac OS ne le sont pas non plus. -Cependant, Linux donne la possibilité a l'utilisateur de le rendre -affreusement complexe, mais aussi de le rendre adapté a ses besoins, -quels que soient ceux ci. Et c'est la que réside l'incroyable puissance -de ce Système d'Exploitation. Il est extraordinairement adaptable. - -N'hésitez donc pas a le présenter a vos proches, même s'ils ne sont pas -technophiles. Ils pourraient adorer, et peut être même le devenir :) - -A bientôt! - - [Debian]: http://debian.org - [Ubuntu]: http://ubuntu.com - [Unity]: unity.ubuntu.com - [GNOME]: gnome.org - [KDE]: http://kde.org/ diff --git a/content/introduction-a-bash-en-tant-que-language-de-programmation.md b/content/introduction-a-bash-en-tant-que-language-de-programmation.md deleted file mode 100644 index 17981af..0000000 --- a/content/introduction-a-bash-en-tant-que-language-de-programmation.md +++ /dev/null @@ -1,158 +0,0 @@ -Title: Introduction a bash en tant que language de programmation. -Date: 2012-09-08 18:15 -Author: Wxcafe -Category: Programmation -Slug: introduction-a-bash-en-tant-que-language-de-programmation - -L’interpréteur de commandes bash (Bourne Again SHell) -est possiblement le shell le plus connu, notamment grâce a son -intégration en tant que shell par défaut dans les distributions Linux -les plus répandues (Debian - Ubuntu, Fedora, OpenSUSE, Mandriva - -Mageia, etc...). - -Cependant, il n'est souvent connu qu'en tant qu’interpréteur de -commande. Alors qu'en réalité, le bash est un langage de programmation -(presque) complet! Ainsi, il intègre les structures de contrôle -habituelles ( pour mémoire, les structures de contrôle comprennent les -conditions (les ifs), les boucles (les while), et les choix (les case), -entre autres.), et est donc ce que l'on pourrait appeler un langage de -script, interprété, de la même façon que python, a la difference près -qu'il contient un prompt (un système d'entrée de commande interactif) -bien plus complet et développé que python. - -Cependant, les programmes en bash ne sont executables que dans un -environnement de type UNIX, et donc pas sous Windows (cygwin -(cygwin.com) propose ceci dit un système permettant d'utiliser bash sous -windows. Il faut malgré tout convenir que cet environnement est bien -plus compliqué a manipuler, et globalement ne permet pas d'acceder a des -portages de qualité satisfaisante.) - -Ainsi, il est possible de créer des fichiers .sh, contenant des -instructions bash mises a la suite (de la même façon qu'un script BATCH -Windows .bat), et faisant appel autant aux commandes internes de bash, -aussi bien que les commandes externes mises en place par les programmes -installés sur le système, exactement comme dans une invite de commande. -Ainsi, pour appeller firefox, la commande 'firefox' lancera le petit -panda roux directement dans la boite magique, tandis qu'un if -[condition] suivi d'un then (quelque chose) lancera le fameux quelque -chose suscité si la condition est vérifiée. Un peu comme en C, quoi. - -De cette façon, et avec quelques informations et connaissances, il est -facile de comprendre le fonctionnement de la programmation en bash. -Quelques exemples commentés: - - #!/bin/bash - # La ligne du dessus est très importante, c'est elle qui dit a bash quel doit être - # l'interpreteur des commandes écrites dans ce script. Ici, on dit a bash d'interpréter - # lui même les commandes comprises dans ce script. On aurait tout de fois pu lui faire - # executer du python, par exemple, en mettant #!/usr/bin/python a la place. - echo "this is a test of bash as a simple script manager" # echo est une commande d'affichage de message. - echo "what's your name, user?" - read your_name # la commande read permet de demander a l'utilisateur de donner une - # information, stockée dans la variable en paramètre. - echo $your_name "is your name" # echo permet aussi d'afficher la valeur de variables. - # Ici, on renvoie la variable remplie précédemment, suivie d'un message. - exit # cet appel a exit n'est pas obligatoire, mais donne un aspect plus - # propre au code. Il ne quittera pas la session de terminal, cependant. - -Voila. Ce script bash ne sert pas a grand chose, mais il a le mérite -d'être clair quand aux capacités et a la simplicité du bash en tant que -language de programmation. Alors en effet, nous n'avons ici absolument -pas utilisé les capacités de bash en lui même, et n'avons fait que le -renvoyer a des programmes externes (sauf read, il est vrai). Voyons -maintenant la syntaxe de bash quand il s'agit d'utiliser les structures -de contrôle: - - #!/bin/bash - echo "welcome to this second bash program. would you please kindly enter the name of the machine you're running this on?" - read host_name - if [ $host_name == $HOSTNAME ] ## voici la syntaxe du if. Attention a bien penser a mettre les espaces avant la première variable, et après la seconde. La variable $HOSTNAME ici utilisée est une variable présente par défaut sur le système. - then echo "you told the truth!" - fi ## le fi est la commande fermant le if, tout comme le EndIf en basic. C'est un peu vieillot, mais important en bash. - if [ $host_name != $HOSTNAME ] ## l'opérateur != est l'inverse de ==, il vérifie donc si les deux variables ne sont pas les mêmes. - then echo "you lied!" - fi - exit - -Voila un petit programme permettant d'apprendre la syntaxe du if en -bash. comme vous pouvez le voir, le language est plutôt lite, et la -structure if n'est pas très difficile a prendre en main. - -Passons maintenant au while: - - #!/bin/bash - echo "what is your name?" - read name - while [ 1 < 10 ] ## le while se présente sous la forme while (truc); do (machin); done. Les [] sont en fait des programmes differents, inclus dans bash. - do echo "i love" $name - done - exit - -Ce petit programme permet d'observer les bases de while (qui est la -boucle de base en bash). - -Le troisième opérateur de bash est case. Voyons: - - #!/bin/bash - echo "please enter a number between one and five" - read number - case $number in - 1) - echo "the choosen number was one" - ;; - 2) - echo "the choosen number was two" - ;; - 3) - echo "the choosen number was three" - ;; - 4) - echo "the choosen number was four" - ;; - 5) - echo "the choosen number was five" - ;; - *) - echo "this number is not correct" - ;; - esac - exit - -case est un opérateur plus complexe a utiliser a bon escient, et sert a -faire des ifs multiples sans avoir a taper des dizaines de lignes de -code. -(pour ceux qui auraient du mal avec cet opérateur, il faut comprendre -que le code vérifie chacune des conditions : le 1) est validé si la -valeur de \$number est 1, le 2) est validé si cette valeur est 2, etc.. -le \*) désigne toutes les valeurs, et est donc validé si aucune autre -valeur n'a précédemment acceptée. - -Quelques notions manquent ici: -- les nombres aléatoires sont générés par un appel a la variable -\$RANDOM, qui renvoie un nombre aléatoire entre 0 et 32767 (un entier a -16 bits donc). il est possible de faire des invocations a des nombres -aléatoires plus grands, mais les méthodes permettant de faire cela sont -plus complexes, et je ne les aborderai donc pas ici. -- comme vous avez pu le constater, les variables sont désignées en tant -que telles par l'utilisation d'un symbole \$ au début de leur nom. -Ainsi, echo number renverra "number", tandis que echo \$number renverra -le résultat de la variable \$number. -être utilisées dans un programme bash. -- comme vous avez pu le constater, les commandes doivent tenir en -théorie en une ligne. Cependant, le caractère \\ permet de retourner a -la ligne en faisant considérer a bash qu'il s'agit de la même ligne. - -Globalement, il faut admettre que bash n'a pas vocation a être un -langage de programmation extrêmement développé. Sans framework -graphique, avec peu de manières d'utiliser de grandes variables, ou -encore une gestion de la mémoire risible, bash n'a rien d'un langage de -développement professionnel. -Cependant, le simple fait qu'il soit considéré comme un langage de -programmation a part entière font de lui un langage de script d'une -puissance incontestable, et sa simplicité et sa grande popularité font -de lui un langage de choix pour apprendre la programmation simplement et -sans trop se prendre la tête. - -J'espère que cet article aura été utile a certain-e-s, et je vous -souhaite bonne chance dans votre découverte de la programmation (n'allez -pas voir ceux qui font de l'orienté objet, c'est des méchants :3) diff --git a/content/la-cryptographie-avec-pgp-et-principalement-gnupg.md b/content/la-cryptographie-avec-pgp-et-principalement-gnupg.md deleted file mode 100644 index d93b36a..0000000 --- a/content/la-cryptographie-avec-pgp-et-principalement-gnupg.md +++ /dev/null @@ -1,177 +0,0 @@ -Title: La cryptographie avec PGP et principalement GnuPG -Date: 2012-11-19 00:36 -Author: Wxcafe -Category: Tutoriel -Slug: la-cryptographie-avec-pgp-et-principalement-gnupg - -PGP (pour [pretty good privacy][]) est un système de -chiffrement asymétrique (pour plus d'information sur le chiffrement -asymétrique, voir [ici][]) utilisant en général les algorithmes RSA -et/ou DSA, et pouvant servir a chiffrer tout fichier, mais aussi a -signer des emails. Le système de signature consiste a s'identifier en -tant que la personne que l'on est, en certifiant de son identité, et -repose sur un système dit de *Web of Trust*. - -Ce concept de Web of Trust est simple: si je valide le code vous -identifiant (votre clé), en certifiant que vous êtes qui vous êtes et -que je vous connais, et que d'autres personnes m'ont déjà -personnellement validé, les autres utilisateurs seront enclins a croire -que vous êtes en effet la personne que vous prétendez être. Bien -entendu, les utilisateurs validant trop de clés rapportées comme fausses -voient la valeur de leurs signatures baissée, et toutes les clés signées -par ces utilisateurs voient leur crédibilité baisser. -Inversement, les "bons utilisateurs" voient la valeur de leurs -signatures augmentée, ce qui augmente la crédibilité des clés qu'ils ont -signées. - -Ceci dit, un email peut être a la fois signé et chiffré, de façon a être -sûr, non seulement que l’expéditeur de l'email est bien celui qu'il dit -être, mais aussi que l'email n'a pas été modifié entre l'envoi et -la réception (en effet, avec un chiffrement de type RSA/DSA, une -modification du corps de l'email rend ce dernier illisible, la clé -publique ne  correspondant plus a la phrase de passe du message), ce qui -offre bien évidemment des avantages non négligeables dans un -environnement ou la protection des échanges est importante (soit a peu -près partout sur internet, si vous tenez a votre vie privée. Pensez a -[quitter Gmail][] aussi, par exemple). - -Il est cependant a noter que les clés publiques sont généralement -situées sur un serveur de clés publiques, tel pgp.mit.edu ou encore -subkeys.pgp.net (certaines personnes préfèrent garder leur clés hors des -serveurs de clés publiques, craignant une compromission de ces serveurs. -Dans le cas d'utilisateurs normaux (c'est a dire n'échangeant pas de -secrets classés secret-défense par email), la protection offerte par les -serveurs de clé publiques est suffisante) - -L'une des implémentations les plus connues et utilisées de PGP est sans -conteste GPG ([GNU Privacy Guard][]) , qui comme son nom l'indique fait -partie du projet GNU, et qui (`` de façon surprenante pour un -programme GNU``) est extrêmement efficace et claire. - -Après ces explications techniques, voici venue le -moment intéressant/utile, a savoir l'application. Le chiffrement et la -signature de mails doivent cependant attendre un petit peu, étant donné -qu'il vous faut d'abord créer votre clé et la placer sur un serveur de -clés publiques, de façon à ce que votre destinataire puisse vous -identifier lorsqu'il recevra le mail, mais aussi a configurer votre -client mail pour utiliser gpg (je baserai les explications de cet -article sur Thunderbird, mais des explications efficaces sont trouvables -facilement sur les interwebs). - -Tout d'abord, générons une clé GPG : - - gpg --gen-key - -GPG va vous demander les méthodes de chiffrement que vous voulez -utiliser, le plus sur est de laisser la valeur par défaut. La question -suivante est de savoir quelle taille votre clé doit faire, il est -préférable de choisir la taille la plus importante possible (4096). GPG -veut ensuite savoir quand votre clé doit expirer. La méthode simple est -bien évidemment de ne jamais la faire expirer, il est cependant plus -intéressant dans une logique de sécurité de régler cette durée a six -mois/un an. - -Des informations personnelles vous sont ensuite demandées, -concernant votre nom (mettez le vrai, tel qu'il apparaît sur votre carte -d'identité, si vous souhaitez utiliser votre véritable identité), votre -adresse mail (mettez la plus utilisée, vous pourrez en rajouter plus -tard), et un mot de passe pour la clé (utilisez un mot de passe -sécurisé!! Il est conseillé d'utiliser au moins 8 caractères, dont majuscules, -minuscules, caractères spéciaux et nombres (vous pouvez utiliser la -commande `makepasswd`, qui génère automatiquement un mot de -passe) - -GPG va maintenant prendre un peu de temps pour générer le couple clé -publique/clé privée, vous devriez profiter de ce temps pour effectuer -des opérations autres sur votre ordinateur : taper des textes, lancer -des films, écouter de la musique... De façon à augmenter les chances -d'obtenir un nombre bien aléatoire (le générateur d'aléatoire se base -sur la RAM pour obtenir des bits au hasard) - -Une fois cela fini, vous obtenez un couple clé publique/clé privée, que -vous ne pouvez pas visualiser entièrement pour l'instant. Il est -cependant possible (et recommandé) de les exporter pour les sauvegarder -via une commande: - - gpg --armor --export --output=pubkey.gpg - -pour la clé publique, et - - gpg --armor --export-secret-keys --output=seckey.gpg - -pour la clé privée. Il est possible et même souhaitable de copier ces -clés sur une clé USB, une carte SD, ou un autre support de stockage -résistant, de façon a avoir une solution de sauvegarde, au cas ou vous -perdiez ces clés sur ce PC. - -Cela fait, listons les informations sur votre clé publique : - - $ gpg --list-keys --fingerprint - pub 4096R/27D81AC8 2012-11-17 - Key fingerprint = 6345 A91A FF89 97E0 13D0 96A9 9E2A 1917 27D8 1AC8 - uid Clément Hertling (Wxcafe) - uid [jpeg image of size 14692] - sub 4096R/9ED7F77F 2012-11-17 - -La partie `pub` indique que c'est une clé publique, `4096R` indique que c'est -une clé RSA sur 4096 bits. La partie `27D81AC8` est -l'identifiant de la clé publique, `Key fingerprint = 6345 A91A FF89 97E0 13D0 -96A9 9E2A 1917 27D8 1AC8` est appelé fingerprint de la clé. Les champs -`uid` sont des manières d'identifier la clé et la personne associée a -celle-ci, et enfin le champ `sub` est indicateur d'une subkey, système -uniquement pris en charge par GPG et non inclus dans les premières -versions de PGP, donc non-implémentées dans nombre de clients pgp. -Passons maintenant a la mise en place de cette clé publique sur un -serveur de clés : nous utiliserons ici le serveur pgp.mit.edu. - - gpg --keyserver pgp.mit.edu --send-keys *ID de la clé a uploader* - -Maintenant que votre clé publique a été uploadée, vous pouvez l'utiliser -pour signer et chiffrer vos emails! -Installons donc l'extension Enigmail pour Thunderbird, permettant de -chiffrer/signer vos emails de façon transparente. Il conviendra de -paramétrer cette extension, via le menu OpenPGP dans Thunderbird, puis -Setup Wizard (l'option entre Help et About OpenPGP). Normalement, -Enigmail détecte votre installation de gpg automatiquement, si cependant -ce n'était pas le cas, vous pouvez utiliser la clé exportée tout a -l'heure (pubkey.gpg) en l'important (import key from file). - -Selon les options que vous avez utilisées, vos emails seront -automatiquement signés et/ou chiffrés a l'envoi. Gardez cependant a -l'esprit que si tout le monde peut lire les mails signés, il n'en est -pas de même pour les mails chiffrés, pour lesquels il est nécessaire de -posséder la clé publique du correspondant en question, et de posséder -soi même une clé privée, donc d'utiliser OpenPGP aussi. -Concernant les signatures de clés, elles fonctionnent de manière très -simple : -Vous devez télécharger la clé de votre correspondant, via un - - gpg --keyserver pgp.mit.edu --search-keys *ID de la clé de votre correspondant* - -(a noter que cette commande fonctionne aussi en cherchant une adresse -email ou un nom. Cependant, en cherchant via l'identifiant de la clé, -vous êtes sur de trouver votre correspondant. Globalement, l'email est -lui aussi assez sûr en terme de recherche de clés, tandis que le nom -donne rarement un résultat). L'étape suivante est de vérifier que votre -correspondant est bien la personne qui est spécifiée sur sa clé. Pour -cela, il convient d'avoir déjà vu physiquement cette personne et si -possible d'avoir vu une pièce d'identité lui appartenant, et d'avoir une -confirmation de cette personne que la clé que vous voyez lui appartient -bien. -Ceci fait, vous pouvez signer la clé via un - - gpg --sign *ID de la clé a signer* - -puis la renvoyer au serveur via - - gpg --keyserver pgp.mit.edu --send-key *ID de la clé a signer* - -Voila, la clé de votre correspondant est signée! - -Ce tutoriel sur PGP/GPG est terminé, et votre sécurité est améliorée -grâce a cette superbe invention qu'est la cryptographie! - - [pretty good privacy]: http://fr.wikipedia.org/wiki/Pretty_Good_Privacy - [ici]: http://fr.wikipedia.org/wiki/Cryptographie_asym%C3%A9trique - [quitter Gmail]: http://www.hauteresolution.net/pourquoi-je-vais-quitter-gmail/ - [GNU Privacy Guard]: http://fr.wikipedia.org/wiki/GNU_Privacy_Guard diff --git a/content/la-programmation-expliquee-simplement.md b/content/la-programmation-expliquee-simplement.md deleted file mode 100644 index 5342b12..0000000 --- a/content/la-programmation-expliquee-simplement.md +++ /dev/null @@ -1,75 +0,0 @@ -Title: La programmation expliquée simplement -Date: 2012-08-27 00:22 -Author: Wxcafe -Category: Teaching -Slug: la-programmation-expliquee-simplement - -Salut! -Tout d'abord, je tiens a m'excuser de ne pas avoir eu le temps d'écrire -récement, mais j'ai eu la chance d'avoir un PC a monter, donc j'ai passé -pas mal de temps assez occupé. - -Enfin, après un certain temps a farfouiller au millieu des connecteurs -SATA et a apprendre que, oui, l'alimentation sert aussi pour les disques -durs, je suis de retour pour un court article. -Du coup, je m'étais dit que j'allais reprendre sur le thème de -l'informatique expliquée au grand public, en tentant d'aller un peu plus -loin que la dernière fois sur le thème de la programmation -Ce qu'il faut comprendre, c'est la facon dont fonctionne un ordinateur. -Si a peu près tout le monde sait que "les ordinateurs, ils ne -comprennent que les 1 et les 0!", peu de gens savent comment cela -fonctionne en détail. - -Si vous êtes sur ce blog, il y a pas mal de chance que vous ayez déjà -des notions de base en informatique. Ainsi, vous savez surement que les -ordinateurs fonctionnent avec des programmes, qui sont composés de -code. -Ainsi, il faut comprendre que le code (source) est "compilé" en un -fichier "binaire". Un fichier binaire est un fichier comprenant les -instructions telles qu’exécutées par le processeur, et donc absolument -illisible pour un humain. - -La compilation est le processus qui transforme le code source en -binaire executable. Les binaires ont, sous Windows, l'extension .exe, -tandis que sous les systèmes UNIX-like, ils n'ont pas d'extension -particulière. -Ceci étant dit, il faut comprendre que certains langages sont plus -proches que d'autres du langage processeur, les langages les plus -proches sont dits de "bas niveau". Les langages les plus éloignés sont -donc dits de haut niveau. - -Par exemple, l'assembleur est l'un des languages de plus bas niveau, -tandis que python par exemple est un langage de plus haut niveau. Les -langages de haut niveau sont souvent bien plus simples a comprendre et a -apprendre que les langages de bas niveau - -Ainsi, en C, un langage de niveau relativement bas, pour afficher -"hello world" sur l'écran, le code nécessaire est : - - #include - void main() { - printf("hello world"); - return 0; - } - -le même programme en python s'écrit : - - print "hello world" - -et n'a pas besoin d'être compilé , puisqu'il peut être intepreté -directement. - -Python utilise en effet un système similaire a Java en ayant un -interpréteur dit "runtime" ou "temps réel", qui interprète le programme -sans le compiler. Java utilise un système légèrement différent, puisque -le code a besoin d'être compilé, mais est interpreté par un interpréteur -et non par le processeur. - -Cette méthode permet le fameux "code once, run everywhere", ce qui -signifie que le même code est exécutable sur quasiment tous les systèmes -d'exploitation (en fait, tous ceux sur lesquels l’interpréteur est -disponible.) - -Voila, je vous laisse sur le fonctionnement de Java et de Python, et je -vais me coucher. -A bientôt! diff --git a/content/la-separation-des-eglises-et-de-letat-une-idee-quelle-est-bonne.md b/content/la-separation-des-eglises-et-de-letat-une-idee-quelle-est-bonne.md deleted file mode 100644 index 976d720..0000000 --- a/content/la-separation-des-eglises-et-de-letat-une-idee-quelle-est-bonne.md +++ /dev/null @@ -1,108 +0,0 @@ -Title: La séparation des églises et de l'état, une idée qu'elle est bonne? -Date: 2012-12-13 03:08 -Author: Wxcafe -Category: Ranting -Slug: la-separation-des-eglises-et-de-letat-une-idee-quelle-est-bonne - -Aujourd'hui, et depuis 1901 (j'ai révisé mon histoire récemment), il -existe une loi dite de séparation des églises et de l'état, qui consiste -a faire en sorte que l'état n'ait rien a voir avec les differentes -églises, pour de sombres histoires d'indépendance et de laïcité. -(principes qui sont aujourd'hui en voie de disparition, mais ce n'est -pas le propos qui nous occupe ici). Cela dit, cette bonne idée -politique, si elle a évité a ses auteurs de nombreux tracas, et leur a -surement permis de conserver une tête en état de fonctionnement bien -reliée a leur colonne vertébrale, ne vous interesse que moyennement, et -vous voudriez retourner répondre a vos mails sur Gmail et micro-blogguer -(quel mot horrible...) sur twitter? - -Ça tombe bien, vous abordez justement le sujet véritable de cet article -(non, mon blog n'est pas devenu un histoblog, désolé aux déçus...), a savoir -la centralisation qui se met progressivement en place sur internet depuis -quelques années : Twitter, Google, Facebook, Micro$oft, Apple, tous ces -acteurs du web (et pas que, pour certains...) ont commencé a prendre -pour manie de centraliser vos données : pour prendre un exemple simple, -si vous utilisez Gmail (qui depuis quelque temps, lit aussi vos mails -pour accorder la publicité, dites adieu a votre vie privée), vous avez -un compte Google Talk, probablement aussi un Google+. - -L'outil le plus pratique aujourd'hui pour aggreger des flux RSS est -Google Reader, et vous l'utilisez aussi probablement. Votre téléphone -est un android? Ah, un Nexus? Vous avez donc toutes les applications -google installées, et Chrome mobile comme navigateur par défaut, qui est -synchronisé avec la version qui tourne sur votre PC (via les serveurs de -Google, bien sur). -Depuis peu, les recherches sur le moteur de recherche -sont elles aussi ajoutées a votre profil, enregistrées a jamais par -Google (qui n'est pas touchée, en tant que société américaine, par la -"loi des 10 ans" francaise.). Vous commencez a voir le truc? Non, ne -jetez pas ce telephone, enfin! (je refuse de rembourser tout smartphone -ayant été perdu a cause de cet article) J'ai pris ici comme exemple -Google, parce que c'est celui qui propose le plus de services, mais -Apple avec iCloud, iTunes et son iPhone fait pareil, tout comme M$ avec -WP8 et Skydrive. - -Twitter et Facebook n'ont de rôle dans ce sujet qu'en ce que vous leur -fournissez des informations dont ils s'empressent de devenir seuls -propriétaires (cf les Conditions d'Utilisation de ces deux services), -puis de les revendre a des annonceurs faisant de la publicité -ciblée. Le problème est simple a apprehender, vous ne voulez pas que -l'un de ces services connaisse trop de choses sur vous (et ils recoupent -très bien les informations venant de sources differentes), car il est -évident qu'ils les vendent a des entreprises peu scrupuleuses quand -a leurs engagements de confidentialité, quand a leurs securité -aussi; mais surtout parce que depuis le 11 Septembre 2001 et le -Patriot Act, toute entreprise américaine **doit**fournir toutes ses -informations au gouvernement américain **sans aucune intervention d'un -juge, ou de quelque institution de controle que ce soit.** - -Ce qui est, comme vous pouvez le comprendre, relativement -problématique. (pour ceux qui a ce point se disent "je n'ai rien a -cacher, donc je m'en fous si le gouvernement américain sait tout de -moi", je vous conseille d'aller lire [cet article][] de Jean Marc -Manach, plein de bon sens...) Pour éviter cela, vous avez plusieurs -possibilités: utiliser des services concurrents pour tout (Facebook -Mail, Skydrive, Twitter et Google Reader par exemple), tout en vous -souvenant que comme ces entreprises sont toutes américaines, le -gouvenrnement américain détient tout de même vos informations, et que ca -lui prendra juste un peu plus de temps. - -Vous pouvez aussi n'utiliser que des entreprises francaises, -mais cela ne regle que le problème du Patriot Act, et pas celui de -la revente de vos données. Et puis essayez de trouver un service équivalent -a Google Reader et fourni par une entreprise française, on en reparlera. -Non, la véritable alternative, c'est d'héberger vos services vous -même, d'avoir votre propre serveur sur lequel vous possedez le plus -de services possibles, et d'utiliser des concurents ou des services -libres au maximum pour les autres, ceux qui ne sont pas distribuables -(par exemple, les cartes sont difficiles a mettre en commun, -or plusieurs alternatives existent: Google Maps, ``Apple -Maps``, Bing Maps, OpenStreetMaps, etc...). -Beaucoup de ces services sont cependant très facilement -décentralisables, surement parce qu'ils ont a la base étés conçus comme -des services décentralisés. Ainsi les emails, le web, le chat (via XMPP) -par exemple sont basés sur un système décentralisé. - -De plus, votre serveur peut vous servir a beaucoup d'autres des -choses que vous feriez habituellement sur votre ordinateur -personnel: conserver une présence sur IRC, compiler du code, faire -du rendu vidéo, etc... En bref, un serveur peut vous servir -a effectuer toutes les opérations que vous effectuez sur votre -ordinateur sans les inconvénients de la consommation éléctrique -ni du bruit, mais vous permet aussi de ne dépendre aucunement -d'une entreprise américaine, et cependant de disposer de tous les -services utiles offerts par ces dernières. - -Un serveur peut de plus vous permettre de controller parfaitement -tous ces services, sans aucune limitation d'aucune sorte, -voire de vous créer une page web. Bien entendu, il est bien plus -utile d'avoir un serveur si vous avez aussi un nom de domaine. -Heureusement, ils sont peu chers et souvent fournis avec le serveur. - -Dans de prochains articles, je vous expliquerai comment louer puis -configurer votre serveur pour qu'il serve de serveur mail (IMAP/SMTP), -web, base de données, et proxy. Cela dit, comme c'est un serveur sous -linux, vous pouvez l'utiliser pour a peu près n'importe quoi. -Voila, a bientôt! - - [cet article]: http://www.internetactu.net/2009/03/12/la-vie-privee-un-probleme-de-vieux-cons/ diff --git a/content/le-quenya-episode-o.md b/content/le-quenya-episode-o.md deleted file mode 100644 index e854971..0000000 --- a/content/le-quenya-episode-o.md +++ /dev/null @@ -1,44 +0,0 @@ -Title: Le Quenya - Épisode ø -Date: 2012-09-18 19:07 -Author: Wxcafe -Category: Language -Slug: le-quenya-episode-o - -Le Quenya est, pour ceux qui ne connaissent pas (comme moi jusqu’à il y -a peu...), le nom que donnait Tolkien au dialecte principal parlé par -les Elfes dans les différentes œuvres de l'auteur, dont Le Seigneur des -Anneaux, le Hobbit, ou encore le Silmarillion. Il faut se rendre compte -avant de commencer cet article que l'une des œuvres les plus -impressionnantes de Tolkien, si ce n'est la plus grande, est -l'impressionnant travail linguistique passé sur les différentes langues -présentes dans son œuvre littéraire : L'elfique, qui est donc le quenya, -la langue des nains, qui est appelé le khazalide, etc. - -En effet, a contrario des "langues" développées dans d'autres œuvres littéraires -telles Eragon ou Harry Potter, où l'auteur-e se contente de lier un mot -de français (ou d'anglais) a un mot de sa "langue", les langues de -l'oeuvre de Tolkien sont des langues complètes. Elles possèdent des -racines logiques, des systèmes de grammaire et de conjugaison propres, -une logique inhérente dans la prononciation ou l'orthographe, et ainsi -de suite. - -Un véritable rêve de linguiste donc, puisque ces langues sont -pratiquement entièrement documentées par Tolkien lui même (voir -l'appendice E du SdA, particulièrement instructif a ce sujet.) - -J'ai donc décidé d'apprendre le Quenya récemment, et je vais donc poster -ici des résumés des cours que je suis ( disponibles [ici][] , une -traduction en français est disponible [la][] en pdf ), et des infos ici -toutes les deux semaines. - -Si ce sujet vous intéresse, le compte twitter @Quenya101 poste -régulièrement des informations sur le sujet, et pour plus d'infos sur le -sujet, vous pouvez en trouver [par ici][]. - -Et en tant que première leçon, vous pouvez apprendre que ce mot que vous -avez prononcé comme le Kenya tout le long de cet article se prononce en -fait [Kwenïa], ou bien Qwenya! - - [ici]: http://folk.uib.no/hnohf/qcourse.htm - [la]: http://www.ambar-eldaron.com/telechargements/integraleshelge.pdf - [par ici]: olk.uib.no/hnohf/quenya.htm diff --git a/content/les-differentes-couches-dun-systeme-dexploitation.md b/content/les-differentes-couches-dun-systeme-dexploitation.md deleted file mode 100644 index 235077b..0000000 --- a/content/les-differentes-couches-dun-systeme-dexploitation.md +++ /dev/null @@ -1,94 +0,0 @@ -Title: Les différentes couches d'un système d'exploitation -Date: 2012-09-06 23:29 -Author: Wxcafe -Category: Teaching -Slug: les-differentes-couches-dun-systeme-dexploitation - -Étant utilisateur plus ou moins fidèle de GNU/Linux depuis quelques -années (plus ou moins, parce que j'ai toujours un Windows en dual boot, -principalement pour les jeux (possiblement plus pour longtemps, avec -l'arrivée de Steam pour Linux... ) ), je commence a connaître plus ou -moins bien mon système. Or il y a plusieurs choses a savoir sur les -systèmes d'exploitation, et celle dont je vais parler aujourd'hui, c'est -le système de couches. - -Un système d'exploitation (de type UNIX, \enfin un vrai système quoi. -\) incorpore plusieurs systèmes de couches. - -Ainsi, Linux (le noyau) a commencé en étant un kernel monolithique, -c'est a dire que tous les composants sont intégrés au kernel. Ce qui -signifie que rien ne peut être ajouté au noyau sans recompiler celui ci. -Or, quand on sait que le noyau comprend entre autres les drivers du -matériel et des systèmes de fichier, cela peut poser des problèmes quand -a la taille du kernel et a la licence libre de ce dernier. - -Depuis un certain temps, le kernel linux est devenu un kernel modulaire, ce qui -signifie que des modules peuvent être chargé a tout moment en cours -d’exécution, ce qui permet l'utilisation de nouveaux systèmes de -fichiers a chaud, ou l'insertion de matériel et l'installation de -drivers sans interrompre l’exécution du système (Windows utilise un -système de fausse installation de drivers pour le matériel externe, et -un système de pré-installation des drivers pour les périphériques dits -"plug and play") - -Après le noyau intervient le système. Or, au tous premiers instants du -boot, les systèmes GNU/Linux utilisent un système permettant de limiter -l'utilisation de ressources systèmes si elles ne sont pas nécessaires, -et incorpore ainsi un système dit de "runlevels" - -Ainsi, au runlevel 0, le système s'éteint après avoir booté. Ainsi, ce -runlevel permet de tester le bon démarrage du système sans avoir a -effectuer de manipulation pour le ré-éteindre - -Le runlevel 1 est appelé mode single user, et c'est un nom plutôt adapté -étant donné que ce runlevel donne accès a un système en étant -automatiquement loggé en tant que root, avec tous les autres -utilisateurs désactivés, de même que tous les systèmes de réseaux - -Le runlevel 2 est appelé mode multi user, et vous mets en face d'un -système classique. en ligne de commande, mais avec tous les systèmes de -réseau désactivés. - -Le runlevel 3 est le même que le 2, mais avec les systèmes de réseaux -activés. - -Le runlevel 4 n'est pas officiellement défini, et est censé être -activable en fonction des besoins de l'utilisateur. Sur la plupart des -distributions grand public, ce runlevel est lié au... - -Runlevel 5! Multi-user, networking, with working GUI! c'est le système -tel que vous le connaissez, avec l'interface graphique et le système de -login graphique. - -Le runlevel 6, enfin, est le bien nommé "reboot", qui reboot la machine -quand il devient le runlevel courant. - -(Il est a noter que Debian, et donc toutes les distribs qui en sont -dérivées, ne font pas de distinction entre les differents runlevels du 2 -au 5. Ainsi, Ubuntu fonctionne par défaut au runlevel 2, avec un login -et une interface graphique, et un mode réseau fonctionnel, bref avec des -fonctionnalités qui ne sont normalement disponibles que sous le runlevel 5.) - -Il est possible de changer de runlevel grâce a la commande runlevel -(oui, c'est évident...) - -Les systèmes Linux utilisent aussi un système dit de SandBox , qui en -informatique est un système permettant d'isoler les processus les uns -des autres. Ainsi, la pile réseau, qui est le système auquel les -différents processus envoient les différents paquets qui doivent sortir -de la machine , et qui redistribue ces paquets, est isolée du reste du -système, en cela qu'aucun des autres processus ne peuvent modifier cette -pile hors du runlevel 1 ou 2. - -De la même façon, le navigateur chrom/ium fait fonctionner tous les -onglets, ainsi que toutes les extensions, dans des processus différents. -Certaines distributions linux implémentent un système de cette sorte -pour toutes les applications, ou seulement pour certaines. ainsi Chakra -Linux a un système d'installation d'applications dans des disques -virtuels, ce qui permet une sécurité totale du processus. - -Voila, j'espère vous en avoir appris un peu sur le fonctionnement des -différentes couches de linux, et j'espère que cet article vous poussera -a tester un peu votre système et a vous amuser avec les différents -runlevels - diff --git a/content/les-systemes-de-fichiers.md b/content/les-systemes-de-fichiers.md deleted file mode 100644 index 7003c88..0000000 --- a/content/les-systemes-de-fichiers.md +++ /dev/null @@ -1,123 +0,0 @@ -Title: Les systèmes de fichiers -Date: 2012-09-25 10:28 -Author: Wxcafe -Category: Teaching -Slug: les-systemes-de-fichiers - -Un système de fichiers. Vous en avez surement déjà entendu parlé si vous -avec déjà installé Linux, ou formaté une clé USB. Dans ces cas, vous -connaissez surement NTFS, EXT4, ou encore FAT32. - -Ces différents noms désignent en effet des systèmes de fichiers. Mais -qu'est-ce qu'un système de fichiers? - -Pour comprendre cela, il faut déjà savoir ce qu'est exactement un -fichier. Un fichier est un ensemble de blocs (les blocs sont l'unité la -plus petite traitable par le matériel, ils font généralement 1 ou 4 Kio -([kibioctet][]), en fonction du système de fichier utilisé.), qui est -donc composé de bits, interprétés différemment en fonction du type de -fichier. Cependant, seul, le fichier n'est pas accessible, puisqu'il -n'est pas indexé, c'est a dire que l'OS ne sait pas qu'il est présent, -ou il commence ni où il s'arrête (je schématise un peu, mais c'est -l'idée). - -Ainsi, le système de fichier donne un cadre et un standard à -l'arborescence des fichiers. Par exemple, le système de fichier ext4 -utilise des blocs de 1 Kio, et de ce fait, toutes les partitions de -disque dur formatées en ext4 peuvent prendre comme unité de base 1 Kio -et mesurer la taille des fichiers en blocs de cette façon. Les systèmes -de fichiers nécessitent l'inclusion de drivers dans le noyau pour -pouvoir être pris en compte. - -Le noyau linux inclut par défaut les drivers pour ext2/3/4, btrfs, -reiserfs, ntfs, fat16/32 et hfsx, ce qui permet de monter a peu -près tout type de partition récente. - -Il convient de bien faire la différence entre le système de fichier et -l'arborescence des fichiers. Si l'arborescence des fichiers est en fait -une entité virtuelle englobant la racine / et tous les fichiers et -dossiers contenus dedans, le système de fichier permet a votre système -GNU/Linux de distinguer les différents fichiers composants cette -arborescence. - -Détaillons maintenant les types de fichiers les plus répandus: - -- FAT16/32 : Les systèmes de fichier FAT (pour File Allocation Table, - soit la définition d'un système de fichier), remplissent leur rôle le - plus simplement possible. Ne permettant (historiquement) que des noms de - 8 caractères (plus extension de trois caractères), ni chiffrement, ni - système de distinction d'utilisateurs (DOS étant un système - mono-utilisateur), Il fut décliné par microsoft en FAT16 et en FAT32, - utlisants respectivement des blocs de 16 et 32 Kio. - -- NTFS :. Le NTFS (pour New Technology File System, rapport a Windows - NT) est un système de fichier qui est apparu avec Windows XP, et qui - était une mise a jour nécessaire du FAT32 vieillissant. NTFS ajoute a - FAT différentes capacités dont le chiffrement, les liens symboliques, la - compression et les quotas pour les volumes, permettant de limiter la - taille maximum occupée dans une partition. - -- ReFS : ReFS est le système de fichiers introduit dans Windows Server 2012. - Ne différant pas énormément de NTFS, je le mentionne principalement - parce qu'il est prévu qu'il soit le défaut pour Windows 8. - Il apporte principalement la redondance, c'est a dire que chaque - fichier possède une somme de contrôle en 64 bits stockée dans un fichier - séparé pour éviter les corruption de disque. - -- Ext2/3/4 : les systèmes ext (extended) sont les systèmes de fichiers - les plus utilisés sous linux pour le grand public. (Je traiterai ici - d'ext4, puisque c'est le plus récent.) Il dispose de toutes les - fonctions que l'on peut attendre d'un système de fichiers moderne, ni - plus ni moins. Ainsi, ext4 est un système de fichiers journalisé, - acceptant les capacités jusqu’à 1 Exioctet, et utilise l'allocation dite - "par extent", ce qui signifie que la création d'un fichier réserve - automatiquement les zones contiguës de façon a réduire la fragmentation. - -- ReiserFS : ce système de fichiers, créé par le (légèrement mégalo) - programmeur Hans Reiser, est a retenir pour avoir été le premier système - de fichiers journalisé, et accepte un nombre de fichiers de l'ordre des - 4 milliards. Le but de ce système est de créer un système polyvalent, a - la fois système de fichiers et base de donnée (de part sa grande - capacité en terme de nombre de fichiers et de l'utilisation d'un - journal.) - -- Btrfs : ce système est l'évolution logique d'ext4, et inclut lui aussi - l'allocation par extent, mais possède de plus un système de - sous-volumes, qui permet d’accéder a plusieurs arborescences de fichiers - montées en même temps (système pratique et utile pour faire des - snapshots de systèmes.). Il permet aussi de redimensionner a chaud la - taille des partitions, en les agrandissant ou en les rétrécissant, est - compatible avec [LVM][], a un système de checking intégré (btrfsck), et - utilise un algorithme de compression appelé LZ4, qui accélère les accès - aux fichiers compressés d'environ 30% par rapport a LZO, le système - utilisé dans ext4. - -- HFS+ : le système de fichier présent sur tous les macs a des capacités - relativement standards, et ressemble énormément a l'ext3. Il supporte - cependant les liens directs vers les dossiers, fonction rare sur les - systèmes de fichiers actuels. Il est possible qu'il évolue a nouveau - dans les années a venir - -- ZFS : Ce système de fichier, venu de Solaris mais utilisable par Linux - et \*BSD, est, tel Btrfs, a la fois un système de fichier et un - remplaçant/compatible avec LVM, C'est un système de fichiers conçu - principalement pour les serveurs, et il intègre ainsi un système de - redondance des données pour éviter les corruptions, un mode RAID-Z - (apparenté au RAID5), des checks d’intégrité en continu, des snapshots, - etc... - -Comme on a pu le voir, les systèmes de fichiers disponibles sont -légions. Cependant, le plus adapté a Linux et a une utilisation grand -public aujourd'hui est probablement Btrfs. Malheureusement, ce dernier -n'est pas aujourd'hui proposé par défaut sur les distributions les plus -utilisées, au profit de l'ext4, qui commence a accuser son âge... - -Les systèmes de fichiers, s'ils peuvent ne pas sembler primordiaux au -fonctionnement du système, sont en fait de première importance, et ce -choix ne devrait pas être laissé au hasard, et être mis a jour -régulièrement (pour éviter les failles de sécurité...) - -Bon courage, et bon choix pour votre prochain système. - - [kibioctet]: http://fr.wikipedia.org/wiki/Kibioctet#Multiples_normalis.C3.A9s - [LVM]: http://fr.wikipedia.org/wiki/LVM diff --git a/content/linformatique-a-lecole.md b/content/linformatique-a-lecole.md deleted file mode 100644 index e7bf923..0000000 --- a/content/linformatique-a-lecole.md +++ /dev/null @@ -1,81 +0,0 @@ -Title: L'informatique a l'école -Date: 2012-10-15 20:34 -Author: Wxcafe -Category: Ranting -Slug: linformatique-a-lecole - -Après avoir lu [cet article][] paru sur écrans.fr, et au vu des -nombreuses réflexions que j'ai eu sur ce sujet au cours des années, je -commence a me demander si la réponse logique ne serait pas d'enseigner -les bases de l'informatique (bases d’électronique, de programmation et -de logique formelle) dès le collège. - -En effet, l'exemple qui me revient toujours est celui des technoprêtres -de warhammer 40 000, dans un univers ou la technologie est ritualisée et -incomprise même des plus savants, qui se contentent de reproduire ce qui -existe, et parfois par chance de retrouver un schéma explicatif lisible -par une machine, et qu'ils ne comprennent pas eux mêmes, ou toute -technologie est ointe d'onguents sacrés, entourée d'encens avant d'être -péniblement actionnée par des assistants ne comprenant rien a cette -technologie (ayant lu [Hackers - Heroes of the Computer Revolution][] de -Steven Levy, c'est l'ambiance que l'on retrouve quand l'auteur décrit -l'ambiance près des machines IBM au MIT, au début de l'ouvrage), et il -me semble que de plus en plus la société se rapproche de cela. - -Cette culture de l’ingénierie, qui existait beaucoup lors des débuts de -l'informatique (telle que décrite par exemple par Steve Wozniak dans son -livre [iWoz][]) disparait pour laisser place a une culture de la -consommation et de l'utilisation de contenus existants, et même a une -certaine peur de la compréhension de la technologie. Ceux qui s'y -intéressent sont considérés comme marginaux (combien de hackers créent -des outils sur lesquels seront construits tous les systèmes du siècle a -venir, tels des Dennis Ritchie en puissance? Combien d'entre eux ne sont -pas intégrés a la société dite "normale"?), et on peut souvent observer -les réactions de peur que lancent les actions des hackers, ne serait-ce -que dans les journaux (combien de journaux 'mainstream' ont-ils parlés -des hackers en bien, c'est a dire tels qu'ils sont réellement, depuis -les années 80?) ou a la télévision. - -Ainsi, la culture et la connaissance de ces appareils que -sont les ordinateurs, qui aujourd'hui se trouvent du fond de nos -poches a dans l'espace en passant par l’intérieur des pacemakers -jusqu’à être une composante indispensable de la société, se perdent et -rendent ainsi la compréhension de ces appareils impossible (j'ai eu -la désagréable surprise récemment de voir un camarade de classe -me poser ingénument la question "Ah, mais en fait, quand tu installes -Linux, ça change le fond d'écran et les icônes?". Au-delà du niveau, -la misère de cette question est que cette personne n'avait probablement -aucune idée de la façon dont fonctionnait son ordinateur, a part -pour le fond d'écran en question et pour les fameuses icônes.) pour -le grand public, et cet évolution crée de fait une sorte d'oligarchie de -techno-comprenants, seuls capables de manier et de créer la technologie. - -C'est pour cela qu'il me semble intéressant, important, peut être même -requis, d'inclure au programme du collège puis du lycée des cours -d’électronique et d'informatique tels que décrits plus haut, de façon a -ce que les élèves comprennent le monde qui les entoure. Car c'est la le -but du cycle scolaire secondaire, me semble-t-il, et non pas de former -des futurs travailleurs. Sinon, pourquoi y aurait-il des cours de -musique, d'arts plastiques, ou encore de philosophie? Si le but du cycle -secondaire est bien d'ouvrir l'esprit des élèves sur le monde et sur ce -qui les entoure, alors les cours sur l'informatique s'imposent comme une -évidence, puisque ceux-ci nous entourent aujourd'hui bien plus que quoi -que soit d'autre... - -Ces cours seraient susceptibles de s’insérer en un mélange entre des -cours de technologie (qui aujourd'hui sont bien plus orientés physique -et machines-outils qu'informatique ou électronique, alors que la -technologie d'aujourd'hui et vraisemblablement de demain aussi est -l'informatique) et de physique, pour le côté électronique, et de façon a -donner enfin aux cours de physique un intérêt quelconque, sortir au delà -de la théorie et de l'abstraction complète que sont actuellement ces -cours et passer un peu dans la réalisation, avec des arduinos par -exemple. - -Vous aussi, intéressez vous a cela, de façon a ce que les jeunes ne -finissent pas par ne rien comprendre a ce qui est aujourd'hui l'une des -composante les plus importantes du monde tel qu'il est programmé. - - [cet article]: http://t.co/5PTfe6zu - [Hackers - Heroes of the Computer Revolution]: http://en.wikipedia.org/wiki/Hackers:_Heroes_of_the_Computer_Revolution - [iWoz]: http://en.wikipedia.org/wiki/IWoz diff --git a/content/update-a-propos-du-blog.md b/content/update-a-propos-du-blog.md deleted file mode 100644 index 2d63b13..0000000 --- a/content/update-a-propos-du-blog.md +++ /dev/null @@ -1,34 +0,0 @@ -Title: Update a propos du blog -Date: 2012-09-18 16:57 -Author: Wxcafe -Category: Notes -Slug: update-a-propos-du-blog - -Bonsoir! Un petit post pour faire un peu le point sur ce blog. -Comme vous avez pu le remarquer, j'ai un peu de mal a tenir les délais -que je m'étais fixés pour ce blog (un post tous les 8 jours), et après y -avoir un tantinet réfléchi, ceci est du a deux points principaux : - -- Tout d'abord, le manque d'inspiration, tout simplement. C'est assez -compliqué de trouver des sujets intéressants liés a l'informatique, et -qui méritent un article. Je vous invite d'ailleurs a me suggérer des -sujets via les commentaires ou twitter ([@Wxcafe][]) - -- Ensuite, le délai de 8 jours est trop court pour me permettre de faire -les recherches nécessaires, tout en manageant mes cours et mon temps -libre. - -A cause de cela, j'ai pris la décision de changer le rythme de parution -des articles a un \*minimum\* d'un post tous les 10 jours. Bien entendu, -si j'ai de l'inspiration en trop, plus de posts sont envisageables. - -Voila. A part ca, je tiens a vous remercier de me lire (c'est assez -étonnant de voir ca...), et je précise que je vais ajouter une page -About Me, qui bien entendu rassemblera des informations sur moi, ma vie, -mon oeuvre :P - -Ceci dit, je vais bosser un peu sur le prochain article. - -A plus tard! - - [@Wxcafe]: https://twitter.com/wxcafe diff --git a/output/author/wxcafe3.html b/output/author/wxcafe3.html deleted file mode 100644 index 8105624..0000000 --- a/output/author/wxcafe3.html +++ /dev/null @@ -1,1271 +0,0 @@ - - - - - Wxcafé - Wxcafe - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-

Archlinux made simple

-
- Date - - Fri 05 October 2012 - -
- By - Wxcafe -
- Category - OSes -
- - - - -
-

Archlinux est réputée être une distribution Linux très complexe a -installer et a maintenir.

-

Je vais tenter ici de vous convaincre que ce n'est pas le cas, et -qu'elle peut se monter très intéressante et très instructive a installer -tout autant qu'a utiliser.

-

Il convient tout d'abord de rappeler a quels principes obéit Arch:

-
    -
  1. -

    Le KISS : Keep It Simple and Stupid, Archlinux tente de faire des - programmes simples et utilisables par tous. Avec comme base de - simplicité les utilisateurs de LFS... Mais il n'empêche qu'avec un peu - de bonne volonté, la configuration n'est pas si compliquée!

    -
  2. -
  3. -

    La philosophie UNIX : chaque programme est prévu pour ne remplir - qu'une seule tâche. Bien entendu, cela ne concerne que les programmes - conçus pour s’insérer dans la philosophie UNIX, et les installations de - dépendances avec le gestionnaire de paquet d'Arch fonctionnent - superbement bien.

    -
  4. -
-

De plus, posons les bases d'Arch : le gestionnaire de paquets s'appelle -pacman, et les commandes de base sont :

-
    -
  • -

    recherche d'un paquet :

    -
    pacman -Ss paquet
    -
    - - -
  • -
  • -

    installation d'un paquet :

    -
    sudo pacman -S paquet
    -
    - - -
  • -
  • -

    désinstallation d'un paquet :

    -
    sudo pacman -R paquet
    -
    - - -
  • -
  • -

    mise a jour de tous les paquets installés :

    -
    sudo pacman -Syu paquet
    -
    - - -
  • -
-

Archlinux est une distribution dite "rolling release", ce qui signifie -qu'il n'y a pas de version a proprement dites, et que les paquets se -mettent a jour en permanence, sans jamais changer la "version" d'Arch. -Il n'y a d'ailleurs qu'une seule version de l'installeur sur le site, -puisqu'une version plus ancienne n'aurait aucun sens.

-

Arch n'offre pas d'interface graphique par défaut : après avoir installé -le système, vous n'aurez qu'une invite de commande. Heureusement, je -vais ici vous guider a travers l'installation d'une interface graphique -(mate, le fork de gnome 2)

-

L'installation d'Arch se fait par le réseau, veillez a avoir une -connection WiFi ou filaire a proximité avant de suivre ce guide.

-

Ce guide utilise SystemV, alors qu'Arch va prochainement passer sous -systemd. N'ayant pas encore eu le temps d’expérimenter assez avec ce -dernier, je ferais un tutoriel pour passer votre Arch a systemd bientôt.

-

Bon, passons a l'explication de l'installation proprement dite :

-

Tout d'abord, téléchargeons l'iso d'arch la plus récente :

-
wget http://mir.archlinux.fr/iso/2012.09.07/archlinux-2012.09.07-dual.iso
-
- - -

Ensuite, gravons cette image sur un disque USB :

-
dd if=archlinux-2012.09.07-dual.iso of=/dev/sdX
-
- - -

Après reboot de la machine sur l'iso en question et choix de -l'architecture, nous sommes accueillis par un shell root.

-

La première chose a faire est de paramétrer le clavier :

-
loadkeys fr
-
- - -

Puis nous pouvons passer a l'installation proprement dite. -Partitionnement :

-
cfdisk # cfdisk est suffisamment clair pour ne pas nécessiter d'explications
-
- - -

formatage des partitions :

-
mkfs.ext4 /dev/sda1 # partition root
-
-pacman -Syu btrfs-progs && mkfs.btrfs /dev/sda2 # partition home
-
-mkswap /dev/sda3 && swapon /dev/sda3 # partition de swap
-
- - -

Montons les partitions nouvellement créées, puis installons le système :

-
mount /dev/sda1 /mnt
-
-mkdir /mnt/home && mount /dev/sda2 /mnt/home
-
-dhclient eth0 # si vous utilisez une connection filaire, sinon voire http://wiki.archlinux.fr/Wifi#Configuration
-
-pacstrap /mnt base base-devel
-
-genfstab -p /mnt > /mnt/etc/fstab
-
- - -

Allons prendre un café le temps que ça charge, puis installons les -quelques paquets nécessaires a notre installation et au premier -démarrage:

-
pacstrap /mnt syslinux btrfs-progs wireless_tools dhclient
-
- - -

Maintenant, passons sur notre install toute fraîche d'Arch :

-
arch-chroot /mnt bash
-
- - -

configurons les bases :

-
echo HOSTNAME > /etc/hostname
-
-ln -s /usr/share/zoneinfo/Europe/Paris /etc/localtime
-
-date MMJJhhmmAAAA
-
-hwclock --systohc
-
-vim /etc/locale.gen # Décommentez les lignes correspondant au français : fr_FR.UTF-8 et fr_FR.ISO-8859-1
-
-echo  'LANG="fr_FR.UTF-8"' > /etc/locale.conf
-
-locale-gen
-
-mkinitcpio -p linux
-
- - -

Enfin, vérifions que syslinux est correctement configuré :

-
vim /boot/syslinux/syslinux.cfg # il devrait y avoir "append root=/dev/sda1"
-
- - -

Si tout est correct, installons syslinux, et paramétrons un mot de passe -root :

-
syslinux-install_update /dev/sda -mia
-
-passwd root
-
- - -

Et voila, l'installation est terminée! Plus qu'a quitter la session et a -redémarrer l'ordinateur!

-
 exit
-umount /mnt/home 
-umount /mnt
-reboot
-
- - -

Fini!

-

Prenons une petite pause. La partie suivante de ce tutoriel consister en -un paramétrage des principaux services nécessaires a l'utilisation d'un -OS, disons, moyen :

-
    -
  • -

    Installation de MATE, le gestionnaire de bureau (voir -http://mate-desktop.org/)

    -
  • -
  • -

    Installation de sudo et de networkmanager pour faire fonctionner les -composants essentiels du système sans avoir a tout activer a la main a -chaque démarrage

    -
  • -
  • -

    Installation de SLiM comme gestionnaire de login graphique, pour -présenter une interface plus accueillante que la console, et -configuration de celui-ci

    -
  • -
  • -

    Installation des principaux logiciels utiles non inclus dans mate ni -base (yaourt, chromium, thunderbird, etc...).

    -
  • -
-

Ce guide est bien sur optionnel, si vous souhaitez utiliser Arch avec un -gestionnaire de bureau autre que mate, ou sans, vous pouvez vous arrêter -ici.

-

Bon, reprenons.

-

Nous sommes donc sur une demande de mot de passe. Entrez donc le mot de -passe paramétré plus haut pour le root, puis retapez la commande -utilisée plus tôt pour vous connecter a internet.

-

Il convient d'ajouter le dépôt de MATE pour installer ce dernier, puis -d'effectuer l'action en question :

-
vim /etc/pacman.conf
-
- - -

Ici, ajoutez les lignes suivantes :

-
[mate]
-Server = http://repo.mate-desktop.org/archlinux/$arch
-
- - -

Installons maintenant les paquets :

-
pacman -Syu mate mate-extras dbus dbus-core alsa networkmanager sudo
-
- - -

Ajoutons un compte utilisateur pour utiliser les composants du système -sans tout crasher a chaque fois :

-
useradd -g users -G wheel,audio,optical,lp,scanner,log,power,floppy,storage,games,video -m -s /bin/bash *votrenom*
-passwd *votrenom*
-su *votrenom*
-
- - -

Il faut maintenant éditer le fichier \~/.xinitrc pour préciser a X.org -ce que l'on veut utiliser :

-
echo "exec ck-launch-session mate-session" > ~/.xinitrc
-
- - -

Profitons en pour ajouter les démons système au lancement :

-
vim /etc/rc.conf
-
- - -

Ajoutez donc dbus, alsa. hwclock et networkmanager dans la section -DAEMONS (entre les parenthèses, après crond normalement)

-
DAEMONS=(syslog-ng network crond dbus alsa hwclock networkmanager)
-
- - -

Pour éviter un reboot, il est ici possible de faire un

-
su
-
- - -

Puis un

-
 /etc/rc.d/dbus start && /etc/rc.d/alsa start && /etc/rc.d/networkmanager start
-
- - -

Sinon, il est possible de juste redémarrer.
-Une fois cela fait, profitez de ce moment pour vous autoriser vous même -a utiliser sudo. Loggez vous en root, et :

-
 vim /etc/sudoers
-
- - -

Décommentez la ligne qui commence par # %wheel ALL=(ALL)
-Sauvegardez le fichier, puis, après un su *votrenom*, tentez de faire -un sudo ls /
-Normalement, vous devriez avoir un listing du dossier /
-Bon, maintenant, pourquoi ne pas tenter de lancer MATE?
-C'est simple comme bonjour :

-
 startx
-
- - -

Et PAF! Voila un MATE desktop flambant neuf a configurer!
-Avant de faire ça, retournez sur un TTY (CTRL+ALT+Fx), loggez vous, -puis installez SLiM (sudo pacman -Syu slim).
-Configurons le:

-
echo "exec dbus-launch mate-session" > ~/.xinitrc && vim /etc/slim.conf
-
- - -

Éditez la ligne -"sessions xfce4,icewm-session,wmaker,blackbox" de facon a -ce qu'elle ressemble a "sessions mate-session"
-Puis ajoutez slim dans /etc/rc.conf, dans la section DAEMONS.
-Normalement, tout devrait fonctionner!
-Ah oui, et pour installer thunderbird, firefox, chromium, etc...

-
sudo pacman -Syu chromium thunderbird xchat firefox rhythmbox pidgin transmission-gtk vlc
-
- - -

Voila! Et comme dirait @Spartition, c'est sale, mais qu'est-ce que c'est -bon!
-A plus~

-
-
-
-

Les systèmes de fichiers

-
- Date - - Tue 25 September 2012 - -
- By - Wxcafe -
- Category - Teaching -
- - - - -
-

Un système de fichiers. Vous en avez surement déjà entendu parlé si vous -avec déjà installé Linux, ou formaté une clé USB. Dans ces cas, vous -connaissez surement NTFS, EXT4, ou encore FAT32.

-

Ces différents noms désignent en effet des systèmes de fichiers. Mais -qu'est-ce qu'un système de fichiers?

-

Pour comprendre cela, il faut déjà savoir ce qu'est exactement un -fichier. Un fichier est un ensemble de blocs (les blocs sont l'unité la -plus petite traitable par le matériel, ils font généralement 1 ou 4 Kio -(kibioctet), en fonction du système de fichier utilisé.), qui est -donc composé de bits, interprétés différemment en fonction du type de -fichier. Cependant, seul, le fichier n'est pas accessible, puisqu'il -n'est pas indexé, c'est a dire que l'OS ne sait pas qu'il est présent, -ou il commence ni où il s'arrête (je schématise un peu, mais c'est -l'idée).

-

Ainsi, le système de fichier donne un cadre et un standard à -l'arborescence des fichiers. Par exemple, le système de fichier ext4 -utilise des blocs de 1 Kio, et de ce fait, toutes les partitions de -disque dur formatées en ext4 peuvent prendre comme unité de base 1 Kio -et mesurer la taille des fichiers en blocs de cette façon. Les systèmes -de fichiers nécessitent l'inclusion de drivers dans le noyau pour -pouvoir être pris en compte.

-

Le noyau linux inclut par défaut les drivers pour ext2/3/4, btrfs, -reiserfs, ntfs, fat16/32 et hfsx, ce qui permet de monter a peu -près tout type de partition récente.

-

Il convient de bien faire la différence entre le système de fichier et -l'arborescence des fichiers. Si l'arborescence des fichiers est en fait -une entité virtuelle englobant la racine / et tous les fichiers et -dossiers contenus dedans, le système de fichier permet a votre système -GNU/Linux de distinguer les différents fichiers composants cette -arborescence.

-

Détaillons maintenant les types de fichiers les plus répandus:

-
    -
  • -

    FAT16/32 : Les systèmes de fichier FAT (pour File Allocation Table, - soit la définition d'un système de fichier), remplissent leur rôle le - plus simplement possible. Ne permettant (historiquement) que des noms de - 8 caractères (plus extension de trois caractères), ni chiffrement, ni - système de distinction d'utilisateurs (DOS étant un système - mono-utilisateur), Il fut décliné par microsoft en FAT16 et en FAT32, - utlisants respectivement des blocs de 16 et 32 Kio.

    -
  • -
  • -

    NTFS :. Le NTFS (pour New Technology File System, rapport a Windows - NT) est un système de fichier qui est apparu avec Windows XP, et qui - était une mise a jour nécessaire du FAT32 vieillissant. NTFS ajoute a - FAT différentes capacités dont le chiffrement, les liens symboliques, la - compression et les quotas pour les volumes, permettant de limiter la - taille maximum occupée dans une partition.

    -
  • -
  • -

    ReFS : ReFS est le système de fichiers introduit dans Windows Server 2012. - Ne différant pas énormément de NTFS, je le mentionne principalement - parce qu'il est prévu qu'il soit le défaut pour Windows 8. - Il apporte principalement la redondance, c'est a dire que chaque - fichier possède une somme de contrôle en 64 bits stockée dans un fichier - séparé pour éviter les corruption de disque.

    -
  • -
  • -

    Ext2/3/4 : les systèmes ext (extended) sont les systèmes de fichiers - les plus utilisés sous linux pour le grand public. (Je traiterai ici - d'ext4, puisque c'est le plus récent.) Il dispose de toutes les - fonctions que l'on peut attendre d'un système de fichiers moderne, ni - plus ni moins. Ainsi, ext4 est un système de fichiers journalisé, - acceptant les capacités jusqu’à 1 Exioctet, et utilise l'allocation dite - "par extent", ce qui signifie que la création d'un fichier réserve - automatiquement les zones contiguës de façon a réduire la fragmentation.

    -
  • -
  • -

    ReiserFS : ce système de fichiers, créé par le (légèrement mégalo) - programmeur Hans Reiser, est a retenir pour avoir été le premier système - de fichiers journalisé, et accepte un nombre de fichiers de l'ordre des - 4 milliards. Le but de ce système est de créer un système polyvalent, a - la fois système de fichiers et base de donnée (de part sa grande - capacité en terme de nombre de fichiers et de l'utilisation d'un - journal.)

    -
  • -
  • -

    Btrfs : ce système est l'évolution logique d'ext4, et inclut lui aussi - l'allocation par extent, mais possède de plus un système de - sous-volumes, qui permet d’accéder a plusieurs arborescences de fichiers - montées en même temps (système pratique et utile pour faire des - snapshots de systèmes.). Il permet aussi de redimensionner a chaud la - taille des partitions, en les agrandissant ou en les rétrécissant, est - compatible avec LVM, a un système de checking intégré (btrfsck), et - utilise un algorithme de compression appelé LZ4, qui accélère les accès - aux fichiers compressés d'environ 30% par rapport a LZO, le système - utilisé dans ext4.

    -
  • -
  • -

    HFS+ : le système de fichier présent sur tous les macs a des capacités - relativement standards, et ressemble énormément a l'ext3. Il supporte - cependant les liens directs vers les dossiers, fonction rare sur les - systèmes de fichiers actuels. Il est possible qu'il évolue a nouveau - dans les années a venir

    -
  • -
  • -

    ZFS : Ce système de fichier, venu de Solaris mais utilisable par Linux - et *BSD, est, tel Btrfs, a la fois un système de fichier et un - remplaçant/compatible avec LVM, C'est un système de fichiers conçu - principalement pour les serveurs, et il intègre ainsi un système de - redondance des données pour éviter les corruptions, un mode RAID-Z - (apparenté au RAID5), des checks d’intégrité en continu, des snapshots, - etc...

    -
  • -
-

Comme on a pu le voir, les systèmes de fichiers disponibles sont -légions. Cependant, le plus adapté a Linux et a une utilisation grand -public aujourd'hui est probablement Btrfs. Malheureusement, ce dernier -n'est pas aujourd'hui proposé par défaut sur les distributions les plus -utilisées, au profit de l'ext4, qui commence a accuser son âge...

-

Les systèmes de fichiers, s'ils peuvent ne pas sembler primordiaux au -fonctionnement du système, sont en fait de première importance, et ce -choix ne devrait pas être laissé au hasard, et être mis a jour -régulièrement (pour éviter les failles de sécurité...)

-

Bon courage, et bon choix pour votre prochain système.

-
-
-
-

Le Quenya - Épisode ø

-
- Date - - Tue 18 September 2012 - -
- By - Wxcafe -
- Category - Language -
- - - - -
-

Le Quenya est, pour ceux qui ne connaissent pas (comme moi jusqu’à il y -a peu...), le nom que donnait Tolkien au dialecte principal parlé par -les Elfes dans les différentes œuvres de l'auteur, dont Le Seigneur des -Anneaux, le Hobbit, ou encore le Silmarillion. Il faut se rendre compte -avant de commencer cet article que l'une des œuvres les plus -impressionnantes de Tolkien, si ce n'est la plus grande, est -l'impressionnant travail linguistique passé sur les différentes langues -présentes dans son œuvre littéraire : L'elfique, qui est donc le quenya, -la langue des nains, qui est appelé le khazalide, etc.

-

En effet, a contrario des "langues" développées dans d'autres œuvres littéraires -telles Eragon ou Harry Potter, où l'auteur-e se contente de lier un mot -de français (ou d'anglais) a un mot de sa "langue", les langues de -l'oeuvre de Tolkien sont des langues complètes. Elles possèdent des -racines logiques, des systèmes de grammaire et de conjugaison propres, -une logique inhérente dans la prononciation ou l'orthographe, et ainsi -de suite.

-

Un véritable rêve de linguiste donc, puisque ces langues sont -pratiquement entièrement documentées par Tolkien lui même (voir -l'appendice E du SdA, particulièrement instructif a ce sujet.)

-

J'ai donc décidé d'apprendre le Quenya récemment, et je vais donc poster -ici des résumés des cours que je suis ( disponibles ici , une -traduction en français est disponible la en pdf ), et des infos ici -toutes les deux semaines.

-

Si ce sujet vous intéresse, le compte twitter @Quenya101 poste -régulièrement des informations sur le sujet, et pour plus d'infos sur le -sujet, vous pouvez en trouver par ici.

-

Et en tant que première leçon, vous pouvez apprendre que ce mot que vous -avez prononcé comme le Kenya tout le long de cet article se prononce en -fait [Kwenïa], ou bien Qwenya!

-
-
-
-

Update a propos du blog

-
- Date - - Tue 18 September 2012 - -
- By - Wxcafe -
- Category - Notes -
- - - - -
-

Bonsoir! Un petit post pour faire un peu le point sur ce blog.
-Comme vous avez pu le remarquer, j'ai un peu de mal a tenir les délais -que je m'étais fixés pour ce blog (un post tous les 8 jours), et après y -avoir un tantinet réfléchi, ceci est du a deux points principaux :

-
    -
  • -

    Tout d'abord, le manque d'inspiration, tout simplement. C'est assez -compliqué de trouver des sujets intéressants liés a l'informatique, et -qui méritent un article. Je vous invite d'ailleurs a me suggérer des -sujets via les commentaires ou twitter (@Wxcafe)

    -
  • -
  • -

    Ensuite, le délai de 8 jours est trop court pour me permettre de faire -les recherches nécessaires, tout en manageant mes cours et mon temps -libre.

    -
  • -
-

A cause de cela, j'ai pris la décision de changer le rythme de parution -des articles a un *minimum* d'un post tous les 10 jours. Bien entendu, -si j'ai de l'inspiration en trop, plus de posts sont envisageables.

-

Voila. A part ca, je tiens a vous remercier de me lire (c'est assez -étonnant de voir ca...), et je précise que je vais ajouter une page -About Me, qui bien entendu rassemblera des informations sur moi, ma vie, -mon oeuvre :P

-

Ceci dit, je vais bosser un peu sur le prochain article.

-

A plus tard!

-
-
-
-

Introduction a bash en tant que language de programmation.

-
-

L’interpréteur de commandes bash (Bourne Again SHell) -est possiblement le shell le plus connu, notamment grâce a son -intégration en tant que shell par défaut dans les distributions Linux -les plus répandues (Debian - Ubuntu, Fedora, OpenSUSE, Mandriva - -Mageia, etc...).

-

Cependant, il n'est souvent connu qu'en tant qu’interpréteur de -commande. Alors qu'en réalité, le bash est un langage de programmation -(presque) complet! Ainsi, il intègre les structures de contrôle -habituelles ( pour mémoire, les structures de contrôle comprennent les -conditions (les ifs), les boucles (les while), et les choix (les case), -entre autres.), et est donc ce que l'on pourrait appeler un langage de -script, interprété, de la même façon que python, a la difference près -qu'il contient un prompt (un système d'entrée de commande interactif) -bien plus complet et développé que python.

-

Cependant, les programmes en bash ne sont executables que dans un -environnement de type UNIX, et donc pas sous Windows (cygwin -(cygwin.com) propose ceci dit un système permettant d'utiliser bash sous -windows. Il faut malgré tout convenir que cet environnement est bien -plus compliqué a manipuler, et globalement ne permet pas d'acceder a des -portages de qualité satisfaisante.)

-

Ainsi, il est possible de créer des fichiers .sh, contenant des -instructions bash mises a la suite (de la même façon qu'un script BATCH -Windows .bat), et faisant appel autant aux commandes internes de bash, -aussi bien que les commandes externes mises en place par les programmes -installés sur le système, exactement comme dans une invite de commande. -Ainsi, pour appeller firefox, la commande 'firefox' lancera le petit -panda roux directement dans la boite magique, tandis qu'un if -[condition] suivi d'un then (quelque chose) lancera le fameux quelque -chose suscité si la condition est vérifiée. Un peu comme en C, quoi.

-

De cette façon, et avec quelques informations et connaissances, il est -facile de comprendre le fonctionnement de la programmation en bash. -Quelques exemples commentés:

-
 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
-10
-11
-12
-13
#!/bin/bash 
-# La ligne du dessus est très importante, c'est elle qui dit a bash quel doit être 
-# l'interpreteur des commandes écrites dans ce script. Ici, on dit a bash d'interpréter 
-# lui même les commandes comprises dans ce script. On aurait tout de fois pu lui faire 
-# executer du python, par exemple, en mettant #!/usr/bin/python a la place.
-echo "this is a test of bash as a simple script manager" # echo est une commande d'affichage de message.
-echo "what's your name, user?" 
-read your_name # la commande read permet de demander a l'utilisateur de donner une 
-# information, stockée dans la variable en paramètre. 
-echo $your_name "is your name" # echo permet aussi d'afficher la valeur de variables. 
-# Ici, on renvoie la variable remplie précédemment, suivie d'un message. 
-exit # cet appel a exit n'est pas obligatoire, mais donne un aspect plus 
-# propre au code. Il ne quittera pas la session de terminal, cependant.
-
-
- -

Voila. Ce script bash ne sert pas a grand chose, mais il a le mérite -d'être clair quand aux capacités et a la simplicité du bash en tant que -language de programmation. Alors en effet, nous n'avons ici absolument -pas utilisé les capacités de bash en lui même, et n'avons fait que le -renvoyer a des programmes externes (sauf read, il est vrai). Voyons -maintenant la syntaxe de bash quand il s'agit d'utiliser les structures -de contrôle:

-
 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
-10
#!/bin/bash 
-echo "welcome to this second bash program. would you please kindly enter the name of the machine you're running this on?" 
-read host_name 
-if [ $host_name == $HOSTNAME ] ## voici la syntaxe du if. Attention a bien penser a mettre les espaces avant la première variable, et après la seconde. La variable $HOSTNAME ici utilisée est une variable présente par défaut sur le système. 
-then echo "you told the truth!" 
-fi ## le fi est la commande fermant le if, tout comme le EndIf en basic. C'est un peu vieillot, mais important en bash. 
-if [ $host_name != $HOSTNAME ] ## l'opérateur != est l'inverse de ==, il vérifie donc si les deux variables ne sont pas les mêmes. 
-then echo "you lied!" 
-fi 
-exit
-
-
- -

Voila un petit programme permettant d'apprendre la syntaxe du if en -bash. comme vous pouvez le voir, le language est plutôt lite, et la -structure if n'est pas très difficile a prendre en main.

-

Passons maintenant au while:

-
1
-2
-3
-4
-5
-6
-7
#!/bin/bash
-echo "what is your name?"
-read name
-while [ 1 < 10 ]    ## le while se présente sous la forme while (truc); do (machin); done. Les [] sont en fait des programmes differents, inclus dans bash.
-do echo "i love" $name
-done
-exit
-
-
- -

Ce petit programme permet d'observer les bases de while (qui est la -boucle de base en bash).

-

Le troisième opérateur de bash est case. Voyons:

-
 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
-10
-11
-12
-13
-14
-15
-16
-17
-18
-19
-20
-21
-22
-23
-24
#!/bin/bash
-echo "please enter a number between one and five"
-read number
-case $number in 
-1)
-echo "the choosen number was one"
-;;
-2)
-echo "the choosen number was two"
-;;
-3)
-echo "the choosen number was three"
-;;
-4)
-echo "the choosen number was four"
-;;
-5)
-echo "the choosen number was five"
-;;
-*)
-echo "this number is not correct"
-;; 
-esac
-exit
-
-
- -

case est un opérateur plus complexe a utiliser a bon escient, et sert a -faire des ifs multiples sans avoir a taper des dizaines de lignes de -code.
-(pour ceux qui auraient du mal avec cet opérateur, il faut comprendre -que le code vérifie chacune des conditions : le 1) est validé si la -valeur de \$number est 1, le 2) est validé si cette valeur est 2, etc.. -le *) désigne toutes les valeurs, et est donc validé si aucune autre -valeur n'a précédemment acceptée.

-

Quelques notions manquent ici:
-- les nombres aléatoires sont générés par un appel a la variable -\$RANDOM, qui renvoie un nombre aléatoire entre 0 et 32767 (un entier a -16 bits donc). il est possible de faire des invocations a des nombres -aléatoires plus grands, mais les méthodes permettant de faire cela sont -plus complexes, et je ne les aborderai donc pas ici.
-- comme vous avez pu le constater, les variables sont désignées en tant -que telles par l'utilisation d'un symbole \$ au début de leur nom. -Ainsi, echo number renverra "number", tandis que echo \$number renverra -le résultat de la variable \$number.
-être utilisées dans un programme bash.
-- comme vous avez pu le constater, les commandes doivent tenir en -théorie en une ligne. Cependant, le caractère \ permet de retourner a -la ligne en faisant considérer a bash qu'il s'agit de la même ligne.

-

Globalement, il faut admettre que bash n'a pas vocation a être un -langage de programmation extrêmement développé. Sans framework -graphique, avec peu de manières d'utiliser de grandes variables, ou -encore une gestion de la mémoire risible, bash n'a rien d'un langage de -développement professionnel.
-Cependant, le simple fait qu'il soit considéré comme un langage de -programmation a part entière font de lui un langage de script d'une -puissance incontestable, et sa simplicité et sa grande popularité font -de lui un langage de choix pour apprendre la programmation simplement et -sans trop se prendre la tête.

-

J'espère que cet article aura été utile a certain-e-s, et je vous -souhaite bonne chance dans votre découverte de la programmation (n'allez -pas voir ceux qui font de l'orienté objet, c'est des méchants :3)

-
-
-
-

Les différentes couches d'un système d'exploitation

-
- Date - - Thu 06 September 2012 - -
- By - Wxcafe -
- Category - Teaching -
- - - - -
-

Étant utilisateur plus ou moins fidèle de GNU/Linux depuis quelques -années (plus ou moins, parce que j'ai toujours un Windows en dual boot, -principalement pour les jeux (possiblement plus pour longtemps, avec -l'arrivée de Steam pour Linux... ) ), je commence a connaître plus ou -moins bien mon système. Or il y a plusieurs choses a savoir sur les -systèmes d'exploitation, et celle dont je vais parler aujourd'hui, c'est -le système de couches.

-

Un système d'exploitation (de type UNIX, \<troll>enfin un vrai système quoi. -\</troll>) incorpore plusieurs systèmes de couches.

-

Ainsi, Linux (le noyau) a commencé en étant un kernel monolithique, -c'est a dire que tous les composants sont intégrés au kernel. Ce qui -signifie que rien ne peut être ajouté au noyau sans recompiler celui ci. -Or, quand on sait que le noyau comprend entre autres les drivers du -matériel et des systèmes de fichier, cela peut poser des problèmes quand -a la taille du kernel et a la licence libre de ce dernier.

-

Depuis un certain temps, le kernel linux est devenu un kernel modulaire, ce qui -signifie que des modules peuvent être chargé a tout moment en cours -d’exécution, ce qui permet l'utilisation de nouveaux systèmes de -fichiers a chaud, ou l'insertion de matériel et l'installation de -drivers sans interrompre l’exécution du système (Windows utilise un -système de fausse installation de drivers pour le matériel externe, et -un système de pré-installation des drivers pour les périphériques dits -"plug and play")

-

Après le noyau intervient le système. Or, au tous premiers instants du -boot, les systèmes GNU/Linux utilisent un système permettant de limiter -l'utilisation de ressources systèmes si elles ne sont pas nécessaires, -et incorpore ainsi un système dit de "runlevels"

-

Ainsi, au runlevel 0, le système s'éteint après avoir booté. Ainsi, ce -runlevel permet de tester le bon démarrage du système sans avoir a -effectuer de manipulation pour le ré-éteindre

-

Le runlevel 1 est appelé mode single user, et c'est un nom plutôt adapté -étant donné que ce runlevel donne accès a un système en étant -automatiquement loggé en tant que root, avec tous les autres -utilisateurs désactivés, de même que tous les systèmes de réseaux

-

Le runlevel 2 est appelé mode multi user, et vous mets en face d'un -système classique. en ligne de commande, mais avec tous les systèmes de -réseau désactivés.

-

Le runlevel 3 est le même que le 2, mais avec les systèmes de réseaux -activés.

-

Le runlevel 4 n'est pas officiellement défini, et est censé être -activable en fonction des besoins de l'utilisateur. Sur la plupart des -distributions grand public, ce runlevel est lié au...

-

Runlevel 5! Multi-user, networking, with working GUI! c'est le système -tel que vous le connaissez, avec l'interface graphique et le système de -login graphique.

-

Le runlevel 6, enfin, est le bien nommé "reboot", qui reboot la machine -quand il devient le runlevel courant.

-

(Il est a noter que Debian, et donc toutes les distribs qui en sont -dérivées, ne font pas de distinction entre les differents runlevels du 2 -au 5. Ainsi, Ubuntu fonctionne par défaut au runlevel 2, avec un login -et une interface graphique, et un mode réseau fonctionnel, bref avec des -fonctionnalités qui ne sont normalement disponibles que sous le runlevel 5.)

-

Il est possible de changer de runlevel grâce a la commande runlevel -(oui, c'est évident...)

-

Les systèmes Linux utilisent aussi un système dit de SandBox , qui en -informatique est un système permettant d'isoler les processus les uns -des autres. Ainsi, la pile réseau, qui est le système auquel les -différents processus envoient les différents paquets qui doivent sortir -de la machine , et qui redistribue ces paquets, est isolée du reste du -système, en cela qu'aucun des autres processus ne peuvent modifier cette -pile hors du runlevel 1 ou 2.

-

De la même façon, le navigateur chrom/ium fait fonctionner tous les -onglets, ainsi que toutes les extensions, dans des processus différents. -Certaines distributions linux implémentent un système de cette sorte -pour toutes les applications, ou seulement pour certaines. ainsi Chakra -Linux a un système d'installation d'applications dans des disques -virtuels, ce qui permet une sécurité totale du processus.

-

Voila, j'espère vous en avoir appris un peu sur le fonctionnement des -différentes couches de linux, et j'espère que cet article vous poussera -a tester un peu votre système et a vous amuser avec les différents -runlevels

-
-
-
-

La programmation expliquée simplement

-
- Date - - Mon 27 August 2012 - -
- By - Wxcafe -
- Category - Teaching -
- - - - -
-

Salut!
-Tout d'abord, je tiens a m'excuser de ne pas avoir eu le temps d'écrire -récement, mais j'ai eu la chance d'avoir un PC a monter, donc j'ai passé -pas mal de temps assez occupé.

-

Enfin, après un certain temps a farfouiller au millieu des connecteurs -SATA et a apprendre que, oui, l'alimentation sert aussi pour les disques -durs, je suis de retour pour un court article.
-Du coup, je m'étais dit que j'allais reprendre sur le thème de -l'informatique expliquée au grand public, en tentant d'aller un peu plus -loin que la dernière fois sur le thème de la programmation
-Ce qu'il faut comprendre, c'est la facon dont fonctionne un ordinateur. -Si a peu près tout le monde sait que "les ordinateurs, ils ne -comprennent que les 1 et les 0!", peu de gens savent comment cela -fonctionne en détail.

-

Si vous êtes sur ce blog, il y a pas mal de chance que vous ayez déjà -des notions de base en informatique. Ainsi, vous savez surement que les -ordinateurs fonctionnent avec des programmes, qui sont composés de -code.
-Ainsi, il faut comprendre que le code (source) est "compilé" en un -fichier "binaire". Un fichier binaire est un fichier comprenant les -instructions telles qu’exécutées par le processeur, et donc absolument -illisible pour un humain.

-

La compilation est le processus qui transforme le code source en -binaire executable. Les binaires ont, sous Windows, l'extension .exe, -tandis que sous les systèmes UNIX-like, ils n'ont pas d'extension -particulière.
-Ceci étant dit, il faut comprendre que certains langages sont plus -proches que d'autres du langage processeur, les langages les plus -proches sont dits de "bas niveau". Les langages les plus éloignés sont -donc dits de haut niveau.

-

Par exemple, l'assembleur est l'un des languages de plus bas niveau, -tandis que python par exemple est un langage de plus haut niveau. Les -langages de haut niveau sont souvent bien plus simples a comprendre et a -apprendre que les langages de bas niveau

-

Ainsi, en C, un langage de niveau relativement bas, pour afficher -"hello world" sur l'écran, le code nécessaire est :

-
#include 
-void main() {
-printf("hello world");
-return 0;
-}
-
- - -

le même programme en python s'écrit :

-
print "hello world"
-
- - -

et n'a pas besoin d'être compilé , puisqu'il peut être intepreté -directement.

-

Python utilise en effet un système similaire a Java en ayant un -interpréteur dit "runtime" ou "temps réel", qui interprète le programme -sans le compiler. Java utilise un système légèrement différent, puisque -le code a besoin d'être compilé, mais est interpreté par un interpréteur -et non par le processeur.

-

Cette méthode permet le fameux "code once, run everywhere", ce qui -signifie que le même code est exécutable sur quasiment tous les systèmes -d'exploitation (en fait, tous ceux sur lesquels l’interpréteur est -disponible.)

-

Voila, je vous laisse sur le fonctionnement de Java et de Python, et je -vais me coucher.
-A bientôt!

-
-
-
-

GNU/Linux pour les non technophiles, ou l'OS libre pour votre grand-mère

-
- Date - - Wed 22 August 2012 - -
- By - Wxcafe -
- Category - Teaching -
- - - - -
-

GNU/Linux est un vaste et extraordinaire territoire technologique, mais -je ne vais pas m'attarder ici sur les aspects profondément techniques de -ce territoire pour faire plutôt une sorte d'introduction a ce qu'est -vraiment GNU/Linux, pour les gens n'ayant aucune ou très peu de -connaissances en informatique.

-

GNU/Linux, que j’abrégerai ici en Linux pour plus de simplicité, est un -Système d'Exploitation. Un système d'exploitation est, pour simplifier, -un ensemble d'outils informatiques qui vous permettent d'utiliser votre -ordinateur, ainsi, Windows est un système d'exploitation. L'abréviation -de système d'exploitation (Operating System en anglais) est OS. Les 4 -principaux OS existants aujourd'hui sont Windows, Mac OS, GNU/Linux, et -Solaris. Les trois derniers sont issus d'un autre système, plus ancien, -nommé UNIX.

-

De ce fait, on pourrait penser que Linux remplace complètement Windows -une fois installé, et comprend une interface graphique, et toutes sortes -d'utilitaires permettant a l'utilisateur d'utiliser le système (sous -Windows, pensez a l'explorateur de fichiers, ou a Internet Explorer. -Pour l'interface graphique, pensez a... Pensez que votre système affiche -autre chose que des lignes de commande.) Or non, une fois installé, -Linux en lui même ne vous afficherait aucune interface graphique, et -s'il est effectivement livré avec des utilitaires, ils ne sont que des -programmes en ligne de commande. Autant les utilisateurs avancés sauront -s'en servir, et pourront argumenter que c'est plus efficace ou plus -rapide, autant les utilisateurs basiques préfèrent une interface -graphique. Alors comment en obtenir une?

-

Ici, il convient de faire une précision importante. Si il n'existe -qu'une seule version de Windows, ou de Mac OS, il existe en fait -plusieurs centaines de "versions" différentes de Linux. Appelées -distributions, ces dernière sont développées par des groupes -complètement séparés, et se basent sur le fait que Linux soit -entièrement placé sous licence libre (ce qui leur permet de l'utiliser a -leur guise, a condition que leur travail soit lui aussi placé sous -licence libre). De ce fait, de nombreuses distributions existent et se -développent en parallèle. On peut ainsi citer Debian, qui est l'une -des distributions les plus importantes, ou encore Ubuntu, qui est -l'une des plus connues et des plus simples a utiliser.

-

Ainsi, ces distributions intègrent une interface graphique. Cependant, -grâce a la liberté dont bénéficient les développeurs sous Linux, il -existe de nombreuses interfaces graphiques différentes : Unity, la -nouvelle interface d'Ubuntu; GNOME , une interface qui vise a la -simplicité; ou encore KDE, une interface utilisateur ressemblant a -Windows 7.

-

Ainsi, le choix astronomique de distributions Linux a bien un sens : -chacune d'entre elle intègre des outils différents. Par exemple, Debian -intègre GNOME 2, qui est l'ancienne version de GNOME, ce qui la rend -particulièrement stable. Ubuntu intègre Unity, ce qui en fait une -distribution particulièrement intuitive. Linux Mint intègre Cinnamon, -qui est une version dérivée de GNOME 3, ce qui permet encore une autre -expérience. Et Arch Linux n'intègre pas d'interface graphique du tout, -ce qui permet a l'utilisateur de choisir entre les multiples interfaces -existantes.

-

Ce qu'il est important de retenir de cela, c'est que Linux est un OS -complètement libre, ce qui signifie que n'importe qui peut modifier et -utiliser tout le code de Linux gratuitement et comme il l'entend. Ainsi, -Linux est un OS qui est véritablement créé par des passionnés, pour tous -et toutes. Surtout, il convient de retenir que Linux n'est pas compliqué -a utiliser, ni a installer. Windows et Mac OS ne le sont pas non plus. -Cependant, Linux donne la possibilité a l'utilisateur de le rendre -affreusement complexe, mais aussi de le rendre adapté a ses besoins, -quels que soient ceux ci. Et c'est la que réside l'incroyable puissance -de ce Système d'Exploitation. Il est extraordinairement adaptable.

-

N'hésitez donc pas a le présenter a vos proches, même s'ils ne sont pas -technophiles. Ils pourraient adorer, et peut être même le devenir :)

-

A bientôt!

-
-
-
-

Débuts, présentation, etc...

-
- Date - - Sat 18 August 2012 - -
- By - Wxcafe -
- Category - Notes -
- - - - -
-

Bonjour!

-

Je m'appelle Wxcafé, et ça fait pas mal de temps que je sévis sur -Twitter, mais aussi sur IRC (Je traîne pas mal sur -irc.freenode.net/##nolife et #debian-fr)

-

J'ai 17 ans, je suis donc étudiant (bac général), je vis a Paris, et je -fais partie de ce genre de personne qui sont capables d'investir tout -leur temps et leur énergie a s’intéresser a un sujet en particulier, et -qui ne peuvent pas vivre sans leurs passions, avec une petite différence -cependant, qui est que je m’intéresse a plusieurs choses : -l'informatique, qui est un champ tellement large qu'on peut passer une -vie a apprendre des choses dessus, et plus particulièrement à -l'informatique avancée (Noyaux dérivés d'UNIX et de Linux, outils libres -{bien que n'étant pas un barbu intégriste [ceci est un troll assumé. Les -trolls seront a partir de maintenant indiqués avec le tag [tr]] du -libre, je préfère utiliser de l'open-source si c'est possible}, -programmation en C, python et java, etc...) , mais aussi a -l’électronique.

-

Dans un tout autre registre, je m’intéresse aussi -beaucoup aux différents aspects du féminisme et des égalités sexuelles -(anti-homophobie/transphobie/biphobie/etc , anti-sexisme, et cætera) , -et a la culture dite "geek" en général.

-

Je tenterai de poster ici le plus souvent possible, mais j'ai de gros -problèmes en terme de régularité de post, donc ne vous inquiétez pas si -vous ne voyez rien pendant deux semaines.

-

Merci beaucoup de votre attention, et a bientôt!

-
-
- -
- -
-
- -
- - \ No newline at end of file diff --git a/output/category/language/index.html b/output/category/language/index.html deleted file mode 100644 index 5206d73..0000000 --- a/output/category/language/index.html +++ /dev/null @@ -1,244 +0,0 @@ - - - - - Wxcafé - Language - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-

Le Quenya - Épisode ø

-
- Date - - Tue 18 September 2012 - -
- By - Wxcafe -
- Category - Language -
- - - - -
-

Le Quenya est, pour ceux qui ne connaissent pas (comme moi jusqu’à il y -a peu...), le nom que donnait Tolkien au dialecte principal parlé par -les Elfes dans les différentes œuvres de l'auteur, dont Le Seigneur des -Anneaux, le Hobbit, ou encore le Silmarillion. Il faut se rendre compte -avant de commencer cet article que l'une des œuvres les plus -impressionnantes de Tolkien, si ce n'est la plus grande, est -l'impressionnant travail linguistique passé sur les différentes langues -présentes dans son œuvre littéraire : L'elfique, qui est donc le quenya, -la langue des nains, qui est appelé le khazalide, etc.

-

En effet, a contrario des "langues" développées dans d'autres œuvres littéraires -telles Eragon ou Harry Potter, où l'auteur-e se contente de lier un mot -de français (ou d'anglais) a un mot de sa "langue", les langues de -l'oeuvre de Tolkien sont des langues complètes. Elles possèdent des -racines logiques, des systèmes de grammaire et de conjugaison propres, -une logique inhérente dans la prononciation ou l'orthographe, et ainsi -de suite.

-

Un véritable rêve de linguiste donc, puisque ces langues sont -pratiquement entièrement documentées par Tolkien lui même (voir -l'appendice E du SdA, particulièrement instructif a ce sujet.)

-

J'ai donc décidé d'apprendre le Quenya récemment, et je vais donc poster -ici des résumés des cours que je suis ( disponibles ici , une -traduction en français est disponible la en pdf ), et des infos ici -toutes les deux semaines.

-

Si ce sujet vous intéresse, le compte twitter @Quenya101 poste -régulièrement des informations sur le sujet, et pour plus d'infos sur le -sujet, vous pouvez en trouver par ici.

-

Et en tant que première leçon, vous pouvez apprendre que ce mot que vous -avez prononcé comme le Kenya tout le long de cet article se prononce en -fait [Kwenïa], ou bien Qwenya!

-
-
-
-

Pages

-
  • A propos
  • -
    -
    - -
    -
    - -
    - - \ No newline at end of file diff --git a/output/category/notes/index.html b/output/category/notes/index.html deleted file mode 100644 index 0b57020..0000000 --- a/output/category/notes/index.html +++ /dev/null @@ -1,567 +0,0 @@ - - - - - Wxcafé - Notes - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    -
    -

    SSL ou la sécurité sur l'internet

    -
    - Date - - Fri 30 May 2014 - -
    - By - Wxcafe -
    - Category - Notes -
    - - - - -
    -

    Disclaimer: Ce billet est écrit après le visionnage de la conférence de Moxie -Marlinspike suivante: More Tricks for Defeating SSL, -présentée a la DefCon 17 (en 2011), et la lecture du billet suivant: -A Critique of Lavabit, -ce qui peut avoir l'effet de rendre légèrement parano. Si vous considérez que -c'est le cas ici, veuillez ne pas tenir compte de ce billet (et vous pouvez dès -a présent dire coucou aux différentes personnes qui écoutent votre connection)

    -

    Si vous venez ici souvent (vous devriez), et que vous utilisez SSL pour vous -connecter a ce site (vous devriez, vraiment, dans ce cas), vous avez peut être -remarqué quelque chose récemment : il se trouve que le certificat qui permet de -desservir ce site a changé.

    -

    Cela fait suite aux évènements évoqués dans le Disclaimer, mais aussi a des -doigts sortis d'un endroit particulier du corps de l'admin/auteur de ce "blog", -qui a pris enfin les 5 minutes nécessaires a la compréhension superficielle -du fonctionnement de SSL, et les 10 nécessaires a la mise en place d'un système -fonctionnel utilisant cette compréhension récemment acquise.

    -

    Bref, le certificat a changé. Mais de quelle façon, vous demandez vous peut -être (ou pas, mais bon, je vais expliquer de toute façon). Et bien c'est très -simple : il existait auparavant un certificat pour wxcafe.net, un pour -paste.wxcafe.net, un pour mail.wxcafe.net, etc... Bref, un certificat -différent pour chaque sous-domaine.

    -

    Il s'avère que c'est a la fois très peu pratique a utiliser (les utilisateurs -doivent ajouter chaque certificat a leur navigateur séparément, chaque -changement de sous-domaine conduit a un message d'erreur, etc) et pas plus -sécurisé que d'avoir un seul certificat wildcard. J'ai donc généré un certificat -pour *.wxcafe.net hier, et il sera dorénavant utilisé pour tous les -sous-domaine de wxcafe.net; et un certificat pour wxcafe.net, qui ne matche -pas *.wxcafe.net, et qui sera donc utilisé... bah pour wxcafe.net.

    -

    Il serait préférable de faire des redirections automatiques des adresses http -vers les adresses https, cependant, étant donné que le certificat est -self-signed, il me semble préférable que l'arrivée sur le site ne commence pas -par une page firefox disant "Something's Wrong!", et ces redirections ne seront -donc pas mises en place.

    -

    De plus, après la lecture de l'article de blog sur Lavabit dont le lien est plus -haut, il semble intéressant (et assez important) de faire en sorte que le -serveur utilise en priorité (et si possible, uniquement) des ciphers supportant -PFS, soit EDH et EECDH (Ephemeral Diffie-Helmann et la version Elliptic Curves -de ce même algorithme). Cela permet de faire en sorte que toutes les -communications avec ce serveur soient future-proof, c'est a dire que, même si -quelqu'un récupérait la clé privée, elle ne serait pas utile pour déchiffrer les -communications passées.

    -

    Bon, maintenant que les explications basiques sont faites, voyons -l'implémentation :
    -Pour générer la clé, tout d'abord, il convient d'utiliser les commandes -suivantes:

    -
    sudo openssl genrsa -out example.key 4096
    -# nous utilisons ici une clé de 4096 bits, la taille est laissée a votre appréciation
    -sudo openssl req -new -key example.key -out example.csr
    -# OpenSSL va ici vous demander de nombreuses informations, "Common Name" devant contenir le FQDN
    -sudo openssl X509 -req -days 1095 -in example.csr -signkey example.key -out example.crt
    -# enfin, nous générons la clé, d'une durée de vie de 3 ans
    -
    - - -

    Bien entendu, si vous voulez utiliser une clé wildcard, il vous faut préciser -*.example.com comme common name. -Une fois la clé générée, il faut dire aux différents services de l'utiliser, et -de n'utiliser que des ciphers PFS. La méthode dépend donc du service. -Je vais lister ici les methodes pour quelques services que j'utilise :

    -

    apache :

    -
    # /etc/apache2/mods_enabled/ssl.conf
    -# [...]
    -SSLProtocol all -SSLv2 -SSLv3
    -SSLHonorCipherOrder on
    -SSLCipherSuite "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 \
    -  EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 \
    -  EECDH EDH+aRSA RC4 !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS"
    -# [...]
    -# /etc/apache2/sites-enabled/default-ssl
    -# [...]
    -SSLEngine on
    -SSLCertificateFile /etc/certs/example.com.crt
    -SSLCertificateKeyFile /etc/certs/example.com.key
    -# [...]
    -
    - - -

    nginx :

    -
    # /etc/nginx/nginx.conf 
    -# [...]
    -ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    -ssl_prefer_server_ciphers on;
    -ssl_ciphers "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 \
    -  EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 \
    -  EECDH EDH+aRSA RC4 !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS";
    -# [...]
    -# /etc/nginx/sites-enabled/default-ssl
    -# [...]
    -ssl on;
    -ssl_certificate /etc/certs/example.com.crt
    -ssl_certificate_key /etc/certs/example.com.key
    -# [...]
    -
    - - -

    prosody (jabber) :

    -
    # tout d'abord, lancez la commande suivante :
    -sudo openssl dhparam -out /etc/prosody/certs/dh-2048.pem 2048
    -# ensuite, pour chaque VirtualHost dans /etc/prosody/prosody.conf :
    -ssl = {
    -  dhparam = "/etc/prosody/certs/dh-2048.pem";
    -  key = "/etc/certs/example.com.key";
    -  certificate = "/etc/certs/example.com.crt";
    -}
    -# la cipher suite de prosody utilise par défaut EDH et EECDH
    -
    - - -

    postfix (email) :

    -
    # /etc/postfix/main.cf
    -# [...]
    -smtpd_tls_cert_file = /etc/certs/example.com.crt
    -smtpd_tls_key_file = /etc/certs/example.com.key
    -tls_preempt_cipherlist = yes
    -smtpd_tls_eecdh_grade = strong
    -smtdp_tls_mandatory_ciphers = high
    -smtpd_tls_mandatory_exclude_ciphers = aNULL, eNULL, MD5, LOW, 3DES, EXP, PSK, SRP, DSS
    -smtpd_tls_security_level = encrypt
    -smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3
    -smtpd_use_tls = yes
    -# [...]
    -
    - - -

    dovecot (imap) :

    -
    # /etc/dovecot/dovecot.conf 
    -# [...]
    -ssl_cert = </etc/certs/example.com.crt
    -ssl_key = </etc/certs/example.com.key
    -ssl_cipher_list = HIGH+kEDH:HIGH+kEECDH:HIGH:!PSK:!SRP:!3DES:!aNULL
    -
    - - -

    Voila. Pour d'autres protocoles/services, je vous invite a RTFM^W vous reporter -au manuel approprié.

    -

    Cela étant dit, je conseille a tout le monde d'aller voir la conférence dans le -disclaimer, et tant qu'a faire la conférence du même hacker SSL and the future -of Authenticity qui parle de son -implémentation d'une technologie "remplaçant" le système de CAs qui existe -actuellement.

    -
    -
    -
    -

    Redesign du blog, etc

    -
    - Date - - Wed 12 June 2013 - -
    - By - wxcafe -
    - Category - Notes -
    - - - - -
    -

    Comme vous avez pu le remarquer, ce blog a "un peu" changé récemment.

    -

    Du coup, expliquons. J'ai récemment monté serverporn, et ai par la même -occasion découvert pelican. J'ai tout de suite accroché a ce générateur de -site statique en python, du fait de son efficacité, de sa facilité d'utilisation -et de sa grande customisation. En gros, pelican est un logiciel qui prend des -fichiers markdown ou reStructuredText, les passe a la moulinette d'un "thème" -constitué de templates pour les fichiers html et l'organisation du projet et -d'une partie "statique" contenant le css, et les autres fichiers nécessaires au -projet, et en fait des pages html.

    -

    Globalement, un thème est constitué ainsi :

    -
    thème
    -├── static
    -   ├─ css
    -     └─ [css files]
    -   ├─ img
    -     └─ [image files]
    -   └─ js
    -      └─ [javascript files]
    -└── template
    -    ├─ base.html
    -    ├─ index.html
    -    ├─ page.html
    -    ├─ [...]
    -    └─ article.html
    -
    - - -

    Sachant que les fichiers .html sont en réalité des fichiers suivant la syntaxe -django, et utilisent des variables particulières telles {{ article.content }}, -par exemple. La syntaxe complète est très bien documentée dans la doc de -pelican.

    -

    L'un des grands avantages de pelican est aussi la facilité qu'il offre quand a -la mise a jour du blog.
    -En effet, il offre un système de Makefiles permettant, grâce a de nombreuses -cibles de compilation, de régénérer le site entier, de ne générer que les -fichiers modifiés depuis la dernière génération, de générer uniquement les -fichiers n'existant pas la dernière fois, etc... -La gestion du projet en devient donc très simple, puisque après avoir écrit un -article, il suffit de faire un make html pour mettre a jour le blog.

    -

    De plus, le système de wordpress commençait a ne plus me convenir, du fait du -manque de customisation, du fait que ça soit du PHP (beurk), etc. La, avec -pelican, je contrôle bien plus ce qui est mis sur le serveur (puisque c'est moi -qui ait modifié les templates et le css), c'est lisible (puisque c'est du -python, par opposition au PHP...), et c'est plus "efficace". Le markdown est -très pratique, je peux utiliser mon éditeur de texte de prédilection pour faire -les articles, je n'ai pas besoin d'un accès continu au net, bref, c'est plus -efficace.

    -

    En ce qui concerne les points négatifs :

    -
      -
    • -

      Perte des commentaires: - Je vous propose de vous référer a l'article de Gordontesos ici quand a - mon avis sur ce sujet.

      -
    • -
    • -

      Perte du bouton flattr: - Il va bientôt être remis, c'est juste un manque de temps de ma part, mais vu - que toutes les pages passent par les mêmes templates, c'est assez facile a - faire.

      -
    • -
    • -

      Perte du spam: - Pourquoi c'est dans les points négatifs, ca?

      -
    • -
    • -

      Temps d'adaptation et d'appréhension du système: - Oui, pendant encore un certain temps, il y aura des glitchs plus ou moins - réguliers sur le blog, c'est parce que j'apprend a me servir de ce système - et que j'apprend du css et du html. Ca arrive, ca passera, mais dans tous - les cas ca me permet d'apprendre plein de choses, donc je mets plutôt ca - dans la catëgorie positive.

      -
    • -
    -

    Voila, c'est mon retour d'expérience sur pelican. A plus.

    -
    -
    -
    -

    Update

    -
    - Date - - Sat 05 January 2013 - -
    - By - Wxcafe -
    - Category - Notes -
    - - - - -
    -

    Juste une petite note pour annoncer le prochain article, consacré a la -fabrication d'une PirateBox basée sur un Raspberry Pi. Voila, a bientôt -sur le blog!

    -
    -
    -
    -

    Update a propos du blog

    -
    - Date - - Tue 18 September 2012 - -
    - By - Wxcafe -
    - Category - Notes -
    - - - - -
    -

    Bonsoir! Un petit post pour faire un peu le point sur ce blog.
    -Comme vous avez pu le remarquer, j'ai un peu de mal a tenir les délais -que je m'étais fixés pour ce blog (un post tous les 8 jours), et après y -avoir un tantinet réfléchi, ceci est du a deux points principaux :

    -
      -
    • -

      Tout d'abord, le manque d'inspiration, tout simplement. C'est assez -compliqué de trouver des sujets intéressants liés a l'informatique, et -qui méritent un article. Je vous invite d'ailleurs a me suggérer des -sujets via les commentaires ou twitter (@Wxcafe)

      -
    • -
    • -

      Ensuite, le délai de 8 jours est trop court pour me permettre de faire -les recherches nécessaires, tout en manageant mes cours et mon temps -libre.

      -
    • -
    -

    A cause de cela, j'ai pris la décision de changer le rythme de parution -des articles a un *minimum* d'un post tous les 10 jours. Bien entendu, -si j'ai de l'inspiration en trop, plus de posts sont envisageables.

    -

    Voila. A part ca, je tiens a vous remercier de me lire (c'est assez -étonnant de voir ca...), et je précise que je vais ajouter une page -About Me, qui bien entendu rassemblera des informations sur moi, ma vie, -mon oeuvre :P

    -

    Ceci dit, je vais bosser un peu sur le prochain article.

    -

    A plus tard!

    -
    -
    -
    -

    Débuts, présentation, etc...

    -
    - Date - - Sat 18 August 2012 - -
    - By - Wxcafe -
    - Category - Notes -
    - - - - -
    -

    Bonjour!

    -

    Je m'appelle Wxcafé, et ça fait pas mal de temps que je sévis sur -Twitter, mais aussi sur IRC (Je traîne pas mal sur -irc.freenode.net/##nolife et #debian-fr)

    -

    J'ai 17 ans, je suis donc étudiant (bac général), je vis a Paris, et je -fais partie de ce genre de personne qui sont capables d'investir tout -leur temps et leur énergie a s’intéresser a un sujet en particulier, et -qui ne peuvent pas vivre sans leurs passions, avec une petite différence -cependant, qui est que je m’intéresse a plusieurs choses : -l'informatique, qui est un champ tellement large qu'on peut passer une -vie a apprendre des choses dessus, et plus particulièrement à -l'informatique avancée (Noyaux dérivés d'UNIX et de Linux, outils libres -{bien que n'étant pas un barbu intégriste [ceci est un troll assumé. Les -trolls seront a partir de maintenant indiqués avec le tag [tr]] du -libre, je préfère utiliser de l'open-source si c'est possible}, -programmation en C, python et java, etc...) , mais aussi a -l’électronique.

    -

    Dans un tout autre registre, je m’intéresse aussi -beaucoup aux différents aspects du féminisme et des égalités sexuelles -(anti-homophobie/transphobie/biphobie/etc , anti-sexisme, et cætera) , -et a la culture dite "geek" en général.

    -

    Je tenterai de poster ici le plus souvent possible, mais j'ai de gros -problèmes en terme de régularité de post, donc ne vous inquiétez pas si -vous ne voyez rien pendant deux semaines.

    -

    Merci beaucoup de votre attention, et a bientôt!

    -
    -
    -
    -

    Pages

    -
  • A propos
  • -
    -
    - -
    -
    - -
    - - \ No newline at end of file diff --git a/output/category/programmation/index.html b/output/category/programmation/index.html deleted file mode 100644 index 6cdd42d..0000000 --- a/output/category/programmation/index.html +++ /dev/null @@ -1,412 +0,0 @@ - - - - - Wxcafé - Programmation - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    -
    -

    Introduction a bash en tant que language de programmation.

    -
    -

    L’interpréteur de commandes bash (Bourne Again SHell) -est possiblement le shell le plus connu, notamment grâce a son -intégration en tant que shell par défaut dans les distributions Linux -les plus répandues (Debian - Ubuntu, Fedora, OpenSUSE, Mandriva - -Mageia, etc...).

    -

    Cependant, il n'est souvent connu qu'en tant qu’interpréteur de -commande. Alors qu'en réalité, le bash est un langage de programmation -(presque) complet! Ainsi, il intègre les structures de contrôle -habituelles ( pour mémoire, les structures de contrôle comprennent les -conditions (les ifs), les boucles (les while), et les choix (les case), -entre autres.), et est donc ce que l'on pourrait appeler un langage de -script, interprété, de la même façon que python, a la difference près -qu'il contient un prompt (un système d'entrée de commande interactif) -bien plus complet et développé que python.

    -

    Cependant, les programmes en bash ne sont executables que dans un -environnement de type UNIX, et donc pas sous Windows (cygwin -(cygwin.com) propose ceci dit un système permettant d'utiliser bash sous -windows. Il faut malgré tout convenir que cet environnement est bien -plus compliqué a manipuler, et globalement ne permet pas d'acceder a des -portages de qualité satisfaisante.)

    -

    Ainsi, il est possible de créer des fichiers .sh, contenant des -instructions bash mises a la suite (de la même façon qu'un script BATCH -Windows .bat), et faisant appel autant aux commandes internes de bash, -aussi bien que les commandes externes mises en place par les programmes -installés sur le système, exactement comme dans une invite de commande. -Ainsi, pour appeller firefox, la commande 'firefox' lancera le petit -panda roux directement dans la boite magique, tandis qu'un if -[condition] suivi d'un then (quelque chose) lancera le fameux quelque -chose suscité si la condition est vérifiée. Un peu comme en C, quoi.

    -

    De cette façon, et avec quelques informations et connaissances, il est -facile de comprendre le fonctionnement de la programmation en bash. -Quelques exemples commentés:

    -
     1
    - 2
    - 3
    - 4
    - 5
    - 6
    - 7
    - 8
    - 9
    -10
    -11
    -12
    -13
    #!/bin/bash 
    -# La ligne du dessus est très importante, c'est elle qui dit a bash quel doit être 
    -# l'interpreteur des commandes écrites dans ce script. Ici, on dit a bash d'interpréter 
    -# lui même les commandes comprises dans ce script. On aurait tout de fois pu lui faire 
    -# executer du python, par exemple, en mettant #!/usr/bin/python a la place.
    -echo "this is a test of bash as a simple script manager" # echo est une commande d'affichage de message.
    -echo "what's your name, user?" 
    -read your_name # la commande read permet de demander a l'utilisateur de donner une 
    -# information, stockée dans la variable en paramètre. 
    -echo $your_name "is your name" # echo permet aussi d'afficher la valeur de variables. 
    -# Ici, on renvoie la variable remplie précédemment, suivie d'un message. 
    -exit # cet appel a exit n'est pas obligatoire, mais donne un aspect plus 
    -# propre au code. Il ne quittera pas la session de terminal, cependant.
    -
    -
    - -

    Voila. Ce script bash ne sert pas a grand chose, mais il a le mérite -d'être clair quand aux capacités et a la simplicité du bash en tant que -language de programmation. Alors en effet, nous n'avons ici absolument -pas utilisé les capacités de bash en lui même, et n'avons fait que le -renvoyer a des programmes externes (sauf read, il est vrai). Voyons -maintenant la syntaxe de bash quand il s'agit d'utiliser les structures -de contrôle:

    -
     1
    - 2
    - 3
    - 4
    - 5
    - 6
    - 7
    - 8
    - 9
    -10
    #!/bin/bash 
    -echo "welcome to this second bash program. would you please kindly enter the name of the machine you're running this on?" 
    -read host_name 
    -if [ $host_name == $HOSTNAME ] ## voici la syntaxe du if. Attention a bien penser a mettre les espaces avant la première variable, et après la seconde. La variable $HOSTNAME ici utilisée est une variable présente par défaut sur le système. 
    -then echo "you told the truth!" 
    -fi ## le fi est la commande fermant le if, tout comme le EndIf en basic. C'est un peu vieillot, mais important en bash. 
    -if [ $host_name != $HOSTNAME ] ## l'opérateur != est l'inverse de ==, il vérifie donc si les deux variables ne sont pas les mêmes. 
    -then echo "you lied!" 
    -fi 
    -exit
    -
    -
    - -

    Voila un petit programme permettant d'apprendre la syntaxe du if en -bash. comme vous pouvez le voir, le language est plutôt lite, et la -structure if n'est pas très difficile a prendre en main.

    -

    Passons maintenant au while:

    -
    1
    -2
    -3
    -4
    -5
    -6
    -7
    #!/bin/bash
    -echo "what is your name?"
    -read name
    -while [ 1 < 10 ]    ## le while se présente sous la forme while (truc); do (machin); done. Les [] sont en fait des programmes differents, inclus dans bash.
    -do echo "i love" $name
    -done
    -exit
    -
    -
    - -

    Ce petit programme permet d'observer les bases de while (qui est la -boucle de base en bash).

    -

    Le troisième opérateur de bash est case. Voyons:

    -
     1
    - 2
    - 3
    - 4
    - 5
    - 6
    - 7
    - 8
    - 9
    -10
    -11
    -12
    -13
    -14
    -15
    -16
    -17
    -18
    -19
    -20
    -21
    -22
    -23
    -24
    #!/bin/bash
    -echo "please enter a number between one and five"
    -read number
    -case $number in 
    -1)
    -echo "the choosen number was one"
    -;;
    -2)
    -echo "the choosen number was two"
    -;;
    -3)
    -echo "the choosen number was three"
    -;;
    -4)
    -echo "the choosen number was four"
    -;;
    -5)
    -echo "the choosen number was five"
    -;;
    -*)
    -echo "this number is not correct"
    -;; 
    -esac
    -exit
    -
    -
    - -

    case est un opérateur plus complexe a utiliser a bon escient, et sert a -faire des ifs multiples sans avoir a taper des dizaines de lignes de -code.
    -(pour ceux qui auraient du mal avec cet opérateur, il faut comprendre -que le code vérifie chacune des conditions : le 1) est validé si la -valeur de \$number est 1, le 2) est validé si cette valeur est 2, etc.. -le *) désigne toutes les valeurs, et est donc validé si aucune autre -valeur n'a précédemment acceptée.

    -

    Quelques notions manquent ici:
    -- les nombres aléatoires sont générés par un appel a la variable -\$RANDOM, qui renvoie un nombre aléatoire entre 0 et 32767 (un entier a -16 bits donc). il est possible de faire des invocations a des nombres -aléatoires plus grands, mais les méthodes permettant de faire cela sont -plus complexes, et je ne les aborderai donc pas ici.
    -- comme vous avez pu le constater, les variables sont désignées en tant -que telles par l'utilisation d'un symbole \$ au début de leur nom. -Ainsi, echo number renverra "number", tandis que echo \$number renverra -le résultat de la variable \$number.
    -être utilisées dans un programme bash.
    -- comme vous avez pu le constater, les commandes doivent tenir en -théorie en une ligne. Cependant, le caractère \ permet de retourner a -la ligne en faisant considérer a bash qu'il s'agit de la même ligne.

    -

    Globalement, il faut admettre que bash n'a pas vocation a être un -langage de programmation extrêmement développé. Sans framework -graphique, avec peu de manières d'utiliser de grandes variables, ou -encore une gestion de la mémoire risible, bash n'a rien d'un langage de -développement professionnel.
    -Cependant, le simple fait qu'il soit considéré comme un langage de -programmation a part entière font de lui un langage de script d'une -puissance incontestable, et sa simplicité et sa grande popularité font -de lui un langage de choix pour apprendre la programmation simplement et -sans trop se prendre la tête.

    -

    J'espère que cet article aura été utile a certain-e-s, et je vous -souhaite bonne chance dans votre découverte de la programmation (n'allez -pas voir ceux qui font de l'orienté objet, c'est des méchants :3)

    -
    -
    -
    -

    Pages

    -
  • A propos
  • -
    -
    - -
    -
    - -
    - - \ No newline at end of file diff --git a/output/category/teaching/index.html b/output/category/teaching/index.html deleted file mode 100644 index ca69a7d..0000000 --- a/output/category/teaching/index.html +++ /dev/null @@ -1,646 +0,0 @@ - - - - - Wxcafé - Teaching - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    -
    -

    SSL - STARTTLS

    -
    - Date - - Sat 16 May 2015 - -
    - By - Wxcafe -
    - Category - Teaching -
    - - - - -
    -

    Le chiffrement SSL pour les services en ligne est un problème relativement -récent, par rapport a l’histoire d’Internet. Sa mise en place pose -problème : les protocoles existants ne s’accommodent qu’assez mal de recevoir -soudainement un flot de données chiffrées, mais développer de nouveaux -protocoles est complexe et n’apporte rien d’intéressant. Pour palier a ce -problème, deux solutions sont apparues.

    -

    Le première consiste à faire écouter les services sur un -autre port, dans un tunnel SSL. De cette façon, le service existant écoute -normalement, mais il ne répond pas directement aux requêtes. A la place, un -tunnel SSL est mis en place, et les requêtes et les réponses passent dans le -tunnel (ou elles apparaissent donc chiffrées pour l’extérieur). Cela permet de -proposer un service chiffré en modifiant de façon minimale le programme, au prix -de devoir aussi changer tous les clients, et de devoir les orienter sur un autre -port.

    -

    L’autre approche qui a été utilisée est une approche d’upgrade. La -communication commence en mode non chiffré, puis le client demande l’upgrade de -la connexion vers le mode chiffré s’il le supporte, les deux machines -machines font un handshake SSL et la communication continue a travers le -tunnel SSL. Le service peut continuer a écouter sur son port habituel, et seuls -les clients capables de passer en SSL le feront, ce qui permet de faire la “mise -a jour” en douceur.

    -

    Il est souvent demandé quelle est la meilleure méthode pour mettre en place un -service – laisser un port pour le SSL et un pour le trafic non chiffré, ou bien -un seul, avec STARTTLS, qui upgrade les connexions si nécessaire.
    -La réponse est que STARTTLS est plus interessant, pour plusieurs raisons. Tout -d’abord, il permet de n’utiliser qu’un seul port : ça permet de simplifier la -configuration du firewall. En plus de ça, il permet aux clients “anciens” (ceux -qui ne supportent pas SSL, donc ceux qui devraient être changés) de toujours se -connecter, même si cela signifie que leurs informations seront transmises en -clair. Surtout, il permet d’éviter aux utilisateurs d’avoir a configurer leurs -clients. Si le client supporte le chiffrement, il l’activera de lui même s’il -voit qu’il est disponible.
    -Bref, mettez en place du STARTTLS, et pas du SSL. C’est mieux pour la sécurité -de tout le monde.

    -
    -
    -
    -

    Les systèmes de fichiers

    -
    - Date - - Tue 25 September 2012 - -
    - By - Wxcafe -
    - Category - Teaching -
    - - - - -
    -

    Un système de fichiers. Vous en avez surement déjà entendu parlé si vous -avec déjà installé Linux, ou formaté une clé USB. Dans ces cas, vous -connaissez surement NTFS, EXT4, ou encore FAT32.

    -

    Ces différents noms désignent en effet des systèmes de fichiers. Mais -qu'est-ce qu'un système de fichiers?

    -

    Pour comprendre cela, il faut déjà savoir ce qu'est exactement un -fichier. Un fichier est un ensemble de blocs (les blocs sont l'unité la -plus petite traitable par le matériel, ils font généralement 1 ou 4 Kio -(kibioctet), en fonction du système de fichier utilisé.), qui est -donc composé de bits, interprétés différemment en fonction du type de -fichier. Cependant, seul, le fichier n'est pas accessible, puisqu'il -n'est pas indexé, c'est a dire que l'OS ne sait pas qu'il est présent, -ou il commence ni où il s'arrête (je schématise un peu, mais c'est -l'idée).

    -

    Ainsi, le système de fichier donne un cadre et un standard à -l'arborescence des fichiers. Par exemple, le système de fichier ext4 -utilise des blocs de 1 Kio, et de ce fait, toutes les partitions de -disque dur formatées en ext4 peuvent prendre comme unité de base 1 Kio -et mesurer la taille des fichiers en blocs de cette façon. Les systèmes -de fichiers nécessitent l'inclusion de drivers dans le noyau pour -pouvoir être pris en compte.

    -

    Le noyau linux inclut par défaut les drivers pour ext2/3/4, btrfs, -reiserfs, ntfs, fat16/32 et hfsx, ce qui permet de monter a peu -près tout type de partition récente.

    -

    Il convient de bien faire la différence entre le système de fichier et -l'arborescence des fichiers. Si l'arborescence des fichiers est en fait -une entité virtuelle englobant la racine / et tous les fichiers et -dossiers contenus dedans, le système de fichier permet a votre système -GNU/Linux de distinguer les différents fichiers composants cette -arborescence.

    -

    Détaillons maintenant les types de fichiers les plus répandus:

    -
      -
    • -

      FAT16/32 : Les systèmes de fichier FAT (pour File Allocation Table, - soit la définition d'un système de fichier), remplissent leur rôle le - plus simplement possible. Ne permettant (historiquement) que des noms de - 8 caractères (plus extension de trois caractères), ni chiffrement, ni - système de distinction d'utilisateurs (DOS étant un système - mono-utilisateur), Il fut décliné par microsoft en FAT16 et en FAT32, - utlisants respectivement des blocs de 16 et 32 Kio.

      -
    • -
    • -

      NTFS :. Le NTFS (pour New Technology File System, rapport a Windows - NT) est un système de fichier qui est apparu avec Windows XP, et qui - était une mise a jour nécessaire du FAT32 vieillissant. NTFS ajoute a - FAT différentes capacités dont le chiffrement, les liens symboliques, la - compression et les quotas pour les volumes, permettant de limiter la - taille maximum occupée dans une partition.

      -
    • -
    • -

      ReFS : ReFS est le système de fichiers introduit dans Windows Server 2012. - Ne différant pas énormément de NTFS, je le mentionne principalement - parce qu'il est prévu qu'il soit le défaut pour Windows 8. - Il apporte principalement la redondance, c'est a dire que chaque - fichier possède une somme de contrôle en 64 bits stockée dans un fichier - séparé pour éviter les corruption de disque.

      -
    • -
    • -

      Ext2/3/4 : les systèmes ext (extended) sont les systèmes de fichiers - les plus utilisés sous linux pour le grand public. (Je traiterai ici - d'ext4, puisque c'est le plus récent.) Il dispose de toutes les - fonctions que l'on peut attendre d'un système de fichiers moderne, ni - plus ni moins. Ainsi, ext4 est un système de fichiers journalisé, - acceptant les capacités jusqu’à 1 Exioctet, et utilise l'allocation dite - "par extent", ce qui signifie que la création d'un fichier réserve - automatiquement les zones contiguës de façon a réduire la fragmentation.

      -
    • -
    • -

      ReiserFS : ce système de fichiers, créé par le (légèrement mégalo) - programmeur Hans Reiser, est a retenir pour avoir été le premier système - de fichiers journalisé, et accepte un nombre de fichiers de l'ordre des - 4 milliards. Le but de ce système est de créer un système polyvalent, a - la fois système de fichiers et base de donnée (de part sa grande - capacité en terme de nombre de fichiers et de l'utilisation d'un - journal.)

      -
    • -
    • -

      Btrfs : ce système est l'évolution logique d'ext4, et inclut lui aussi - l'allocation par extent, mais possède de plus un système de - sous-volumes, qui permet d’accéder a plusieurs arborescences de fichiers - montées en même temps (système pratique et utile pour faire des - snapshots de systèmes.). Il permet aussi de redimensionner a chaud la - taille des partitions, en les agrandissant ou en les rétrécissant, est - compatible avec LVM, a un système de checking intégré (btrfsck), et - utilise un algorithme de compression appelé LZ4, qui accélère les accès - aux fichiers compressés d'environ 30% par rapport a LZO, le système - utilisé dans ext4.

      -
    • -
    • -

      HFS+ : le système de fichier présent sur tous les macs a des capacités - relativement standards, et ressemble énormément a l'ext3. Il supporte - cependant les liens directs vers les dossiers, fonction rare sur les - systèmes de fichiers actuels. Il est possible qu'il évolue a nouveau - dans les années a venir

      -
    • -
    • -

      ZFS : Ce système de fichier, venu de Solaris mais utilisable par Linux - et *BSD, est, tel Btrfs, a la fois un système de fichier et un - remplaçant/compatible avec LVM, C'est un système de fichiers conçu - principalement pour les serveurs, et il intègre ainsi un système de - redondance des données pour éviter les corruptions, un mode RAID-Z - (apparenté au RAID5), des checks d’intégrité en continu, des snapshots, - etc...

      -
    • -
    -

    Comme on a pu le voir, les systèmes de fichiers disponibles sont -légions. Cependant, le plus adapté a Linux et a une utilisation grand -public aujourd'hui est probablement Btrfs. Malheureusement, ce dernier -n'est pas aujourd'hui proposé par défaut sur les distributions les plus -utilisées, au profit de l'ext4, qui commence a accuser son âge...

    -

    Les systèmes de fichiers, s'ils peuvent ne pas sembler primordiaux au -fonctionnement du système, sont en fait de première importance, et ce -choix ne devrait pas être laissé au hasard, et être mis a jour -régulièrement (pour éviter les failles de sécurité...)

    -

    Bon courage, et bon choix pour votre prochain système.

    -
    -
    -
    -

    Les différentes couches d'un système d'exploitation

    -
    - Date - - Thu 06 September 2012 - -
    - By - Wxcafe -
    - Category - Teaching -
    - - - - -
    -

    Étant utilisateur plus ou moins fidèle de GNU/Linux depuis quelques -années (plus ou moins, parce que j'ai toujours un Windows en dual boot, -principalement pour les jeux (possiblement plus pour longtemps, avec -l'arrivée de Steam pour Linux... ) ), je commence a connaître plus ou -moins bien mon système. Or il y a plusieurs choses a savoir sur les -systèmes d'exploitation, et celle dont je vais parler aujourd'hui, c'est -le système de couches.

    -

    Un système d'exploitation (de type UNIX, \<troll>enfin un vrai système quoi. -\</troll>) incorpore plusieurs systèmes de couches.

    -

    Ainsi, Linux (le noyau) a commencé en étant un kernel monolithique, -c'est a dire que tous les composants sont intégrés au kernel. Ce qui -signifie que rien ne peut être ajouté au noyau sans recompiler celui ci. -Or, quand on sait que le noyau comprend entre autres les drivers du -matériel et des systèmes de fichier, cela peut poser des problèmes quand -a la taille du kernel et a la licence libre de ce dernier.

    -

    Depuis un certain temps, le kernel linux est devenu un kernel modulaire, ce qui -signifie que des modules peuvent être chargé a tout moment en cours -d’exécution, ce qui permet l'utilisation de nouveaux systèmes de -fichiers a chaud, ou l'insertion de matériel et l'installation de -drivers sans interrompre l’exécution du système (Windows utilise un -système de fausse installation de drivers pour le matériel externe, et -un système de pré-installation des drivers pour les périphériques dits -"plug and play")

    -

    Après le noyau intervient le système. Or, au tous premiers instants du -boot, les systèmes GNU/Linux utilisent un système permettant de limiter -l'utilisation de ressources systèmes si elles ne sont pas nécessaires, -et incorpore ainsi un système dit de "runlevels"

    -

    Ainsi, au runlevel 0, le système s'éteint après avoir booté. Ainsi, ce -runlevel permet de tester le bon démarrage du système sans avoir a -effectuer de manipulation pour le ré-éteindre

    -

    Le runlevel 1 est appelé mode single user, et c'est un nom plutôt adapté -étant donné que ce runlevel donne accès a un système en étant -automatiquement loggé en tant que root, avec tous les autres -utilisateurs désactivés, de même que tous les systèmes de réseaux

    -

    Le runlevel 2 est appelé mode multi user, et vous mets en face d'un -système classique. en ligne de commande, mais avec tous les systèmes de -réseau désactivés.

    -

    Le runlevel 3 est le même que le 2, mais avec les systèmes de réseaux -activés.

    -

    Le runlevel 4 n'est pas officiellement défini, et est censé être -activable en fonction des besoins de l'utilisateur. Sur la plupart des -distributions grand public, ce runlevel est lié au...

    -

    Runlevel 5! Multi-user, networking, with working GUI! c'est le système -tel que vous le connaissez, avec l'interface graphique et le système de -login graphique.

    -

    Le runlevel 6, enfin, est le bien nommé "reboot", qui reboot la machine -quand il devient le runlevel courant.

    -

    (Il est a noter que Debian, et donc toutes les distribs qui en sont -dérivées, ne font pas de distinction entre les differents runlevels du 2 -au 5. Ainsi, Ubuntu fonctionne par défaut au runlevel 2, avec un login -et une interface graphique, et un mode réseau fonctionnel, bref avec des -fonctionnalités qui ne sont normalement disponibles que sous le runlevel 5.)

    -

    Il est possible de changer de runlevel grâce a la commande runlevel -(oui, c'est évident...)

    -

    Les systèmes Linux utilisent aussi un système dit de SandBox , qui en -informatique est un système permettant d'isoler les processus les uns -des autres. Ainsi, la pile réseau, qui est le système auquel les -différents processus envoient les différents paquets qui doivent sortir -de la machine , et qui redistribue ces paquets, est isolée du reste du -système, en cela qu'aucun des autres processus ne peuvent modifier cette -pile hors du runlevel 1 ou 2.

    -

    De la même façon, le navigateur chrom/ium fait fonctionner tous les -onglets, ainsi que toutes les extensions, dans des processus différents. -Certaines distributions linux implémentent un système de cette sorte -pour toutes les applications, ou seulement pour certaines. ainsi Chakra -Linux a un système d'installation d'applications dans des disques -virtuels, ce qui permet une sécurité totale du processus.

    -

    Voila, j'espère vous en avoir appris un peu sur le fonctionnement des -différentes couches de linux, et j'espère que cet article vous poussera -a tester un peu votre système et a vous amuser avec les différents -runlevels

    -
    -
    -
    -

    La programmation expliquée simplement

    -
    - Date - - Mon 27 August 2012 - -
    - By - Wxcafe -
    - Category - Teaching -
    - - - - -
    -

    Salut!
    -Tout d'abord, je tiens a m'excuser de ne pas avoir eu le temps d'écrire -récement, mais j'ai eu la chance d'avoir un PC a monter, donc j'ai passé -pas mal de temps assez occupé.

    -

    Enfin, après un certain temps a farfouiller au millieu des connecteurs -SATA et a apprendre que, oui, l'alimentation sert aussi pour les disques -durs, je suis de retour pour un court article.
    -Du coup, je m'étais dit que j'allais reprendre sur le thème de -l'informatique expliquée au grand public, en tentant d'aller un peu plus -loin que la dernière fois sur le thème de la programmation
    -Ce qu'il faut comprendre, c'est la facon dont fonctionne un ordinateur. -Si a peu près tout le monde sait que "les ordinateurs, ils ne -comprennent que les 1 et les 0!", peu de gens savent comment cela -fonctionne en détail.

    -

    Si vous êtes sur ce blog, il y a pas mal de chance que vous ayez déjà -des notions de base en informatique. Ainsi, vous savez surement que les -ordinateurs fonctionnent avec des programmes, qui sont composés de -code.
    -Ainsi, il faut comprendre que le code (source) est "compilé" en un -fichier "binaire". Un fichier binaire est un fichier comprenant les -instructions telles qu’exécutées par le processeur, et donc absolument -illisible pour un humain.

    -

    La compilation est le processus qui transforme le code source en -binaire executable. Les binaires ont, sous Windows, l'extension .exe, -tandis que sous les systèmes UNIX-like, ils n'ont pas d'extension -particulière.
    -Ceci étant dit, il faut comprendre que certains langages sont plus -proches que d'autres du langage processeur, les langages les plus -proches sont dits de "bas niveau". Les langages les plus éloignés sont -donc dits de haut niveau.

    -

    Par exemple, l'assembleur est l'un des languages de plus bas niveau, -tandis que python par exemple est un langage de plus haut niveau. Les -langages de haut niveau sont souvent bien plus simples a comprendre et a -apprendre que les langages de bas niveau

    -

    Ainsi, en C, un langage de niveau relativement bas, pour afficher -"hello world" sur l'écran, le code nécessaire est :

    -
    #include 
    -void main() {
    -printf("hello world");
    -return 0;
    -}
    -
    - - -

    le même programme en python s'écrit :

    -
    print "hello world"
    -
    - - -

    et n'a pas besoin d'être compilé , puisqu'il peut être intepreté -directement.

    -

    Python utilise en effet un système similaire a Java en ayant un -interpréteur dit "runtime" ou "temps réel", qui interprète le programme -sans le compiler. Java utilise un système légèrement différent, puisque -le code a besoin d'être compilé, mais est interpreté par un interpréteur -et non par le processeur.

    -

    Cette méthode permet le fameux "code once, run everywhere", ce qui -signifie que le même code est exécutable sur quasiment tous les systèmes -d'exploitation (en fait, tous ceux sur lesquels l’interpréteur est -disponible.)

    -

    Voila, je vous laisse sur le fonctionnement de Java et de Python, et je -vais me coucher.
    -A bientôt!

    -
    -
    -
    -

    GNU/Linux pour les non technophiles, ou l'OS libre pour votre grand-mère

    -
    - Date - - Wed 22 August 2012 - -
    - By - Wxcafe -
    - Category - Teaching -
    - - - - -
    -

    GNU/Linux est un vaste et extraordinaire territoire technologique, mais -je ne vais pas m'attarder ici sur les aspects profondément techniques de -ce territoire pour faire plutôt une sorte d'introduction a ce qu'est -vraiment GNU/Linux, pour les gens n'ayant aucune ou très peu de -connaissances en informatique.

    -

    GNU/Linux, que j’abrégerai ici en Linux pour plus de simplicité, est un -Système d'Exploitation. Un système d'exploitation est, pour simplifier, -un ensemble d'outils informatiques qui vous permettent d'utiliser votre -ordinateur, ainsi, Windows est un système d'exploitation. L'abréviation -de système d'exploitation (Operating System en anglais) est OS. Les 4 -principaux OS existants aujourd'hui sont Windows, Mac OS, GNU/Linux, et -Solaris. Les trois derniers sont issus d'un autre système, plus ancien, -nommé UNIX.

    -

    De ce fait, on pourrait penser que Linux remplace complètement Windows -une fois installé, et comprend une interface graphique, et toutes sortes -d'utilitaires permettant a l'utilisateur d'utiliser le système (sous -Windows, pensez a l'explorateur de fichiers, ou a Internet Explorer. -Pour l'interface graphique, pensez a... Pensez que votre système affiche -autre chose que des lignes de commande.) Or non, une fois installé, -Linux en lui même ne vous afficherait aucune interface graphique, et -s'il est effectivement livré avec des utilitaires, ils ne sont que des -programmes en ligne de commande. Autant les utilisateurs avancés sauront -s'en servir, et pourront argumenter que c'est plus efficace ou plus -rapide, autant les utilisateurs basiques préfèrent une interface -graphique. Alors comment en obtenir une?

    -

    Ici, il convient de faire une précision importante. Si il n'existe -qu'une seule version de Windows, ou de Mac OS, il existe en fait -plusieurs centaines de "versions" différentes de Linux. Appelées -distributions, ces dernière sont développées par des groupes -complètement séparés, et se basent sur le fait que Linux soit -entièrement placé sous licence libre (ce qui leur permet de l'utiliser a -leur guise, a condition que leur travail soit lui aussi placé sous -licence libre). De ce fait, de nombreuses distributions existent et se -développent en parallèle. On peut ainsi citer Debian, qui est l'une -des distributions les plus importantes, ou encore Ubuntu, qui est -l'une des plus connues et des plus simples a utiliser.

    -

    Ainsi, ces distributions intègrent une interface graphique. Cependant, -grâce a la liberté dont bénéficient les développeurs sous Linux, il -existe de nombreuses interfaces graphiques différentes : Unity, la -nouvelle interface d'Ubuntu; GNOME , une interface qui vise a la -simplicité; ou encore KDE, une interface utilisateur ressemblant a -Windows 7.

    -

    Ainsi, le choix astronomique de distributions Linux a bien un sens : -chacune d'entre elle intègre des outils différents. Par exemple, Debian -intègre GNOME 2, qui est l'ancienne version de GNOME, ce qui la rend -particulièrement stable. Ubuntu intègre Unity, ce qui en fait une -distribution particulièrement intuitive. Linux Mint intègre Cinnamon, -qui est une version dérivée de GNOME 3, ce qui permet encore une autre -expérience. Et Arch Linux n'intègre pas d'interface graphique du tout, -ce qui permet a l'utilisateur de choisir entre les multiples interfaces -existantes.

    -

    Ce qu'il est important de retenir de cela, c'est que Linux est un OS -complètement libre, ce qui signifie que n'importe qui peut modifier et -utiliser tout le code de Linux gratuitement et comme il l'entend. Ainsi, -Linux est un OS qui est véritablement créé par des passionnés, pour tous -et toutes. Surtout, il convient de retenir que Linux n'est pas compliqué -a utiliser, ni a installer. Windows et Mac OS ne le sont pas non plus. -Cependant, Linux donne la possibilité a l'utilisateur de le rendre -affreusement complexe, mais aussi de le rendre adapté a ses besoins, -quels que soient ceux ci. Et c'est la que réside l'incroyable puissance -de ce Système d'Exploitation. Il est extraordinairement adaptable.

    -

    N'hésitez donc pas a le présenter a vos proches, même s'ils ne sont pas -technophiles. Ils pourraient adorer, et peut être même le devenir :)

    -

    A bientôt!

    -
    -
    -
    -

    Pages

    -
  • A propos
  • -
    -
    - -
    -
    - -
    - - \ No newline at end of file diff --git a/output/category/tutorial/index.html b/output/category/tutorial/index.html deleted file mode 100644 index 20bb4dd..0000000 --- a/output/category/tutorial/index.html +++ /dev/null @@ -1,582 +0,0 @@ - - - - - Wxcafé - Tutorial - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    -
    -

    OpenSMTPd comme serveur mail sous debian

    -
    - Date - - Fri 07 November 2014 - -
    - By - Wxcafé -
    - Category - Tutorial -
    - - - - -
    -

    J'avais dit il y a un certain temps que j'allais écrire un tutoriel expliquant -comment gérer ses mails soi-même. Il se trouve que j'ai récemment décidé de -changer le serveur qui héberge (entre autres) ce blog, et que ce dernier héberge -aussi mes emails. J'ai donc totalement changé d'infrastructure quand a la -gestion de mon système de mails.

    -

    Ainsi, j'ai décidé de passer de Postfix a OpenSMTPd, changement que je voulais -effectuer depuis un certain temps. OpenSMTPd est un -projet originaire d'OpenBSD qui a pour but de fournir un -serveur SMTP fiable, simple, rapide, et surtout sécurisé (les même buts que ceux -qu'a le projet OpenBSD, globalement).

    -

    Pour rappel, le système d'emails fonctionne d'une façon très simple : votre MUA -(Mail User Agent, ou client email) contacte le MTA (Mail Transport Agent, ou -serveur SMTP) de votre fournisseur email, qui contacte le MTA du fournisseur du -destinataire, qui lui même contacte le MDA (Mail Delivery Agent) qui délivre le -mail au destinataire.

    -

    Si vous avez bien suivi, vous pouvez voir que je n'ai pas parlé de récupération -ni de lecture des mails. C'est pour une raison simple, qui est que ces taches -sont remplies par d'autres services encore (IMAP/POP pour la récupération depuis -le serveur, des yeux pour la lecture).

    -

    Or ce qui nous intéresse ici, ce n'est pas simplement d'envoyer et de recevoir -des emails mais bien aussi de pouvoir les récupérer et les lire, et c'est pour -ça que ce tutoriel ne parlera pas que d'OpenSMTPd mais aussi de -Dovecot qui fait office de serveur IMAP et -amavis/spamassassin -pour filtrer les mails entrants et sortants. -Le schéma suivant explique la façon dont les mails sont gérés sur le système

    -
                ╭────────────────╮                    ╭──────────╮
    -            │╭──────────────>│────> to filter ───>│─╮        
    -  mail in   ││                                     amavis 
    -───────────>│╯ OpenSMTPd  ╭──│<─── from filter<───│<        
    -                                               ╰──────────╯
    -  mail out                                     ╭──────────╮
    -<───────────│<────────────┴─>│─────> to MDA ─────>│─────────>│──> to user's
    -                                                 dovecot       mailbox
    -            ╰────────────────╯                    ╰──────────╯
    -
    - - -

    Normalement, ceci devrait être a peu près clair. -Pour expliquer vite fait, les emails entrants (venant des utilisateurs mais -aussi d'autres correspondants) sont transmis a OpenSMTPd, qui envoie tout a -amavis, qui vérifie a la fois les spams et les malwares pour les mails -venants de l'exterieur, et qui signe avec DKIM pour les mails venants de -nos utilisateurs, puis qui rentransmet les mails filtrés/signés a OpenSMTPd, -qui a ce moment-ci trie en fonction de la destination : les mails gérés -par le domaine vont via dovecot dans les boites mail des destinataires -locaux, les mails exterieurs vont directement vers le MTA du serveur -distant.

    -

    Voyons comment mettre cela en place. Tout d'abord, il faut décider de la façon -dont les différents services vont communiquer.

    -

    Déjà, amavis étant configuré par défaut pour écouter (en SMTP) sur le port -10024 et répondre sur le port 10025 quand il s'agit de filtrer et -écouter sur le port 10026 et répondre sur le port 10027 quand il s'agit de -signer, nous allons profiter de cette configuration et donc lui parler en SMTP -sur ces ports.

    -

    Quand a Dovecot, nous allons lui transmettre les emails en LMTP (Local Mail -Transfer Protocol), non pas sur un port mais via un socket (dans ce cas précis, -/var/run/dovecot/lmtp).

    -

    Ainsi, pour reprendre le schéma présenté plus haut :

    -
                ╭───────────────╮                    ╭───────────╮
    -            │╭─────────────>│──> SMTP (10026) ──>│─╮         
    -  SMTP in   ││                                    amavis  
    -────────> 25│╯ OpenSMTPd ╭──│<── SMTP (10027) <──│< (sign)  
    -                                              ╰───────────╯
    -  SMTP out                
    -25 <────────│<───────────╯  
    -            ╰───────────────╯
    -
    - - -

    Pour les mails sortants; et

    -
                ╭───────────────╮                    ╭────────────╮
    -            │╭─────────────>│──> SMTP (10024) ──>│─╮          
    -  SMTP in   ││                                    amavis   
    -────────> 25│╯ OpenSMTPd ╭──│<── SMTP (10025) <──│<(filter)  
    -                                              ╰────────────╯
    -                                              ╭────────────╮
    -                        ╰─>│──> LMTP (socket) >│───────────>│──> to user's
    -                                                 dovecot        mailbox
    -            ╰───────────────╯                    ╰────────────╯
    -
    - - -

    Pour les mails entrants.

    -

    Maintenant que la théorie est claire, mettons en place tout cela. Je me baserai -ici sur le fait que vous utilisiez une plateforme Debian ou OpenBSD. Pour -d'autres plateformes, la configuration devrait être sensiblement la même

    -

    (Vous aurez besoin de certificats SSL pour ce guide, même self-signés. -Si vous ne savez pas comment en créer, vous pouvez aller voir ce -post)

    -

    Tout d'abord, commençons par installer les programmes nécessaires :

    -
    sudo apt-get install opensmtpd dovecot dovecot-pigeonhole amavisd-new dovecot-managesieved
    -sudo pkg_add dovecot dovecot-pigeonhole amavisd-new
    -
    - - -

    Continuons en configurant OpenSMTPd tel que nous avons vu plus haut :

    -

    /etc/smtpd.conf

    -
    # This is the smtpd server system-wide configuration file.
    -# See smtpd.conf(5) for more information.
    -
    -## Certs
    -pki exem.pl certificate "/etc/certs/exem.pl.crt"
    -pki exem.pl key         "/etc/certs/exem.pl.key"
    -
    -## Ports to listen on, and how to listen on them
    -listen on eth0 port 25 tls pki exem.pl hostname exem.pl auth-optional
    -listen on eth0 port 465 tls-require pki exem.pl hostname exem.pl auth mask-source
    -listen on eth0 port 587 tls-require pki exem.pl hostname exem.pl auth mask-source
    -
    -## Aliases
    -table aliases file:/etc/aliases
    -
    -# coming from amavisd, checked for spam/malware
    -listen on lo port 10025 tag Filtered
    -# coming from amavisd, signed with DKIM
    -listen on lo port 10027 tag Signed
    -
    -## Receiving
    -# if the (incoming) mail has been through amavisd, then we can deliver it
    -accept tagged Filtered for any alias <aliases> deliver to lmtp "/var/run/dovecot/lmtp"
    -# we directly tranfer incoming mail to amavisd to be checked 
    -accept from any for domain "exem.pl" relay via "smtp://localhost:10024"
    -# we have to put these lines in this order to avoid infinite loops
    -
    -## Sending
    -# if the (outgoint) mail has been through amavisd, then we can deliver it
    -accept tagged Signed for any relay
    -# we tranfer the outgoing mail to amavisd to be signed
    -accept for any relay via "smtp://localhost:10026"
    -# same, we have to put these lines in this order or infinite loops...
    -
    - - -

    Expliquons un peu ce fichier de configuration :

    -
      -
    • Tout d'abord, le paragraphe nommé "Certs" contient les déclaration - d'emplacement des certificats SSL.
    • -
    • Ensuite, le paragraphe contenant les ports externes sur lesquels nous écoutons : - port 25 avec TLS optionel et ports 465 et 587 avec TLS obligatoire
    • -
    • Les alias sont définis juste après
    • -
    • Le paragraphe suivant contient les ports locaux sur lesquels nous écoutons : - 10025 (port de sortie du filtre de amavis) dont on taggue les mails sortants - comme "Filtered" et 10027 (port de sortie des mails signés par amavis) dont on - taggue les mails sortants comme "Signed"
    • -
    • Nous avons ensuite le paragraphe qui traite les mails rentrants. Si le mail - traité est taggué comme Filtered, alors il a été vérifié par amavis, et on - peut donc le transmettre au destinataire. Sinon, c'est qu'il n'a pas encore - été vérifié par amavis, donc on lui transmet pour analyse (sur le port 10024 - donc). Il est important de mettre les déclarations dans ce sens, car la - première règle qui matche l'état du paquet est appliquée. Ici, la deuxième - ligne matchant tous les mails arrivant et la première seulement ceux filtrés, - inverser leur sens voudrait dire que les mails seraient toujours renvoyés a - amavis
    • -
    • Enfin, le dernier paragraphe traite les mails sortants. De la même façon que - pour le paragraphe précédent, si le mail sortant est déjà taggué comme Signed - on le transmet au MTA du destinataire, sinon il n'a pas encore été signé par - DKIM par amavis et on le transmet donc a amavis pour qu'il le signe. Le - problème de l'ordre des lignes se pose encore, pour la même raison qu'au - dessus.
    • -
    -

    Nous allons maintenant configurer dovecot. Comme nous l'avons vu, dovecot doit -écouter en LMTP via la socket /var/run/dovecot/lmtp et transmettre les -emails a la boite email de l'utilisateur. Il serait aussi interessant -qu'il nous permette de récuperer les mails. Pour cette configuration, on ne -mettra en place que du IMAPS. Cependant, si vous voulez mettre en place du -POP3[s], différents guides sont trouvables facilement sur internet.

    -

    /etc/dovecot/dovecot.conf

    -
    ## Dovecot configuration file
    -
    -# basic config
    -info_log_path = /var/log/dovecot-info.log
    -log_path = /var/log/dovecot.log
    -log_timestamp = "%Y-%m-%d %H:%M:%S "
    -mail_location = maildir:%h/mail
    -
    -# authentication
    -passdb {
    -    driver = pam
    -}
    -userdb {
    -    driver = passwd
    -}
    -
    -# the protocols we use
    -protocols = imap lmtp sieve
    -
    -# ssl config
    -ssl_cert = </etc/certs/exem.pl.cert
    -ssl_key = </etc/certs/exem.pl.key
    -ssl_cipher_list = HIGH+kEDH:HIGH+kEECDH:HIGH:!PSK:!SRP:!3DES:!aNULL
    -ssl = yes
    -
    -## configuring services 
    -# disables imap login without SSL (yes dovecot is dumb that way)
    -service imap-login {
    -    inet_listener imap {
    -        port=0 
    -    }
    -}
    -
    -service lmtp {
    -    unix_listener lmtp {
    -        mode = 0666
    -    }
    -}
    -
    -## configuring protocols
    -# the dovecot lda, we set it to use sieve
    -protocol lda {
    -    mail_plugins = $mail_plugins sieve
    -}
    -
    -protocol lmtp {
    -    postmaster_address =  whoever@exem.pl
    -    mail_plugins = $mail_plugins sieve
    -}
    -
    -plugin {
    -    sieve = ~/.dovecot.sieve
    -    sieve_dir = ~/sieve
    -}
    -
    - - -

    ATTENTION: Sous OpenBSD, remplacez

    -
    passdb {
    -    driver = pam
    -}
    -
    - - -

    par

    -
    passdb {
    -    driver = bsdauth
    -}
    -
    - - -

    pour identifier les utilisateurs système

    -

    Ici aussi, voyons comment ce fichier est structuré :

    -
      -
    • Tout d'abord, les configurations de base : ou iront les logs, comment formater - leur datation, et l'endroit ou seront stockés les mails des utilisateurs.
    • -
    • Nous configurons ensuite la gestion de l'authentification des utilisateurs. - Ici nous identifions les utilisateurs avec le fichier /etc/passwd et leurs - mots de passe avec PAM (ou BSDAuth)
    • -
    • Nous configurons ensuite les protocoles que nous servons. Ici, nous voulons de - l'IMAPS, du LMTP local et Sieve (qui sert pour trier les messages).
    • -
    • Nous configurons le SSL
    • -
    • Le section suivante contient la configuration des services. Nous avons en - premier lieu le service IMAP, dont la configuration sert uniquement a - désactiver IMAP. En effet, dovecot ne permet d'activer IMAPS qu'en activant - IMAP avec. Comme nous ne voulons pas d'IMAP sans SSL, nous le désactivons. - La configuration de lmtp sert a attribuer des permissions plus correctes au - fifo qu'il utilise
    • -
    • Nous configurons maintenant les protocoles, pour faire fonctionner Sieve
    • -
    • enfin, nous configurons le plugin sieve en lui indiquant quel fichier et - quel dossier utiliser pour sa configuration.
    • -
    -

    Enfin, il nous reste a configurer amavis. Comme expliqué, amavis va nous servir -a deux choses : signer les emails sortants, et filtrer les emails entrants. Il -doit donc écouter sur les port 10026 pour les signatures et 10024 pour le -filtrage, et répondre respectivement sur les ports 10027 et 10025 (le tout, en -SMTP. Comme toutes les transactions se font sur le loopback, il n'y a aucun -risque a utiliser des protocoles non chiffrés. -Pour OpenBSD, pensez a copier la configuration par défaut depuis -/usr/local/share/examples/amavisd-new/amavisd.conf et ajoutez les -modifications nécessaires a la fin du fichier.

    -

    /etc/amavis/conf.d/99-local.conf (debian) -/etc/amavis.conf (OpenBSD)

    -
    use strict;
    -
    -$enable_dkim_verification = 1;
    -$enable_dkim_signing = 1;
    -dkim_key("exem.pl", "main", "/etc/certs/dkim.key" );
    -
    -@dkim_signature_options_bysender_maps = (
    -    { '.' =>
    -        { ttl => 21*24*3600, c => 'relaxed/simple' }
    -    }
    -);
    -
    -$inet_socket_port = [10024, 10026];
    -$policy_bank{'MYNETS'} = {
    -        originating => 1,
    -        os_fingerprint_method => undef,
    -};
    -
    -$interface_policy{'10026'} = 'ORIGINATING';
    -
    -$policy_bank{'ORIGINATING'} = {
    -        originating => 1,
    -        allow_disclaimers => 1,
    -        virus_admin_maps => ["root\@$mydomain"],
    -        spam_admin_maps => ["root\@$mydomain"],
    -        warnbadhsender => 1,
    -        forward_method => 'smtp:localhost:10027',
    -        smtpd_discard_ehlo_keywords => ['8BITMIME'],
    -        bypass_banned_checks_maps => [1],
    -        terminate_dsn_on_notify_success => 0,
    -};
    -
    -#------------ Do not modify anything below this line -------------
    -1;  # ensure a defined return
    -
    - - -

    A nouveau, expliquons ce fichier : -- le premier paragraphe définit que nous voulons qu'amavis signe les emails - sortants, vérifie la signature DKIM des emails rentrants, et l'endroit ou se - trouve la clé privée servant a signer les emails. -- le second définit les options DKIM que nous souhaitons utiliser comme défaut. - Je vous invite a consulter la RFC 4871 -- nous définissons ensuite les ports sur lesquels nous allons écouter, puis les - paramètres que nous utiliserons pour les emails venant de nos utilisateurs : - ils seront traités comme "originating" et nous ne vérifierons pas l'OS duquel - ils viennent. -- nous savons que les emails venants du port 10026 sont sortants, nous les - traitons donc comme tel -- le paragraphe suivant décrit le traitement que nous faisons subir aux emails - sortants : tout d'abord, nous réaffirmons qu'ils viennent bien de notre - serveur. Nous autorisons les disclaimers (voire encore une fois la RFC - 4871. Nous déclarons l'adresse a - prévenir en cas de spam/virus venants de notre système, et que nous voulons - être prévenus. Nous déclarons ou envoyer les mails une fois signés et filtrés, - puis qu'il est nécessaire de convertir les emails au format 7 bits avant de - les envoyer au MTA, que nous autorisons tous les types et noms de fichiers, et - les notifications de succès d'envoi. Et voila!

    -

    Vous avez pu remarquer qu'a aucun moment nous ne configurions ni la signature -des emails sortants ni le filtrage des emails entrants. Ces paramètres sont en -fait inclus par défaut dans amavis.

    -

    Il nous reste cependant quelques opérations a faire, encore. -Tout d'abord, il nous faut générer notre clé DKIM. Pour cela, il existe -différentes méthodes, j'ai personnellement utilisé opendkim (un -tutorial) -mais de nombreuses autre méthodes existent. -Il nous reste encore a configurer spamassassin :

    -
    #rewrite_header Subject *****SPAM*****
    -# report_safe 1
    -required_score 2.0
    -# use_bayes 1
    -# bayes_auto_learn 1
    -# bayes_ignore_header X-Bogosity
    -# bayes_ignore_header X-Spam-Flag
    -# bayes_ignore_header X-Spam-Status
    -ifplugin Mail::SpamAssassin::Plugin::Shortcircuit
    -# shortcircuit USER_IN_WHITELIST       on
    -# shortcircuit USER_IN_DEF_WHITELIST   on
    -# shortcircuit USER_IN_ALL_SPAM_TO     on
    -# shortcircuit SUBJECT_IN_WHITELIST    on
    -# shortcircuit USER_IN_BLACKLIST       on
    -# shortcircuit USER_IN_BLACKLIST_TO    on
    -# shortcircuit SUBJECT_IN_BLACKLIST    on
    -shortcircuit ALL_TRUSTED             off
    -# shortcircuit BAYES_99                spam
    -# shortcircuit BAYES_00                ham
    -
    -endif # Mail::SpamAssassin::Plugin::Shortcircuit
    -
    - - -

    Comme vous pouvez le voir, les modifications se résument globalement a baisser -le required_score pour ma part.

    -

    Pour finir, activez les services nécessaires : opensmtpd, dovecot, amavisd, et -spamassassin, et tout devrait fonctionner parfaitement

    -

    Bon courage pour votre hosting de mail ensuite...

    -
    -
    -
    -

    Pages

    -
  • A propos
  • -
    -
    - -
    -
    - -
    - - \ No newline at end of file diff --git a/output/feeds/feed.language.xml b/output/feeds/feed.language.xml deleted file mode 100644 index a424677..0000000 --- a/output/feeds/feed.language.xml +++ /dev/null @@ -1,30 +0,0 @@ - -Wxcaféfile:///home/wxcafe/code/blog-source/output/2012-09-18T19:07:00+02:00Le Quenya - Épisode ø2012-09-18T19:07:00+02:00Wxcafetag:,2012-09-18:home/wxcafe/code/blog-source/output/posts/le-quenya-episode-o/<p>Le Quenya est, pour ceux qui ne connaissent pas (comme moi jusqu’à il y -a peu...), le nom que donnait Tolkien au dialecte principal parlé par -les Elfes dans les différentes œuvres de l'auteur, dont Le Seigneur des -Anneaux, le Hobbit, ou encore le Silmarillion. Il faut se rendre compte -avant de commencer cet article que l'une des œuvres les plus -impressionnantes de Tolkien, si ce n'est la plus grande, est -l'impressionnant travail linguistique passé sur les différentes langues -présentes dans son œuvre littéraire : L'elfique, qui est donc le quenya, -la langue des nains, qui est appelé le khazalide, etc. </p> -<p>En effet, a contrario des "langues" développées dans d'autres œuvres littéraires -telles Eragon ou Harry Potter, où l'auteur-e se contente de lier un mot -de français (ou d'anglais) a un mot de sa "langue", les langues de -l'oeuvre de Tolkien sont des langues complètes. Elles possèdent des -racines logiques, des systèmes de grammaire et de conjugaison propres, -une logique inhérente dans la prononciation ou l'orthographe, et ainsi -de suite. </p> -<p>Un véritable rêve de linguiste donc, puisque ces langues sont -pratiquement entièrement documentées par Tolkien lui même (voir -l'appendice E du SdA, particulièrement instructif a ce sujet.)</p> -<p>J'ai donc décidé d'apprendre le Quenya récemment, et je vais donc poster -ici des résumés des cours que je suis ( disponibles <a href="http://folk.uib.no/hnohf/qcourse.htm">ici</a> , une -traduction en français est disponible <a href="http://www.ambar-eldaron.com/telechargements/integraleshelge.pdf">la</a> en pdf ), et des infos ici -toutes les deux semaines.</p> -<p>Si ce sujet vous intéresse, le compte twitter @Quenya101 poste -régulièrement des informations sur le sujet, et pour plus d'infos sur le -sujet, vous pouvez en trouver <a href="olk.uib.no/hnohf/quenya.htm">par ici</a>.</p> -<p>Et en tant que première leçon, vous pouvez apprendre que ce mot que vous -avez prononcé comme le Kenya tout le long de cet article se prononce en -fait [Kwenïa], ou bien Qwenya!</p> \ No newline at end of file diff --git a/output/feeds/feed.notes.xml b/output/feeds/feed.notes.xml deleted file mode 100644 index 1873405..0000000 --- a/output/feeds/feed.notes.xml +++ /dev/null @@ -1,265 +0,0 @@ - -Wxcaféfile:///home/wxcafe/code/blog-source/output/2014-05-30T08:25:00+02:00SSL ou la sécurité sur l'internet2014-05-30T08:25:00+02:00Wxcafetag:,2014-05-30:home/wxcafe/code/blog-source/output/posts/SSL-ou-la-securite-sur-internet/<p><em>Disclaimer: Ce billet est écrit après le visionnage de la conférence de Moxie -Marlinspike suivante: <a href="https://www.youtube.com/watch?v=ibF36Yyeehw">More Tricks for Defeating SSL</a>, -présentée a la DefCon 17 (en 2011), et la lecture du billet suivant: -<a href="http://www.thoughtcrime.org/blog/lavabit-critique/">A Critique of Lavabit</a>, -ce qui peut avoir l'effet de rendre légèrement parano. Si vous considérez que -c'est le cas ici, veuillez ne pas tenir compte de ce billet (et vous pouvez dès -a présent dire coucou aux différentes personnes qui écoutent votre connection)</em></p> -<p>Si vous venez ici souvent (vous devriez), et que vous utilisez SSL pour vous -connecter a ce site (vous devriez, vraiment, dans ce cas), vous avez peut être -remarqué quelque chose récemment : il se trouve que le certificat qui permet de -desservir ce site a changé.</p> -<p>Cela fait suite aux évènements évoqués dans le <em>Disclaimer</em>, mais aussi a des -doigts sortis d'un endroit particulier du corps de l'admin/auteur de ce "blog", -qui a pris <strong>enfin</strong> les 5 minutes nécessaires a la compréhension superficielle -du fonctionnement de SSL, et les 10 nécessaires a la mise en place d'un système -fonctionnel utilisant cette compréhension récemment acquise.</p> -<p>Bref, le certificat a changé. Mais de quelle façon, vous demandez vous peut -être (ou pas, mais bon, je vais expliquer de toute façon). Et bien c'est très -simple : il existait auparavant un certificat pour <code>wxcafe.net</code>, un pour -<code>paste.wxcafe.net</code>, un pour <code>mail.wxcafe.net</code>, etc... Bref, un certificat -différent pour chaque sous-domaine.</p> -<p>Il s'avère que c'est a la fois très peu pratique a utiliser (les utilisateurs -doivent ajouter chaque certificat a leur navigateur séparément, chaque -changement de sous-domaine conduit a un message d'erreur, etc) et pas plus -sécurisé que d'avoir un seul certificat wildcard. J'ai donc généré un certificat -pour <code>*.wxcafe.net</code> hier, et il sera dorénavant utilisé pour tous les -sous-domaine de <code>wxcafe.net</code>; et un certificat pour <code>wxcafe.net</code>, qui ne matche -pas <code>*.wxcafe.net</code>, et qui sera donc utilisé... bah pour <code>wxcafe.net</code>.</p> -<p>Il serait préférable de faire des redirections automatiques des adresses http -vers les adresses https, cependant, étant donné que le certificat est -self-signed, il me semble préférable que l'arrivée sur le site ne commence pas -par une page firefox disant "Something's Wrong!", et ces redirections ne seront -donc pas mises en place.</p> -<p>De plus, après la lecture de l'article de blog sur Lavabit dont le lien est plus -haut, il semble intéressant (et assez important) de faire en sorte que le -serveur utilise en priorité (et si possible, uniquement) des ciphers supportant -PFS, soit EDH et EECDH (Ephemeral Diffie-Helmann et la version Elliptic Curves -de ce même algorithme). Cela permet de faire en sorte que toutes les -communications avec ce serveur soient future-proof, c'est a dire que, même si -quelqu'un récupérait la clé privée, elle ne serait pas utile pour déchiffrer les -communications passées.</p> -<p>Bon, maintenant que les explications basiques sont faites, voyons -l'implémentation : <br /> -Pour générer la clé, tout d'abord, il convient d'utiliser les commandes -suivantes: </p> -<div class="highlight"><pre><span class="n">sudo</span> <span class="n">openssl</span> <span class="n">genrsa</span> <span class="o">-</span><span class="n">out</span> <span class="n">example</span><span class="p">.</span><span class="n">key</span> <span class="mi">4096</span> -<span class="cp"># nous utilisons ici une clé de 4096 bits, la taille est laissée a votre appréciation</span> -<span class="n">sudo</span> <span class="n">openssl</span> <span class="n">req</span> <span class="o">-</span><span class="n">new</span> <span class="o">-</span><span class="n">key</span> <span class="n">example</span><span class="p">.</span><span class="n">key</span> <span class="o">-</span><span class="n">out</span> <span class="n">example</span><span class="p">.</span><span class="n">csr</span> -<span class="cp"># OpenSSL va ici vous demander de nombreuses informations, &quot;Common Name&quot; devant contenir le FQDN</span> -<span class="n">sudo</span> <span class="n">openssl</span> <span class="n">X509</span> <span class="o">-</span><span class="n">req</span> <span class="o">-</span><span class="n">days</span> <span class="mi">1095</span> <span class="o">-</span><span class="n">in</span> <span class="n">example</span><span class="p">.</span><span class="n">csr</span> <span class="o">-</span><span class="n">signkey</span> <span class="n">example</span><span class="p">.</span><span class="n">key</span> <span class="o">-</span><span class="n">out</span> <span class="n">example</span><span class="p">.</span><span class="n">crt</span> -<span class="cp"># enfin, nous générons la clé, d&#39;une durée de vie de 3 ans</span> -</pre></div> - - -<p>Bien entendu, si vous voulez utiliser une clé wildcard, il vous faut préciser -<code>*.example.com</code> comme common name. -Une fois la clé générée, il faut dire aux différents services de l'utiliser, et -de n'utiliser que des ciphers PFS. La méthode dépend donc du service. -Je vais lister ici les methodes pour quelques services que j'utilise :</p> -<h3>apache :</h3> -<div class="highlight"><pre><span class="cp"># /etc/apache2/mods_enabled/ssl.conf</span> -<span class="cp"># [...]</span> -<span class="n">SSLProtocol</span> <span class="n">all</span> <span class="o">-</span><span class="n">SSLv2</span> <span class="o">-</span><span class="n">SSLv3</span> -<span class="n">SSLHonorCipherOrder</span> <span class="n">on</span> -<span class="n">SSLCipherSuite</span> <span class="s">&quot;EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 \</span> -<span class="s"> EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 \</span> -<span class="s"> EECDH EDH+aRSA RC4 !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS&quot;</span> -<span class="cp"># [...]</span> -<span class="cp"># /etc/apache2/sites-enabled/default-ssl</span> -<span class="cp"># [...]</span> -<span class="n">SSLEngine</span> <span class="n">on</span> -<span class="n">SSLCertificateFile</span> <span class="o">/</span><span class="n">etc</span><span class="o">/</span><span class="n">certs</span><span class="o">/</span><span class="n">example</span><span class="p">.</span><span class="n">com</span><span class="p">.</span><span class="n">crt</span> -<span class="n">SSLCertificateKeyFile</span> <span class="o">/</span><span class="n">etc</span><span class="o">/</span><span class="n">certs</span><span class="o">/</span><span class="n">example</span><span class="p">.</span><span class="n">com</span><span class="p">.</span><span class="n">key</span> -<span class="cp"># [...]</span> -</pre></div> - - -<h3>nginx :</h3> -<div class="highlight"><pre><span class="cp"># /etc/nginx/nginx.conf </span> -<span class="cp"># [...]</span> -<span class="n">ssl_protocols</span> <span class="n">TLSv1</span> <span class="n">TLSv1</span><span class="mf">.1</span> <span class="n">TLSv1</span><span class="mf">.2</span><span class="p">;</span> -<span class="n">ssl_prefer_server_ciphers</span> <span class="n">on</span><span class="p">;</span> -<span class="n">ssl_ciphers</span> <span class="s">&quot;EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 \</span> -<span class="s"> EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 \</span> -<span class="s"> EECDH EDH+aRSA RC4 !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS&quot;</span><span class="p">;</span> -<span class="cp"># [...]</span> -<span class="cp"># /etc/nginx/sites-enabled/default-ssl</span> -<span class="cp"># [...]</span> -<span class="n">ssl</span> <span class="n">on</span><span class="p">;</span> -<span class="n">ssl_certificate</span> <span class="o">/</span><span class="n">etc</span><span class="o">/</span><span class="n">certs</span><span class="o">/</span><span class="n">example</span><span class="p">.</span><span class="n">com</span><span class="p">.</span><span class="n">crt</span> -<span class="n">ssl_certificate_key</span> <span class="o">/</span><span class="n">etc</span><span class="o">/</span><span class="n">certs</span><span class="o">/</span><span class="n">example</span><span class="p">.</span><span class="n">com</span><span class="p">.</span><span class="n">key</span> -<span class="cp"># [...]</span> -</pre></div> - - -<h3>prosody (jabber) :</h3> -<div class="highlight"><pre><span class="cp"># tout d&#39;abord, lancez la commande suivante :</span> -<span class="n">sudo</span> <span class="n">openssl</span> <span class="n">dhparam</span> <span class="o">-</span><span class="n">out</span> <span class="o">/</span><span class="n">etc</span><span class="o">/</span><span class="n">prosody</span><span class="o">/</span><span class="n">certs</span><span class="o">/</span><span class="n">dh</span><span class="o">-</span><span class="mf">2048.</span><span class="n">pem</span> <span class="mi">2048</span> -<span class="cp"># ensuite, pour chaque VirtualHost dans /etc/prosody/prosody.conf :</span> -<span class="n">ssl</span> <span class="o">=</span> <span class="p">{</span> - <span class="n">dhparam</span> <span class="o">=</span> <span class="s">&quot;/etc/prosody/certs/dh-2048.pem&quot;</span><span class="p">;</span> - <span class="n">key</span> <span class="o">=</span> <span class="s">&quot;/etc/certs/example.com.key&quot;</span><span class="p">;</span> - <span class="n">certificate</span> <span class="o">=</span> <span class="s">&quot;/etc/certs/example.com.crt&quot;</span><span class="p">;</span> -<span class="p">}</span> -<span class="cp"># la cipher suite de prosody utilise par défaut EDH et EECDH</span> -</pre></div> - - -<h3>postfix (email) :</h3> -<div class="highlight"><pre><span class="cp"># /etc/postfix/main.cf</span> -<span class="cp"># [...]</span> -<span class="n">smtpd_tls_cert_file</span> <span class="o">=</span> <span class="o">/</span><span class="n">etc</span><span class="o">/</span><span class="n">certs</span><span class="o">/</span><span class="n">example</span><span class="p">.</span><span class="n">com</span><span class="p">.</span><span class="n">crt</span> -<span class="n">smtpd_tls_key_file</span> <span class="o">=</span> <span class="o">/</span><span class="n">etc</span><span class="o">/</span><span class="n">certs</span><span class="o">/</span><span class="n">example</span><span class="p">.</span><span class="n">com</span><span class="p">.</span><span class="n">key</span> -<span class="n">tls_preempt_cipherlist</span> <span class="o">=</span> <span class="n">yes</span> -<span class="n">smtpd_tls_eecdh_grade</span> <span class="o">=</span> <span class="n">strong</span> -<span class="n">smtdp_tls_mandatory_ciphers</span> <span class="o">=</span> <span class="n">high</span> -<span class="n">smtpd_tls_mandatory_exclude_ciphers</span> <span class="o">=</span> <span class="n">aNULL</span><span class="p">,</span> <span class="n">eNULL</span><span class="p">,</span> <span class="n">MD5</span><span class="p">,</span> <span class="n">LOW</span><span class="p">,</span> <span class="mi">3</span><span class="n">DES</span><span class="p">,</span> <span class="n">EXP</span><span class="p">,</span> <span class="n">PSK</span><span class="p">,</span> <span class="n">SRP</span><span class="p">,</span> <span class="n">DSS</span> -<span class="n">smtpd_tls_security_level</span> <span class="o">=</span> <span class="n">encrypt</span> -<span class="n">smtpd_tls_mandatory_protocols</span> <span class="o">=</span> <span class="o">!</span><span class="n">SSLv2</span><span class="p">,</span> <span class="o">!</span><span class="n">SSLv3</span> -<span class="n">smtpd_use_tls</span> <span class="o">=</span> <span class="n">yes</span> -<span class="cp"># [...]</span> -</pre></div> - - -<h3>dovecot (imap) :</h3> -<div class="highlight"><pre><span class="cp"># /etc/dovecot/dovecot.conf </span> -<span class="cp"># [...]</span> -<span class="n">ssl_cert</span> <span class="o">=</span> <span class="o">&lt;/</span><span class="n">etc</span><span class="o">/</span><span class="n">certs</span><span class="o">/</span><span class="n">example</span><span class="p">.</span><span class="n">com</span><span class="p">.</span><span class="n">crt</span> -<span class="n">ssl_key</span> <span class="o">=</span> <span class="o">&lt;/</span><span class="n">etc</span><span class="o">/</span><span class="n">certs</span><span class="o">/</span><span class="n">example</span><span class="p">.</span><span class="n">com</span><span class="p">.</span><span class="n">key</span> -<span class="n">ssl_cipher_list</span> <span class="o">=</span> <span class="n">HIGH</span><span class="o">+</span><span class="n">kEDH</span><span class="o">:</span><span class="n">HIGH</span><span class="o">+</span><span class="n">kEECDH</span><span class="o">:</span><span class="n">HIGH</span><span class="o">:!</span><span class="n">PSK</span><span class="o">:!</span><span class="n">SRP</span><span class="o">:!</span><span class="mi">3</span><span class="n">DES</span><span class="o">:!</span><span class="n">aNULL</span> -</pre></div> - - -<p>Voila. Pour d'autres protocoles/services, je vous invite a RTFM^W vous reporter -au manuel approprié.</p> -<p>Cela étant dit, je conseille a tout le monde d'aller voir la conférence dans le -disclaimer, et tant qu'a faire la conférence du même hacker <a href="https://www.youtube.com/watch?v=8N4sb-SEpcg">SSL and the future -of Authenticity</a> qui parle de son -implémentation d'une technologie "remplaçant" le système de CAs qui existe -actuellement.</p>Redesign du blog, etc2013-06-12T19:14:00+02:00wxcafetag:,2013-06-12:home/wxcafe/code/blog-source/output/posts/redesign-du-blog/<p>Comme vous avez pu le remarquer, ce blog a "un peu" changé récemment.</p> -<p>Du coup, expliquons. J'ai récemment monté <a href="http://serverporn.fr">serverporn</a>, et ai par la même -occasion découvert <a href="http://getpelican.com">pelican</a>. J'ai tout de suite accroché a ce générateur de -site statique en python, du fait de son efficacité, de sa facilité d'utilisation -et de sa grande customisation. En gros, pelican est un logiciel qui prend des -fichiers markdown ou reStructuredText, les passe a la moulinette d'un "thème" -constitué de templates pour les fichiers html et l'organisation du projet et -d'une partie "statique" contenant le css, et les autres fichiers nécessaires au -projet, et en fait des pages html. </p> -<p>Globalement, un thème est constitué ainsi :</p> -<div class="highlight"><pre><span class="n">th</span><span class="err">è</span><span class="n">me</span> -<span class="err">├──</span> <span class="k">static</span> -<span class="err">│</span> <span class="err">├─</span> <span class="n">css</span> -<span class="err">│</span> <span class="err">│</span> <span class="err">└─</span> <span class="p">[</span><span class="n">css</span> <span class="n">files</span><span class="p">]</span> -<span class="err">│</span> <span class="err">├─</span> <span class="n">img</span> -<span class="err">│</span> <span class="err">│</span> <span class="err">└─</span> <span class="p">[</span><span class="n">image</span> <span class="n">files</span><span class="p">]</span> -<span class="err">│</span> <span class="err">└─</span> <span class="n">js</span> -<span class="err">│</span> <span class="err">└─</span> <span class="p">[</span><span class="n">javascript</span> <span class="n">files</span><span class="p">]</span> -<span class="err">└──</span> <span class="n">template</span> - <span class="err">├─</span> <span class="n">base</span><span class="p">.</span><span class="n">html</span> - <span class="err">├─</span> <span class="n">index</span><span class="p">.</span><span class="n">html</span> - <span class="err">├─</span> <span class="n">page</span><span class="p">.</span><span class="n">html</span> - <span class="err">├─</span> <span class="p">[...]</span> - <span class="err">└─</span> <span class="n">article</span><span class="p">.</span><span class="n">html</span> -</pre></div> - - -<p>Sachant que les fichiers .html sont en réalité des fichiers suivant la syntaxe -django, et utilisent des variables particulières telles <code>{{ article.content }}</code>, -par exemple. La syntaxe complète est très bien documentée dans la <a href="http://docs.getpelican.com/en/3.2/themes.html#templates-and-variables">doc</a> de -pelican.</p> -<p>L'un des grands avantages de pelican est aussi la facilité qu'il offre quand a -la mise a jour du blog.<br /> -En effet, il offre un système de Makefiles permettant, grâce a de nombreuses -cibles de compilation, de régénérer le site entier, de ne générer que les -fichiers modifiés depuis la dernière génération, de générer uniquement les -fichiers n'existant pas la dernière fois, etc... -La gestion du projet en devient donc très simple, puisque après avoir écrit un -article, il suffit de faire un <code>make html</code> pour mettre a jour le blog.</p> -<p>De plus, le système de wordpress commençait a ne plus me convenir, du fait du -manque de customisation, du fait que ça soit du PHP (beurk), etc. La, avec -pelican, je contrôle bien plus ce qui est mis sur le serveur (puisque c'est moi -qui ait modifié les templates et le css), c'est lisible (puisque c'est du -python, par opposition au PHP...), et c'est plus "efficace". Le markdown est -très pratique, je peux utiliser mon éditeur de texte de prédilection pour faire -les articles, je n'ai pas besoin d'un accès continu au net, bref, c'est plus -efficace.</p> -<p>En ce qui concerne les points négatifs : </p> -<ul> -<li> -<p>Perte des commentaires: - Je vous propose de vous référer a l'article de Gordontesos <a href="http://gordon.re/hacktivisme/la-necessite-des-commentaires.html">ici</a> quand a - mon avis sur ce sujet.</p> -</li> -<li> -<p>Perte du bouton flattr: - Il va bientôt être remis, c'est juste un manque de temps de ma part, mais vu - que toutes les pages passent par les mêmes templates, c'est assez facile a - faire.</p> -</li> -<li> -<p>Perte du spam: - Pourquoi c'est dans les points négatifs, ca?</p> -</li> -<li> -<p>Temps d'adaptation et d'appréhension du système: - Oui, pendant encore un certain temps, il y aura des glitchs plus ou moins - réguliers sur le blog, c'est parce que j'apprend a me servir de ce système - et que j'apprend du css et du html. Ca arrive, ca passera, mais dans tous - les cas ca me permet d'apprendre plein de choses, donc je mets plutôt ca - dans la catëgorie positive.</p> -</li> -</ul> -<p>Voila, c'est mon retour d'expérience sur pelican. A plus. </p>Update2013-01-05T18:32:00+01:00Wxcafetag:,2013-01-05:home/wxcafe/code/blog-source/output/posts/update/<p>Juste une petite note pour annoncer le prochain article, consacré a la -fabrication d'une PirateBox basée sur un Raspberry Pi. Voila, a bientôt -sur le blog!</p>Update a propos du blog2012-09-18T16:57:00+02:00Wxcafetag:,2012-09-18:home/wxcafe/code/blog-source/output/posts/update-a-propos-du-blog/<p>Bonsoir! Un petit post pour faire un peu le point sur ce blog.<br /> -Comme vous avez pu le remarquer, j'ai un peu de mal a tenir les délais -que je m'étais fixés pour ce blog (un post tous les 8 jours), et après y -avoir un tantinet réfléchi, ceci est du a deux points principaux :</p> -<ul> -<li> -<p>Tout d'abord, le manque d'inspiration, tout simplement. C'est assez -compliqué de trouver des sujets intéressants liés a l'informatique, et -qui méritent un article. Je vous invite d'ailleurs a me suggérer des -sujets via les commentaires ou twitter (<a href="https://twitter.com/wxcafe">@Wxcafe</a>)</p> -</li> -<li> -<p>Ensuite, le délai de 8 jours est trop court pour me permettre de faire -les recherches nécessaires, tout en manageant mes cours et mon temps -libre.</p> -</li> -</ul> -<p>A cause de cela, j'ai pris la décision de changer le rythme de parution -des articles a un *minimum* d'un post tous les 10 jours. Bien entendu, -si j'ai de l'inspiration en trop, plus de posts sont envisageables.</p> -<p>Voila. A part ca, je tiens a vous remercier de me lire (c'est assez -étonnant de voir ca...), et je précise que je vais ajouter une page -About Me, qui bien entendu rassemblera des informations sur moi, ma vie, -mon oeuvre :P</p> -<p>Ceci dit, je vais bosser un peu sur le prochain article.</p> -<p>A plus tard!</p>Débuts, présentation, etc...2012-08-18T20:27:00+02:00Wxcafetag:,2012-08-18:home/wxcafe/code/blog-source/output/posts/debuts-presentation-etc/<p>Bonjour!</p> -<p>Je m'appelle Wxcafé, et ça fait pas mal de temps que je sévis sur -Twitter, mais aussi sur IRC (Je traîne pas mal sur -irc.freenode.net/##nolife et #debian-fr)</p> -<p>J'ai 17 ans, je suis donc étudiant (bac général), je vis a Paris, et je -fais partie de ce genre de personne qui sont capables d'investir tout -leur temps et leur énergie a s’intéresser a un sujet en particulier, et -qui ne peuvent pas vivre sans leurs passions, avec une petite différence -cependant, qui est que je m’intéresse a plusieurs choses : -l'informatique, qui est un champ tellement large qu'on peut passer une -vie a apprendre des choses dessus, et plus particulièrement à -l'informatique avancée (Noyaux dérivés d'UNIX et de Linux, outils libres -{bien que n'étant pas un barbu intégriste [ceci est un troll assumé. Les -trolls seront a partir de maintenant indiqués avec le tag [tr]] du -libre, je préfère utiliser de l'open-source si c'est possible}, -programmation en C, python et java, etc...) , mais aussi a -l’électronique. </p> -<p>Dans un tout autre registre, je m’intéresse aussi -beaucoup aux différents aspects du féminisme et des égalités sexuelles -(anti-homophobie/transphobie/biphobie/etc , anti-sexisme, et cætera) , -et a la culture dite "geek" en général.</p> -<p>Je tenterai de poster ici le plus souvent possible, mais j'ai de gros -problèmes en terme de régularité de post, donc ne vous inquiétez pas si -vous ne voyez rien pendant deux semaines.</p> -<p>Merci beaucoup de votre attention, et a bientôt!</p> \ No newline at end of file diff --git a/output/feeds/feed.programmation.xml b/output/feeds/feed.programmation.xml deleted file mode 100644 index a51d231..0000000 --- a/output/feeds/feed.programmation.xml +++ /dev/null @@ -1,198 +0,0 @@ - -Wxcaféfile:///home/wxcafe/code/blog-source/output/2012-09-08T18:15:00+02:00Introduction a bash en tant que language de programmation.2012-09-08T18:15:00+02:00Wxcafetag:,2012-09-08:home/wxcafe/code/blog-source/output/posts/introduction-a-bash-en-tant-que-language-de-programmation/<p>L’interpréteur de commandes bash (Bourne Again SHell) -est possiblement le shell le plus connu, notamment grâce a son -intégration en tant que shell par défaut dans les distributions Linux -les plus répandues (Debian - Ubuntu, Fedora, OpenSUSE, Mandriva - -Mageia, etc...).</p> -<p>Cependant, il n'est souvent connu qu'en tant qu’interpréteur de -commande. Alors qu'en réalité, le bash est un langage de programmation -(presque) complet! Ainsi, il intègre les structures de contrôle -habituelles ( pour mémoire, les structures de contrôle comprennent les -conditions (les ifs), les boucles (les while), et les choix (les case), -entre autres.), et est donc ce que l'on pourrait appeler un langage de -script, interprété, de la même façon que python, a la difference près -qu'il contient un prompt (un système d'entrée de commande interactif) -bien plus complet et développé que python. </p> -<p>Cependant, les programmes en bash ne sont executables que dans un -environnement de type UNIX, et donc pas sous Windows (cygwin -(cygwin.com) propose ceci dit un système permettant d'utiliser bash sous -windows. Il faut malgré tout convenir que cet environnement est bien -plus compliqué a manipuler, et globalement ne permet pas d'acceder a des -portages de qualité satisfaisante.)</p> -<p>Ainsi, il est possible de créer des fichiers .sh, contenant des -instructions bash mises a la suite (de la même façon qu'un script BATCH -Windows .bat), et faisant appel autant aux commandes internes de bash, -aussi bien que les commandes externes mises en place par les programmes -installés sur le système, exactement comme dans une invite de commande. -Ainsi, pour appeller firefox, la commande 'firefox' lancera le petit -panda roux directement dans la boite magique, tandis qu'un if -[condition] suivi d'un then (quelque chose) lancera le fameux quelque -chose suscité si la condition est vérifiée. Un peu comme en C, quoi. </p> -<p>De cette façon, et avec quelques informations et connaissances, il est -facile de comprendre le fonctionnement de la programmation en bash. -Quelques exemples commentés:</p> -<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre> 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 -10 -11 -12 -13</pre></div></td><td class="code"><div class="highlight"><pre><span class="c">#!/bin/bash </span> -<span class="c"># La ligne du dessus est très importante, c&#39;est elle qui dit a bash quel doit être </span> -<span class="c"># l&#39;interpreteur des commandes écrites dans ce script. Ici, on dit a bash d&#39;interpréter </span> -<span class="c"># lui même les commandes comprises dans ce script. On aurait tout de fois pu lui faire </span> -<span class="c"># executer du python, par exemple, en mettant #!/usr/bin/python a la place.</span> -<span class="nb">echo</span> <span class="s2">&quot;this is a test of bash as a simple script manager&quot;</span> <span class="c"># echo est une commande d&#39;affichage de message.</span> -<span class="nb">echo</span> <span class="s2">&quot;what&#39;s your name, user?&quot;</span> -<span class="nb">read </span>your_name <span class="c"># la commande read permet de demander a l&#39;utilisateur de donner une </span> -<span class="c"># information, stockée dans la variable en paramètre. </span> -<span class="nb">echo</span> <span class="nv">$your_name</span> <span class="s2">&quot;is your name&quot;</span> <span class="c"># echo permet aussi d&#39;afficher la valeur de variables. </span> -<span class="c"># Ici, on renvoie la variable remplie précédemment, suivie d&#39;un message. </span> -<span class="nb">exit</span> <span class="c"># cet appel a exit n&#39;est pas obligatoire, mais donne un aspect plus </span> -<span class="c"># propre au code. Il ne quittera pas la session de terminal, cependant.</span> -</pre></div> -</td></tr></table> - -<p>Voila. Ce script bash ne sert pas a grand chose, mais il a le mérite -d'être clair quand aux capacités et a la simplicité du bash en tant que -language de programmation. Alors en effet, nous n'avons ici absolument -pas utilisé les capacités de bash en lui même, et n'avons fait que le -renvoyer a des programmes externes (sauf read, il est vrai). Voyons -maintenant la syntaxe de bash quand il s'agit d'utiliser les structures -de contrôle:</p> -<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre> 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 -10</pre></div></td><td class="code"><div class="highlight"><pre><span class="c">#!/bin/bash </span> -<span class="nb">echo</span> <span class="s2">&quot;welcome to this second bash program. would you please kindly enter the name of the machine you&#39;re running this on?&quot;</span> -<span class="nb">read </span>host_name -<span class="k">if</span> <span class="o">[</span> <span class="nv">$host_name</span> <span class="o">==</span> <span class="nv">$HOSTNAME</span> <span class="o">]</span> <span class="c">## voici la syntaxe du if. Attention a bien penser a mettre les espaces avant la première variable, et après la seconde. La variable $HOSTNAME ici utilisée est une variable présente par défaut sur le système. </span> -<span class="k">then </span><span class="nb">echo</span> <span class="s2">&quot;you told the truth!&quot;</span> -<span class="k">fi</span> <span class="c">## le fi est la commande fermant le if, tout comme le EndIf en basic. C&#39;est un peu vieillot, mais important en bash. </span> -<span class="k">if</span> <span class="o">[</span> <span class="nv">$host_name</span> !<span class="o">=</span> <span class="nv">$HOSTNAME</span> <span class="o">]</span> <span class="c">## l&#39;opérateur != est l&#39;inverse de ==, il vérifie donc si les deux variables ne sont pas les mêmes. </span> -<span class="k">then </span><span class="nb">echo</span> <span class="s2">&quot;you lied!&quot;</span> -<span class="k">fi </span> -<span class="nb">exit</span> -</pre></div> -</td></tr></table> - -<p>Voila un petit programme permettant d'apprendre la syntaxe du if en -bash. comme vous pouvez le voir, le language est plutôt lite, et la -structure if n'est pas très difficile a prendre en main.</p> -<p>Passons maintenant au while:</p> -<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1 -2 -3 -4 -5 -6 -7</pre></div></td><td class="code"><div class="highlight"><pre><span class="c">#!/bin/bash</span> -<span class="nb">echo</span> <span class="s2">&quot;what is your name?&quot;</span> -<span class="nb">read </span>name -<span class="k">while</span> <span class="o">[</span> 1 &lt; 10 <span class="o">]</span> <span class="c">## le while se présente sous la forme while (truc); do (machin); done. Les [] sont en fait des programmes differents, inclus dans bash.</span> -<span class="k">do </span><span class="nb">echo</span> <span class="s2">&quot;i love&quot;</span> <span class="nv">$name</span> -<span class="k">done</span> -<span class="nb">exit</span> -</pre></div> -</td></tr></table> - -<p>Ce petit programme permet d'observer les bases de while (qui est la -boucle de base en bash).</p> -<p>Le troisième opérateur de bash est case. Voyons:</p> -<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre> 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24</pre></div></td><td class="code"><div class="highlight"><pre><span class="c">#!/bin/bash</span> -<span class="nb">echo</span> <span class="s2">&quot;please enter a number between one and five&quot;</span> -<span class="nb">read </span>number -<span class="k">case</span> <span class="nv">$number</span> in -1<span class="o">)</span> -<span class="nb">echo</span> <span class="s2">&quot;the choosen number was one&quot;</span> -;; -2<span class="o">)</span> -<span class="nb">echo</span> <span class="s2">&quot;the choosen number was two&quot;</span> -;; -3<span class="o">)</span> -<span class="nb">echo</span> <span class="s2">&quot;the choosen number was three&quot;</span> -;; -4<span class="o">)</span> -<span class="nb">echo</span> <span class="s2">&quot;the choosen number was four&quot;</span> -;; -5<span class="o">)</span> -<span class="nb">echo</span> <span class="s2">&quot;the choosen number was five&quot;</span> -;; -*<span class="o">)</span> -<span class="nb">echo</span> <span class="s2">&quot;this number is not correct&quot;</span> -;; -<span class="k">esac</span> -<span class="nb">exit</span> -</pre></div> -</td></tr></table> - -<p>case est un opérateur plus complexe a utiliser a bon escient, et sert a -faire des ifs multiples sans avoir a taper des dizaines de lignes de -code.<br /> -(pour ceux qui auraient du mal avec cet opérateur, il faut comprendre -que le code vérifie chacune des conditions : le 1) est validé si la -valeur de \$number est 1, le 2) est validé si cette valeur est 2, etc.. -le *) désigne toutes les valeurs, et est donc validé si aucune autre -valeur n'a précédemment acceptée.</p> -<p>Quelques notions manquent ici:<br /> -- les nombres aléatoires sont générés par un appel a la variable -\$RANDOM, qui renvoie un nombre aléatoire entre 0 et 32767 (un entier a -16 bits donc). il est possible de faire des invocations a des nombres -aléatoires plus grands, mais les méthodes permettant de faire cela sont -plus complexes, et je ne les aborderai donc pas ici.<br /> -- comme vous avez pu le constater, les variables sont désignées en tant -que telles par l'utilisation d'un symbole \$ au début de leur nom. -Ainsi, echo number renverra "number", tandis que echo \$number renverra -le résultat de la variable \$number.<br /> -être utilisées dans un programme bash.<br /> -- comme vous avez pu le constater, les commandes doivent tenir en -théorie en une ligne. Cependant, le caractère \ permet de retourner a -la ligne en faisant considérer a bash qu'il s'agit de la même ligne.</p> -<p>Globalement, il faut admettre que bash n'a pas vocation a être un -langage de programmation extrêmement développé. Sans framework -graphique, avec peu de manières d'utiliser de grandes variables, ou -encore une gestion de la mémoire risible, bash n'a rien d'un langage de -développement professionnel.<br /> -Cependant, le simple fait qu'il soit considéré comme un langage de -programmation a part entière font de lui un langage de script d'une -puissance incontestable, et sa simplicité et sa grande popularité font -de lui un langage de choix pour apprendre la programmation simplement et -sans trop se prendre la tête.</p> -<p>J'espère que cet article aura été utile a certain-e-s, et je vous -souhaite bonne chance dans votre découverte de la programmation (n'allez -pas voir ceux qui font de l'orienté objet, c'est des méchants :3)</p> \ No newline at end of file diff --git a/output/feeds/feed.rss.language.xml b/output/feeds/feed.rss.language.xml deleted file mode 100644 index 3a514c5..0000000 --- a/output/feeds/feed.rss.language.xml +++ /dev/null @@ -1,30 +0,0 @@ - -Wxcaféfile:///home/wxcafe/code/blog-source/output/Tue, 18 Sep 2012 19:07:00 +0200Le Quenya - Épisode øfile:///home/wxcafe/code/blog-source/output/posts/le-quenya-episode-o/<p>Le Quenya est, pour ceux qui ne connaissent pas (comme moi jusqu’à il y -a peu...), le nom que donnait Tolkien au dialecte principal parlé par -les Elfes dans les différentes œuvres de l'auteur, dont Le Seigneur des -Anneaux, le Hobbit, ou encore le Silmarillion. Il faut se rendre compte -avant de commencer cet article que l'une des œuvres les plus -impressionnantes de Tolkien, si ce n'est la plus grande, est -l'impressionnant travail linguistique passé sur les différentes langues -présentes dans son œuvre littéraire : L'elfique, qui est donc le quenya, -la langue des nains, qui est appelé le khazalide, etc. </p> -<p>En effet, a contrario des "langues" développées dans d'autres œuvres littéraires -telles Eragon ou Harry Potter, où l'auteur-e se contente de lier un mot -de français (ou d'anglais) a un mot de sa "langue", les langues de -l'oeuvre de Tolkien sont des langues complètes. Elles possèdent des -racines logiques, des systèmes de grammaire et de conjugaison propres, -une logique inhérente dans la prononciation ou l'orthographe, et ainsi -de suite. </p> -<p>Un véritable rêve de linguiste donc, puisque ces langues sont -pratiquement entièrement documentées par Tolkien lui même (voir -l'appendice E du SdA, particulièrement instructif a ce sujet.)</p> -<p>J'ai donc décidé d'apprendre le Quenya récemment, et je vais donc poster -ici des résumés des cours que je suis ( disponibles <a href="http://folk.uib.no/hnohf/qcourse.htm">ici</a> , une -traduction en français est disponible <a href="http://www.ambar-eldaron.com/telechargements/integraleshelge.pdf">la</a> en pdf ), et des infos ici -toutes les deux semaines.</p> -<p>Si ce sujet vous intéresse, le compte twitter @Quenya101 poste -régulièrement des informations sur le sujet, et pour plus d'infos sur le -sujet, vous pouvez en trouver <a href="olk.uib.no/hnohf/quenya.htm">par ici</a>.</p> -<p>Et en tant que première leçon, vous pouvez apprendre que ce mot que vous -avez prononcé comme le Kenya tout le long de cet article se prononce en -fait [Kwenïa], ou bien Qwenya!</p>WxcafeTue, 18 Sep 2012 19:07:00 +0200tag:,2012-09-18:home/wxcafe/code/blog-source/output/posts/le-quenya-episode-o/ \ No newline at end of file diff --git a/output/feeds/feed.rss.notes.xml b/output/feeds/feed.rss.notes.xml deleted file mode 100644 index 4429edd..0000000 --- a/output/feeds/feed.rss.notes.xml +++ /dev/null @@ -1,265 +0,0 @@ - -Wxcaféfile:///home/wxcafe/code/blog-source/output/Fri, 30 May 2014 08:25:00 +0200SSL ou la sécurité sur l'internetfile:///home/wxcafe/code/blog-source/output/posts/SSL-ou-la-securite-sur-internet/<p><em>Disclaimer: Ce billet est écrit après le visionnage de la conférence de Moxie -Marlinspike suivante: <a href="https://www.youtube.com/watch?v=ibF36Yyeehw">More Tricks for Defeating SSL</a>, -présentée a la DefCon 17 (en 2011), et la lecture du billet suivant: -<a href="http://www.thoughtcrime.org/blog/lavabit-critique/">A Critique of Lavabit</a>, -ce qui peut avoir l'effet de rendre légèrement parano. Si vous considérez que -c'est le cas ici, veuillez ne pas tenir compte de ce billet (et vous pouvez dès -a présent dire coucou aux différentes personnes qui écoutent votre connection)</em></p> -<p>Si vous venez ici souvent (vous devriez), et que vous utilisez SSL pour vous -connecter a ce site (vous devriez, vraiment, dans ce cas), vous avez peut être -remarqué quelque chose récemment : il se trouve que le certificat qui permet de -desservir ce site a changé.</p> -<p>Cela fait suite aux évènements évoqués dans le <em>Disclaimer</em>, mais aussi a des -doigts sortis d'un endroit particulier du corps de l'admin/auteur de ce "blog", -qui a pris <strong>enfin</strong> les 5 minutes nécessaires a la compréhension superficielle -du fonctionnement de SSL, et les 10 nécessaires a la mise en place d'un système -fonctionnel utilisant cette compréhension récemment acquise.</p> -<p>Bref, le certificat a changé. Mais de quelle façon, vous demandez vous peut -être (ou pas, mais bon, je vais expliquer de toute façon). Et bien c'est très -simple : il existait auparavant un certificat pour <code>wxcafe.net</code>, un pour -<code>paste.wxcafe.net</code>, un pour <code>mail.wxcafe.net</code>, etc... Bref, un certificat -différent pour chaque sous-domaine.</p> -<p>Il s'avère que c'est a la fois très peu pratique a utiliser (les utilisateurs -doivent ajouter chaque certificat a leur navigateur séparément, chaque -changement de sous-domaine conduit a un message d'erreur, etc) et pas plus -sécurisé que d'avoir un seul certificat wildcard. J'ai donc généré un certificat -pour <code>*.wxcafe.net</code> hier, et il sera dorénavant utilisé pour tous les -sous-domaine de <code>wxcafe.net</code>; et un certificat pour <code>wxcafe.net</code>, qui ne matche -pas <code>*.wxcafe.net</code>, et qui sera donc utilisé... bah pour <code>wxcafe.net</code>.</p> -<p>Il serait préférable de faire des redirections automatiques des adresses http -vers les adresses https, cependant, étant donné que le certificat est -self-signed, il me semble préférable que l'arrivée sur le site ne commence pas -par une page firefox disant "Something's Wrong!", et ces redirections ne seront -donc pas mises en place.</p> -<p>De plus, après la lecture de l'article de blog sur Lavabit dont le lien est plus -haut, il semble intéressant (et assez important) de faire en sorte que le -serveur utilise en priorité (et si possible, uniquement) des ciphers supportant -PFS, soit EDH et EECDH (Ephemeral Diffie-Helmann et la version Elliptic Curves -de ce même algorithme). Cela permet de faire en sorte que toutes les -communications avec ce serveur soient future-proof, c'est a dire que, même si -quelqu'un récupérait la clé privée, elle ne serait pas utile pour déchiffrer les -communications passées.</p> -<p>Bon, maintenant que les explications basiques sont faites, voyons -l'implémentation : <br /> -Pour générer la clé, tout d'abord, il convient d'utiliser les commandes -suivantes: </p> -<div class="highlight"><pre><span class="n">sudo</span> <span class="n">openssl</span> <span class="n">genrsa</span> <span class="o">-</span><span class="n">out</span> <span class="n">example</span><span class="p">.</span><span class="n">key</span> <span class="mi">4096</span> -<span class="cp"># nous utilisons ici une clé de 4096 bits, la taille est laissée a votre appréciation</span> -<span class="n">sudo</span> <span class="n">openssl</span> <span class="n">req</span> <span class="o">-</span><span class="n">new</span> <span class="o">-</span><span class="n">key</span> <span class="n">example</span><span class="p">.</span><span class="n">key</span> <span class="o">-</span><span class="n">out</span> <span class="n">example</span><span class="p">.</span><span class="n">csr</span> -<span class="cp"># OpenSSL va ici vous demander de nombreuses informations, &quot;Common Name&quot; devant contenir le FQDN</span> -<span class="n">sudo</span> <span class="n">openssl</span> <span class="n">X509</span> <span class="o">-</span><span class="n">req</span> <span class="o">-</span><span class="n">days</span> <span class="mi">1095</span> <span class="o">-</span><span class="n">in</span> <span class="n">example</span><span class="p">.</span><span class="n">csr</span> <span class="o">-</span><span class="n">signkey</span> <span class="n">example</span><span class="p">.</span><span class="n">key</span> <span class="o">-</span><span class="n">out</span> <span class="n">example</span><span class="p">.</span><span class="n">crt</span> -<span class="cp"># enfin, nous générons la clé, d&#39;une durée de vie de 3 ans</span> -</pre></div> - - -<p>Bien entendu, si vous voulez utiliser une clé wildcard, il vous faut préciser -<code>*.example.com</code> comme common name. -Une fois la clé générée, il faut dire aux différents services de l'utiliser, et -de n'utiliser que des ciphers PFS. La méthode dépend donc du service. -Je vais lister ici les methodes pour quelques services que j'utilise :</p> -<h3>apache :</h3> -<div class="highlight"><pre><span class="cp"># /etc/apache2/mods_enabled/ssl.conf</span> -<span class="cp"># [...]</span> -<span class="n">SSLProtocol</span> <span class="n">all</span> <span class="o">-</span><span class="n">SSLv2</span> <span class="o">-</span><span class="n">SSLv3</span> -<span class="n">SSLHonorCipherOrder</span> <span class="n">on</span> -<span class="n">SSLCipherSuite</span> <span class="s">&quot;EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 \</span> -<span class="s"> EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 \</span> -<span class="s"> EECDH EDH+aRSA RC4 !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS&quot;</span> -<span class="cp"># [...]</span> -<span class="cp"># /etc/apache2/sites-enabled/default-ssl</span> -<span class="cp"># [...]</span> -<span class="n">SSLEngine</span> <span class="n">on</span> -<span class="n">SSLCertificateFile</span> <span class="o">/</span><span class="n">etc</span><span class="o">/</span><span class="n">certs</span><span class="o">/</span><span class="n">example</span><span class="p">.</span><span class="n">com</span><span class="p">.</span><span class="n">crt</span> -<span class="n">SSLCertificateKeyFile</span> <span class="o">/</span><span class="n">etc</span><span class="o">/</span><span class="n">certs</span><span class="o">/</span><span class="n">example</span><span class="p">.</span><span class="n">com</span><span class="p">.</span><span class="n">key</span> -<span class="cp"># [...]</span> -</pre></div> - - -<h3>nginx :</h3> -<div class="highlight"><pre><span class="cp"># /etc/nginx/nginx.conf </span> -<span class="cp"># [...]</span> -<span class="n">ssl_protocols</span> <span class="n">TLSv1</span> <span class="n">TLSv1</span><span class="mf">.1</span> <span class="n">TLSv1</span><span class="mf">.2</span><span class="p">;</span> -<span class="n">ssl_prefer_server_ciphers</span> <span class="n">on</span><span class="p">;</span> -<span class="n">ssl_ciphers</span> <span class="s">&quot;EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 \</span> -<span class="s"> EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 \</span> -<span class="s"> EECDH EDH+aRSA RC4 !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS&quot;</span><span class="p">;</span> -<span class="cp"># [...]</span> -<span class="cp"># /etc/nginx/sites-enabled/default-ssl</span> -<span class="cp"># [...]</span> -<span class="n">ssl</span> <span class="n">on</span><span class="p">;</span> -<span class="n">ssl_certificate</span> <span class="o">/</span><span class="n">etc</span><span class="o">/</span><span class="n">certs</span><span class="o">/</span><span class="n">example</span><span class="p">.</span><span class="n">com</span><span class="p">.</span><span class="n">crt</span> -<span class="n">ssl_certificate_key</span> <span class="o">/</span><span class="n">etc</span><span class="o">/</span><span class="n">certs</span><span class="o">/</span><span class="n">example</span><span class="p">.</span><span class="n">com</span><span class="p">.</span><span class="n">key</span> -<span class="cp"># [...]</span> -</pre></div> - - -<h3>prosody (jabber) :</h3> -<div class="highlight"><pre><span class="cp"># tout d&#39;abord, lancez la commande suivante :</span> -<span class="n">sudo</span> <span class="n">openssl</span> <span class="n">dhparam</span> <span class="o">-</span><span class="n">out</span> <span class="o">/</span><span class="n">etc</span><span class="o">/</span><span class="n">prosody</span><span class="o">/</span><span class="n">certs</span><span class="o">/</span><span class="n">dh</span><span class="o">-</span><span class="mf">2048.</span><span class="n">pem</span> <span class="mi">2048</span> -<span class="cp"># ensuite, pour chaque VirtualHost dans /etc/prosody/prosody.conf :</span> -<span class="n">ssl</span> <span class="o">=</span> <span class="p">{</span> - <span class="n">dhparam</span> <span class="o">=</span> <span class="s">&quot;/etc/prosody/certs/dh-2048.pem&quot;</span><span class="p">;</span> - <span class="n">key</span> <span class="o">=</span> <span class="s">&quot;/etc/certs/example.com.key&quot;</span><span class="p">;</span> - <span class="n">certificate</span> <span class="o">=</span> <span class="s">&quot;/etc/certs/example.com.crt&quot;</span><span class="p">;</span> -<span class="p">}</span> -<span class="cp"># la cipher suite de prosody utilise par défaut EDH et EECDH</span> -</pre></div> - - -<h3>postfix (email) :</h3> -<div class="highlight"><pre><span class="cp"># /etc/postfix/main.cf</span> -<span class="cp"># [...]</span> -<span class="n">smtpd_tls_cert_file</span> <span class="o">=</span> <span class="o">/</span><span class="n">etc</span><span class="o">/</span><span class="n">certs</span><span class="o">/</span><span class="n">example</span><span class="p">.</span><span class="n">com</span><span class="p">.</span><span class="n">crt</span> -<span class="n">smtpd_tls_key_file</span> <span class="o">=</span> <span class="o">/</span><span class="n">etc</span><span class="o">/</span><span class="n">certs</span><span class="o">/</span><span class="n">example</span><span class="p">.</span><span class="n">com</span><span class="p">.</span><span class="n">key</span> -<span class="n">tls_preempt_cipherlist</span> <span class="o">=</span> <span class="n">yes</span> -<span class="n">smtpd_tls_eecdh_grade</span> <span class="o">=</span> <span class="n">strong</span> -<span class="n">smtdp_tls_mandatory_ciphers</span> <span class="o">=</span> <span class="n">high</span> -<span class="n">smtpd_tls_mandatory_exclude_ciphers</span> <span class="o">=</span> <span class="n">aNULL</span><span class="p">,</span> <span class="n">eNULL</span><span class="p">,</span> <span class="n">MD5</span><span class="p">,</span> <span class="n">LOW</span><span class="p">,</span> <span class="mi">3</span><span class="n">DES</span><span class="p">,</span> <span class="n">EXP</span><span class="p">,</span> <span class="n">PSK</span><span class="p">,</span> <span class="n">SRP</span><span class="p">,</span> <span class="n">DSS</span> -<span class="n">smtpd_tls_security_level</span> <span class="o">=</span> <span class="n">encrypt</span> -<span class="n">smtpd_tls_mandatory_protocols</span> <span class="o">=</span> <span class="o">!</span><span class="n">SSLv2</span><span class="p">,</span> <span class="o">!</span><span class="n">SSLv3</span> -<span class="n">smtpd_use_tls</span> <span class="o">=</span> <span class="n">yes</span> -<span class="cp"># [...]</span> -</pre></div> - - -<h3>dovecot (imap) :</h3> -<div class="highlight"><pre><span class="cp"># /etc/dovecot/dovecot.conf </span> -<span class="cp"># [...]</span> -<span class="n">ssl_cert</span> <span class="o">=</span> <span class="o">&lt;/</span><span class="n">etc</span><span class="o">/</span><span class="n">certs</span><span class="o">/</span><span class="n">example</span><span class="p">.</span><span class="n">com</span><span class="p">.</span><span class="n">crt</span> -<span class="n">ssl_key</span> <span class="o">=</span> <span class="o">&lt;/</span><span class="n">etc</span><span class="o">/</span><span class="n">certs</span><span class="o">/</span><span class="n">example</span><span class="p">.</span><span class="n">com</span><span class="p">.</span><span class="n">key</span> -<span class="n">ssl_cipher_list</span> <span class="o">=</span> <span class="n">HIGH</span><span class="o">+</span><span class="n">kEDH</span><span class="o">:</span><span class="n">HIGH</span><span class="o">+</span><span class="n">kEECDH</span><span class="o">:</span><span class="n">HIGH</span><span class="o">:!</span><span class="n">PSK</span><span class="o">:!</span><span class="n">SRP</span><span class="o">:!</span><span class="mi">3</span><span class="n">DES</span><span class="o">:!</span><span class="n">aNULL</span> -</pre></div> - - -<p>Voila. Pour d'autres protocoles/services, je vous invite a RTFM^W vous reporter -au manuel approprié.</p> -<p>Cela étant dit, je conseille a tout le monde d'aller voir la conférence dans le -disclaimer, et tant qu'a faire la conférence du même hacker <a href="https://www.youtube.com/watch?v=8N4sb-SEpcg">SSL and the future -of Authenticity</a> qui parle de son -implémentation d'une technologie "remplaçant" le système de CAs qui existe -actuellement.</p>WxcafeFri, 30 May 2014 08:25:00 +0200tag:,2014-05-30:home/wxcafe/code/blog-source/output/posts/SSL-ou-la-securite-sur-internet/Redesign du blog, etcfile:///home/wxcafe/code/blog-source/output/posts/redesign-du-blog/<p>Comme vous avez pu le remarquer, ce blog a "un peu" changé récemment.</p> -<p>Du coup, expliquons. J'ai récemment monté <a href="http://serverporn.fr">serverporn</a>, et ai par la même -occasion découvert <a href="http://getpelican.com">pelican</a>. J'ai tout de suite accroché a ce générateur de -site statique en python, du fait de son efficacité, de sa facilité d'utilisation -et de sa grande customisation. En gros, pelican est un logiciel qui prend des -fichiers markdown ou reStructuredText, les passe a la moulinette d'un "thème" -constitué de templates pour les fichiers html et l'organisation du projet et -d'une partie "statique" contenant le css, et les autres fichiers nécessaires au -projet, et en fait des pages html. </p> -<p>Globalement, un thème est constitué ainsi :</p> -<div class="highlight"><pre><span class="n">th</span><span class="err">è</span><span class="n">me</span> -<span class="err">├──</span> <span class="k">static</span> -<span class="err">│</span> <span class="err">├─</span> <span class="n">css</span> -<span class="err">│</span> <span class="err">│</span> <span class="err">└─</span> <span class="p">[</span><span class="n">css</span> <span class="n">files</span><span class="p">]</span> -<span class="err">│</span> <span class="err">├─</span> <span class="n">img</span> -<span class="err">│</span> <span class="err">│</span> <span class="err">└─</span> <span class="p">[</span><span class="n">image</span> <span class="n">files</span><span class="p">]</span> -<span class="err">│</span> <span class="err">└─</span> <span class="n">js</span> -<span class="err">│</span> <span class="err">└─</span> <span class="p">[</span><span class="n">javascript</span> <span class="n">files</span><span class="p">]</span> -<span class="err">└──</span> <span class="n">template</span> - <span class="err">├─</span> <span class="n">base</span><span class="p">.</span><span class="n">html</span> - <span class="err">├─</span> <span class="n">index</span><span class="p">.</span><span class="n">html</span> - <span class="err">├─</span> <span class="n">page</span><span class="p">.</span><span class="n">html</span> - <span class="err">├─</span> <span class="p">[...]</span> - <span class="err">└─</span> <span class="n">article</span><span class="p">.</span><span class="n">html</span> -</pre></div> - - -<p>Sachant que les fichiers .html sont en réalité des fichiers suivant la syntaxe -django, et utilisent des variables particulières telles <code>{{ article.content }}</code>, -par exemple. La syntaxe complète est très bien documentée dans la <a href="http://docs.getpelican.com/en/3.2/themes.html#templates-and-variables">doc</a> de -pelican.</p> -<p>L'un des grands avantages de pelican est aussi la facilité qu'il offre quand a -la mise a jour du blog.<br /> -En effet, il offre un système de Makefiles permettant, grâce a de nombreuses -cibles de compilation, de régénérer le site entier, de ne générer que les -fichiers modifiés depuis la dernière génération, de générer uniquement les -fichiers n'existant pas la dernière fois, etc... -La gestion du projet en devient donc très simple, puisque après avoir écrit un -article, il suffit de faire un <code>make html</code> pour mettre a jour le blog.</p> -<p>De plus, le système de wordpress commençait a ne plus me convenir, du fait du -manque de customisation, du fait que ça soit du PHP (beurk), etc. La, avec -pelican, je contrôle bien plus ce qui est mis sur le serveur (puisque c'est moi -qui ait modifié les templates et le css), c'est lisible (puisque c'est du -python, par opposition au PHP...), et c'est plus "efficace". Le markdown est -très pratique, je peux utiliser mon éditeur de texte de prédilection pour faire -les articles, je n'ai pas besoin d'un accès continu au net, bref, c'est plus -efficace.</p> -<p>En ce qui concerne les points négatifs : </p> -<ul> -<li> -<p>Perte des commentaires: - Je vous propose de vous référer a l'article de Gordontesos <a href="http://gordon.re/hacktivisme/la-necessite-des-commentaires.html">ici</a> quand a - mon avis sur ce sujet.</p> -</li> -<li> -<p>Perte du bouton flattr: - Il va bientôt être remis, c'est juste un manque de temps de ma part, mais vu - que toutes les pages passent par les mêmes templates, c'est assez facile a - faire.</p> -</li> -<li> -<p>Perte du spam: - Pourquoi c'est dans les points négatifs, ca?</p> -</li> -<li> -<p>Temps d'adaptation et d'appréhension du système: - Oui, pendant encore un certain temps, il y aura des glitchs plus ou moins - réguliers sur le blog, c'est parce que j'apprend a me servir de ce système - et que j'apprend du css et du html. Ca arrive, ca passera, mais dans tous - les cas ca me permet d'apprendre plein de choses, donc je mets plutôt ca - dans la catëgorie positive.</p> -</li> -</ul> -<p>Voila, c'est mon retour d'expérience sur pelican. A plus. </p>wxcafeWed, 12 Jun 2013 19:14:00 +0200tag:,2013-06-12:home/wxcafe/code/blog-source/output/posts/redesign-du-blog/Updatefile:///home/wxcafe/code/blog-source/output/posts/update/<p>Juste une petite note pour annoncer le prochain article, consacré a la -fabrication d'une PirateBox basée sur un Raspberry Pi. Voila, a bientôt -sur le blog!</p>WxcafeSat, 05 Jan 2013 18:32:00 +0100tag:,2013-01-05:home/wxcafe/code/blog-source/output/posts/update/Update a propos du blogfile:///home/wxcafe/code/blog-source/output/posts/update-a-propos-du-blog/<p>Bonsoir! Un petit post pour faire un peu le point sur ce blog.<br /> -Comme vous avez pu le remarquer, j'ai un peu de mal a tenir les délais -que je m'étais fixés pour ce blog (un post tous les 8 jours), et après y -avoir un tantinet réfléchi, ceci est du a deux points principaux :</p> -<ul> -<li> -<p>Tout d'abord, le manque d'inspiration, tout simplement. C'est assez -compliqué de trouver des sujets intéressants liés a l'informatique, et -qui méritent un article. Je vous invite d'ailleurs a me suggérer des -sujets via les commentaires ou twitter (<a href="https://twitter.com/wxcafe">@Wxcafe</a>)</p> -</li> -<li> -<p>Ensuite, le délai de 8 jours est trop court pour me permettre de faire -les recherches nécessaires, tout en manageant mes cours et mon temps -libre.</p> -</li> -</ul> -<p>A cause de cela, j'ai pris la décision de changer le rythme de parution -des articles a un *minimum* d'un post tous les 10 jours. Bien entendu, -si j'ai de l'inspiration en trop, plus de posts sont envisageables.</p> -<p>Voila. A part ca, je tiens a vous remercier de me lire (c'est assez -étonnant de voir ca...), et je précise que je vais ajouter une page -About Me, qui bien entendu rassemblera des informations sur moi, ma vie, -mon oeuvre :P</p> -<p>Ceci dit, je vais bosser un peu sur le prochain article.</p> -<p>A plus tard!</p>WxcafeTue, 18 Sep 2012 16:57:00 +0200tag:,2012-09-18:home/wxcafe/code/blog-source/output/posts/update-a-propos-du-blog/Débuts, présentation, etc...file:///home/wxcafe/code/blog-source/output/posts/debuts-presentation-etc/<p>Bonjour!</p> -<p>Je m'appelle Wxcafé, et ça fait pas mal de temps que je sévis sur -Twitter, mais aussi sur IRC (Je traîne pas mal sur -irc.freenode.net/##nolife et #debian-fr)</p> -<p>J'ai 17 ans, je suis donc étudiant (bac général), je vis a Paris, et je -fais partie de ce genre de personne qui sont capables d'investir tout -leur temps et leur énergie a s’intéresser a un sujet en particulier, et -qui ne peuvent pas vivre sans leurs passions, avec une petite différence -cependant, qui est que je m’intéresse a plusieurs choses : -l'informatique, qui est un champ tellement large qu'on peut passer une -vie a apprendre des choses dessus, et plus particulièrement à -l'informatique avancée (Noyaux dérivés d'UNIX et de Linux, outils libres -{bien que n'étant pas un barbu intégriste [ceci est un troll assumé. Les -trolls seront a partir de maintenant indiqués avec le tag [tr]] du -libre, je préfère utiliser de l'open-source si c'est possible}, -programmation en C, python et java, etc...) , mais aussi a -l’électronique. </p> -<p>Dans un tout autre registre, je m’intéresse aussi -beaucoup aux différents aspects du féminisme et des égalités sexuelles -(anti-homophobie/transphobie/biphobie/etc , anti-sexisme, et cætera) , -et a la culture dite "geek" en général.</p> -<p>Je tenterai de poster ici le plus souvent possible, mais j'ai de gros -problèmes en terme de régularité de post, donc ne vous inquiétez pas si -vous ne voyez rien pendant deux semaines.</p> -<p>Merci beaucoup de votre attention, et a bientôt!</p>WxcafeSat, 18 Aug 2012 20:27:00 +0200tag:,2012-08-18:home/wxcafe/code/blog-source/output/posts/debuts-presentation-etc/ \ No newline at end of file diff --git a/output/feeds/feed.rss.programmation.xml b/output/feeds/feed.rss.programmation.xml deleted file mode 100644 index 11e7258..0000000 --- a/output/feeds/feed.rss.programmation.xml +++ /dev/null @@ -1,198 +0,0 @@ - -Wxcaféfile:///home/wxcafe/code/blog-source/output/Sat, 08 Sep 2012 18:15:00 +0200Introduction a bash en tant que language de programmation.file:///home/wxcafe/code/blog-source/output/posts/introduction-a-bash-en-tant-que-language-de-programmation/<p>L’interpréteur de commandes bash (Bourne Again SHell) -est possiblement le shell le plus connu, notamment grâce a son -intégration en tant que shell par défaut dans les distributions Linux -les plus répandues (Debian - Ubuntu, Fedora, OpenSUSE, Mandriva - -Mageia, etc...).</p> -<p>Cependant, il n'est souvent connu qu'en tant qu’interpréteur de -commande. Alors qu'en réalité, le bash est un langage de programmation -(presque) complet! Ainsi, il intègre les structures de contrôle -habituelles ( pour mémoire, les structures de contrôle comprennent les -conditions (les ifs), les boucles (les while), et les choix (les case), -entre autres.), et est donc ce que l'on pourrait appeler un langage de -script, interprété, de la même façon que python, a la difference près -qu'il contient un prompt (un système d'entrée de commande interactif) -bien plus complet et développé que python. </p> -<p>Cependant, les programmes en bash ne sont executables que dans un -environnement de type UNIX, et donc pas sous Windows (cygwin -(cygwin.com) propose ceci dit un système permettant d'utiliser bash sous -windows. Il faut malgré tout convenir que cet environnement est bien -plus compliqué a manipuler, et globalement ne permet pas d'acceder a des -portages de qualité satisfaisante.)</p> -<p>Ainsi, il est possible de créer des fichiers .sh, contenant des -instructions bash mises a la suite (de la même façon qu'un script BATCH -Windows .bat), et faisant appel autant aux commandes internes de bash, -aussi bien que les commandes externes mises en place par les programmes -installés sur le système, exactement comme dans une invite de commande. -Ainsi, pour appeller firefox, la commande 'firefox' lancera le petit -panda roux directement dans la boite magique, tandis qu'un if -[condition] suivi d'un then (quelque chose) lancera le fameux quelque -chose suscité si la condition est vérifiée. Un peu comme en C, quoi. </p> -<p>De cette façon, et avec quelques informations et connaissances, il est -facile de comprendre le fonctionnement de la programmation en bash. -Quelques exemples commentés:</p> -<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre> 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 -10 -11 -12 -13</pre></div></td><td class="code"><div class="highlight"><pre><span class="c">#!/bin/bash </span> -<span class="c"># La ligne du dessus est très importante, c&#39;est elle qui dit a bash quel doit être </span> -<span class="c"># l&#39;interpreteur des commandes écrites dans ce script. Ici, on dit a bash d&#39;interpréter </span> -<span class="c"># lui même les commandes comprises dans ce script. On aurait tout de fois pu lui faire </span> -<span class="c"># executer du python, par exemple, en mettant #!/usr/bin/python a la place.</span> -<span class="nb">echo</span> <span class="s2">&quot;this is a test of bash as a simple script manager&quot;</span> <span class="c"># echo est une commande d&#39;affichage de message.</span> -<span class="nb">echo</span> <span class="s2">&quot;what&#39;s your name, user?&quot;</span> -<span class="nb">read </span>your_name <span class="c"># la commande read permet de demander a l&#39;utilisateur de donner une </span> -<span class="c"># information, stockée dans la variable en paramètre. </span> -<span class="nb">echo</span> <span class="nv">$your_name</span> <span class="s2">&quot;is your name&quot;</span> <span class="c"># echo permet aussi d&#39;afficher la valeur de variables. </span> -<span class="c"># Ici, on renvoie la variable remplie précédemment, suivie d&#39;un message. </span> -<span class="nb">exit</span> <span class="c"># cet appel a exit n&#39;est pas obligatoire, mais donne un aspect plus </span> -<span class="c"># propre au code. Il ne quittera pas la session de terminal, cependant.</span> -</pre></div> -</td></tr></table> - -<p>Voila. Ce script bash ne sert pas a grand chose, mais il a le mérite -d'être clair quand aux capacités et a la simplicité du bash en tant que -language de programmation. Alors en effet, nous n'avons ici absolument -pas utilisé les capacités de bash en lui même, et n'avons fait que le -renvoyer a des programmes externes (sauf read, il est vrai). Voyons -maintenant la syntaxe de bash quand il s'agit d'utiliser les structures -de contrôle:</p> -<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre> 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 -10</pre></div></td><td class="code"><div class="highlight"><pre><span class="c">#!/bin/bash </span> -<span class="nb">echo</span> <span class="s2">&quot;welcome to this second bash program. would you please kindly enter the name of the machine you&#39;re running this on?&quot;</span> -<span class="nb">read </span>host_name -<span class="k">if</span> <span class="o">[</span> <span class="nv">$host_name</span> <span class="o">==</span> <span class="nv">$HOSTNAME</span> <span class="o">]</span> <span class="c">## voici la syntaxe du if. Attention a bien penser a mettre les espaces avant la première variable, et après la seconde. La variable $HOSTNAME ici utilisée est une variable présente par défaut sur le système. </span> -<span class="k">then </span><span class="nb">echo</span> <span class="s2">&quot;you told the truth!&quot;</span> -<span class="k">fi</span> <span class="c">## le fi est la commande fermant le if, tout comme le EndIf en basic. C&#39;est un peu vieillot, mais important en bash. </span> -<span class="k">if</span> <span class="o">[</span> <span class="nv">$host_name</span> !<span class="o">=</span> <span class="nv">$HOSTNAME</span> <span class="o">]</span> <span class="c">## l&#39;opérateur != est l&#39;inverse de ==, il vérifie donc si les deux variables ne sont pas les mêmes. </span> -<span class="k">then </span><span class="nb">echo</span> <span class="s2">&quot;you lied!&quot;</span> -<span class="k">fi </span> -<span class="nb">exit</span> -</pre></div> -</td></tr></table> - -<p>Voila un petit programme permettant d'apprendre la syntaxe du if en -bash. comme vous pouvez le voir, le language est plutôt lite, et la -structure if n'est pas très difficile a prendre en main.</p> -<p>Passons maintenant au while:</p> -<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1 -2 -3 -4 -5 -6 -7</pre></div></td><td class="code"><div class="highlight"><pre><span class="c">#!/bin/bash</span> -<span class="nb">echo</span> <span class="s2">&quot;what is your name?&quot;</span> -<span class="nb">read </span>name -<span class="k">while</span> <span class="o">[</span> 1 &lt; 10 <span class="o">]</span> <span class="c">## le while se présente sous la forme while (truc); do (machin); done. Les [] sont en fait des programmes differents, inclus dans bash.</span> -<span class="k">do </span><span class="nb">echo</span> <span class="s2">&quot;i love&quot;</span> <span class="nv">$name</span> -<span class="k">done</span> -<span class="nb">exit</span> -</pre></div> -</td></tr></table> - -<p>Ce petit programme permet d'observer les bases de while (qui est la -boucle de base en bash).</p> -<p>Le troisième opérateur de bash est case. Voyons:</p> -<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre> 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24</pre></div></td><td class="code"><div class="highlight"><pre><span class="c">#!/bin/bash</span> -<span class="nb">echo</span> <span class="s2">&quot;please enter a number between one and five&quot;</span> -<span class="nb">read </span>number -<span class="k">case</span> <span class="nv">$number</span> in -1<span class="o">)</span> -<span class="nb">echo</span> <span class="s2">&quot;the choosen number was one&quot;</span> -;; -2<span class="o">)</span> -<span class="nb">echo</span> <span class="s2">&quot;the choosen number was two&quot;</span> -;; -3<span class="o">)</span> -<span class="nb">echo</span> <span class="s2">&quot;the choosen number was three&quot;</span> -;; -4<span class="o">)</span> -<span class="nb">echo</span> <span class="s2">&quot;the choosen number was four&quot;</span> -;; -5<span class="o">)</span> -<span class="nb">echo</span> <span class="s2">&quot;the choosen number was five&quot;</span> -;; -*<span class="o">)</span> -<span class="nb">echo</span> <span class="s2">&quot;this number is not correct&quot;</span> -;; -<span class="k">esac</span> -<span class="nb">exit</span> -</pre></div> -</td></tr></table> - -<p>case est un opérateur plus complexe a utiliser a bon escient, et sert a -faire des ifs multiples sans avoir a taper des dizaines de lignes de -code.<br /> -(pour ceux qui auraient du mal avec cet opérateur, il faut comprendre -que le code vérifie chacune des conditions : le 1) est validé si la -valeur de \$number est 1, le 2) est validé si cette valeur est 2, etc.. -le *) désigne toutes les valeurs, et est donc validé si aucune autre -valeur n'a précédemment acceptée.</p> -<p>Quelques notions manquent ici:<br /> -- les nombres aléatoires sont générés par un appel a la variable -\$RANDOM, qui renvoie un nombre aléatoire entre 0 et 32767 (un entier a -16 bits donc). il est possible de faire des invocations a des nombres -aléatoires plus grands, mais les méthodes permettant de faire cela sont -plus complexes, et je ne les aborderai donc pas ici.<br /> -- comme vous avez pu le constater, les variables sont désignées en tant -que telles par l'utilisation d'un symbole \$ au début de leur nom. -Ainsi, echo number renverra "number", tandis que echo \$number renverra -le résultat de la variable \$number.<br /> -être utilisées dans un programme bash.<br /> -- comme vous avez pu le constater, les commandes doivent tenir en -théorie en une ligne. Cependant, le caractère \ permet de retourner a -la ligne en faisant considérer a bash qu'il s'agit de la même ligne.</p> -<p>Globalement, il faut admettre que bash n'a pas vocation a être un -langage de programmation extrêmement développé. Sans framework -graphique, avec peu de manières d'utiliser de grandes variables, ou -encore une gestion de la mémoire risible, bash n'a rien d'un langage de -développement professionnel.<br /> -Cependant, le simple fait qu'il soit considéré comme un langage de -programmation a part entière font de lui un langage de script d'une -puissance incontestable, et sa simplicité et sa grande popularité font -de lui un langage de choix pour apprendre la programmation simplement et -sans trop se prendre la tête.</p> -<p>J'espère que cet article aura été utile a certain-e-s, et je vous -souhaite bonne chance dans votre découverte de la programmation (n'allez -pas voir ceux qui font de l'orienté objet, c'est des méchants :3)</p>WxcafeSat, 08 Sep 2012 18:15:00 +0200tag:,2012-09-08:home/wxcafe/code/blog-source/output/posts/introduction-a-bash-en-tant-que-language-de-programmation/ \ No newline at end of file diff --git a/output/feeds/feed.rss.teaching.xml b/output/feeds/feed.rss.teaching.xml deleted file mode 100644 index 3b4ad13..0000000 --- a/output/feeds/feed.rss.teaching.xml +++ /dev/null @@ -1,344 +0,0 @@ - -Wxcaféfile:///home/wxcafe/code/blog-source/output/Sat, 16 May 2015 02:00:00 +0200SSL - STARTTLSfile:///home/wxcafe/code/blog-source/output/posts/ssl-starttls/<p>Le chiffrement SSL pour les services en ligne est un problème relativement -récent, par rapport a l&rsquo;histoire d&rsquo;Internet. Sa mise en place pose -problème : les protocoles existants ne s&rsquo;accommodent qu&rsquo;assez mal de recevoir -soudainement un flot de données chiffrées, mais développer de nouveaux -protocoles est complexe et n&rsquo;apporte rien d&rsquo;intéressant. Pour palier a ce -problème, deux solutions sont apparues.</p> -<p>Le première consiste à faire écouter les services sur un -autre port, dans un tunnel SSL. De cette façon, le service existant écoute -normalement, mais il ne répond pas directement aux requêtes. A la place, un -tunnel SSL est mis en place, et les requêtes et les réponses passent dans le -tunnel (ou elles apparaissent donc chiffrées pour l&rsquo;extérieur). Cela permet de -proposer un service chiffré en modifiant de façon minimale le programme, au prix -de devoir aussi changer tous les clients, et de devoir les orienter sur un autre -port.</p> -<p>L&rsquo;autre approche qui a été utilisée est une approche d&rsquo;<em>upgrade</em>. La -communication commence en mode non chiffré, puis le client demande l&rsquo;upgrade de -la connexion vers le mode chiffré s&rsquo;il le supporte, les deux machines -machines font un <em>handshake</em> SSL et la communication continue a travers le -tunnel SSL. Le service peut continuer a écouter sur son port habituel, et seuls -les clients capables de passer en SSL le feront, ce qui permet de faire la &ldquo;mise -a jour&rdquo; en douceur.</p> -<p>Il est souvent demandé quelle est la meilleure méthode pour mettre en place un -service &ndash; laisser un port pour le SSL et un pour le trafic non chiffré, ou bien -un seul, avec <code>STARTTLS</code>, qui <em>upgrade</em> les connexions si nécessaire.<br /> -La réponse est que <code>STARTTLS</code> est plus interessant, pour plusieurs raisons. Tout -d&rsquo;abord, il permet de n&rsquo;utiliser qu&rsquo;un seul port : ça permet de simplifier la -configuration du firewall. En plus de ça, il permet aux clients &ldquo;anciens&rdquo; (ceux -qui ne supportent pas SSL, donc ceux qui devraient être changés) de toujours se -connecter, même si cela signifie que leurs informations seront transmises en -clair. Surtout, il permet d&rsquo;éviter aux utilisateurs d&rsquo;avoir a configurer leurs -clients. Si le client supporte le chiffrement, il l&rsquo;activera de lui même s&rsquo;il -voit qu&rsquo;il est disponible.<br /> -Bref, mettez en place du <code>STARTTLS</code>, et pas du SSL. C&rsquo;est mieux pour la sécurité -de tout le monde.</p>WxcafeSat, 16 May 2015 02:00:00 +0200tag:,2015-05-16:home/wxcafe/code/blog-source/output/posts/ssl-starttls/Les systèmes de fichiersfile:///home/wxcafe/code/blog-source/output/posts/les-systemes-de-fichiers/<p>Un système de fichiers. Vous en avez surement déjà entendu parlé si vous -avec déjà installé Linux, ou formaté une clé USB. Dans ces cas, vous -connaissez surement NTFS, EXT4, ou encore FAT32.</p> -<p>Ces différents noms désignent en effet des systèmes de fichiers. Mais -qu'est-ce qu'un système de fichiers?</p> -<p>Pour comprendre cela, il faut déjà savoir ce qu'est exactement un -fichier. Un fichier est un ensemble de blocs (les blocs sont l'unité la -plus petite traitable par le matériel, ils font généralement 1 ou 4 Kio -(<a href="http://fr.wikipedia.org/wiki/Kibioctet#Multiples_normalis.C3.A9s">kibioctet</a>), en fonction du système de fichier utilisé.), qui est -donc composé de bits, interprétés différemment en fonction du type de -fichier. Cependant, seul, le fichier n'est pas accessible, puisqu'il -n'est pas indexé, c'est a dire que l'OS ne sait pas qu'il est présent, -ou il commence ni où il s'arrête (je schématise un peu, mais c'est -l'idée). </p> -<p>Ainsi, le système de fichier donne un cadre et un standard à -l'arborescence des fichiers. Par exemple, le système de fichier ext4 -utilise des blocs de 1 Kio, et de ce fait, toutes les partitions de -disque dur formatées en ext4 peuvent prendre comme unité de base 1 Kio -et mesurer la taille des fichiers en blocs de cette façon. Les systèmes -de fichiers nécessitent l'inclusion de drivers dans le noyau pour -pouvoir être pris en compte. </p> -<p>Le noyau linux inclut par défaut les drivers pour ext2/3/4, btrfs, -reiserfs, ntfs, fat16/32 et hfsx, ce qui permet de monter a peu -près tout type de partition récente.</p> -<p>Il convient de bien faire la différence entre le système de fichier et -l'arborescence des fichiers. Si l'arborescence des fichiers est en fait -une entité virtuelle englobant la racine / et tous les fichiers et -dossiers contenus dedans, le système de fichier permet a votre système -GNU/Linux de distinguer les différents fichiers composants cette -arborescence.</p> -<p>Détaillons maintenant les types de fichiers les plus répandus:</p> -<ul> -<li> -<p>FAT16/32 : Les systèmes de fichier FAT (pour File Allocation Table, - soit la définition d'un système de fichier), remplissent leur rôle le - plus simplement possible. Ne permettant (historiquement) que des noms de - 8 caractères (plus extension de trois caractères), ni chiffrement, ni - système de distinction d'utilisateurs (DOS étant un système - mono-utilisateur), Il fut décliné par microsoft en FAT16 et en FAT32, - utlisants respectivement des blocs de 16 et 32 Kio.</p> -</li> -<li> -<p>NTFS :. Le NTFS (pour New Technology File System, rapport a Windows - NT) est un système de fichier qui est apparu avec Windows XP, et qui - était une mise a jour nécessaire du FAT32 vieillissant. NTFS ajoute a - FAT différentes capacités dont le chiffrement, les liens symboliques, la - compression et les quotas pour les volumes, permettant de limiter la - taille maximum occupée dans une partition.</p> -</li> -<li> -<p>ReFS : ReFS est le système de fichiers introduit dans Windows Server 2012. - Ne différant pas énormément de NTFS, je le mentionne principalement - parce qu'il est prévu qu'il soit le défaut pour Windows 8. - Il apporte principalement la redondance, c'est a dire que chaque - fichier possède une somme de contrôle en 64 bits stockée dans un fichier - séparé pour éviter les corruption de disque.</p> -</li> -<li> -<p>Ext2/3/4 : les systèmes ext (extended) sont les systèmes de fichiers - les plus utilisés sous linux pour le grand public. (Je traiterai ici - d'ext4, puisque c'est le plus récent.) Il dispose de toutes les - fonctions que l'on peut attendre d'un système de fichiers moderne, ni - plus ni moins. Ainsi, ext4 est un système de fichiers journalisé, - acceptant les capacités jusqu’à 1 Exioctet, et utilise l'allocation dite - "par extent", ce qui signifie que la création d'un fichier réserve - automatiquement les zones contiguës de façon a réduire la fragmentation.</p> -</li> -<li> -<p>ReiserFS : ce système de fichiers, créé par le (légèrement mégalo) - programmeur Hans Reiser, est a retenir pour avoir été le premier système - de fichiers journalisé, et accepte un nombre de fichiers de l'ordre des - 4 milliards. Le but de ce système est de créer un système polyvalent, a - la fois système de fichiers et base de donnée (de part sa grande - capacité en terme de nombre de fichiers et de l'utilisation d'un - journal.)</p> -</li> -<li> -<p>Btrfs : ce système est l'évolution logique d'ext4, et inclut lui aussi - l'allocation par extent, mais possède de plus un système de - sous-volumes, qui permet d’accéder a plusieurs arborescences de fichiers - montées en même temps (système pratique et utile pour faire des - snapshots de systèmes.). Il permet aussi de redimensionner a chaud la - taille des partitions, en les agrandissant ou en les rétrécissant, est - compatible avec <a href="http://fr.wikipedia.org/wiki/LVM">LVM</a>, a un système de checking intégré (btrfsck), et - utilise un algorithme de compression appelé LZ4, qui accélère les accès - aux fichiers compressés d'environ 30% par rapport a LZO, le système - utilisé dans ext4.</p> -</li> -<li> -<p>HFS+ : le système de fichier présent sur tous les macs a des capacités - relativement standards, et ressemble énormément a l'ext3. Il supporte - cependant les liens directs vers les dossiers, fonction rare sur les - systèmes de fichiers actuels. Il est possible qu'il évolue a nouveau - dans les années a venir</p> -</li> -<li> -<p>ZFS : Ce système de fichier, venu de Solaris mais utilisable par Linux - et *BSD, est, tel Btrfs, a la fois un système de fichier et un - remplaçant/compatible avec LVM, C'est un système de fichiers conçu - principalement pour les serveurs, et il intègre ainsi un système de - redondance des données pour éviter les corruptions, un mode RAID-Z - (apparenté au RAID5), des checks d’intégrité en continu, des snapshots, - etc...</p> -</li> -</ul> -<p>Comme on a pu le voir, les systèmes de fichiers disponibles sont -légions. Cependant, le plus adapté a Linux et a une utilisation grand -public aujourd'hui est probablement Btrfs. Malheureusement, ce dernier -n'est pas aujourd'hui proposé par défaut sur les distributions les plus -utilisées, au profit de l'ext4, qui commence a accuser son âge...</p> -<p>Les systèmes de fichiers, s'ils peuvent ne pas sembler primordiaux au -fonctionnement du système, sont en fait de première importance, et ce -choix ne devrait pas être laissé au hasard, et être mis a jour -régulièrement (pour éviter les failles de sécurité...)</p> -<p>Bon courage, et bon choix pour votre prochain système.</p>WxcafeTue, 25 Sep 2012 10:28:00 +0200tag:,2012-09-25:home/wxcafe/code/blog-source/output/posts/les-systemes-de-fichiers/Les différentes couches d'un système d'exploitationfile:///home/wxcafe/code/blog-source/output/posts/les-differentes-couches-dun-systeme-dexploitation/<p>Étant utilisateur plus ou moins fidèle de GNU/Linux depuis quelques -années (plus ou moins, parce que j'ai toujours un Windows en dual boot, -principalement pour les jeux (possiblement plus pour longtemps, avec -l'arrivée de Steam pour Linux... ) ), je commence a connaître plus ou -moins bien mon système. Or il y a plusieurs choses a savoir sur les -systèmes d'exploitation, et celle dont je vais parler aujourd'hui, c'est -le système de couches.</p> -<p>Un système d'exploitation (de type UNIX, \&lt;troll>enfin un vrai système quoi. -\&lt;/troll>) incorpore plusieurs systèmes de couches.</p> -<p>Ainsi, Linux (le noyau) a commencé en étant un kernel monolithique, -c'est a dire que tous les composants sont intégrés au kernel. Ce qui -signifie que rien ne peut être ajouté au noyau sans recompiler celui ci. -Or, quand on sait que le noyau comprend entre autres les drivers du -matériel et des systèmes de fichier, cela peut poser des problèmes quand -a la taille du kernel et a la licence libre de ce dernier. </p> -<p>Depuis un certain temps, le kernel linux est devenu un kernel modulaire, ce qui -signifie que des modules peuvent être chargé a tout moment en cours -d’exécution, ce qui permet l'utilisation de nouveaux systèmes de -fichiers a chaud, ou l'insertion de matériel et l'installation de -drivers sans interrompre l’exécution du système (Windows utilise un -système de fausse installation de drivers pour le matériel externe, et -un système de pré-installation des drivers pour les périphériques dits -"plug and play")</p> -<p>Après le noyau intervient le système. Or, au tous premiers instants du -boot, les systèmes GNU/Linux utilisent un système permettant de limiter -l'utilisation de ressources systèmes si elles ne sont pas nécessaires, -et incorpore ainsi un système dit de "runlevels"</p> -<p>Ainsi, au runlevel 0, le système s'éteint après avoir booté. Ainsi, ce -runlevel permet de tester le bon démarrage du système sans avoir a -effectuer de manipulation pour le ré-éteindre</p> -<p>Le runlevel 1 est appelé mode single user, et c'est un nom plutôt adapté -étant donné que ce runlevel donne accès a un système en étant -automatiquement loggé en tant que root, avec tous les autres -utilisateurs désactivés, de même que tous les systèmes de réseaux</p> -<p>Le runlevel 2 est appelé mode multi user, et vous mets en face d'un -système classique. en ligne de commande, mais avec tous les systèmes de -réseau désactivés.</p> -<p>Le runlevel 3 est le même que le 2, mais avec les systèmes de réseaux -activés.</p> -<p>Le runlevel 4 n'est pas officiellement défini, et est censé être -activable en fonction des besoins de l'utilisateur. Sur la plupart des -distributions grand public, ce runlevel est lié au...</p> -<p>Runlevel 5! Multi-user, networking, with working GUI! c'est le système -tel que vous le connaissez, avec l'interface graphique et le système de -login graphique.</p> -<p>Le runlevel 6, enfin, est le bien nommé "reboot", qui reboot la machine -quand il devient le runlevel courant.</p> -<p>(Il est a noter que Debian, et donc toutes les distribs qui en sont -dérivées, ne font pas de distinction entre les differents runlevels du 2 -au 5. Ainsi, Ubuntu fonctionne par défaut au runlevel 2, avec un login -et une interface graphique, et un mode réseau fonctionnel, bref avec des -fonctionnalités qui ne sont normalement disponibles que sous le runlevel 5.)</p> -<p>Il est possible de changer de runlevel grâce a la commande runlevel -(oui, c'est évident...)</p> -<p>Les systèmes Linux utilisent aussi un système dit de SandBox , qui en -informatique est un système permettant d'isoler les processus les uns -des autres. Ainsi, la pile réseau, qui est le système auquel les -différents processus envoient les différents paquets qui doivent sortir -de la machine , et qui redistribue ces paquets, est isolée du reste du -système, en cela qu'aucun des autres processus ne peuvent modifier cette -pile hors du runlevel 1 ou 2.</p> -<p>De la même façon, le navigateur chrom/ium fait fonctionner tous les -onglets, ainsi que toutes les extensions, dans des processus différents. -Certaines distributions linux implémentent un système de cette sorte -pour toutes les applications, ou seulement pour certaines. ainsi Chakra -Linux a un système d'installation d'applications dans des disques -virtuels, ce qui permet une sécurité totale du processus.</p> -<p>Voila, j'espère vous en avoir appris un peu sur le fonctionnement des -différentes couches de linux, et j'espère que cet article vous poussera -a tester un peu votre système et a vous amuser avec les différents -runlevels</p>WxcafeThu, 06 Sep 2012 23:29:00 +0200tag:,2012-09-06:home/wxcafe/code/blog-source/output/posts/les-differentes-couches-dun-systeme-dexploitation/La programmation expliquée simplementfile:///home/wxcafe/code/blog-source/output/posts/la-programmation-expliquee-simplement/<p>Salut!<br /> -Tout d'abord, je tiens a m'excuser de ne pas avoir eu le temps d'écrire -récement, mais j'ai eu la chance d'avoir un PC a monter, donc j'ai passé -pas mal de temps assez occupé. </p> -<p>Enfin, après un certain temps a farfouiller au millieu des connecteurs -SATA et a apprendre que, oui, l'alimentation sert aussi pour les disques -durs, je suis de retour pour un court article.<br /> -Du coup, je m'étais dit que j'allais reprendre sur le thème de -l'informatique expliquée au grand public, en tentant d'aller un peu plus -loin que la dernière fois sur le thème de la programmation<br /> -Ce qu'il faut comprendre, c'est la facon dont fonctionne un ordinateur. -Si a peu près tout le monde sait que "les ordinateurs, ils ne -comprennent que les 1 et les 0!", peu de gens savent comment cela -fonctionne en détail. </p> -<p>Si vous êtes sur ce blog, il y a pas mal de chance que vous ayez déjà -des notions de base en informatique. Ainsi, vous savez surement que les -ordinateurs fonctionnent avec des programmes, qui sont composés de -code.<br /> -Ainsi, il faut comprendre que le code (source) est "compilé" en un -fichier "binaire". Un fichier binaire est un fichier comprenant les -instructions telles qu’exécutées par le processeur, et donc absolument -illisible pour un humain. </p> -<p>La compilation est le processus qui transforme le code source en -binaire executable. Les binaires ont, sous Windows, l'extension .exe, -tandis que sous les systèmes UNIX-like, ils n'ont pas d'extension -particulière.<br /> -Ceci étant dit, il faut comprendre que certains langages sont plus -proches que d'autres du langage processeur, les langages les plus -proches sont dits de "bas niveau". Les langages les plus éloignés sont -donc dits de haut niveau. </p> -<p>Par exemple, l'assembleur est l'un des languages de plus bas niveau, -tandis que python par exemple est un langage de plus haut niveau. Les -langages de haut niveau sont souvent bien plus simples a comprendre et a -apprendre que les langages de bas niveau </p> -<p>Ainsi, en C, un langage de niveau relativement bas, pour afficher -"hello world" sur l'écran, le code nécessaire est :</p> -<div class="highlight"><pre><span class="cp">#include </span> -<span class="kt">void</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span> -<span class="n">printf</span><span class="p">(</span><span class="s">&quot;hello world&quot;</span><span class="p">);</span> -<span class="k">return</span> <span class="mi">0</span><span class="p">;</span> -<span class="p">}</span> -</pre></div> - - -<p>le même programme en python s'écrit :</p> -<div class="highlight"><pre><span class="n">print</span> <span class="s">&quot;hello world&quot;</span> -</pre></div> - - -<p>et n'a pas besoin d'être compilé , puisqu'il peut être intepreté -directement. </p> -<p>Python utilise en effet un système similaire a Java en ayant un -interpréteur dit "runtime" ou "temps réel", qui interprète le programme -sans le compiler. Java utilise un système légèrement différent, puisque -le code a besoin d'être compilé, mais est interpreté par un interpréteur -et non par le processeur. </p> -<p>Cette méthode permet le fameux "code once, run everywhere", ce qui -signifie que le même code est exécutable sur quasiment tous les systèmes -d'exploitation (en fait, tous ceux sur lesquels l’interpréteur est -disponible.)</p> -<p>Voila, je vous laisse sur le fonctionnement de Java et de Python, et je -vais me coucher.<br /> -A bientôt!</p>WxcafeMon, 27 Aug 2012 00:22:00 +0200tag:,2012-08-27:home/wxcafe/code/blog-source/output/posts/la-programmation-expliquee-simplement/GNU/Linux pour les non technophiles, ou l'OS libre pour votre grand-mèrefile:///home/wxcafe/code/blog-source/output/posts/gnulinux-pour-les-non-technophiles-ou-los-libre-pour-votre-grand-mere/<p>GNU/Linux est un vaste et extraordinaire territoire technologique, mais -je ne vais pas m'attarder ici sur les aspects profondément techniques de -ce territoire pour faire plutôt une sorte d'introduction a ce qu'est -vraiment GNU/Linux, pour les gens n'ayant aucune ou très peu de -connaissances en informatique.</p> -<p>GNU/Linux, que j’abrégerai ici en Linux pour plus de simplicité, est un -Système d'Exploitation. Un système d'exploitation est, pour simplifier, -un ensemble d'outils informatiques qui vous permettent d'utiliser votre -ordinateur, ainsi, Windows est un système d'exploitation. L'abréviation -de système d'exploitation (Operating System en anglais) est OS. Les 4 -principaux OS existants aujourd'hui sont Windows, Mac OS, GNU/Linux, et -Solaris. Les trois derniers sont issus d'un autre système, plus ancien, -nommé UNIX.</p> -<p>De ce fait, on pourrait penser que Linux remplace complètement Windows -une fois installé, et comprend une interface graphique, et toutes sortes -d'utilitaires permettant a l'utilisateur d'utiliser le système (sous -Windows, pensez a l'explorateur de fichiers, ou a Internet Explorer. -Pour l'interface graphique, pensez a... Pensez que votre système affiche -autre chose que des lignes de commande.) Or non, une fois installé, -Linux en lui même ne vous afficherait aucune interface graphique, et -s'il est effectivement livré avec des utilitaires, ils ne sont que des -programmes en ligne de commande. Autant les utilisateurs avancés sauront -s'en servir, et pourront argumenter que c'est plus efficace ou plus -rapide, autant les utilisateurs basiques préfèrent une interface -graphique. Alors comment en obtenir une?</p> -<p>Ici, il convient de faire une précision importante. Si il n'existe -qu'une seule version de Windows, ou de Mac OS, il existe en fait -plusieurs centaines de "versions" différentes de Linux. Appelées -distributions, ces dernière sont développées par des groupes -complètement séparés, et se basent sur le fait que Linux soit -entièrement placé sous licence libre (ce qui leur permet de l'utiliser a -leur guise, a condition que leur travail soit lui aussi placé sous -licence libre). De ce fait, de nombreuses distributions existent et se -développent en parallèle. On peut ainsi citer <a href="http://debian.org">Debian</a>, qui est l'une -des distributions les plus importantes, ou encore <a href="http://ubuntu.com">Ubuntu</a>, qui est -l'une des plus connues et des plus simples a utiliser.</p> -<p>Ainsi, ces distributions intègrent une interface graphique. Cependant, -grâce a la liberté dont bénéficient les développeurs sous Linux, il -existe de nombreuses interfaces graphiques différentes : <a href="unity.ubuntu.com">Unity</a>, la -nouvelle interface d'Ubuntu; <a href="gnome.org">GNOME</a> , une interface qui vise a la -simplicité; ou encore <a href="http://kde.org/">KDE</a>, une interface utilisateur ressemblant a -Windows 7.</p> -<p>Ainsi, le choix astronomique de distributions Linux a bien un sens : -chacune d'entre elle intègre des outils différents. Par exemple, Debian -intègre GNOME 2, qui est l'ancienne version de GNOME, ce qui la rend -particulièrement stable. Ubuntu intègre Unity, ce qui en fait une -distribution particulièrement intuitive. Linux Mint intègre Cinnamon, -qui est une version dérivée de GNOME 3, ce qui permet encore une autre -expérience. Et Arch Linux n'intègre pas d'interface graphique du tout, -ce qui permet a l'utilisateur de choisir entre les multiples interfaces -existantes.</p> -<p>Ce qu'il est important de retenir de cela, c'est que Linux est un OS -complètement libre, ce qui signifie que n'importe qui peut modifier et -utiliser tout le code de Linux gratuitement et comme il l'entend. Ainsi, -Linux est un OS qui est véritablement créé par des passionnés, pour tous -et toutes. Surtout, il convient de retenir que Linux n'est pas compliqué -a utiliser, ni a installer. Windows et Mac OS ne le sont pas non plus. -Cependant, Linux donne la possibilité a l'utilisateur de le rendre -affreusement complexe, mais aussi de le rendre adapté a ses besoins, -quels que soient ceux ci. Et c'est la que réside l'incroyable puissance -de ce Système d'Exploitation. Il est extraordinairement adaptable.</p> -<p>N'hésitez donc pas a le présenter a vos proches, même s'ils ne sont pas -technophiles. Ils pourraient adorer, et peut être même le devenir :)</p> -<p>A bientôt!</p>WxcafeWed, 22 Aug 2012 20:33:00 +0200tag:,2012-08-22:home/wxcafe/code/blog-source/output/posts/gnulinux-pour-les-non-technophiles-ou-los-libre-pour-votre-grand-mere/ \ No newline at end of file diff --git a/output/feeds/feed.rss.tutorial.xml b/output/feeds/feed.rss.tutorial.xml deleted file mode 100644 index dd04f48..0000000 --- a/output/feeds/feed.rss.tutorial.xml +++ /dev/null @@ -1,368 +0,0 @@ - -Wxcaféfile:///home/wxcafe/code/blog-source/output/Fri, 07 Nov 2014 13:04:00 +0100OpenSMTPd comme serveur mail sous debianfile:///home/wxcafe/code/blog-source/output/posts/opensmtpd-debian/<p>J'avais dit il y a un certain temps que j'allais écrire un tutoriel expliquant -comment gérer ses mails soi-même. Il se trouve que j'ai récemment décidé de -changer le serveur qui héberge (entre autres) ce blog, et que ce dernier héberge -aussi mes emails. J'ai donc totalement changé d'infrastructure quand a la -gestion de mon système de mails.</p> -<p>Ainsi, j'ai décidé de passer de Postfix a OpenSMTPd, changement que je voulais -effectuer depuis un certain temps. <a href="https://opensmtpd.org">OpenSMTPd</a> est un -projet originaire d'<a href="http://openbsd.org">OpenBSD</a> qui a pour but de fournir un -serveur SMTP fiable, simple, rapide, et surtout sécurisé (les même buts que ceux -qu'a le projet OpenBSD, globalement).</p> -<p>Pour rappel, le système d'emails fonctionne d'une façon très simple : votre MUA -(Mail User Agent, ou client email) contacte le MTA (Mail Transport Agent, ou -serveur SMTP) de votre fournisseur email, qui contacte le MTA du fournisseur du -destinataire, qui lui même contacte le MDA (Mail Delivery Agent) qui délivre le -mail au destinataire.</p> -<p>Si vous avez bien suivi, vous pouvez voir que je n'ai pas parlé de récupération -ni de lecture des mails. C'est pour une raison simple, qui est que ces taches -sont remplies par d'autres services encore (IMAP/POP pour la récupération depuis -le serveur, des yeux pour la lecture).</p> -<p>Or ce qui nous intéresse ici, ce n'est pas simplement d'envoyer et de recevoir -des emails mais bien aussi de pouvoir les récupérer et les lire, et c'est pour -ça que ce tutoriel ne parlera pas que d'OpenSMTPd mais aussi de -<a href="http://dovecot.org/">Dovecot</a> qui fait office de serveur IMAP et -<a href="http://www.ijs.si/software/amavisd/">amavis</a>/<a href="http://spamassassin.apache.org/">spamassassin</a> -pour filtrer les mails entrants et sortants. -Le schéma suivant explique la façon dont les mails sont gérés sur le système</p> -<div class="highlight"><pre> <span class="err">╭────────────────╮</span> <span class="err">╭──────────╮</span> - <span class="err">│╭──────────────</span><span class="o">&gt;</span><span class="err">│────</span><span class="o">&gt;</span> <span class="n">to</span> <span class="n">filter</span> <span class="err">───</span><span class="o">&gt;</span><span class="err">│─╮</span> <span class="err">│</span> - <span class="n">mail</span> <span class="n">in</span> <span class="err">││</span> <span class="err">│</span> <span class="err">│</span> <span class="err">│</span> <span class="n">amavis</span> <span class="err">│</span> -<span class="err">───────────</span><span class="o">&gt;</span><span class="err">│╯</span> <span class="n">OpenSMTPd</span> <span class="err">╭──│</span><span class="o">&lt;</span><span class="err">───</span> <span class="n">from</span> <span class="n">filter</span><span class="o">&lt;</span><span class="err">───│</span><span class="o">&lt;</span><span class="err">╯</span> <span class="err">│</span> - <span class="err">│</span> <span class="err">│</span> <span class="err">│</span> <span class="err">╰──────────╯</span> - <span class="n">mail</span> <span class="n">out</span> <span class="err">│</span> <span class="err">│</span> <span class="err">│</span> <span class="err">╭──────────╮</span> -<span class="o">&lt;</span><span class="err">───────────│</span><span class="o">&lt;</span><span class="err">────────────┴─</span><span class="o">&gt;</span><span class="err">│─────</span><span class="o">&gt;</span> <span class="n">to</span> <span class="n">MDA</span> <span class="err">─────</span><span class="o">&gt;</span><span class="err">│─────────</span><span class="o">&gt;</span><span class="err">│──</span><span class="o">&gt;</span> <span class="n">to</span> <span class="n">user</span><span class="err">&#39;</span><span class="n">s</span> - <span class="err">│</span> <span class="err">│</span> <span class="err">│</span> <span class="n">dovecot</span> <span class="err">│</span> <span class="n">mailbox</span> - <span class="err">╰────────────────╯</span> <span class="err">╰──────────╯</span> -</pre></div> - - -<p>Normalement, ceci devrait être a peu près clair. -Pour expliquer vite fait, les emails entrants (venant des utilisateurs mais -aussi d'autres correspondants) sont transmis a OpenSMTPd, qui envoie tout a -<code>amavis</code>, qui vérifie a la fois les spams et les malwares pour les mails -venants de l'exterieur, et qui signe avec DKIM pour les mails venants de -nos utilisateurs, puis qui rentransmet les mails filtrés/signés a OpenSMTPd, -qui a ce moment-ci trie en fonction de la destination : les mails gérés -par le domaine vont via dovecot dans les boites mail des destinataires -locaux, les mails exterieurs vont directement vers le MTA du serveur -distant.</p> -<p>Voyons comment mettre cela en place. Tout d'abord, il faut décider de la façon -dont les différents services vont communiquer.</p> -<p>Déjà, amavis étant configuré par défaut pour écouter (en SMTP) sur le port -10024 et répondre sur le port 10025 quand il s'agit de filtrer et -écouter sur le port 10026 et répondre sur le port 10027 quand il s'agit de -signer, nous allons profiter de cette configuration et donc lui parler en SMTP -sur ces ports.</p> -<p>Quand a Dovecot, nous allons lui transmettre les emails en LMTP (Local Mail -Transfer Protocol), non pas sur un port mais via un socket (dans ce cas précis, -<code>/var/run/dovecot/lmtp</code>).</p> -<p>Ainsi, pour reprendre le schéma présenté plus haut :</p> -<div class="highlight"><pre> <span class="err">╭───────────────╮</span> <span class="err">╭───────────╮</span> - <span class="err">│╭─────────────</span><span class="o">&gt;</span><span class="err">│──</span><span class="o">&gt;</span> <span class="n">SMTP</span> <span class="p">(</span><span class="mi">10026</span><span class="p">)</span> <span class="err">──</span><span class="o">&gt;</span><span class="err">│─╮</span> <span class="err">│</span> - <span class="n">SMTP</span> <span class="n">in</span> <span class="err">││</span> <span class="err">│</span> <span class="err">│</span> <span class="err">│</span> <span class="n">amavis</span> <span class="err">│</span> -<span class="err">────────</span><span class="o">&gt;</span> <span class="mi">25</span><span class="err">│╯</span> <span class="n">OpenSMTPd</span> <span class="err">╭──│</span><span class="o">&lt;</span><span class="err">──</span> <span class="n">SMTP</span> <span class="p">(</span><span class="mi">10027</span><span class="p">)</span> <span class="o">&lt;</span><span class="err">──│</span><span class="o">&lt;</span><span class="err">╯</span> <span class="p">(</span><span class="n">sign</span><span class="p">)</span> <span class="err">│</span> - <span class="err">│</span> <span class="err">│</span> <span class="err">│</span> <span class="err">╰───────────╯</span> - <span class="n">SMTP</span> <span class="n">out</span> <span class="err">│</span> <span class="err">│</span> <span class="err">│</span> -<span class="mi">25</span> <span class="o">&lt;</span><span class="err">────────│</span><span class="o">&lt;</span><span class="err">───────────╯</span> <span class="err">│</span> - <span class="err">╰───────────────╯</span> -</pre></div> - - -<p>Pour les mails sortants; et</p> -<div class="highlight"><pre> <span class="err">╭───────────────╮</span> <span class="err">╭────────────╮</span> - <span class="err">│╭─────────────</span><span class="o">&gt;</span><span class="err">│──</span><span class="o">&gt;</span> <span class="n">SMTP</span> <span class="p">(</span><span class="mi">10024</span><span class="p">)</span> <span class="err">──</span><span class="o">&gt;</span><span class="err">│─╮</span> <span class="err">│</span> - <span class="n">SMTP</span> <span class="n">in</span> <span class="err">││</span> <span class="err">│</span> <span class="err">│</span> <span class="err">│</span> <span class="n">amavis</span> <span class="err">│</span> -<span class="err">────────</span><span class="o">&gt;</span> <span class="mi">25</span><span class="err">│╯</span> <span class="n">OpenSMTPd</span> <span class="err">╭──│</span><span class="o">&lt;</span><span class="err">──</span> <span class="n">SMTP</span> <span class="p">(</span><span class="mi">10025</span><span class="p">)</span> <span class="o">&lt;</span><span class="err">──│</span><span class="o">&lt;</span><span class="err">╯</span><span class="p">(</span><span class="n">filter</span><span class="p">)</span> <span class="err">│</span> - <span class="err">│</span> <span class="err">│</span> <span class="err">│</span> <span class="err">╰────────────╯</span> - <span class="err">│</span> <span class="err">│</span> <span class="err">│</span> <span class="err">╭────────────╮</span> - <span class="err">│</span> <span class="err">╰─</span><span class="o">&gt;</span><span class="err">│──</span><span class="o">&gt;</span> <span class="n">LMTP</span> <span class="p">(</span><span class="n">socket</span><span class="p">)</span> <span class="err">─</span><span class="o">&gt;</span><span class="err">│───────────</span><span class="o">&gt;</span><span class="err">│──</span><span class="o">&gt;</span> <span class="n">to</span> <span class="n">user</span><span class="err">&#39;</span><span class="n">s</span> - <span class="err">│</span> <span class="err">│</span> <span class="err">│</span> <span class="n">dovecot</span> <span class="err">│</span> <span class="n">mailbox</span> - <span class="err">╰───────────────╯</span> <span class="err">╰────────────╯</span> -</pre></div> - - -<p>Pour les mails entrants.</p> -<p>Maintenant que la théorie est claire, mettons en place tout cela. Je me baserai -ici sur le fait que vous utilisiez une plateforme Debian ou OpenBSD. Pour -d'autres plateformes, la configuration devrait être sensiblement la même</p> -<p>(Vous aurez besoin de certificats SSL pour ce guide, même self-signés. -Si vous ne savez pas comment en créer, vous pouvez aller voir <a href="http://wxcafe.net/posts/05/30/14/SSL-ou-la-securite-sur-internet/">ce -post</a>)</p> -<p>Tout d'abord, commençons par installer les programmes nécessaires :</p> -<div class="highlight"><pre><span class="n">sudo</span> <span class="n">apt</span><span class="o">-</span><span class="n">get</span> <span class="n">install</span> <span class="n">opensmtpd</span> <span class="n">dovecot</span> <span class="n">dovecot</span><span class="o">-</span><span class="n">pigeonhole</span> <span class="n">amavisd</span><span class="o">-</span><span class="n">new</span> <span class="n">dovecot</span><span class="o">-</span><span class="n">managesieved</span> -<span class="n">sudo</span> <span class="n">pkg_add</span> <span class="n">dovecot</span> <span class="n">dovecot</span><span class="o">-</span><span class="n">pigeonhole</span> <span class="n">amavisd</span><span class="o">-</span><span class="n">new</span> -</pre></div> - - -<p>Continuons en configurant OpenSMTPd tel que nous avons vu plus haut :</p> -<p><code>/etc/smtpd.conf</code></p> -<div class="highlight"><pre><span class="err">#</span> <span class="nx">This</span> <span class="nx">is</span> <span class="nx">the</span> <span class="nx">smtpd</span> <span class="nx">server</span> <span class="nx">system</span><span class="na">-wide</span> <span class="nx">configuration</span> <span class="nx">file.</span> -<span class="err">#</span> <span class="nx">See</span> <span class="nx">smtpd.conf</span><span class="p">(</span><span class="mi">5</span><span class="p">)</span> <span class="nb">for</span> <span class="nx">more</span> <span class="nx">information.</span> - -<span class="err">##</span> <span class="nx">Certs</span> -<span class="nx">pki</span> <span class="nx">exem.pl</span> <span class="nx">certificate</span> <span class="s2">&quot;/etc/certs/exem.pl.crt&quot;</span> -<span class="nx">pki</span> <span class="nx">exem.pl</span> <span class="nb">key</span> <span class="s2">&quot;/etc/certs/exem.pl.key&quot;</span> - -<span class="err">##</span> <span class="nx">Ports</span> <span class="k">to</span> <span class="nb">listen</span> <span class="k">on</span><span class="p">,</span> <span class="ow">and</span> <span class="nx">how</span> <span class="k">to</span> <span class="nb">listen</span> <span class="k">on</span> <span class="nx">them</span> -<span class="nb">listen</span> <span class="k">on</span> <span class="nx">eth0</span> <span class="nb">port</span> <span class="mi">25</span> <span class="nx">tls</span> <span class="nx">pki</span> <span class="nx">exem.pl</span> <span class="nb">hostname</span> <span class="nx">exem.pl</span> <span class="nb">auth</span><span class="na">-optional</span> -<span class="nb">listen</span> <span class="k">on</span> <span class="nx">eth0</span> <span class="nb">port</span> <span class="mi">465</span> <span class="nx">tls</span><span class="na">-require</span> <span class="nx">pki</span> <span class="nx">exem.pl</span> <span class="nb">hostname</span> <span class="nx">exem.pl</span> <span class="nb">auth</span> <span class="nx">mask</span><span class="na">-source</span> -<span class="nb">listen</span> <span class="k">on</span> <span class="nx">eth0</span> <span class="nb">port</span> <span class="mi">587</span> <span class="nx">tls</span><span class="na">-require</span> <span class="nx">pki</span> <span class="nx">exem.pl</span> <span class="nb">hostname</span> <span class="nx">exem.pl</span> <span class="nb">auth</span> <span class="nx">mask</span><span class="na">-source</span> - -<span class="err">##</span> <span class="nx">Aliases</span> -<span class="nb">table</span> <span class="nx">aliases</span> <span class="nb">file</span><span class="p">:/</span><span class="nx">etc</span><span class="p">/</span><span class="nx">aliases</span> - -<span class="err">#</span> <span class="nx">coming</span> <span class="nb">from</span> <span class="nx">amavisd</span><span class="p">,</span> <span class="nb">checked</span> <span class="nb">for</span> <span class="nx">spam</span><span class="p">/</span><span class="nx">malware</span> -<span class="nb">listen</span> <span class="k">on</span> <span class="nx">lo</span> <span class="nb">port</span> <span class="mi">10025</span> <span class="kt">tag</span> <span class="nx">Filtered</span> -<span class="err">#</span> <span class="nx">coming</span> <span class="nb">from</span> <span class="nx">amavisd</span><span class="p">,</span> <span class="nx">signed</span> <span class="k">with</span> <span class="nx">DKIM</span> -<span class="nb">listen</span> <span class="k">on</span> <span class="nx">lo</span> <span class="nb">port</span> <span class="mi">10027</span> <span class="kt">tag</span> <span class="nx">Signed</span> - -<span class="err">##</span> <span class="nx">Receiving</span> -<span class="err">#</span> <span class="k">if</span> <span class="nx">the</span> <span class="p">(</span><span class="nx">incoming</span><span class="p">)</span> <span class="nx">mail</span> <span class="nx">has</span> <span class="nx">been</span> <span class="nx">through</span> <span class="nx">amavisd</span><span class="p">,</span> <span class="nx">then</span> <span class="nx">we</span> <span class="nx">can</span> <span class="nx">deliver</span> <span class="nx">it</span> -<span class="nb">accept</span> <span class="nx">tagged</span> <span class="nx">Filtered</span> <span class="nb">for</span> <span class="nb">any</span> <span class="nx">alias</span> <span class="o">&lt;</span><span class="nx">aliases</span><span class="o">&gt;</span> <span class="nx">deliver</span> <span class="k">to</span> <span class="nx">lmtp</span> <span class="s2">&quot;/var/run/dovecot/lmtp&quot;</span> -<span class="err">#</span> <span class="nx">we</span> <span class="nx">directly</span> <span class="nx">tranfer</span> <span class="nx">incoming</span> <span class="nx">mail</span> <span class="k">to</span> <span class="nx">amavisd</span> <span class="k">to</span> <span class="nx">be</span> <span class="nb">checked</span> -<span class="nb">accept</span> <span class="nb">from</span> <span class="nb">any</span> <span class="nb">for</span> <span class="nx">domain</span> <span class="s2">&quot;exem.pl&quot;</span> <span class="nx">relay</span> <span class="nx">via</span> <span class="s2">&quot;smtp://localhost:10024&quot;</span> -<span class="err">#</span> <span class="nx">we</span> <span class="nx">have</span> <span class="k">to</span> <span class="nx">put</span> <span class="nx">these</span> <span class="n">lines</span> <span class="k">in</span> <span class="nx">this</span> <span class="k">order</span> <span class="k">to</span> <span class="nx">avoid</span> <span class="nx">infinite</span> <span class="nx">loops</span> - -<span class="err">##</span> <span class="nx">Sending</span> -<span class="err">#</span> <span class="k">if</span> <span class="nx">the</span> <span class="p">(</span><span class="nx">outgoint</span><span class="p">)</span> <span class="nx">mail</span> <span class="nx">has</span> <span class="nx">been</span> <span class="nx">through</span> <span class="nx">amavisd</span><span class="p">,</span> <span class="nx">then</span> <span class="nx">we</span> <span class="nx">can</span> <span class="nx">deliver</span> <span class="nx">it</span> -<span class="nb">accept</span> <span class="nx">tagged</span> <span class="nx">Signed</span> <span class="nb">for</span> <span class="nb">any</span> <span class="nx">relay</span> -<span class="err">#</span> <span class="nx">we</span> <span class="nx">tranfer</span> <span class="nx">the</span> <span class="nx">outgoing</span> <span class="nx">mail</span> <span class="k">to</span> <span class="nx">amavisd</span> <span class="k">to</span> <span class="nx">be</span> <span class="nx">signed</span> -<span class="nb">accept</span> <span class="nb">for</span> <span class="nb">any</span> <span class="nx">relay</span> <span class="nx">via</span> <span class="s2">&quot;smtp://localhost:10026&quot;</span> -<span class="err">#</span> <span class="nx">same</span><span class="p">,</span> <span class="nx">we</span> <span class="nx">have</span> <span class="k">to</span> <span class="nx">put</span> <span class="nx">these</span> <span class="n">lines</span> <span class="k">in</span> <span class="nx">this</span> <span class="k">order</span> <span class="ow">or</span> <span class="nx">infinite</span> <span class="nx">loops...</span> -</pre></div> - - -<p>Expliquons un peu ce fichier de configuration :</p> -<ul> -<li>Tout d'abord, le paragraphe nommé "Certs" contient les déclaration - d'emplacement des certificats SSL.</li> -<li>Ensuite, le paragraphe contenant les ports externes sur lesquels nous écoutons : - port 25 avec TLS optionel et ports 465 et 587 avec TLS obligatoire</li> -<li>Les alias sont définis juste après</li> -<li>Le paragraphe suivant contient les ports locaux sur lesquels nous écoutons : - 10025 (port de sortie du filtre de amavis) dont on taggue les mails sortants - comme "Filtered" et 10027 (port de sortie des mails signés par amavis) dont on - taggue les mails sortants comme "Signed"</li> -<li>Nous avons ensuite le paragraphe qui traite les mails rentrants. Si le mail - traité est taggué comme Filtered, alors il a été vérifié par amavis, et on - peut donc le transmettre au destinataire. Sinon, c'est qu'il n'a pas encore - été vérifié par amavis, donc on lui transmet pour analyse (sur le port 10024 - donc). Il est important de mettre les déclarations dans ce sens, car la - première règle qui matche l'état du paquet est appliquée. Ici, la deuxième - ligne matchant tous les mails arrivant et la première seulement ceux filtrés, - inverser leur sens voudrait dire que les mails seraient toujours renvoyés a - amavis</li> -<li>Enfin, le dernier paragraphe traite les mails sortants. De la même façon que - pour le paragraphe précédent, si le mail sortant est déjà taggué comme Signed - on le transmet au MTA du destinataire, sinon il n'a pas encore été signé par - DKIM par amavis et on le transmet donc a amavis pour qu'il le signe. Le - problème de l'ordre des lignes se pose encore, pour la même raison qu'au - dessus.</li> -</ul> -<p>Nous allons maintenant configurer dovecot. Comme nous l'avons vu, dovecot doit -écouter en LMTP via la socket <code>/var/run/dovecot/lmtp</code> et transmettre les -emails a la boite email de l'utilisateur. Il serait aussi interessant -qu'il nous permette de récuperer les mails. Pour cette configuration, on ne -mettra en place que du IMAPS. Cependant, si vous voulez mettre en place du -POP3[s], différents guides sont trouvables facilement sur internet.</p> -<p><code>/etc/dovecot/dovecot.conf</code></p> -<div class="highlight"><pre><span class="cp">## Dovecot configuration file</span> - -<span class="cp"># basic config</span> -<span class="n">info_log_path</span> <span class="o">=</span> <span class="o">/</span><span class="n">var</span><span class="o">/</span><span class="n">log</span><span class="o">/</span><span class="n">dovecot</span><span class="o">-</span><span class="n">info</span><span class="p">.</span><span class="n">log</span> -<span class="n">log_path</span> <span class="o">=</span> <span class="o">/</span><span class="n">var</span><span class="o">/</span><span class="n">log</span><span class="o">/</span><span class="n">dovecot</span><span class="p">.</span><span class="n">log</span> -<span class="n">log_timestamp</span> <span class="o">=</span> <span class="s">&quot;%Y-%m-%d %H:%M:%S &quot;</span> -<span class="n">mail_location</span> <span class="o">=</span> <span class="n">maildir</span><span class="o">:%</span><span class="n">h</span><span class="o">/</span><span class="n">mail</span> - -<span class="cp"># authentication</span> -<span class="n">passdb</span> <span class="p">{</span> - <span class="n">driver</span> <span class="o">=</span> <span class="n">pam</span> -<span class="p">}</span> -<span class="n">userdb</span> <span class="p">{</span> - <span class="n">driver</span> <span class="o">=</span> <span class="n">passwd</span> -<span class="p">}</span> - -<span class="cp"># the protocols we use</span> -<span class="n">protocols</span> <span class="o">=</span> <span class="n">imap</span> <span class="n">lmtp</span> <span class="n">sieve</span> - -<span class="cp"># ssl config</span> -<span class="n">ssl_cert</span> <span class="o">=</span> <span class="o">&lt;/</span><span class="n">etc</span><span class="o">/</span><span class="n">certs</span><span class="o">/</span><span class="n">exem</span><span class="p">.</span><span class="n">pl</span><span class="p">.</span><span class="n">cert</span> -<span class="n">ssl_key</span> <span class="o">=</span> <span class="o">&lt;/</span><span class="n">etc</span><span class="o">/</span><span class="n">certs</span><span class="o">/</span><span class="n">exem</span><span class="p">.</span><span class="n">pl</span><span class="p">.</span><span class="n">key</span> -<span class="n">ssl_cipher_list</span> <span class="o">=</span> <span class="n">HIGH</span><span class="o">+</span><span class="n">kEDH</span><span class="o">:</span><span class="n">HIGH</span><span class="o">+</span><span class="n">kEECDH</span><span class="o">:</span><span class="n">HIGH</span><span class="o">:!</span><span class="n">PSK</span><span class="o">:!</span><span class="n">SRP</span><span class="o">:!</span><span class="mi">3</span><span class="n">DES</span><span class="o">:!</span><span class="n">aNULL</span> -<span class="n">ssl</span> <span class="o">=</span> <span class="n">yes</span> - -<span class="cp">## configuring services </span> -<span class="cp"># disables imap login without SSL (yes dovecot is dumb that way)</span> -<span class="n">service</span> <span class="n">imap</span><span class="o">-</span><span class="n">login</span> <span class="p">{</span> - <span class="n">inet_listener</span> <span class="n">imap</span> <span class="p">{</span> - <span class="n">port</span><span class="o">=</span><span class="mi">0</span> - <span class="p">}</span> -<span class="p">}</span> - -<span class="n">service</span> <span class="n">lmtp</span> <span class="p">{</span> - <span class="n">unix_listener</span> <span class="n">lmtp</span> <span class="p">{</span> - <span class="n">mode</span> <span class="o">=</span> <span class="mo">0666</span> - <span class="p">}</span> -<span class="p">}</span> - -<span class="cp">## configuring protocols</span> -<span class="cp"># the dovecot lda, we set it to use sieve</span> -<span class="n">protocol</span> <span class="n">lda</span> <span class="p">{</span> - <span class="n">mail_plugins</span> <span class="o">=</span> <span class="err">$</span><span class="n">mail_plugins</span> <span class="n">sieve</span> -<span class="p">}</span> - -<span class="n">protocol</span> <span class="n">lmtp</span> <span class="p">{</span> - <span class="n">postmaster_address</span> <span class="o">=</span> <span class="n">whoever</span><span class="err">@</span><span class="n">exem</span><span class="p">.</span><span class="n">pl</span> - <span class="n">mail_plugins</span> <span class="o">=</span> <span class="err">$</span><span class="n">mail_plugins</span> <span class="n">sieve</span> -<span class="p">}</span> - -<span class="n">plugin</span> <span class="p">{</span> - <span class="n">sieve</span> <span class="o">=</span> <span class="o">~/</span><span class="p">.</span><span class="n">dovecot</span><span class="p">.</span><span class="n">sieve</span> - <span class="n">sieve_dir</span> <span class="o">=</span> <span class="o">~/</span><span class="n">sieve</span> -<span class="p">}</span> -</pre></div> - - -<p><strong>ATTENTION: Sous OpenBSD, remplacez</strong></p> -<div class="highlight"><pre><span class="n">passdb</span> <span class="p">{</span> - <span class="n">driver</span> <span class="o">=</span> <span class="n">pam</span> -<span class="p">}</span> -</pre></div> - - -<p><strong>par</strong></p> -<div class="highlight"><pre><span class="n">passdb</span> <span class="p">{</span> - <span class="n">driver</span> <span class="o">=</span> <span class="n">bsdauth</span> -<span class="p">}</span> -</pre></div> - - -<p><strong>pour identifier les utilisateurs système</strong></p> -<p>Ici aussi, voyons comment ce fichier est structuré :</p> -<ul> -<li>Tout d'abord, les configurations de base : ou iront les logs, comment formater - leur datation, et l'endroit ou seront stockés les mails des utilisateurs.</li> -<li>Nous configurons ensuite la gestion de l'authentification des utilisateurs. - Ici nous identifions les utilisateurs avec le fichier /etc/passwd et leurs - mots de passe avec PAM (ou BSDAuth)</li> -<li>Nous configurons ensuite les protocoles que nous servons. Ici, nous voulons de - l'IMAPS, du LMTP local et Sieve (qui sert pour trier les messages).</li> -<li>Nous configurons le SSL</li> -<li>Le section suivante contient la configuration des services. Nous avons en - premier lieu le service IMAP, dont la configuration sert uniquement a - désactiver IMAP. En effet, dovecot ne permet d'activer IMAPS qu'en activant - IMAP avec. Comme nous ne voulons pas d'IMAP sans SSL, nous le désactivons. - La configuration de lmtp sert a attribuer des permissions plus correctes au - fifo qu'il utilise</li> -<li>Nous configurons maintenant les protocoles, pour faire fonctionner Sieve</li> -<li>enfin, nous configurons le plugin sieve en lui indiquant quel fichier et - quel dossier utiliser pour sa configuration.</li> -</ul> -<p>Enfin, il nous reste a configurer amavis. Comme expliqué, amavis va nous servir -a deux choses : signer les emails sortants, et filtrer les emails entrants. Il -doit donc écouter sur les port 10026 pour les signatures et 10024 pour le -filtrage, et répondre respectivement sur les ports 10027 et 10025 (le tout, en -SMTP. Comme toutes les transactions se font sur le loopback, il n'y a aucun -risque a utiliser des protocoles non chiffrés. -Pour OpenBSD, pensez a copier la configuration par défaut depuis -<code>/usr/local/share/examples/amavisd-new/amavisd.conf</code> et ajoutez les -modifications nécessaires a la fin du fichier.</p> -<p><code>/etc/amavis/conf.d/99-local.conf</code> (debian) -<code>/etc/amavis.conf</code> (OpenBSD)</p> -<div class="highlight"><pre><span class="n">use</span> <span class="n">strict</span><span class="p">;</span> - -<span class="err">$</span><span class="n">enable_dkim_verification</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> -<span class="err">$</span><span class="n">enable_dkim_signing</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> -<span class="n">dkim_key</span><span class="p">(</span><span class="s">&quot;exem.pl&quot;</span><span class="p">,</span> <span class="s">&quot;main&quot;</span><span class="p">,</span> <span class="s">&quot;/etc/certs/dkim.key&quot;</span> <span class="p">);</span> - -<span class="err">@</span><span class="n">dkim_signature_options_bysender_maps</span> <span class="o">=</span> <span class="p">(</span> - <span class="p">{</span> <span class="sc">&#39;.&#39;</span> <span class="o">=&gt;</span> - <span class="p">{</span> <span class="n">ttl</span> <span class="o">=&gt;</span> <span class="mi">21</span><span class="o">*</span><span class="mi">24</span><span class="o">*</span><span class="mi">3600</span><span class="p">,</span> <span class="n">c</span> <span class="o">=&gt;</span> <span class="err">&#39;</span><span class="n">relaxed</span><span class="o">/</span><span class="n">simple</span><span class="err">&#39;</span> <span class="p">}</span> - <span class="p">}</span> -<span class="p">);</span> - -<span class="err">$</span><span class="n">inet_socket_port</span> <span class="o">=</span> <span class="p">[</span><span class="mi">10024</span><span class="p">,</span> <span class="mi">10026</span><span class="p">];</span> -<span class="err">$</span><span class="n">policy_bank</span><span class="p">{</span><span class="err">&#39;</span><span class="n">MYNETS</span><span class="err">&#39;</span><span class="p">}</span> <span class="o">=</span> <span class="p">{</span> - <span class="n">originating</span> <span class="o">=&gt;</span> <span class="mi">1</span><span class="p">,</span> - <span class="n">os_fingerprint_method</span> <span class="o">=&gt;</span> <span class="n">undef</span><span class="p">,</span> -<span class="p">};</span> - -<span class="err">$</span><span class="n">interface_policy</span><span class="p">{</span><span class="err">&#39;</span><span class="mi">10026</span><span class="err">&#39;</span><span class="p">}</span> <span class="o">=</span> <span class="err">&#39;</span><span class="n">ORIGINATING</span><span class="err">&#39;</span><span class="p">;</span> - -<span class="err">$</span><span class="n">policy_bank</span><span class="p">{</span><span class="err">&#39;</span><span class="n">ORIGINATING</span><span class="err">&#39;</span><span class="p">}</span> <span class="o">=</span> <span class="p">{</span> - <span class="n">originating</span> <span class="o">=&gt;</span> <span class="mi">1</span><span class="p">,</span> - <span class="n">allow_disclaimers</span> <span class="o">=&gt;</span> <span class="mi">1</span><span class="p">,</span> - <span class="n">virus_admin_maps</span> <span class="o">=&gt;</span> <span class="p">[</span><span class="s">&quot;root\@$mydomain&quot;</span><span class="p">],</span> - <span class="n">spam_admin_maps</span> <span class="o">=&gt;</span> <span class="p">[</span><span class="s">&quot;root\@$mydomain&quot;</span><span class="p">],</span> - <span class="n">warnbadhsender</span> <span class="o">=&gt;</span> <span class="mi">1</span><span class="p">,</span> - <span class="n">forward_method</span> <span class="o">=&gt;</span> <span class="err">&#39;</span><span class="n">smtp</span><span class="o">:</span><span class="n">localhost</span><span class="o">:</span><span class="mi">10027</span><span class="err">&#39;</span><span class="p">,</span> - <span class="n">smtpd_discard_ehlo_keywords</span> <span class="o">=&gt;</span> <span class="p">[</span><span class="err">&#39;</span><span class="mi">8</span><span class="n">BITMIME</span><span class="err">&#39;</span><span class="p">],</span> - <span class="n">bypass_banned_checks_maps</span> <span class="o">=&gt;</span> <span class="p">[</span><span class="mi">1</span><span class="p">],</span> - <span class="n">terminate_dsn_on_notify_success</span> <span class="o">=&gt;</span> <span class="mi">0</span><span class="p">,</span> -<span class="p">};</span> - -<span class="cp">#------------ Do not modify anything below this line -------------</span> -<span class="mi">1</span><span class="p">;</span> <span class="err">#</span> <span class="n">ensure</span> <span class="n">a</span> <span class="n">defined</span> <span class="k">return</span> -</pre></div> - - -<p>A nouveau, expliquons ce fichier : -- le premier paragraphe définit que nous voulons qu'amavis signe les emails - sortants, vérifie la signature DKIM des emails rentrants, et l'endroit ou se - trouve la clé privée servant a signer les emails. -- le second définit les options DKIM que nous souhaitons utiliser comme défaut. - Je vous invite a consulter la <a href="https://tools.ietf.org/html/rfc4871">RFC 4871</a> -- nous définissons ensuite les ports sur lesquels nous allons écouter, puis les - paramètres que nous utiliserons pour les emails venant de nos utilisateurs : - ils seront traités comme "originating" et nous ne vérifierons pas l'OS duquel - ils viennent. -- nous savons que les emails venants du port 10026 sont sortants, nous les - traitons donc comme tel -- le paragraphe suivant décrit le traitement que nous faisons subir aux emails - sortants : tout d'abord, nous réaffirmons qu'ils viennent bien de notre - serveur. Nous autorisons les disclaimers (voire encore une fois la <a href="https://tools.ietf.org/html/rfc4871">RFC - 4871</a>. Nous déclarons l'adresse a - prévenir en cas de spam/virus venants de notre système, et que nous voulons - être prévenus. Nous déclarons ou envoyer les mails une fois signés et filtrés, - puis qu'il est nécessaire de convertir les emails au format 7 bits avant de - les envoyer au MTA, que nous autorisons tous les types et noms de fichiers, et - les notifications de succès d'envoi. Et voila!</p> -<p>Vous avez pu remarquer qu'a aucun moment nous ne configurions ni la signature -des emails sortants ni le filtrage des emails entrants. Ces paramètres sont en -fait inclus par défaut dans amavis.</p> -<p>Il nous reste cependant quelques opérations a faire, encore. -Tout d'abord, il nous faut générer notre clé DKIM. Pour cela, il existe -différentes méthodes, j'ai personnellement utilisé opendkim (<a href="https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-dkim-with-postfix-on-debian-wheezy">un -tutorial</a>) -mais de nombreuses autre méthodes existent. -Il nous reste encore a configurer spamassassin :</p> -<div class="highlight"><pre><span class="cp">#rewrite_header Subject *****SPAM*****</span> -<span class="cp"># report_safe 1</span> -<span class="n">required_score</span> <span class="mf">2.0</span> -<span class="cp"># use_bayes 1</span> -<span class="cp"># bayes_auto_learn 1</span> -<span class="cp"># bayes_ignore_header X-Bogosity</span> -<span class="cp"># bayes_ignore_header X-Spam-Flag</span> -<span class="cp"># bayes_ignore_header X-Spam-Status</span> -<span class="n">ifplugin</span> <span class="n">Mail</span><span class="o">::</span><span class="n">SpamAssassin</span><span class="o">::</span><span class="n">Plugin</span><span class="o">::</span><span class="n">Shortcircuit</span> -<span class="cp"># shortcircuit USER_IN_WHITELIST on</span> -<span class="cp"># shortcircuit USER_IN_DEF_WHITELIST on</span> -<span class="cp"># shortcircuit USER_IN_ALL_SPAM_TO on</span> -<span class="cp"># shortcircuit SUBJECT_IN_WHITELIST on</span> -<span class="cp"># shortcircuit USER_IN_BLACKLIST on</span> -<span class="cp"># shortcircuit USER_IN_BLACKLIST_TO on</span> -<span class="cp"># shortcircuit SUBJECT_IN_BLACKLIST on</span> -<span class="n">shortcircuit</span> <span class="n">ALL_TRUSTED</span> <span class="n">off</span> -<span class="cp"># shortcircuit BAYES_99 spam</span> -<span class="cp"># shortcircuit BAYES_00 ham</span> - -<span class="n">endif</span> <span class="err">#</span> <span class="n">Mail</span><span class="o">::</span><span class="n">SpamAssassin</span><span class="o">::</span><span class="n">Plugin</span><span class="o">::</span><span class="n">Shortcircuit</span> -</pre></div> - - -<p>Comme vous pouvez le voir, les modifications se résument globalement a baisser -le required_score pour ma part.</p> -<p>Pour finir, activez les services nécessaires : opensmtpd, dovecot, amavisd, et -spamassassin, et tout devrait fonctionner parfaitement</p> -<p>Bon courage pour votre hosting de mail ensuite...</p>WxcaféFri, 07 Nov 2014 13:04:00 +0100tag:,2014-11-07:home/wxcafe/code/blog-source/output/posts/opensmtpd-debian/ \ No newline at end of file diff --git a/output/feeds/feed.teaching.xml b/output/feeds/feed.teaching.xml deleted file mode 100644 index 11639e3..0000000 --- a/output/feeds/feed.teaching.xml +++ /dev/null @@ -1,344 +0,0 @@ - -Wxcaféfile:///home/wxcafe/code/blog-source/output/2015-05-16T02:00:00+02:00SSL - STARTTLS2015-05-16T02:00:00+02:00Wxcafetag:,2015-05-16:home/wxcafe/code/blog-source/output/posts/ssl-starttls/<p>Le chiffrement SSL pour les services en ligne est un problème relativement -récent, par rapport a l&rsquo;histoire d&rsquo;Internet. Sa mise en place pose -problème : les protocoles existants ne s&rsquo;accommodent qu&rsquo;assez mal de recevoir -soudainement un flot de données chiffrées, mais développer de nouveaux -protocoles est complexe et n&rsquo;apporte rien d&rsquo;intéressant. Pour palier a ce -problème, deux solutions sont apparues.</p> -<p>Le première consiste à faire écouter les services sur un -autre port, dans un tunnel SSL. De cette façon, le service existant écoute -normalement, mais il ne répond pas directement aux requêtes. A la place, un -tunnel SSL est mis en place, et les requêtes et les réponses passent dans le -tunnel (ou elles apparaissent donc chiffrées pour l&rsquo;extérieur). Cela permet de -proposer un service chiffré en modifiant de façon minimale le programme, au prix -de devoir aussi changer tous les clients, et de devoir les orienter sur un autre -port.</p> -<p>L&rsquo;autre approche qui a été utilisée est une approche d&rsquo;<em>upgrade</em>. La -communication commence en mode non chiffré, puis le client demande l&rsquo;upgrade de -la connexion vers le mode chiffré s&rsquo;il le supporte, les deux machines -machines font un <em>handshake</em> SSL et la communication continue a travers le -tunnel SSL. Le service peut continuer a écouter sur son port habituel, et seuls -les clients capables de passer en SSL le feront, ce qui permet de faire la &ldquo;mise -a jour&rdquo; en douceur.</p> -<p>Il est souvent demandé quelle est la meilleure méthode pour mettre en place un -service &ndash; laisser un port pour le SSL et un pour le trafic non chiffré, ou bien -un seul, avec <code>STARTTLS</code>, qui <em>upgrade</em> les connexions si nécessaire.<br /> -La réponse est que <code>STARTTLS</code> est plus interessant, pour plusieurs raisons. Tout -d&rsquo;abord, il permet de n&rsquo;utiliser qu&rsquo;un seul port : ça permet de simplifier la -configuration du firewall. En plus de ça, il permet aux clients &ldquo;anciens&rdquo; (ceux -qui ne supportent pas SSL, donc ceux qui devraient être changés) de toujours se -connecter, même si cela signifie que leurs informations seront transmises en -clair. Surtout, il permet d&rsquo;éviter aux utilisateurs d&rsquo;avoir a configurer leurs -clients. Si le client supporte le chiffrement, il l&rsquo;activera de lui même s&rsquo;il -voit qu&rsquo;il est disponible.<br /> -Bref, mettez en place du <code>STARTTLS</code>, et pas du SSL. C&rsquo;est mieux pour la sécurité -de tout le monde.</p>Les systèmes de fichiers2012-09-25T10:28:00+02:00Wxcafetag:,2012-09-25:home/wxcafe/code/blog-source/output/posts/les-systemes-de-fichiers/<p>Un système de fichiers. Vous en avez surement déjà entendu parlé si vous -avec déjà installé Linux, ou formaté une clé USB. Dans ces cas, vous -connaissez surement NTFS, EXT4, ou encore FAT32.</p> -<p>Ces différents noms désignent en effet des systèmes de fichiers. Mais -qu'est-ce qu'un système de fichiers?</p> -<p>Pour comprendre cela, il faut déjà savoir ce qu'est exactement un -fichier. Un fichier est un ensemble de blocs (les blocs sont l'unité la -plus petite traitable par le matériel, ils font généralement 1 ou 4 Kio -(<a href="http://fr.wikipedia.org/wiki/Kibioctet#Multiples_normalis.C3.A9s">kibioctet</a>), en fonction du système de fichier utilisé.), qui est -donc composé de bits, interprétés différemment en fonction du type de -fichier. Cependant, seul, le fichier n'est pas accessible, puisqu'il -n'est pas indexé, c'est a dire que l'OS ne sait pas qu'il est présent, -ou il commence ni où il s'arrête (je schématise un peu, mais c'est -l'idée). </p> -<p>Ainsi, le système de fichier donne un cadre et un standard à -l'arborescence des fichiers. Par exemple, le système de fichier ext4 -utilise des blocs de 1 Kio, et de ce fait, toutes les partitions de -disque dur formatées en ext4 peuvent prendre comme unité de base 1 Kio -et mesurer la taille des fichiers en blocs de cette façon. Les systèmes -de fichiers nécessitent l'inclusion de drivers dans le noyau pour -pouvoir être pris en compte. </p> -<p>Le noyau linux inclut par défaut les drivers pour ext2/3/4, btrfs, -reiserfs, ntfs, fat16/32 et hfsx, ce qui permet de monter a peu -près tout type de partition récente.</p> -<p>Il convient de bien faire la différence entre le système de fichier et -l'arborescence des fichiers. Si l'arborescence des fichiers est en fait -une entité virtuelle englobant la racine / et tous les fichiers et -dossiers contenus dedans, le système de fichier permet a votre système -GNU/Linux de distinguer les différents fichiers composants cette -arborescence.</p> -<p>Détaillons maintenant les types de fichiers les plus répandus:</p> -<ul> -<li> -<p>FAT16/32 : Les systèmes de fichier FAT (pour File Allocation Table, - soit la définition d'un système de fichier), remplissent leur rôle le - plus simplement possible. Ne permettant (historiquement) que des noms de - 8 caractères (plus extension de trois caractères), ni chiffrement, ni - système de distinction d'utilisateurs (DOS étant un système - mono-utilisateur), Il fut décliné par microsoft en FAT16 et en FAT32, - utlisants respectivement des blocs de 16 et 32 Kio.</p> -</li> -<li> -<p>NTFS :. Le NTFS (pour New Technology File System, rapport a Windows - NT) est un système de fichier qui est apparu avec Windows XP, et qui - était une mise a jour nécessaire du FAT32 vieillissant. NTFS ajoute a - FAT différentes capacités dont le chiffrement, les liens symboliques, la - compression et les quotas pour les volumes, permettant de limiter la - taille maximum occupée dans une partition.</p> -</li> -<li> -<p>ReFS : ReFS est le système de fichiers introduit dans Windows Server 2012. - Ne différant pas énormément de NTFS, je le mentionne principalement - parce qu'il est prévu qu'il soit le défaut pour Windows 8. - Il apporte principalement la redondance, c'est a dire que chaque - fichier possède une somme de contrôle en 64 bits stockée dans un fichier - séparé pour éviter les corruption de disque.</p> -</li> -<li> -<p>Ext2/3/4 : les systèmes ext (extended) sont les systèmes de fichiers - les plus utilisés sous linux pour le grand public. (Je traiterai ici - d'ext4, puisque c'est le plus récent.) Il dispose de toutes les - fonctions que l'on peut attendre d'un système de fichiers moderne, ni - plus ni moins. Ainsi, ext4 est un système de fichiers journalisé, - acceptant les capacités jusqu’à 1 Exioctet, et utilise l'allocation dite - "par extent", ce qui signifie que la création d'un fichier réserve - automatiquement les zones contiguës de façon a réduire la fragmentation.</p> -</li> -<li> -<p>ReiserFS : ce système de fichiers, créé par le (légèrement mégalo) - programmeur Hans Reiser, est a retenir pour avoir été le premier système - de fichiers journalisé, et accepte un nombre de fichiers de l'ordre des - 4 milliards. Le but de ce système est de créer un système polyvalent, a - la fois système de fichiers et base de donnée (de part sa grande - capacité en terme de nombre de fichiers et de l'utilisation d'un - journal.)</p> -</li> -<li> -<p>Btrfs : ce système est l'évolution logique d'ext4, et inclut lui aussi - l'allocation par extent, mais possède de plus un système de - sous-volumes, qui permet d’accéder a plusieurs arborescences de fichiers - montées en même temps (système pratique et utile pour faire des - snapshots de systèmes.). Il permet aussi de redimensionner a chaud la - taille des partitions, en les agrandissant ou en les rétrécissant, est - compatible avec <a href="http://fr.wikipedia.org/wiki/LVM">LVM</a>, a un système de checking intégré (btrfsck), et - utilise un algorithme de compression appelé LZ4, qui accélère les accès - aux fichiers compressés d'environ 30% par rapport a LZO, le système - utilisé dans ext4.</p> -</li> -<li> -<p>HFS+ : le système de fichier présent sur tous les macs a des capacités - relativement standards, et ressemble énormément a l'ext3. Il supporte - cependant les liens directs vers les dossiers, fonction rare sur les - systèmes de fichiers actuels. Il est possible qu'il évolue a nouveau - dans les années a venir</p> -</li> -<li> -<p>ZFS : Ce système de fichier, venu de Solaris mais utilisable par Linux - et *BSD, est, tel Btrfs, a la fois un système de fichier et un - remplaçant/compatible avec LVM, C'est un système de fichiers conçu - principalement pour les serveurs, et il intègre ainsi un système de - redondance des données pour éviter les corruptions, un mode RAID-Z - (apparenté au RAID5), des checks d’intégrité en continu, des snapshots, - etc...</p> -</li> -</ul> -<p>Comme on a pu le voir, les systèmes de fichiers disponibles sont -légions. Cependant, le plus adapté a Linux et a une utilisation grand -public aujourd'hui est probablement Btrfs. Malheureusement, ce dernier -n'est pas aujourd'hui proposé par défaut sur les distributions les plus -utilisées, au profit de l'ext4, qui commence a accuser son âge...</p> -<p>Les systèmes de fichiers, s'ils peuvent ne pas sembler primordiaux au -fonctionnement du système, sont en fait de première importance, et ce -choix ne devrait pas être laissé au hasard, et être mis a jour -régulièrement (pour éviter les failles de sécurité...)</p> -<p>Bon courage, et bon choix pour votre prochain système.</p>Les différentes couches d'un système d'exploitation2012-09-06T23:29:00+02:00Wxcafetag:,2012-09-06:home/wxcafe/code/blog-source/output/posts/les-differentes-couches-dun-systeme-dexploitation/<p>Étant utilisateur plus ou moins fidèle de GNU/Linux depuis quelques -années (plus ou moins, parce que j'ai toujours un Windows en dual boot, -principalement pour les jeux (possiblement plus pour longtemps, avec -l'arrivée de Steam pour Linux... ) ), je commence a connaître plus ou -moins bien mon système. Or il y a plusieurs choses a savoir sur les -systèmes d'exploitation, et celle dont je vais parler aujourd'hui, c'est -le système de couches.</p> -<p>Un système d'exploitation (de type UNIX, \&lt;troll>enfin un vrai système quoi. -\&lt;/troll>) incorpore plusieurs systèmes de couches.</p> -<p>Ainsi, Linux (le noyau) a commencé en étant un kernel monolithique, -c'est a dire que tous les composants sont intégrés au kernel. Ce qui -signifie que rien ne peut être ajouté au noyau sans recompiler celui ci. -Or, quand on sait que le noyau comprend entre autres les drivers du -matériel et des systèmes de fichier, cela peut poser des problèmes quand -a la taille du kernel et a la licence libre de ce dernier. </p> -<p>Depuis un certain temps, le kernel linux est devenu un kernel modulaire, ce qui -signifie que des modules peuvent être chargé a tout moment en cours -d’exécution, ce qui permet l'utilisation de nouveaux systèmes de -fichiers a chaud, ou l'insertion de matériel et l'installation de -drivers sans interrompre l’exécution du système (Windows utilise un -système de fausse installation de drivers pour le matériel externe, et -un système de pré-installation des drivers pour les périphériques dits -"plug and play")</p> -<p>Après le noyau intervient le système. Or, au tous premiers instants du -boot, les systèmes GNU/Linux utilisent un système permettant de limiter -l'utilisation de ressources systèmes si elles ne sont pas nécessaires, -et incorpore ainsi un système dit de "runlevels"</p> -<p>Ainsi, au runlevel 0, le système s'éteint après avoir booté. Ainsi, ce -runlevel permet de tester le bon démarrage du système sans avoir a -effectuer de manipulation pour le ré-éteindre</p> -<p>Le runlevel 1 est appelé mode single user, et c'est un nom plutôt adapté -étant donné que ce runlevel donne accès a un système en étant -automatiquement loggé en tant que root, avec tous les autres -utilisateurs désactivés, de même que tous les systèmes de réseaux</p> -<p>Le runlevel 2 est appelé mode multi user, et vous mets en face d'un -système classique. en ligne de commande, mais avec tous les systèmes de -réseau désactivés.</p> -<p>Le runlevel 3 est le même que le 2, mais avec les systèmes de réseaux -activés.</p> -<p>Le runlevel 4 n'est pas officiellement défini, et est censé être -activable en fonction des besoins de l'utilisateur. Sur la plupart des -distributions grand public, ce runlevel est lié au...</p> -<p>Runlevel 5! Multi-user, networking, with working GUI! c'est le système -tel que vous le connaissez, avec l'interface graphique et le système de -login graphique.</p> -<p>Le runlevel 6, enfin, est le bien nommé "reboot", qui reboot la machine -quand il devient le runlevel courant.</p> -<p>(Il est a noter que Debian, et donc toutes les distribs qui en sont -dérivées, ne font pas de distinction entre les differents runlevels du 2 -au 5. Ainsi, Ubuntu fonctionne par défaut au runlevel 2, avec un login -et une interface graphique, et un mode réseau fonctionnel, bref avec des -fonctionnalités qui ne sont normalement disponibles que sous le runlevel 5.)</p> -<p>Il est possible de changer de runlevel grâce a la commande runlevel -(oui, c'est évident...)</p> -<p>Les systèmes Linux utilisent aussi un système dit de SandBox , qui en -informatique est un système permettant d'isoler les processus les uns -des autres. Ainsi, la pile réseau, qui est le système auquel les -différents processus envoient les différents paquets qui doivent sortir -de la machine , et qui redistribue ces paquets, est isolée du reste du -système, en cela qu'aucun des autres processus ne peuvent modifier cette -pile hors du runlevel 1 ou 2.</p> -<p>De la même façon, le navigateur chrom/ium fait fonctionner tous les -onglets, ainsi que toutes les extensions, dans des processus différents. -Certaines distributions linux implémentent un système de cette sorte -pour toutes les applications, ou seulement pour certaines. ainsi Chakra -Linux a un système d'installation d'applications dans des disques -virtuels, ce qui permet une sécurité totale du processus.</p> -<p>Voila, j'espère vous en avoir appris un peu sur le fonctionnement des -différentes couches de linux, et j'espère que cet article vous poussera -a tester un peu votre système et a vous amuser avec les différents -runlevels</p>La programmation expliquée simplement2012-08-27T00:22:00+02:00Wxcafetag:,2012-08-27:home/wxcafe/code/blog-source/output/posts/la-programmation-expliquee-simplement/<p>Salut!<br /> -Tout d'abord, je tiens a m'excuser de ne pas avoir eu le temps d'écrire -récement, mais j'ai eu la chance d'avoir un PC a monter, donc j'ai passé -pas mal de temps assez occupé. </p> -<p>Enfin, après un certain temps a farfouiller au millieu des connecteurs -SATA et a apprendre que, oui, l'alimentation sert aussi pour les disques -durs, je suis de retour pour un court article.<br /> -Du coup, je m'étais dit que j'allais reprendre sur le thème de -l'informatique expliquée au grand public, en tentant d'aller un peu plus -loin que la dernière fois sur le thème de la programmation<br /> -Ce qu'il faut comprendre, c'est la facon dont fonctionne un ordinateur. -Si a peu près tout le monde sait que "les ordinateurs, ils ne -comprennent que les 1 et les 0!", peu de gens savent comment cela -fonctionne en détail. </p> -<p>Si vous êtes sur ce blog, il y a pas mal de chance que vous ayez déjà -des notions de base en informatique. Ainsi, vous savez surement que les -ordinateurs fonctionnent avec des programmes, qui sont composés de -code.<br /> -Ainsi, il faut comprendre que le code (source) est "compilé" en un -fichier "binaire". Un fichier binaire est un fichier comprenant les -instructions telles qu’exécutées par le processeur, et donc absolument -illisible pour un humain. </p> -<p>La compilation est le processus qui transforme le code source en -binaire executable. Les binaires ont, sous Windows, l'extension .exe, -tandis que sous les systèmes UNIX-like, ils n'ont pas d'extension -particulière.<br /> -Ceci étant dit, il faut comprendre que certains langages sont plus -proches que d'autres du langage processeur, les langages les plus -proches sont dits de "bas niveau". Les langages les plus éloignés sont -donc dits de haut niveau. </p> -<p>Par exemple, l'assembleur est l'un des languages de plus bas niveau, -tandis que python par exemple est un langage de plus haut niveau. Les -langages de haut niveau sont souvent bien plus simples a comprendre et a -apprendre que les langages de bas niveau </p> -<p>Ainsi, en C, un langage de niveau relativement bas, pour afficher -"hello world" sur l'écran, le code nécessaire est :</p> -<div class="highlight"><pre><span class="cp">#include </span> -<span class="kt">void</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span> -<span class="n">printf</span><span class="p">(</span><span class="s">&quot;hello world&quot;</span><span class="p">);</span> -<span class="k">return</span> <span class="mi">0</span><span class="p">;</span> -<span class="p">}</span> -</pre></div> - - -<p>le même programme en python s'écrit :</p> -<div class="highlight"><pre><span class="n">print</span> <span class="s">&quot;hello world&quot;</span> -</pre></div> - - -<p>et n'a pas besoin d'être compilé , puisqu'il peut être intepreté -directement. </p> -<p>Python utilise en effet un système similaire a Java en ayant un -interpréteur dit "runtime" ou "temps réel", qui interprète le programme -sans le compiler. Java utilise un système légèrement différent, puisque -le code a besoin d'être compilé, mais est interpreté par un interpréteur -et non par le processeur. </p> -<p>Cette méthode permet le fameux "code once, run everywhere", ce qui -signifie que le même code est exécutable sur quasiment tous les systèmes -d'exploitation (en fait, tous ceux sur lesquels l’interpréteur est -disponible.)</p> -<p>Voila, je vous laisse sur le fonctionnement de Java et de Python, et je -vais me coucher.<br /> -A bientôt!</p>GNU/Linux pour les non technophiles, ou l'OS libre pour votre grand-mère2012-08-22T20:33:00+02:00Wxcafetag:,2012-08-22:home/wxcafe/code/blog-source/output/posts/gnulinux-pour-les-non-technophiles-ou-los-libre-pour-votre-grand-mere/<p>GNU/Linux est un vaste et extraordinaire territoire technologique, mais -je ne vais pas m'attarder ici sur les aspects profondément techniques de -ce territoire pour faire plutôt une sorte d'introduction a ce qu'est -vraiment GNU/Linux, pour les gens n'ayant aucune ou très peu de -connaissances en informatique.</p> -<p>GNU/Linux, que j’abrégerai ici en Linux pour plus de simplicité, est un -Système d'Exploitation. Un système d'exploitation est, pour simplifier, -un ensemble d'outils informatiques qui vous permettent d'utiliser votre -ordinateur, ainsi, Windows est un système d'exploitation. L'abréviation -de système d'exploitation (Operating System en anglais) est OS. Les 4 -principaux OS existants aujourd'hui sont Windows, Mac OS, GNU/Linux, et -Solaris. Les trois derniers sont issus d'un autre système, plus ancien, -nommé UNIX.</p> -<p>De ce fait, on pourrait penser que Linux remplace complètement Windows -une fois installé, et comprend une interface graphique, et toutes sortes -d'utilitaires permettant a l'utilisateur d'utiliser le système (sous -Windows, pensez a l'explorateur de fichiers, ou a Internet Explorer. -Pour l'interface graphique, pensez a... Pensez que votre système affiche -autre chose que des lignes de commande.) Or non, une fois installé, -Linux en lui même ne vous afficherait aucune interface graphique, et -s'il est effectivement livré avec des utilitaires, ils ne sont que des -programmes en ligne de commande. Autant les utilisateurs avancés sauront -s'en servir, et pourront argumenter que c'est plus efficace ou plus -rapide, autant les utilisateurs basiques préfèrent une interface -graphique. Alors comment en obtenir une?</p> -<p>Ici, il convient de faire une précision importante. Si il n'existe -qu'une seule version de Windows, ou de Mac OS, il existe en fait -plusieurs centaines de "versions" différentes de Linux. Appelées -distributions, ces dernière sont développées par des groupes -complètement séparés, et se basent sur le fait que Linux soit -entièrement placé sous licence libre (ce qui leur permet de l'utiliser a -leur guise, a condition que leur travail soit lui aussi placé sous -licence libre). De ce fait, de nombreuses distributions existent et se -développent en parallèle. On peut ainsi citer <a href="http://debian.org">Debian</a>, qui est l'une -des distributions les plus importantes, ou encore <a href="http://ubuntu.com">Ubuntu</a>, qui est -l'une des plus connues et des plus simples a utiliser.</p> -<p>Ainsi, ces distributions intègrent une interface graphique. Cependant, -grâce a la liberté dont bénéficient les développeurs sous Linux, il -existe de nombreuses interfaces graphiques différentes : <a href="unity.ubuntu.com">Unity</a>, la -nouvelle interface d'Ubuntu; <a href="gnome.org">GNOME</a> , une interface qui vise a la -simplicité; ou encore <a href="http://kde.org/">KDE</a>, une interface utilisateur ressemblant a -Windows 7.</p> -<p>Ainsi, le choix astronomique de distributions Linux a bien un sens : -chacune d'entre elle intègre des outils différents. Par exemple, Debian -intègre GNOME 2, qui est l'ancienne version de GNOME, ce qui la rend -particulièrement stable. Ubuntu intègre Unity, ce qui en fait une -distribution particulièrement intuitive. Linux Mint intègre Cinnamon, -qui est une version dérivée de GNOME 3, ce qui permet encore une autre -expérience. Et Arch Linux n'intègre pas d'interface graphique du tout, -ce qui permet a l'utilisateur de choisir entre les multiples interfaces -existantes.</p> -<p>Ce qu'il est important de retenir de cela, c'est que Linux est un OS -complètement libre, ce qui signifie que n'importe qui peut modifier et -utiliser tout le code de Linux gratuitement et comme il l'entend. Ainsi, -Linux est un OS qui est véritablement créé par des passionnés, pour tous -et toutes. Surtout, il convient de retenir que Linux n'est pas compliqué -a utiliser, ni a installer. Windows et Mac OS ne le sont pas non plus. -Cependant, Linux donne la possibilité a l'utilisateur de le rendre -affreusement complexe, mais aussi de le rendre adapté a ses besoins, -quels que soient ceux ci. Et c'est la que réside l'incroyable puissance -de ce Système d'Exploitation. Il est extraordinairement adaptable.</p> -<p>N'hésitez donc pas a le présenter a vos proches, même s'ils ne sont pas -technophiles. Ils pourraient adorer, et peut être même le devenir :)</p> -<p>A bientôt!</p> \ No newline at end of file diff --git a/output/feeds/feed.tutorial.xml b/output/feeds/feed.tutorial.xml deleted file mode 100644 index 5455714..0000000 --- a/output/feeds/feed.tutorial.xml +++ /dev/null @@ -1,368 +0,0 @@ - -Wxcaféfile:///home/wxcafe/code/blog-source/output/2014-11-07T13:04:00+01:00OpenSMTPd comme serveur mail sous debian2014-11-07T13:04:00+01:00Wxcafétag:,2014-11-07:home/wxcafe/code/blog-source/output/posts/opensmtpd-debian/<p>J'avais dit il y a un certain temps que j'allais écrire un tutoriel expliquant -comment gérer ses mails soi-même. Il se trouve que j'ai récemment décidé de -changer le serveur qui héberge (entre autres) ce blog, et que ce dernier héberge -aussi mes emails. J'ai donc totalement changé d'infrastructure quand a la -gestion de mon système de mails.</p> -<p>Ainsi, j'ai décidé de passer de Postfix a OpenSMTPd, changement que je voulais -effectuer depuis un certain temps. <a href="https://opensmtpd.org">OpenSMTPd</a> est un -projet originaire d'<a href="http://openbsd.org">OpenBSD</a> qui a pour but de fournir un -serveur SMTP fiable, simple, rapide, et surtout sécurisé (les même buts que ceux -qu'a le projet OpenBSD, globalement).</p> -<p>Pour rappel, le système d'emails fonctionne d'une façon très simple : votre MUA -(Mail User Agent, ou client email) contacte le MTA (Mail Transport Agent, ou -serveur SMTP) de votre fournisseur email, qui contacte le MTA du fournisseur du -destinataire, qui lui même contacte le MDA (Mail Delivery Agent) qui délivre le -mail au destinataire.</p> -<p>Si vous avez bien suivi, vous pouvez voir que je n'ai pas parlé de récupération -ni de lecture des mails. C'est pour une raison simple, qui est que ces taches -sont remplies par d'autres services encore (IMAP/POP pour la récupération depuis -le serveur, des yeux pour la lecture).</p> -<p>Or ce qui nous intéresse ici, ce n'est pas simplement d'envoyer et de recevoir -des emails mais bien aussi de pouvoir les récupérer et les lire, et c'est pour -ça que ce tutoriel ne parlera pas que d'OpenSMTPd mais aussi de -<a href="http://dovecot.org/">Dovecot</a> qui fait office de serveur IMAP et -<a href="http://www.ijs.si/software/amavisd/">amavis</a>/<a href="http://spamassassin.apache.org/">spamassassin</a> -pour filtrer les mails entrants et sortants. -Le schéma suivant explique la façon dont les mails sont gérés sur le système</p> -<div class="highlight"><pre> <span class="err">╭────────────────╮</span> <span class="err">╭──────────╮</span> - <span class="err">│╭──────────────</span><span class="o">&gt;</span><span class="err">│────</span><span class="o">&gt;</span> <span class="n">to</span> <span class="n">filter</span> <span class="err">───</span><span class="o">&gt;</span><span class="err">│─╮</span> <span class="err">│</span> - <span class="n">mail</span> <span class="n">in</span> <span class="err">││</span> <span class="err">│</span> <span class="err">│</span> <span class="err">│</span> <span class="n">amavis</span> <span class="err">│</span> -<span class="err">───────────</span><span class="o">&gt;</span><span class="err">│╯</span> <span class="n">OpenSMTPd</span> <span class="err">╭──│</span><span class="o">&lt;</span><span class="err">───</span> <span class="n">from</span> <span class="n">filter</span><span class="o">&lt;</span><span class="err">───│</span><span class="o">&lt;</span><span class="err">╯</span> <span class="err">│</span> - <span class="err">│</span> <span class="err">│</span> <span class="err">│</span> <span class="err">╰──────────╯</span> - <span class="n">mail</span> <span class="n">out</span> <span class="err">│</span> <span class="err">│</span> <span class="err">│</span> <span class="err">╭──────────╮</span> -<span class="o">&lt;</span><span class="err">───────────│</span><span class="o">&lt;</span><span class="err">────────────┴─</span><span class="o">&gt;</span><span class="err">│─────</span><span class="o">&gt;</span> <span class="n">to</span> <span class="n">MDA</span> <span class="err">─────</span><span class="o">&gt;</span><span class="err">│─────────</span><span class="o">&gt;</span><span class="err">│──</span><span class="o">&gt;</span> <span class="n">to</span> <span class="n">user</span><span class="err">&#39;</span><span class="n">s</span> - <span class="err">│</span> <span class="err">│</span> <span class="err">│</span> <span class="n">dovecot</span> <span class="err">│</span> <span class="n">mailbox</span> - <span class="err">╰────────────────╯</span> <span class="err">╰──────────╯</span> -</pre></div> - - -<p>Normalement, ceci devrait être a peu près clair. -Pour expliquer vite fait, les emails entrants (venant des utilisateurs mais -aussi d'autres correspondants) sont transmis a OpenSMTPd, qui envoie tout a -<code>amavis</code>, qui vérifie a la fois les spams et les malwares pour les mails -venants de l'exterieur, et qui signe avec DKIM pour les mails venants de -nos utilisateurs, puis qui rentransmet les mails filtrés/signés a OpenSMTPd, -qui a ce moment-ci trie en fonction de la destination : les mails gérés -par le domaine vont via dovecot dans les boites mail des destinataires -locaux, les mails exterieurs vont directement vers le MTA du serveur -distant.</p> -<p>Voyons comment mettre cela en place. Tout d'abord, il faut décider de la façon -dont les différents services vont communiquer.</p> -<p>Déjà, amavis étant configuré par défaut pour écouter (en SMTP) sur le port -10024 et répondre sur le port 10025 quand il s'agit de filtrer et -écouter sur le port 10026 et répondre sur le port 10027 quand il s'agit de -signer, nous allons profiter de cette configuration et donc lui parler en SMTP -sur ces ports.</p> -<p>Quand a Dovecot, nous allons lui transmettre les emails en LMTP (Local Mail -Transfer Protocol), non pas sur un port mais via un socket (dans ce cas précis, -<code>/var/run/dovecot/lmtp</code>).</p> -<p>Ainsi, pour reprendre le schéma présenté plus haut :</p> -<div class="highlight"><pre> <span class="err">╭───────────────╮</span> <span class="err">╭───────────╮</span> - <span class="err">│╭─────────────</span><span class="o">&gt;</span><span class="err">│──</span><span class="o">&gt;</span> <span class="n">SMTP</span> <span class="p">(</span><span class="mi">10026</span><span class="p">)</span> <span class="err">──</span><span class="o">&gt;</span><span class="err">│─╮</span> <span class="err">│</span> - <span class="n">SMTP</span> <span class="n">in</span> <span class="err">││</span> <span class="err">│</span> <span class="err">│</span> <span class="err">│</span> <span class="n">amavis</span> <span class="err">│</span> -<span class="err">────────</span><span class="o">&gt;</span> <span class="mi">25</span><span class="err">│╯</span> <span class="n">OpenSMTPd</span> <span class="err">╭──│</span><span class="o">&lt;</span><span class="err">──</span> <span class="n">SMTP</span> <span class="p">(</span><span class="mi">10027</span><span class="p">)</span> <span class="o">&lt;</span><span class="err">──│</span><span class="o">&lt;</span><span class="err">╯</span> <span class="p">(</span><span class="n">sign</span><span class="p">)</span> <span class="err">│</span> - <span class="err">│</span> <span class="err">│</span> <span class="err">│</span> <span class="err">╰───────────╯</span> - <span class="n">SMTP</span> <span class="n">out</span> <span class="err">│</span> <span class="err">│</span> <span class="err">│</span> -<span class="mi">25</span> <span class="o">&lt;</span><span class="err">────────│</span><span class="o">&lt;</span><span class="err">───────────╯</span> <span class="err">│</span> - <span class="err">╰───────────────╯</span> -</pre></div> - - -<p>Pour les mails sortants; et</p> -<div class="highlight"><pre> <span class="err">╭───────────────╮</span> <span class="err">╭────────────╮</span> - <span class="err">│╭─────────────</span><span class="o">&gt;</span><span class="err">│──</span><span class="o">&gt;</span> <span class="n">SMTP</span> <span class="p">(</span><span class="mi">10024</span><span class="p">)</span> <span class="err">──</span><span class="o">&gt;</span><span class="err">│─╮</span> <span class="err">│</span> - <span class="n">SMTP</span> <span class="n">in</span> <span class="err">││</span> <span class="err">│</span> <span class="err">│</span> <span class="err">│</span> <span class="n">amavis</span> <span class="err">│</span> -<span class="err">────────</span><span class="o">&gt;</span> <span class="mi">25</span><span class="err">│╯</span> <span class="n">OpenSMTPd</span> <span class="err">╭──│</span><span class="o">&lt;</span><span class="err">──</span> <span class="n">SMTP</span> <span class="p">(</span><span class="mi">10025</span><span class="p">)</span> <span class="o">&lt;</span><span class="err">──│</span><span class="o">&lt;</span><span class="err">╯</span><span class="p">(</span><span class="n">filter</span><span class="p">)</span> <span class="err">│</span> - <span class="err">│</span> <span class="err">│</span> <span class="err">│</span> <span class="err">╰────────────╯</span> - <span class="err">│</span> <span class="err">│</span> <span class="err">│</span> <span class="err">╭────────────╮</span> - <span class="err">│</span> <span class="err">╰─</span><span class="o">&gt;</span><span class="err">│──</span><span class="o">&gt;</span> <span class="n">LMTP</span> <span class="p">(</span><span class="n">socket</span><span class="p">)</span> <span class="err">─</span><span class="o">&gt;</span><span class="err">│───────────</span><span class="o">&gt;</span><span class="err">│──</span><span class="o">&gt;</span> <span class="n">to</span> <span class="n">user</span><span class="err">&#39;</span><span class="n">s</span> - <span class="err">│</span> <span class="err">│</span> <span class="err">│</span> <span class="n">dovecot</span> <span class="err">│</span> <span class="n">mailbox</span> - <span class="err">╰───────────────╯</span> <span class="err">╰────────────╯</span> -</pre></div> - - -<p>Pour les mails entrants.</p> -<p>Maintenant que la théorie est claire, mettons en place tout cela. Je me baserai -ici sur le fait que vous utilisiez une plateforme Debian ou OpenBSD. Pour -d'autres plateformes, la configuration devrait être sensiblement la même</p> -<p>(Vous aurez besoin de certificats SSL pour ce guide, même self-signés. -Si vous ne savez pas comment en créer, vous pouvez aller voir <a href="http://wxcafe.net/posts/05/30/14/SSL-ou-la-securite-sur-internet/">ce -post</a>)</p> -<p>Tout d'abord, commençons par installer les programmes nécessaires :</p> -<div class="highlight"><pre><span class="n">sudo</span> <span class="n">apt</span><span class="o">-</span><span class="n">get</span> <span class="n">install</span> <span class="n">opensmtpd</span> <span class="n">dovecot</span> <span class="n">dovecot</span><span class="o">-</span><span class="n">pigeonhole</span> <span class="n">amavisd</span><span class="o">-</span><span class="n">new</span> <span class="n">dovecot</span><span class="o">-</span><span class="n">managesieved</span> -<span class="n">sudo</span> <span class="n">pkg_add</span> <span class="n">dovecot</span> <span class="n">dovecot</span><span class="o">-</span><span class="n">pigeonhole</span> <span class="n">amavisd</span><span class="o">-</span><span class="n">new</span> -</pre></div> - - -<p>Continuons en configurant OpenSMTPd tel que nous avons vu plus haut :</p> -<p><code>/etc/smtpd.conf</code></p> -<div class="highlight"><pre><span class="err">#</span> <span class="nx">This</span> <span class="nx">is</span> <span class="nx">the</span> <span class="nx">smtpd</span> <span class="nx">server</span> <span class="nx">system</span><span class="na">-wide</span> <span class="nx">configuration</span> <span class="nx">file.</span> -<span class="err">#</span> <span class="nx">See</span> <span class="nx">smtpd.conf</span><span class="p">(</span><span class="mi">5</span><span class="p">)</span> <span class="nb">for</span> <span class="nx">more</span> <span class="nx">information.</span> - -<span class="err">##</span> <span class="nx">Certs</span> -<span class="nx">pki</span> <span class="nx">exem.pl</span> <span class="nx">certificate</span> <span class="s2">&quot;/etc/certs/exem.pl.crt&quot;</span> -<span class="nx">pki</span> <span class="nx">exem.pl</span> <span class="nb">key</span> <span class="s2">&quot;/etc/certs/exem.pl.key&quot;</span> - -<span class="err">##</span> <span class="nx">Ports</span> <span class="k">to</span> <span class="nb">listen</span> <span class="k">on</span><span class="p">,</span> <span class="ow">and</span> <span class="nx">how</span> <span class="k">to</span> <span class="nb">listen</span> <span class="k">on</span> <span class="nx">them</span> -<span class="nb">listen</span> <span class="k">on</span> <span class="nx">eth0</span> <span class="nb">port</span> <span class="mi">25</span> <span class="nx">tls</span> <span class="nx">pki</span> <span class="nx">exem.pl</span> <span class="nb">hostname</span> <span class="nx">exem.pl</span> <span class="nb">auth</span><span class="na">-optional</span> -<span class="nb">listen</span> <span class="k">on</span> <span class="nx">eth0</span> <span class="nb">port</span> <span class="mi">465</span> <span class="nx">tls</span><span class="na">-require</span> <span class="nx">pki</span> <span class="nx">exem.pl</span> <span class="nb">hostname</span> <span class="nx">exem.pl</span> <span class="nb">auth</span> <span class="nx">mask</span><span class="na">-source</span> -<span class="nb">listen</span> <span class="k">on</span> <span class="nx">eth0</span> <span class="nb">port</span> <span class="mi">587</span> <span class="nx">tls</span><span class="na">-require</span> <span class="nx">pki</span> <span class="nx">exem.pl</span> <span class="nb">hostname</span> <span class="nx">exem.pl</span> <span class="nb">auth</span> <span class="nx">mask</span><span class="na">-source</span> - -<span class="err">##</span> <span class="nx">Aliases</span> -<span class="nb">table</span> <span class="nx">aliases</span> <span class="nb">file</span><span class="p">:/</span><span class="nx">etc</span><span class="p">/</span><span class="nx">aliases</span> - -<span class="err">#</span> <span class="nx">coming</span> <span class="nb">from</span> <span class="nx">amavisd</span><span class="p">,</span> <span class="nb">checked</span> <span class="nb">for</span> <span class="nx">spam</span><span class="p">/</span><span class="nx">malware</span> -<span class="nb">listen</span> <span class="k">on</span> <span class="nx">lo</span> <span class="nb">port</span> <span class="mi">10025</span> <span class="kt">tag</span> <span class="nx">Filtered</span> -<span class="err">#</span> <span class="nx">coming</span> <span class="nb">from</span> <span class="nx">amavisd</span><span class="p">,</span> <span class="nx">signed</span> <span class="k">with</span> <span class="nx">DKIM</span> -<span class="nb">listen</span> <span class="k">on</span> <span class="nx">lo</span> <span class="nb">port</span> <span class="mi">10027</span> <span class="kt">tag</span> <span class="nx">Signed</span> - -<span class="err">##</span> <span class="nx">Receiving</span> -<span class="err">#</span> <span class="k">if</span> <span class="nx">the</span> <span class="p">(</span><span class="nx">incoming</span><span class="p">)</span> <span class="nx">mail</span> <span class="nx">has</span> <span class="nx">been</span> <span class="nx">through</span> <span class="nx">amavisd</span><span class="p">,</span> <span class="nx">then</span> <span class="nx">we</span> <span class="nx">can</span> <span class="nx">deliver</span> <span class="nx">it</span> -<span class="nb">accept</span> <span class="nx">tagged</span> <span class="nx">Filtered</span> <span class="nb">for</span> <span class="nb">any</span> <span class="nx">alias</span> <span class="o">&lt;</span><span class="nx">aliases</span><span class="o">&gt;</span> <span class="nx">deliver</span> <span class="k">to</span> <span class="nx">lmtp</span> <span class="s2">&quot;/var/run/dovecot/lmtp&quot;</span> -<span class="err">#</span> <span class="nx">we</span> <span class="nx">directly</span> <span class="nx">tranfer</span> <span class="nx">incoming</span> <span class="nx">mail</span> <span class="k">to</span> <span class="nx">amavisd</span> <span class="k">to</span> <span class="nx">be</span> <span class="nb">checked</span> -<span class="nb">accept</span> <span class="nb">from</span> <span class="nb">any</span> <span class="nb">for</span> <span class="nx">domain</span> <span class="s2">&quot;exem.pl&quot;</span> <span class="nx">relay</span> <span class="nx">via</span> <span class="s2">&quot;smtp://localhost:10024&quot;</span> -<span class="err">#</span> <span class="nx">we</span> <span class="nx">have</span> <span class="k">to</span> <span class="nx">put</span> <span class="nx">these</span> <span class="n">lines</span> <span class="k">in</span> <span class="nx">this</span> <span class="k">order</span> <span class="k">to</span> <span class="nx">avoid</span> <span class="nx">infinite</span> <span class="nx">loops</span> - -<span class="err">##</span> <span class="nx">Sending</span> -<span class="err">#</span> <span class="k">if</span> <span class="nx">the</span> <span class="p">(</span><span class="nx">outgoint</span><span class="p">)</span> <span class="nx">mail</span> <span class="nx">has</span> <span class="nx">been</span> <span class="nx">through</span> <span class="nx">amavisd</span><span class="p">,</span> <span class="nx">then</span> <span class="nx">we</span> <span class="nx">can</span> <span class="nx">deliver</span> <span class="nx">it</span> -<span class="nb">accept</span> <span class="nx">tagged</span> <span class="nx">Signed</span> <span class="nb">for</span> <span class="nb">any</span> <span class="nx">relay</span> -<span class="err">#</span> <span class="nx">we</span> <span class="nx">tranfer</span> <span class="nx">the</span> <span class="nx">outgoing</span> <span class="nx">mail</span> <span class="k">to</span> <span class="nx">amavisd</span> <span class="k">to</span> <span class="nx">be</span> <span class="nx">signed</span> -<span class="nb">accept</span> <span class="nb">for</span> <span class="nb">any</span> <span class="nx">relay</span> <span class="nx">via</span> <span class="s2">&quot;smtp://localhost:10026&quot;</span> -<span class="err">#</span> <span class="nx">same</span><span class="p">,</span> <span class="nx">we</span> <span class="nx">have</span> <span class="k">to</span> <span class="nx">put</span> <span class="nx">these</span> <span class="n">lines</span> <span class="k">in</span> <span class="nx">this</span> <span class="k">order</span> <span class="ow">or</span> <span class="nx">infinite</span> <span class="nx">loops...</span> -</pre></div> - - -<p>Expliquons un peu ce fichier de configuration :</p> -<ul> -<li>Tout d'abord, le paragraphe nommé "Certs" contient les déclaration - d'emplacement des certificats SSL.</li> -<li>Ensuite, le paragraphe contenant les ports externes sur lesquels nous écoutons : - port 25 avec TLS optionel et ports 465 et 587 avec TLS obligatoire</li> -<li>Les alias sont définis juste après</li> -<li>Le paragraphe suivant contient les ports locaux sur lesquels nous écoutons : - 10025 (port de sortie du filtre de amavis) dont on taggue les mails sortants - comme "Filtered" et 10027 (port de sortie des mails signés par amavis) dont on - taggue les mails sortants comme "Signed"</li> -<li>Nous avons ensuite le paragraphe qui traite les mails rentrants. Si le mail - traité est taggué comme Filtered, alors il a été vérifié par amavis, et on - peut donc le transmettre au destinataire. Sinon, c'est qu'il n'a pas encore - été vérifié par amavis, donc on lui transmet pour analyse (sur le port 10024 - donc). Il est important de mettre les déclarations dans ce sens, car la - première règle qui matche l'état du paquet est appliquée. Ici, la deuxième - ligne matchant tous les mails arrivant et la première seulement ceux filtrés, - inverser leur sens voudrait dire que les mails seraient toujours renvoyés a - amavis</li> -<li>Enfin, le dernier paragraphe traite les mails sortants. De la même façon que - pour le paragraphe précédent, si le mail sortant est déjà taggué comme Signed - on le transmet au MTA du destinataire, sinon il n'a pas encore été signé par - DKIM par amavis et on le transmet donc a amavis pour qu'il le signe. Le - problème de l'ordre des lignes se pose encore, pour la même raison qu'au - dessus.</li> -</ul> -<p>Nous allons maintenant configurer dovecot. Comme nous l'avons vu, dovecot doit -écouter en LMTP via la socket <code>/var/run/dovecot/lmtp</code> et transmettre les -emails a la boite email de l'utilisateur. Il serait aussi interessant -qu'il nous permette de récuperer les mails. Pour cette configuration, on ne -mettra en place que du IMAPS. Cependant, si vous voulez mettre en place du -POP3[s], différents guides sont trouvables facilement sur internet.</p> -<p><code>/etc/dovecot/dovecot.conf</code></p> -<div class="highlight"><pre><span class="cp">## Dovecot configuration file</span> - -<span class="cp"># basic config</span> -<span class="n">info_log_path</span> <span class="o">=</span> <span class="o">/</span><span class="n">var</span><span class="o">/</span><span class="n">log</span><span class="o">/</span><span class="n">dovecot</span><span class="o">-</span><span class="n">info</span><span class="p">.</span><span class="n">log</span> -<span class="n">log_path</span> <span class="o">=</span> <span class="o">/</span><span class="n">var</span><span class="o">/</span><span class="n">log</span><span class="o">/</span><span class="n">dovecot</span><span class="p">.</span><span class="n">log</span> -<span class="n">log_timestamp</span> <span class="o">=</span> <span class="s">&quot;%Y-%m-%d %H:%M:%S &quot;</span> -<span class="n">mail_location</span> <span class="o">=</span> <span class="n">maildir</span><span class="o">:%</span><span class="n">h</span><span class="o">/</span><span class="n">mail</span> - -<span class="cp"># authentication</span> -<span class="n">passdb</span> <span class="p">{</span> - <span class="n">driver</span> <span class="o">=</span> <span class="n">pam</span> -<span class="p">}</span> -<span class="n">userdb</span> <span class="p">{</span> - <span class="n">driver</span> <span class="o">=</span> <span class="n">passwd</span> -<span class="p">}</span> - -<span class="cp"># the protocols we use</span> -<span class="n">protocols</span> <span class="o">=</span> <span class="n">imap</span> <span class="n">lmtp</span> <span class="n">sieve</span> - -<span class="cp"># ssl config</span> -<span class="n">ssl_cert</span> <span class="o">=</span> <span class="o">&lt;/</span><span class="n">etc</span><span class="o">/</span><span class="n">certs</span><span class="o">/</span><span class="n">exem</span><span class="p">.</span><span class="n">pl</span><span class="p">.</span><span class="n">cert</span> -<span class="n">ssl_key</span> <span class="o">=</span> <span class="o">&lt;/</span><span class="n">etc</span><span class="o">/</span><span class="n">certs</span><span class="o">/</span><span class="n">exem</span><span class="p">.</span><span class="n">pl</span><span class="p">.</span><span class="n">key</span> -<span class="n">ssl_cipher_list</span> <span class="o">=</span> <span class="n">HIGH</span><span class="o">+</span><span class="n">kEDH</span><span class="o">:</span><span class="n">HIGH</span><span class="o">+</span><span class="n">kEECDH</span><span class="o">:</span><span class="n">HIGH</span><span class="o">:!</span><span class="n">PSK</span><span class="o">:!</span><span class="n">SRP</span><span class="o">:!</span><span class="mi">3</span><span class="n">DES</span><span class="o">:!</span><span class="n">aNULL</span> -<span class="n">ssl</span> <span class="o">=</span> <span class="n">yes</span> - -<span class="cp">## configuring services </span> -<span class="cp"># disables imap login without SSL (yes dovecot is dumb that way)</span> -<span class="n">service</span> <span class="n">imap</span><span class="o">-</span><span class="n">login</span> <span class="p">{</span> - <span class="n">inet_listener</span> <span class="n">imap</span> <span class="p">{</span> - <span class="n">port</span><span class="o">=</span><span class="mi">0</span> - <span class="p">}</span> -<span class="p">}</span> - -<span class="n">service</span> <span class="n">lmtp</span> <span class="p">{</span> - <span class="n">unix_listener</span> <span class="n">lmtp</span> <span class="p">{</span> - <span class="n">mode</span> <span class="o">=</span> <span class="mo">0666</span> - <span class="p">}</span> -<span class="p">}</span> - -<span class="cp">## configuring protocols</span> -<span class="cp"># the dovecot lda, we set it to use sieve</span> -<span class="n">protocol</span> <span class="n">lda</span> <span class="p">{</span> - <span class="n">mail_plugins</span> <span class="o">=</span> <span class="err">$</span><span class="n">mail_plugins</span> <span class="n">sieve</span> -<span class="p">}</span> - -<span class="n">protocol</span> <span class="n">lmtp</span> <span class="p">{</span> - <span class="n">postmaster_address</span> <span class="o">=</span> <span class="n">whoever</span><span class="err">@</span><span class="n">exem</span><span class="p">.</span><span class="n">pl</span> - <span class="n">mail_plugins</span> <span class="o">=</span> <span class="err">$</span><span class="n">mail_plugins</span> <span class="n">sieve</span> -<span class="p">}</span> - -<span class="n">plugin</span> <span class="p">{</span> - <span class="n">sieve</span> <span class="o">=</span> <span class="o">~/</span><span class="p">.</span><span class="n">dovecot</span><span class="p">.</span><span class="n">sieve</span> - <span class="n">sieve_dir</span> <span class="o">=</span> <span class="o">~/</span><span class="n">sieve</span> -<span class="p">}</span> -</pre></div> - - -<p><strong>ATTENTION: Sous OpenBSD, remplacez</strong></p> -<div class="highlight"><pre><span class="n">passdb</span> <span class="p">{</span> - <span class="n">driver</span> <span class="o">=</span> <span class="n">pam</span> -<span class="p">}</span> -</pre></div> - - -<p><strong>par</strong></p> -<div class="highlight"><pre><span class="n">passdb</span> <span class="p">{</span> - <span class="n">driver</span> <span class="o">=</span> <span class="n">bsdauth</span> -<span class="p">}</span> -</pre></div> - - -<p><strong>pour identifier les utilisateurs système</strong></p> -<p>Ici aussi, voyons comment ce fichier est structuré :</p> -<ul> -<li>Tout d'abord, les configurations de base : ou iront les logs, comment formater - leur datation, et l'endroit ou seront stockés les mails des utilisateurs.</li> -<li>Nous configurons ensuite la gestion de l'authentification des utilisateurs. - Ici nous identifions les utilisateurs avec le fichier /etc/passwd et leurs - mots de passe avec PAM (ou BSDAuth)</li> -<li>Nous configurons ensuite les protocoles que nous servons. Ici, nous voulons de - l'IMAPS, du LMTP local et Sieve (qui sert pour trier les messages).</li> -<li>Nous configurons le SSL</li> -<li>Le section suivante contient la configuration des services. Nous avons en - premier lieu le service IMAP, dont la configuration sert uniquement a - désactiver IMAP. En effet, dovecot ne permet d'activer IMAPS qu'en activant - IMAP avec. Comme nous ne voulons pas d'IMAP sans SSL, nous le désactivons. - La configuration de lmtp sert a attribuer des permissions plus correctes au - fifo qu'il utilise</li> -<li>Nous configurons maintenant les protocoles, pour faire fonctionner Sieve</li> -<li>enfin, nous configurons le plugin sieve en lui indiquant quel fichier et - quel dossier utiliser pour sa configuration.</li> -</ul> -<p>Enfin, il nous reste a configurer amavis. Comme expliqué, amavis va nous servir -a deux choses : signer les emails sortants, et filtrer les emails entrants. Il -doit donc écouter sur les port 10026 pour les signatures et 10024 pour le -filtrage, et répondre respectivement sur les ports 10027 et 10025 (le tout, en -SMTP. Comme toutes les transactions se font sur le loopback, il n'y a aucun -risque a utiliser des protocoles non chiffrés. -Pour OpenBSD, pensez a copier la configuration par défaut depuis -<code>/usr/local/share/examples/amavisd-new/amavisd.conf</code> et ajoutez les -modifications nécessaires a la fin du fichier.</p> -<p><code>/etc/amavis/conf.d/99-local.conf</code> (debian) -<code>/etc/amavis.conf</code> (OpenBSD)</p> -<div class="highlight"><pre><span class="n">use</span> <span class="n">strict</span><span class="p">;</span> - -<span class="err">$</span><span class="n">enable_dkim_verification</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> -<span class="err">$</span><span class="n">enable_dkim_signing</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> -<span class="n">dkim_key</span><span class="p">(</span><span class="s">&quot;exem.pl&quot;</span><span class="p">,</span> <span class="s">&quot;main&quot;</span><span class="p">,</span> <span class="s">&quot;/etc/certs/dkim.key&quot;</span> <span class="p">);</span> - -<span class="err">@</span><span class="n">dkim_signature_options_bysender_maps</span> <span class="o">=</span> <span class="p">(</span> - <span class="p">{</span> <span class="sc">&#39;.&#39;</span> <span class="o">=&gt;</span> - <span class="p">{</span> <span class="n">ttl</span> <span class="o">=&gt;</span> <span class="mi">21</span><span class="o">*</span><span class="mi">24</span><span class="o">*</span><span class="mi">3600</span><span class="p">,</span> <span class="n">c</span> <span class="o">=&gt;</span> <span class="err">&#39;</span><span class="n">relaxed</span><span class="o">/</span><span class="n">simple</span><span class="err">&#39;</span> <span class="p">}</span> - <span class="p">}</span> -<span class="p">);</span> - -<span class="err">$</span><span class="n">inet_socket_port</span> <span class="o">=</span> <span class="p">[</span><span class="mi">10024</span><span class="p">,</span> <span class="mi">10026</span><span class="p">];</span> -<span class="err">$</span><span class="n">policy_bank</span><span class="p">{</span><span class="err">&#39;</span><span class="n">MYNETS</span><span class="err">&#39;</span><span class="p">}</span> <span class="o">=</span> <span class="p">{</span> - <span class="n">originating</span> <span class="o">=&gt;</span> <span class="mi">1</span><span class="p">,</span> - <span class="n">os_fingerprint_method</span> <span class="o">=&gt;</span> <span class="n">undef</span><span class="p">,</span> -<span class="p">};</span> - -<span class="err">$</span><span class="n">interface_policy</span><span class="p">{</span><span class="err">&#39;</span><span class="mi">10026</span><span class="err">&#39;</span><span class="p">}</span> <span class="o">=</span> <span class="err">&#39;</span><span class="n">ORIGINATING</span><span class="err">&#39;</span><span class="p">;</span> - -<span class="err">$</span><span class="n">policy_bank</span><span class="p">{</span><span class="err">&#39;</span><span class="n">ORIGINATING</span><span class="err">&#39;</span><span class="p">}</span> <span class="o">=</span> <span class="p">{</span> - <span class="n">originating</span> <span class="o">=&gt;</span> <span class="mi">1</span><span class="p">,</span> - <span class="n">allow_disclaimers</span> <span class="o">=&gt;</span> <span class="mi">1</span><span class="p">,</span> - <span class="n">virus_admin_maps</span> <span class="o">=&gt;</span> <span class="p">[</span><span class="s">&quot;root\@$mydomain&quot;</span><span class="p">],</span> - <span class="n">spam_admin_maps</span> <span class="o">=&gt;</span> <span class="p">[</span><span class="s">&quot;root\@$mydomain&quot;</span><span class="p">],</span> - <span class="n">warnbadhsender</span> <span class="o">=&gt;</span> <span class="mi">1</span><span class="p">,</span> - <span class="n">forward_method</span> <span class="o">=&gt;</span> <span class="err">&#39;</span><span class="n">smtp</span><span class="o">:</span><span class="n">localhost</span><span class="o">:</span><span class="mi">10027</span><span class="err">&#39;</span><span class="p">,</span> - <span class="n">smtpd_discard_ehlo_keywords</span> <span class="o">=&gt;</span> <span class="p">[</span><span class="err">&#39;</span><span class="mi">8</span><span class="n">BITMIME</span><span class="err">&#39;</span><span class="p">],</span> - <span class="n">bypass_banned_checks_maps</span> <span class="o">=&gt;</span> <span class="p">[</span><span class="mi">1</span><span class="p">],</span> - <span class="n">terminate_dsn_on_notify_success</span> <span class="o">=&gt;</span> <span class="mi">0</span><span class="p">,</span> -<span class="p">};</span> - -<span class="cp">#------------ Do not modify anything below this line -------------</span> -<span class="mi">1</span><span class="p">;</span> <span class="err">#</span> <span class="n">ensure</span> <span class="n">a</span> <span class="n">defined</span> <span class="k">return</span> -</pre></div> - - -<p>A nouveau, expliquons ce fichier : -- le premier paragraphe définit que nous voulons qu'amavis signe les emails - sortants, vérifie la signature DKIM des emails rentrants, et l'endroit ou se - trouve la clé privée servant a signer les emails. -- le second définit les options DKIM que nous souhaitons utiliser comme défaut. - Je vous invite a consulter la <a href="https://tools.ietf.org/html/rfc4871">RFC 4871</a> -- nous définissons ensuite les ports sur lesquels nous allons écouter, puis les - paramètres que nous utiliserons pour les emails venant de nos utilisateurs : - ils seront traités comme "originating" et nous ne vérifierons pas l'OS duquel - ils viennent. -- nous savons que les emails venants du port 10026 sont sortants, nous les - traitons donc comme tel -- le paragraphe suivant décrit le traitement que nous faisons subir aux emails - sortants : tout d'abord, nous réaffirmons qu'ils viennent bien de notre - serveur. Nous autorisons les disclaimers (voire encore une fois la <a href="https://tools.ietf.org/html/rfc4871">RFC - 4871</a>. Nous déclarons l'adresse a - prévenir en cas de spam/virus venants de notre système, et que nous voulons - être prévenus. Nous déclarons ou envoyer les mails une fois signés et filtrés, - puis qu'il est nécessaire de convertir les emails au format 7 bits avant de - les envoyer au MTA, que nous autorisons tous les types et noms de fichiers, et - les notifications de succès d'envoi. Et voila!</p> -<p>Vous avez pu remarquer qu'a aucun moment nous ne configurions ni la signature -des emails sortants ni le filtrage des emails entrants. Ces paramètres sont en -fait inclus par défaut dans amavis.</p> -<p>Il nous reste cependant quelques opérations a faire, encore. -Tout d'abord, il nous faut générer notre clé DKIM. Pour cela, il existe -différentes méthodes, j'ai personnellement utilisé opendkim (<a href="https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-dkim-with-postfix-on-debian-wheezy">un -tutorial</a>) -mais de nombreuses autre méthodes existent. -Il nous reste encore a configurer spamassassin :</p> -<div class="highlight"><pre><span class="cp">#rewrite_header Subject *****SPAM*****</span> -<span class="cp"># report_safe 1</span> -<span class="n">required_score</span> <span class="mf">2.0</span> -<span class="cp"># use_bayes 1</span> -<span class="cp"># bayes_auto_learn 1</span> -<span class="cp"># bayes_ignore_header X-Bogosity</span> -<span class="cp"># bayes_ignore_header X-Spam-Flag</span> -<span class="cp"># bayes_ignore_header X-Spam-Status</span> -<span class="n">ifplugin</span> <span class="n">Mail</span><span class="o">::</span><span class="n">SpamAssassin</span><span class="o">::</span><span class="n">Plugin</span><span class="o">::</span><span class="n">Shortcircuit</span> -<span class="cp"># shortcircuit USER_IN_WHITELIST on</span> -<span class="cp"># shortcircuit USER_IN_DEF_WHITELIST on</span> -<span class="cp"># shortcircuit USER_IN_ALL_SPAM_TO on</span> -<span class="cp"># shortcircuit SUBJECT_IN_WHITELIST on</span> -<span class="cp"># shortcircuit USER_IN_BLACKLIST on</span> -<span class="cp"># shortcircuit USER_IN_BLACKLIST_TO on</span> -<span class="cp"># shortcircuit SUBJECT_IN_BLACKLIST on</span> -<span class="n">shortcircuit</span> <span class="n">ALL_TRUSTED</span> <span class="n">off</span> -<span class="cp"># shortcircuit BAYES_99 spam</span> -<span class="cp"># shortcircuit BAYES_00 ham</span> - -<span class="n">endif</span> <span class="err">#</span> <span class="n">Mail</span><span class="o">::</span><span class="n">SpamAssassin</span><span class="o">::</span><span class="n">Plugin</span><span class="o">::</span><span class="n">Shortcircuit</span> -</pre></div> - - -<p>Comme vous pouvez le voir, les modifications se résument globalement a baisser -le required_score pour ma part.</p> -<p>Pour finir, activez les services nécessaires : opensmtpd, dovecot, amavisd, et -spamassassin, et tout devrait fonctionner parfaitement</p> -<p>Bon courage pour votre hosting de mail ensuite...</p> \ No newline at end of file diff --git a/output/index3.html b/output/index3.html deleted file mode 100644 index 1171ba5..0000000 --- a/output/index3.html +++ /dev/null @@ -1,1271 +0,0 @@ - - - - - Wxcafé - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    -
    -

    Archlinux made simple

    -
    - Date - - Fri 05 October 2012 - -
    - By - Wxcafe -
    - Category - OSes -
    - - - - -
    -

    Archlinux est réputée être une distribution Linux très complexe a -installer et a maintenir.

    -

    Je vais tenter ici de vous convaincre que ce n'est pas le cas, et -qu'elle peut se monter très intéressante et très instructive a installer -tout autant qu'a utiliser.

    -

    Il convient tout d'abord de rappeler a quels principes obéit Arch:

    -
      -
    1. -

      Le KISS : Keep It Simple and Stupid, Archlinux tente de faire des - programmes simples et utilisables par tous. Avec comme base de - simplicité les utilisateurs de LFS... Mais il n'empêche qu'avec un peu - de bonne volonté, la configuration n'est pas si compliquée!

      -
    2. -
    3. -

      La philosophie UNIX : chaque programme est prévu pour ne remplir - qu'une seule tâche. Bien entendu, cela ne concerne que les programmes - conçus pour s’insérer dans la philosophie UNIX, et les installations de - dépendances avec le gestionnaire de paquet d'Arch fonctionnent - superbement bien.

      -
    4. -
    -

    De plus, posons les bases d'Arch : le gestionnaire de paquets s'appelle -pacman, et les commandes de base sont :

    -
      -
    • -

      recherche d'un paquet :

      -
      pacman -Ss paquet
      -
      - - -
    • -
    • -

      installation d'un paquet :

      -
      sudo pacman -S paquet
      -
      - - -
    • -
    • -

      désinstallation d'un paquet :

      -
      sudo pacman -R paquet
      -
      - - -
    • -
    • -

      mise a jour de tous les paquets installés :

      -
      sudo pacman -Syu paquet
      -
      - - -
    • -
    -

    Archlinux est une distribution dite "rolling release", ce qui signifie -qu'il n'y a pas de version a proprement dites, et que les paquets se -mettent a jour en permanence, sans jamais changer la "version" d'Arch. -Il n'y a d'ailleurs qu'une seule version de l'installeur sur le site, -puisqu'une version plus ancienne n'aurait aucun sens.

    -

    Arch n'offre pas d'interface graphique par défaut : après avoir installé -le système, vous n'aurez qu'une invite de commande. Heureusement, je -vais ici vous guider a travers l'installation d'une interface graphique -(mate, le fork de gnome 2)

    -

    L'installation d'Arch se fait par le réseau, veillez a avoir une -connection WiFi ou filaire a proximité avant de suivre ce guide.

    -

    Ce guide utilise SystemV, alors qu'Arch va prochainement passer sous -systemd. N'ayant pas encore eu le temps d’expérimenter assez avec ce -dernier, je ferais un tutoriel pour passer votre Arch a systemd bientôt.

    -

    Bon, passons a l'explication de l'installation proprement dite :

    -

    Tout d'abord, téléchargeons l'iso d'arch la plus récente :

    -
    wget http://mir.archlinux.fr/iso/2012.09.07/archlinux-2012.09.07-dual.iso
    -
    - - -

    Ensuite, gravons cette image sur un disque USB :

    -
    dd if=archlinux-2012.09.07-dual.iso of=/dev/sdX
    -
    - - -

    Après reboot de la machine sur l'iso en question et choix de -l'architecture, nous sommes accueillis par un shell root.

    -

    La première chose a faire est de paramétrer le clavier :

    -
    loadkeys fr
    -
    - - -

    Puis nous pouvons passer a l'installation proprement dite. -Partitionnement :

    -
    cfdisk # cfdisk est suffisamment clair pour ne pas nécessiter d'explications
    -
    - - -

    formatage des partitions :

    -
    mkfs.ext4 /dev/sda1 # partition root
    -
    -pacman -Syu btrfs-progs && mkfs.btrfs /dev/sda2 # partition home
    -
    -mkswap /dev/sda3 && swapon /dev/sda3 # partition de swap
    -
    - - -

    Montons les partitions nouvellement créées, puis installons le système :

    -
    mount /dev/sda1 /mnt
    -
    -mkdir /mnt/home && mount /dev/sda2 /mnt/home
    -
    -dhclient eth0 # si vous utilisez une connection filaire, sinon voire http://wiki.archlinux.fr/Wifi#Configuration
    -
    -pacstrap /mnt base base-devel
    -
    -genfstab -p /mnt > /mnt/etc/fstab
    -
    - - -

    Allons prendre un café le temps que ça charge, puis installons les -quelques paquets nécessaires a notre installation et au premier -démarrage:

    -
    pacstrap /mnt syslinux btrfs-progs wireless_tools dhclient
    -
    - - -

    Maintenant, passons sur notre install toute fraîche d'Arch :

    -
    arch-chroot /mnt bash
    -
    - - -

    configurons les bases :

    -
    echo HOSTNAME > /etc/hostname
    -
    -ln -s /usr/share/zoneinfo/Europe/Paris /etc/localtime
    -
    -date MMJJhhmmAAAA
    -
    -hwclock --systohc
    -
    -vim /etc/locale.gen # Décommentez les lignes correspondant au français : fr_FR.UTF-8 et fr_FR.ISO-8859-1
    -
    -echo  'LANG="fr_FR.UTF-8"' > /etc/locale.conf
    -
    -locale-gen
    -
    -mkinitcpio -p linux
    -
    - - -

    Enfin, vérifions que syslinux est correctement configuré :

    -
    vim /boot/syslinux/syslinux.cfg # il devrait y avoir "append root=/dev/sda1"
    -
    - - -

    Si tout est correct, installons syslinux, et paramétrons un mot de passe -root :

    -
    syslinux-install_update /dev/sda -mia
    -
    -passwd root
    -
    - - -

    Et voila, l'installation est terminée! Plus qu'a quitter la session et a -redémarrer l'ordinateur!

    -
     exit
    -umount /mnt/home 
    -umount /mnt
    -reboot
    -
    - - -

    Fini!

    -

    Prenons une petite pause. La partie suivante de ce tutoriel consister en -un paramétrage des principaux services nécessaires a l'utilisation d'un -OS, disons, moyen :

    -
      -
    • -

      Installation de MATE, le gestionnaire de bureau (voir -http://mate-desktop.org/)

      -
    • -
    • -

      Installation de sudo et de networkmanager pour faire fonctionner les -composants essentiels du système sans avoir a tout activer a la main a -chaque démarrage

      -
    • -
    • -

      Installation de SLiM comme gestionnaire de login graphique, pour -présenter une interface plus accueillante que la console, et -configuration de celui-ci

      -
    • -
    • -

      Installation des principaux logiciels utiles non inclus dans mate ni -base (yaourt, chromium, thunderbird, etc...).

      -
    • -
    -

    Ce guide est bien sur optionnel, si vous souhaitez utiliser Arch avec un -gestionnaire de bureau autre que mate, ou sans, vous pouvez vous arrêter -ici.

    -

    Bon, reprenons.

    -

    Nous sommes donc sur une demande de mot de passe. Entrez donc le mot de -passe paramétré plus haut pour le root, puis retapez la commande -utilisée plus tôt pour vous connecter a internet.

    -

    Il convient d'ajouter le dépôt de MATE pour installer ce dernier, puis -d'effectuer l'action en question :

    -
    vim /etc/pacman.conf
    -
    - - -

    Ici, ajoutez les lignes suivantes :

    -
    [mate]
    -Server = http://repo.mate-desktop.org/archlinux/$arch
    -
    - - -

    Installons maintenant les paquets :

    -
    pacman -Syu mate mate-extras dbus dbus-core alsa networkmanager sudo
    -
    - - -

    Ajoutons un compte utilisateur pour utiliser les composants du système -sans tout crasher a chaque fois :

    -
    useradd -g users -G wheel,audio,optical,lp,scanner,log,power,floppy,storage,games,video -m -s /bin/bash *votrenom*
    -passwd *votrenom*
    -su *votrenom*
    -
    - - -

    Il faut maintenant éditer le fichier \~/.xinitrc pour préciser a X.org -ce que l'on veut utiliser :

    -
    echo "exec ck-launch-session mate-session" > ~/.xinitrc
    -
    - - -

    Profitons en pour ajouter les démons système au lancement :

    -
    vim /etc/rc.conf
    -
    - - -

    Ajoutez donc dbus, alsa. hwclock et networkmanager dans la section -DAEMONS (entre les parenthèses, après crond normalement)

    -
    DAEMONS=(syslog-ng network crond dbus alsa hwclock networkmanager)
    -
    - - -

    Pour éviter un reboot, il est ici possible de faire un

    -
    su
    -
    - - -

    Puis un

    -
     /etc/rc.d/dbus start && /etc/rc.d/alsa start && /etc/rc.d/networkmanager start
    -
    - - -

    Sinon, il est possible de juste redémarrer.
    -Une fois cela fait, profitez de ce moment pour vous autoriser vous même -a utiliser sudo. Loggez vous en root, et :

    -
     vim /etc/sudoers
    -
    - - -

    Décommentez la ligne qui commence par # %wheel ALL=(ALL)
    -Sauvegardez le fichier, puis, après un su *votrenom*, tentez de faire -un sudo ls /
    -Normalement, vous devriez avoir un listing du dossier /
    -Bon, maintenant, pourquoi ne pas tenter de lancer MATE?
    -C'est simple comme bonjour :

    -
     startx
    -
    - - -

    Et PAF! Voila un MATE desktop flambant neuf a configurer!
    -Avant de faire ça, retournez sur un TTY (CTRL+ALT+Fx), loggez vous, -puis installez SLiM (sudo pacman -Syu slim).
    -Configurons le:

    -
    echo "exec dbus-launch mate-session" > ~/.xinitrc && vim /etc/slim.conf
    -
    - - -

    Éditez la ligne -"sessions xfce4,icewm-session,wmaker,blackbox" de facon a -ce qu'elle ressemble a "sessions mate-session"
    -Puis ajoutez slim dans /etc/rc.conf, dans la section DAEMONS.
    -Normalement, tout devrait fonctionner!
    -Ah oui, et pour installer thunderbird, firefox, chromium, etc...

    -
    sudo pacman -Syu chromium thunderbird xchat firefox rhythmbox pidgin transmission-gtk vlc
    -
    - - -

    Voila! Et comme dirait @Spartition, c'est sale, mais qu'est-ce que c'est -bon!
    -A plus~

    -
    -
    -
    -

    Les systèmes de fichiers

    -
    - Date - - Tue 25 September 2012 - -
    - By - Wxcafe -
    - Category - Teaching -
    - - - - -
    -

    Un système de fichiers. Vous en avez surement déjà entendu parlé si vous -avec déjà installé Linux, ou formaté une clé USB. Dans ces cas, vous -connaissez surement NTFS, EXT4, ou encore FAT32.

    -

    Ces différents noms désignent en effet des systèmes de fichiers. Mais -qu'est-ce qu'un système de fichiers?

    -

    Pour comprendre cela, il faut déjà savoir ce qu'est exactement un -fichier. Un fichier est un ensemble de blocs (les blocs sont l'unité la -plus petite traitable par le matériel, ils font généralement 1 ou 4 Kio -(kibioctet), en fonction du système de fichier utilisé.), qui est -donc composé de bits, interprétés différemment en fonction du type de -fichier. Cependant, seul, le fichier n'est pas accessible, puisqu'il -n'est pas indexé, c'est a dire que l'OS ne sait pas qu'il est présent, -ou il commence ni où il s'arrête (je schématise un peu, mais c'est -l'idée).

    -

    Ainsi, le système de fichier donne un cadre et un standard à -l'arborescence des fichiers. Par exemple, le système de fichier ext4 -utilise des blocs de 1 Kio, et de ce fait, toutes les partitions de -disque dur formatées en ext4 peuvent prendre comme unité de base 1 Kio -et mesurer la taille des fichiers en blocs de cette façon. Les systèmes -de fichiers nécessitent l'inclusion de drivers dans le noyau pour -pouvoir être pris en compte.

    -

    Le noyau linux inclut par défaut les drivers pour ext2/3/4, btrfs, -reiserfs, ntfs, fat16/32 et hfsx, ce qui permet de monter a peu -près tout type de partition récente.

    -

    Il convient de bien faire la différence entre le système de fichier et -l'arborescence des fichiers. Si l'arborescence des fichiers est en fait -une entité virtuelle englobant la racine / et tous les fichiers et -dossiers contenus dedans, le système de fichier permet a votre système -GNU/Linux de distinguer les différents fichiers composants cette -arborescence.

    -

    Détaillons maintenant les types de fichiers les plus répandus:

    -
      -
    • -

      FAT16/32 : Les systèmes de fichier FAT (pour File Allocation Table, - soit la définition d'un système de fichier), remplissent leur rôle le - plus simplement possible. Ne permettant (historiquement) que des noms de - 8 caractères (plus extension de trois caractères), ni chiffrement, ni - système de distinction d'utilisateurs (DOS étant un système - mono-utilisateur), Il fut décliné par microsoft en FAT16 et en FAT32, - utlisants respectivement des blocs de 16 et 32 Kio.

      -
    • -
    • -

      NTFS :. Le NTFS (pour New Technology File System, rapport a Windows - NT) est un système de fichier qui est apparu avec Windows XP, et qui - était une mise a jour nécessaire du FAT32 vieillissant. NTFS ajoute a - FAT différentes capacités dont le chiffrement, les liens symboliques, la - compression et les quotas pour les volumes, permettant de limiter la - taille maximum occupée dans une partition.

      -
    • -
    • -

      ReFS : ReFS est le système de fichiers introduit dans Windows Server 2012. - Ne différant pas énormément de NTFS, je le mentionne principalement - parce qu'il est prévu qu'il soit le défaut pour Windows 8. - Il apporte principalement la redondance, c'est a dire que chaque - fichier possède une somme de contrôle en 64 bits stockée dans un fichier - séparé pour éviter les corruption de disque.

      -
    • -
    • -

      Ext2/3/4 : les systèmes ext (extended) sont les systèmes de fichiers - les plus utilisés sous linux pour le grand public. (Je traiterai ici - d'ext4, puisque c'est le plus récent.) Il dispose de toutes les - fonctions que l'on peut attendre d'un système de fichiers moderne, ni - plus ni moins. Ainsi, ext4 est un système de fichiers journalisé, - acceptant les capacités jusqu’à 1 Exioctet, et utilise l'allocation dite - "par extent", ce qui signifie que la création d'un fichier réserve - automatiquement les zones contiguës de façon a réduire la fragmentation.

      -
    • -
    • -

      ReiserFS : ce système de fichiers, créé par le (légèrement mégalo) - programmeur Hans Reiser, est a retenir pour avoir été le premier système - de fichiers journalisé, et accepte un nombre de fichiers de l'ordre des - 4 milliards. Le but de ce système est de créer un système polyvalent, a - la fois système de fichiers et base de donnée (de part sa grande - capacité en terme de nombre de fichiers et de l'utilisation d'un - journal.)

      -
    • -
    • -

      Btrfs : ce système est l'évolution logique d'ext4, et inclut lui aussi - l'allocation par extent, mais possède de plus un système de - sous-volumes, qui permet d’accéder a plusieurs arborescences de fichiers - montées en même temps (système pratique et utile pour faire des - snapshots de systèmes.). Il permet aussi de redimensionner a chaud la - taille des partitions, en les agrandissant ou en les rétrécissant, est - compatible avec LVM, a un système de checking intégré (btrfsck), et - utilise un algorithme de compression appelé LZ4, qui accélère les accès - aux fichiers compressés d'environ 30% par rapport a LZO, le système - utilisé dans ext4.

      -
    • -
    • -

      HFS+ : le système de fichier présent sur tous les macs a des capacités - relativement standards, et ressemble énormément a l'ext3. Il supporte - cependant les liens directs vers les dossiers, fonction rare sur les - systèmes de fichiers actuels. Il est possible qu'il évolue a nouveau - dans les années a venir

      -
    • -
    • -

      ZFS : Ce système de fichier, venu de Solaris mais utilisable par Linux - et *BSD, est, tel Btrfs, a la fois un système de fichier et un - remplaçant/compatible avec LVM, C'est un système de fichiers conçu - principalement pour les serveurs, et il intègre ainsi un système de - redondance des données pour éviter les corruptions, un mode RAID-Z - (apparenté au RAID5), des checks d’intégrité en continu, des snapshots, - etc...

      -
    • -
    -

    Comme on a pu le voir, les systèmes de fichiers disponibles sont -légions. Cependant, le plus adapté a Linux et a une utilisation grand -public aujourd'hui est probablement Btrfs. Malheureusement, ce dernier -n'est pas aujourd'hui proposé par défaut sur les distributions les plus -utilisées, au profit de l'ext4, qui commence a accuser son âge...

    -

    Les systèmes de fichiers, s'ils peuvent ne pas sembler primordiaux au -fonctionnement du système, sont en fait de première importance, et ce -choix ne devrait pas être laissé au hasard, et être mis a jour -régulièrement (pour éviter les failles de sécurité...)

    -

    Bon courage, et bon choix pour votre prochain système.

    -
    -
    -
    -

    Le Quenya - Épisode ø

    -
    - Date - - Tue 18 September 2012 - -
    - By - Wxcafe -
    - Category - Language -
    - - - - -
    -

    Le Quenya est, pour ceux qui ne connaissent pas (comme moi jusqu’à il y -a peu...), le nom que donnait Tolkien au dialecte principal parlé par -les Elfes dans les différentes œuvres de l'auteur, dont Le Seigneur des -Anneaux, le Hobbit, ou encore le Silmarillion. Il faut se rendre compte -avant de commencer cet article que l'une des œuvres les plus -impressionnantes de Tolkien, si ce n'est la plus grande, est -l'impressionnant travail linguistique passé sur les différentes langues -présentes dans son œuvre littéraire : L'elfique, qui est donc le quenya, -la langue des nains, qui est appelé le khazalide, etc.

    -

    En effet, a contrario des "langues" développées dans d'autres œuvres littéraires -telles Eragon ou Harry Potter, où l'auteur-e se contente de lier un mot -de français (ou d'anglais) a un mot de sa "langue", les langues de -l'oeuvre de Tolkien sont des langues complètes. Elles possèdent des -racines logiques, des systèmes de grammaire et de conjugaison propres, -une logique inhérente dans la prononciation ou l'orthographe, et ainsi -de suite.

    -

    Un véritable rêve de linguiste donc, puisque ces langues sont -pratiquement entièrement documentées par Tolkien lui même (voir -l'appendice E du SdA, particulièrement instructif a ce sujet.)

    -

    J'ai donc décidé d'apprendre le Quenya récemment, et je vais donc poster -ici des résumés des cours que je suis ( disponibles ici , une -traduction en français est disponible la en pdf ), et des infos ici -toutes les deux semaines.

    -

    Si ce sujet vous intéresse, le compte twitter @Quenya101 poste -régulièrement des informations sur le sujet, et pour plus d'infos sur le -sujet, vous pouvez en trouver par ici.

    -

    Et en tant que première leçon, vous pouvez apprendre que ce mot que vous -avez prononcé comme le Kenya tout le long de cet article se prononce en -fait [Kwenïa], ou bien Qwenya!

    -
    -
    -
    -

    Update a propos du blog

    -
    - Date - - Tue 18 September 2012 - -
    - By - Wxcafe -
    - Category - Notes -
    - - - - -
    -

    Bonsoir! Un petit post pour faire un peu le point sur ce blog.
    -Comme vous avez pu le remarquer, j'ai un peu de mal a tenir les délais -que je m'étais fixés pour ce blog (un post tous les 8 jours), et après y -avoir un tantinet réfléchi, ceci est du a deux points principaux :

    -
      -
    • -

      Tout d'abord, le manque d'inspiration, tout simplement. C'est assez -compliqué de trouver des sujets intéressants liés a l'informatique, et -qui méritent un article. Je vous invite d'ailleurs a me suggérer des -sujets via les commentaires ou twitter (@Wxcafe)

      -
    • -
    • -

      Ensuite, le délai de 8 jours est trop court pour me permettre de faire -les recherches nécessaires, tout en manageant mes cours et mon temps -libre.

      -
    • -
    -

    A cause de cela, j'ai pris la décision de changer le rythme de parution -des articles a un *minimum* d'un post tous les 10 jours. Bien entendu, -si j'ai de l'inspiration en trop, plus de posts sont envisageables.

    -

    Voila. A part ca, je tiens a vous remercier de me lire (c'est assez -étonnant de voir ca...), et je précise que je vais ajouter une page -About Me, qui bien entendu rassemblera des informations sur moi, ma vie, -mon oeuvre :P

    -

    Ceci dit, je vais bosser un peu sur le prochain article.

    -

    A plus tard!

    -
    -
    -
    -

    Introduction a bash en tant que language de programmation.

    -
    -

    L’interpréteur de commandes bash (Bourne Again SHell) -est possiblement le shell le plus connu, notamment grâce a son -intégration en tant que shell par défaut dans les distributions Linux -les plus répandues (Debian - Ubuntu, Fedora, OpenSUSE, Mandriva - -Mageia, etc...).

    -

    Cependant, il n'est souvent connu qu'en tant qu’interpréteur de -commande. Alors qu'en réalité, le bash est un langage de programmation -(presque) complet! Ainsi, il intègre les structures de contrôle -habituelles ( pour mémoire, les structures de contrôle comprennent les -conditions (les ifs), les boucles (les while), et les choix (les case), -entre autres.), et est donc ce que l'on pourrait appeler un langage de -script, interprété, de la même façon que python, a la difference près -qu'il contient un prompt (un système d'entrée de commande interactif) -bien plus complet et développé que python.

    -

    Cependant, les programmes en bash ne sont executables que dans un -environnement de type UNIX, et donc pas sous Windows (cygwin -(cygwin.com) propose ceci dit un système permettant d'utiliser bash sous -windows. Il faut malgré tout convenir que cet environnement est bien -plus compliqué a manipuler, et globalement ne permet pas d'acceder a des -portages de qualité satisfaisante.)

    -

    Ainsi, il est possible de créer des fichiers .sh, contenant des -instructions bash mises a la suite (de la même façon qu'un script BATCH -Windows .bat), et faisant appel autant aux commandes internes de bash, -aussi bien que les commandes externes mises en place par les programmes -installés sur le système, exactement comme dans une invite de commande. -Ainsi, pour appeller firefox, la commande 'firefox' lancera le petit -panda roux directement dans la boite magique, tandis qu'un if -[condition] suivi d'un then (quelque chose) lancera le fameux quelque -chose suscité si la condition est vérifiée. Un peu comme en C, quoi.

    -

    De cette façon, et avec quelques informations et connaissances, il est -facile de comprendre le fonctionnement de la programmation en bash. -Quelques exemples commentés:

    -
     1
    - 2
    - 3
    - 4
    - 5
    - 6
    - 7
    - 8
    - 9
    -10
    -11
    -12
    -13
    #!/bin/bash 
    -# La ligne du dessus est très importante, c'est elle qui dit a bash quel doit être 
    -# l'interpreteur des commandes écrites dans ce script. Ici, on dit a bash d'interpréter 
    -# lui même les commandes comprises dans ce script. On aurait tout de fois pu lui faire 
    -# executer du python, par exemple, en mettant #!/usr/bin/python a la place.
    -echo "this is a test of bash as a simple script manager" # echo est une commande d'affichage de message.
    -echo "what's your name, user?" 
    -read your_name # la commande read permet de demander a l'utilisateur de donner une 
    -# information, stockée dans la variable en paramètre. 
    -echo $your_name "is your name" # echo permet aussi d'afficher la valeur de variables. 
    -# Ici, on renvoie la variable remplie précédemment, suivie d'un message. 
    -exit # cet appel a exit n'est pas obligatoire, mais donne un aspect plus 
    -# propre au code. Il ne quittera pas la session de terminal, cependant.
    -
    -
    - -

    Voila. Ce script bash ne sert pas a grand chose, mais il a le mérite -d'être clair quand aux capacités et a la simplicité du bash en tant que -language de programmation. Alors en effet, nous n'avons ici absolument -pas utilisé les capacités de bash en lui même, et n'avons fait que le -renvoyer a des programmes externes (sauf read, il est vrai). Voyons -maintenant la syntaxe de bash quand il s'agit d'utiliser les structures -de contrôle:

    -
     1
    - 2
    - 3
    - 4
    - 5
    - 6
    - 7
    - 8
    - 9
    -10
    #!/bin/bash 
    -echo "welcome to this second bash program. would you please kindly enter the name of the machine you're running this on?" 
    -read host_name 
    -if [ $host_name == $HOSTNAME ] ## voici la syntaxe du if. Attention a bien penser a mettre les espaces avant la première variable, et après la seconde. La variable $HOSTNAME ici utilisée est une variable présente par défaut sur le système. 
    -then echo "you told the truth!" 
    -fi ## le fi est la commande fermant le if, tout comme le EndIf en basic. C'est un peu vieillot, mais important en bash. 
    -if [ $host_name != $HOSTNAME ] ## l'opérateur != est l'inverse de ==, il vérifie donc si les deux variables ne sont pas les mêmes. 
    -then echo "you lied!" 
    -fi 
    -exit
    -
    -
    - -

    Voila un petit programme permettant d'apprendre la syntaxe du if en -bash. comme vous pouvez le voir, le language est plutôt lite, et la -structure if n'est pas très difficile a prendre en main.

    -

    Passons maintenant au while:

    -
    1
    -2
    -3
    -4
    -5
    -6
    -7
    #!/bin/bash
    -echo "what is your name?"
    -read name
    -while [ 1 < 10 ]    ## le while se présente sous la forme while (truc); do (machin); done. Les [] sont en fait des programmes differents, inclus dans bash.
    -do echo "i love" $name
    -done
    -exit
    -
    -
    - -

    Ce petit programme permet d'observer les bases de while (qui est la -boucle de base en bash).

    -

    Le troisième opérateur de bash est case. Voyons:

    -
     1
    - 2
    - 3
    - 4
    - 5
    - 6
    - 7
    - 8
    - 9
    -10
    -11
    -12
    -13
    -14
    -15
    -16
    -17
    -18
    -19
    -20
    -21
    -22
    -23
    -24
    #!/bin/bash
    -echo "please enter a number between one and five"
    -read number
    -case $number in 
    -1)
    -echo "the choosen number was one"
    -;;
    -2)
    -echo "the choosen number was two"
    -;;
    -3)
    -echo "the choosen number was three"
    -;;
    -4)
    -echo "the choosen number was four"
    -;;
    -5)
    -echo "the choosen number was five"
    -;;
    -*)
    -echo "this number is not correct"
    -;; 
    -esac
    -exit
    -
    -
    - -

    case est un opérateur plus complexe a utiliser a bon escient, et sert a -faire des ifs multiples sans avoir a taper des dizaines de lignes de -code.
    -(pour ceux qui auraient du mal avec cet opérateur, il faut comprendre -que le code vérifie chacune des conditions : le 1) est validé si la -valeur de \$number est 1, le 2) est validé si cette valeur est 2, etc.. -le *) désigne toutes les valeurs, et est donc validé si aucune autre -valeur n'a précédemment acceptée.

    -

    Quelques notions manquent ici:
    -- les nombres aléatoires sont générés par un appel a la variable -\$RANDOM, qui renvoie un nombre aléatoire entre 0 et 32767 (un entier a -16 bits donc). il est possible de faire des invocations a des nombres -aléatoires plus grands, mais les méthodes permettant de faire cela sont -plus complexes, et je ne les aborderai donc pas ici.
    -- comme vous avez pu le constater, les variables sont désignées en tant -que telles par l'utilisation d'un symbole \$ au début de leur nom. -Ainsi, echo number renverra "number", tandis que echo \$number renverra -le résultat de la variable \$number.
    -être utilisées dans un programme bash.
    -- comme vous avez pu le constater, les commandes doivent tenir en -théorie en une ligne. Cependant, le caractère \ permet de retourner a -la ligne en faisant considérer a bash qu'il s'agit de la même ligne.

    -

    Globalement, il faut admettre que bash n'a pas vocation a être un -langage de programmation extrêmement développé. Sans framework -graphique, avec peu de manières d'utiliser de grandes variables, ou -encore une gestion de la mémoire risible, bash n'a rien d'un langage de -développement professionnel.
    -Cependant, le simple fait qu'il soit considéré comme un langage de -programmation a part entière font de lui un langage de script d'une -puissance incontestable, et sa simplicité et sa grande popularité font -de lui un langage de choix pour apprendre la programmation simplement et -sans trop se prendre la tête.

    -

    J'espère que cet article aura été utile a certain-e-s, et je vous -souhaite bonne chance dans votre découverte de la programmation (n'allez -pas voir ceux qui font de l'orienté objet, c'est des méchants :3)

    -
    -
    -
    -

    Les différentes couches d'un système d'exploitation

    -
    - Date - - Thu 06 September 2012 - -
    - By - Wxcafe -
    - Category - Teaching -
    - - - - -
    -

    Étant utilisateur plus ou moins fidèle de GNU/Linux depuis quelques -années (plus ou moins, parce que j'ai toujours un Windows en dual boot, -principalement pour les jeux (possiblement plus pour longtemps, avec -l'arrivée de Steam pour Linux... ) ), je commence a connaître plus ou -moins bien mon système. Or il y a plusieurs choses a savoir sur les -systèmes d'exploitation, et celle dont je vais parler aujourd'hui, c'est -le système de couches.

    -

    Un système d'exploitation (de type UNIX, \<troll>enfin un vrai système quoi. -\</troll>) incorpore plusieurs systèmes de couches.

    -

    Ainsi, Linux (le noyau) a commencé en étant un kernel monolithique, -c'est a dire que tous les composants sont intégrés au kernel. Ce qui -signifie que rien ne peut être ajouté au noyau sans recompiler celui ci. -Or, quand on sait que le noyau comprend entre autres les drivers du -matériel et des systèmes de fichier, cela peut poser des problèmes quand -a la taille du kernel et a la licence libre de ce dernier.

    -

    Depuis un certain temps, le kernel linux est devenu un kernel modulaire, ce qui -signifie que des modules peuvent être chargé a tout moment en cours -d’exécution, ce qui permet l'utilisation de nouveaux systèmes de -fichiers a chaud, ou l'insertion de matériel et l'installation de -drivers sans interrompre l’exécution du système (Windows utilise un -système de fausse installation de drivers pour le matériel externe, et -un système de pré-installation des drivers pour les périphériques dits -"plug and play")

    -

    Après le noyau intervient le système. Or, au tous premiers instants du -boot, les systèmes GNU/Linux utilisent un système permettant de limiter -l'utilisation de ressources systèmes si elles ne sont pas nécessaires, -et incorpore ainsi un système dit de "runlevels"

    -

    Ainsi, au runlevel 0, le système s'éteint après avoir booté. Ainsi, ce -runlevel permet de tester le bon démarrage du système sans avoir a -effectuer de manipulation pour le ré-éteindre

    -

    Le runlevel 1 est appelé mode single user, et c'est un nom plutôt adapté -étant donné que ce runlevel donne accès a un système en étant -automatiquement loggé en tant que root, avec tous les autres -utilisateurs désactivés, de même que tous les systèmes de réseaux

    -

    Le runlevel 2 est appelé mode multi user, et vous mets en face d'un -système classique. en ligne de commande, mais avec tous les systèmes de -réseau désactivés.

    -

    Le runlevel 3 est le même que le 2, mais avec les systèmes de réseaux -activés.

    -

    Le runlevel 4 n'est pas officiellement défini, et est censé être -activable en fonction des besoins de l'utilisateur. Sur la plupart des -distributions grand public, ce runlevel est lié au...

    -

    Runlevel 5! Multi-user, networking, with working GUI! c'est le système -tel que vous le connaissez, avec l'interface graphique et le système de -login graphique.

    -

    Le runlevel 6, enfin, est le bien nommé "reboot", qui reboot la machine -quand il devient le runlevel courant.

    -

    (Il est a noter que Debian, et donc toutes les distribs qui en sont -dérivées, ne font pas de distinction entre les differents runlevels du 2 -au 5. Ainsi, Ubuntu fonctionne par défaut au runlevel 2, avec un login -et une interface graphique, et un mode réseau fonctionnel, bref avec des -fonctionnalités qui ne sont normalement disponibles que sous le runlevel 5.)

    -

    Il est possible de changer de runlevel grâce a la commande runlevel -(oui, c'est évident...)

    -

    Les systèmes Linux utilisent aussi un système dit de SandBox , qui en -informatique est un système permettant d'isoler les processus les uns -des autres. Ainsi, la pile réseau, qui est le système auquel les -différents processus envoient les différents paquets qui doivent sortir -de la machine , et qui redistribue ces paquets, est isolée du reste du -système, en cela qu'aucun des autres processus ne peuvent modifier cette -pile hors du runlevel 1 ou 2.

    -

    De la même façon, le navigateur chrom/ium fait fonctionner tous les -onglets, ainsi que toutes les extensions, dans des processus différents. -Certaines distributions linux implémentent un système de cette sorte -pour toutes les applications, ou seulement pour certaines. ainsi Chakra -Linux a un système d'installation d'applications dans des disques -virtuels, ce qui permet une sécurité totale du processus.

    -

    Voila, j'espère vous en avoir appris un peu sur le fonctionnement des -différentes couches de linux, et j'espère que cet article vous poussera -a tester un peu votre système et a vous amuser avec les différents -runlevels

    -
    -
    -
    -

    La programmation expliquée simplement

    -
    - Date - - Mon 27 August 2012 - -
    - By - Wxcafe -
    - Category - Teaching -
    - - - - -
    -

    Salut!
    -Tout d'abord, je tiens a m'excuser de ne pas avoir eu le temps d'écrire -récement, mais j'ai eu la chance d'avoir un PC a monter, donc j'ai passé -pas mal de temps assez occupé.

    -

    Enfin, après un certain temps a farfouiller au millieu des connecteurs -SATA et a apprendre que, oui, l'alimentation sert aussi pour les disques -durs, je suis de retour pour un court article.
    -Du coup, je m'étais dit que j'allais reprendre sur le thème de -l'informatique expliquée au grand public, en tentant d'aller un peu plus -loin que la dernière fois sur le thème de la programmation
    -Ce qu'il faut comprendre, c'est la facon dont fonctionne un ordinateur. -Si a peu près tout le monde sait que "les ordinateurs, ils ne -comprennent que les 1 et les 0!", peu de gens savent comment cela -fonctionne en détail.

    -

    Si vous êtes sur ce blog, il y a pas mal de chance que vous ayez déjà -des notions de base en informatique. Ainsi, vous savez surement que les -ordinateurs fonctionnent avec des programmes, qui sont composés de -code.
    -Ainsi, il faut comprendre que le code (source) est "compilé" en un -fichier "binaire". Un fichier binaire est un fichier comprenant les -instructions telles qu’exécutées par le processeur, et donc absolument -illisible pour un humain.

    -

    La compilation est le processus qui transforme le code source en -binaire executable. Les binaires ont, sous Windows, l'extension .exe, -tandis que sous les systèmes UNIX-like, ils n'ont pas d'extension -particulière.
    -Ceci étant dit, il faut comprendre que certains langages sont plus -proches que d'autres du langage processeur, les langages les plus -proches sont dits de "bas niveau". Les langages les plus éloignés sont -donc dits de haut niveau.

    -

    Par exemple, l'assembleur est l'un des languages de plus bas niveau, -tandis que python par exemple est un langage de plus haut niveau. Les -langages de haut niveau sont souvent bien plus simples a comprendre et a -apprendre que les langages de bas niveau

    -

    Ainsi, en C, un langage de niveau relativement bas, pour afficher -"hello world" sur l'écran, le code nécessaire est :

    -
    #include 
    -void main() {
    -printf("hello world");
    -return 0;
    -}
    -
    - - -

    le même programme en python s'écrit :

    -
    print "hello world"
    -
    - - -

    et n'a pas besoin d'être compilé , puisqu'il peut être intepreté -directement.

    -

    Python utilise en effet un système similaire a Java en ayant un -interpréteur dit "runtime" ou "temps réel", qui interprète le programme -sans le compiler. Java utilise un système légèrement différent, puisque -le code a besoin d'être compilé, mais est interpreté par un interpréteur -et non par le processeur.

    -

    Cette méthode permet le fameux "code once, run everywhere", ce qui -signifie que le même code est exécutable sur quasiment tous les systèmes -d'exploitation (en fait, tous ceux sur lesquels l’interpréteur est -disponible.)

    -

    Voila, je vous laisse sur le fonctionnement de Java et de Python, et je -vais me coucher.
    -A bientôt!

    -
    -
    -
    -

    GNU/Linux pour les non technophiles, ou l'OS libre pour votre grand-mère

    -
    - Date - - Wed 22 August 2012 - -
    - By - Wxcafe -
    - Category - Teaching -
    - - - - -
    -

    GNU/Linux est un vaste et extraordinaire territoire technologique, mais -je ne vais pas m'attarder ici sur les aspects profondément techniques de -ce territoire pour faire plutôt une sorte d'introduction a ce qu'est -vraiment GNU/Linux, pour les gens n'ayant aucune ou très peu de -connaissances en informatique.

    -

    GNU/Linux, que j’abrégerai ici en Linux pour plus de simplicité, est un -Système d'Exploitation. Un système d'exploitation est, pour simplifier, -un ensemble d'outils informatiques qui vous permettent d'utiliser votre -ordinateur, ainsi, Windows est un système d'exploitation. L'abréviation -de système d'exploitation (Operating System en anglais) est OS. Les 4 -principaux OS existants aujourd'hui sont Windows, Mac OS, GNU/Linux, et -Solaris. Les trois derniers sont issus d'un autre système, plus ancien, -nommé UNIX.

    -

    De ce fait, on pourrait penser que Linux remplace complètement Windows -une fois installé, et comprend une interface graphique, et toutes sortes -d'utilitaires permettant a l'utilisateur d'utiliser le système (sous -Windows, pensez a l'explorateur de fichiers, ou a Internet Explorer. -Pour l'interface graphique, pensez a... Pensez que votre système affiche -autre chose que des lignes de commande.) Or non, une fois installé, -Linux en lui même ne vous afficherait aucune interface graphique, et -s'il est effectivement livré avec des utilitaires, ils ne sont que des -programmes en ligne de commande. Autant les utilisateurs avancés sauront -s'en servir, et pourront argumenter que c'est plus efficace ou plus -rapide, autant les utilisateurs basiques préfèrent une interface -graphique. Alors comment en obtenir une?

    -

    Ici, il convient de faire une précision importante. Si il n'existe -qu'une seule version de Windows, ou de Mac OS, il existe en fait -plusieurs centaines de "versions" différentes de Linux. Appelées -distributions, ces dernière sont développées par des groupes -complètement séparés, et se basent sur le fait que Linux soit -entièrement placé sous licence libre (ce qui leur permet de l'utiliser a -leur guise, a condition que leur travail soit lui aussi placé sous -licence libre). De ce fait, de nombreuses distributions existent et se -développent en parallèle. On peut ainsi citer Debian, qui est l'une -des distributions les plus importantes, ou encore Ubuntu, qui est -l'une des plus connues et des plus simples a utiliser.

    -

    Ainsi, ces distributions intègrent une interface graphique. Cependant, -grâce a la liberté dont bénéficient les développeurs sous Linux, il -existe de nombreuses interfaces graphiques différentes : Unity, la -nouvelle interface d'Ubuntu; GNOME , une interface qui vise a la -simplicité; ou encore KDE, une interface utilisateur ressemblant a -Windows 7.

    -

    Ainsi, le choix astronomique de distributions Linux a bien un sens : -chacune d'entre elle intègre des outils différents. Par exemple, Debian -intègre GNOME 2, qui est l'ancienne version de GNOME, ce qui la rend -particulièrement stable. Ubuntu intègre Unity, ce qui en fait une -distribution particulièrement intuitive. Linux Mint intègre Cinnamon, -qui est une version dérivée de GNOME 3, ce qui permet encore une autre -expérience. Et Arch Linux n'intègre pas d'interface graphique du tout, -ce qui permet a l'utilisateur de choisir entre les multiples interfaces -existantes.

    -

    Ce qu'il est important de retenir de cela, c'est que Linux est un OS -complètement libre, ce qui signifie que n'importe qui peut modifier et -utiliser tout le code de Linux gratuitement et comme il l'entend. Ainsi, -Linux est un OS qui est véritablement créé par des passionnés, pour tous -et toutes. Surtout, il convient de retenir que Linux n'est pas compliqué -a utiliser, ni a installer. Windows et Mac OS ne le sont pas non plus. -Cependant, Linux donne la possibilité a l'utilisateur de le rendre -affreusement complexe, mais aussi de le rendre adapté a ses besoins, -quels que soient ceux ci. Et c'est la que réside l'incroyable puissance -de ce Système d'Exploitation. Il est extraordinairement adaptable.

    -

    N'hésitez donc pas a le présenter a vos proches, même s'ils ne sont pas -technophiles. Ils pourraient adorer, et peut être même le devenir :)

    -

    A bientôt!

    -
    -
    -
    -

    Débuts, présentation, etc...

    -
    - Date - - Sat 18 August 2012 - -
    - By - Wxcafe -
    - Category - Notes -
    - - - - -
    -

    Bonjour!

    -

    Je m'appelle Wxcafé, et ça fait pas mal de temps que je sévis sur -Twitter, mais aussi sur IRC (Je traîne pas mal sur -irc.freenode.net/##nolife et #debian-fr)

    -

    J'ai 17 ans, je suis donc étudiant (bac général), je vis a Paris, et je -fais partie de ce genre de personne qui sont capables d'investir tout -leur temps et leur énergie a s’intéresser a un sujet en particulier, et -qui ne peuvent pas vivre sans leurs passions, avec une petite différence -cependant, qui est que je m’intéresse a plusieurs choses : -l'informatique, qui est un champ tellement large qu'on peut passer une -vie a apprendre des choses dessus, et plus particulièrement à -l'informatique avancée (Noyaux dérivés d'UNIX et de Linux, outils libres -{bien que n'étant pas un barbu intégriste [ceci est un troll assumé. Les -trolls seront a partir de maintenant indiqués avec le tag [tr]] du -libre, je préfère utiliser de l'open-source si c'est possible}, -programmation en C, python et java, etc...) , mais aussi a -l’électronique.

    -

    Dans un tout autre registre, je m’intéresse aussi -beaucoup aux différents aspects du féminisme et des égalités sexuelles -(anti-homophobie/transphobie/biphobie/etc , anti-sexisme, et cætera) , -et a la culture dite "geek" en général.

    -

    Je tenterai de poster ici le plus souvent possible, mais j'ai de gros -problèmes en terme de régularité de post, donc ne vous inquiétez pas si -vous ne voyez rien pendant deux semaines.

    -

    Merci beaucoup de votre attention, et a bientôt!

    -
    -
    - -
    - -
    -
    - -
    - - \ No newline at end of file diff --git a/output/posts/archlinux-made-simple/index.html b/output/posts/archlinux-made-simple/index.html deleted file mode 100644 index 5185a09..0000000 --- a/output/posts/archlinux-made-simple/index.html +++ /dev/null @@ -1,508 +0,0 @@ - - - - - Archlinux made simple - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    -
    -
    -
    -

    - Archlinux made simple -

    -
    -
    -
    -
    - Date - - Fri 05 October 2012 - -
    - By - Wxcafe -
    - Category - OSes -
    - - - - -
    -

    Archlinux est réputée être une distribution Linux très complexe a -installer et a maintenir.

    -

    Je vais tenter ici de vous convaincre que ce n'est pas le cas, et -qu'elle peut se monter très intéressante et très instructive a installer -tout autant qu'a utiliser.

    -

    Il convient tout d'abord de rappeler a quels principes obéit Arch:

    -
      -
    1. -

      Le KISS : Keep It Simple and Stupid, Archlinux tente de faire des - programmes simples et utilisables par tous. Avec comme base de - simplicité les utilisateurs de LFS... Mais il n'empêche qu'avec un peu - de bonne volonté, la configuration n'est pas si compliquée!

      -
    2. -
    3. -

      La philosophie UNIX : chaque programme est prévu pour ne remplir - qu'une seule tâche. Bien entendu, cela ne concerne que les programmes - conçus pour s’insérer dans la philosophie UNIX, et les installations de - dépendances avec le gestionnaire de paquet d'Arch fonctionnent - superbement bien.

      -
    4. -
    -

    De plus, posons les bases d'Arch : le gestionnaire de paquets s'appelle -pacman, et les commandes de base sont :

    -
      -
    • -

      recherche d'un paquet :

      -
      pacman -Ss paquet
      -
      - - -
    • -
    • -

      installation d'un paquet :

      -
      sudo pacman -S paquet
      -
      - - -
    • -
    • -

      désinstallation d'un paquet :

      -
      sudo pacman -R paquet
      -
      - - -
    • -
    • -

      mise a jour de tous les paquets installés :

      -
      sudo pacman -Syu paquet
      -
      - - -
    • -
    -

    Archlinux est une distribution dite "rolling release", ce qui signifie -qu'il n'y a pas de version a proprement dites, et que les paquets se -mettent a jour en permanence, sans jamais changer la "version" d'Arch. -Il n'y a d'ailleurs qu'une seule version de l'installeur sur le site, -puisqu'une version plus ancienne n'aurait aucun sens.

    -

    Arch n'offre pas d'interface graphique par défaut : après avoir installé -le système, vous n'aurez qu'une invite de commande. Heureusement, je -vais ici vous guider a travers l'installation d'une interface graphique -(mate, le fork de gnome 2)

    -

    L'installation d'Arch se fait par le réseau, veillez a avoir une -connection WiFi ou filaire a proximité avant de suivre ce guide.

    -

    Ce guide utilise SystemV, alors qu'Arch va prochainement passer sous -systemd. N'ayant pas encore eu le temps d’expérimenter assez avec ce -dernier, je ferais un tutoriel pour passer votre Arch a systemd bientôt.

    -

    Bon, passons a l'explication de l'installation proprement dite :

    -

    Tout d'abord, téléchargeons l'iso d'arch la plus récente :

    -
    wget http://mir.archlinux.fr/iso/2012.09.07/archlinux-2012.09.07-dual.iso
    -
    - - -

    Ensuite, gravons cette image sur un disque USB :

    -
    dd if=archlinux-2012.09.07-dual.iso of=/dev/sdX
    -
    - - -

    Après reboot de la machine sur l'iso en question et choix de -l'architecture, nous sommes accueillis par un shell root.

    -

    La première chose a faire est de paramétrer le clavier :

    -
    loadkeys fr
    -
    - - -

    Puis nous pouvons passer a l'installation proprement dite. -Partitionnement :

    -
    cfdisk # cfdisk est suffisamment clair pour ne pas nécessiter d'explications
    -
    - - -

    formatage des partitions :

    -
    mkfs.ext4 /dev/sda1 # partition root
    -
    -pacman -Syu btrfs-progs && mkfs.btrfs /dev/sda2 # partition home
    -
    -mkswap /dev/sda3 && swapon /dev/sda3 # partition de swap
    -
    - - -

    Montons les partitions nouvellement créées, puis installons le système :

    -
    mount /dev/sda1 /mnt
    -
    -mkdir /mnt/home && mount /dev/sda2 /mnt/home
    -
    -dhclient eth0 # si vous utilisez une connection filaire, sinon voire http://wiki.archlinux.fr/Wifi#Configuration
    -
    -pacstrap /mnt base base-devel
    -
    -genfstab -p /mnt > /mnt/etc/fstab
    -
    - - -

    Allons prendre un café le temps que ça charge, puis installons les -quelques paquets nécessaires a notre installation et au premier -démarrage:

    -
    pacstrap /mnt syslinux btrfs-progs wireless_tools dhclient
    -
    - - -

    Maintenant, passons sur notre install toute fraîche d'Arch :

    -
    arch-chroot /mnt bash
    -
    - - -

    configurons les bases :

    -
    echo HOSTNAME > /etc/hostname
    -
    -ln -s /usr/share/zoneinfo/Europe/Paris /etc/localtime
    -
    -date MMJJhhmmAAAA
    -
    -hwclock --systohc
    -
    -vim /etc/locale.gen # Décommentez les lignes correspondant au français : fr_FR.UTF-8 et fr_FR.ISO-8859-1
    -
    -echo  'LANG="fr_FR.UTF-8"' > /etc/locale.conf
    -
    -locale-gen
    -
    -mkinitcpio -p linux
    -
    - - -

    Enfin, vérifions que syslinux est correctement configuré :

    -
    vim /boot/syslinux/syslinux.cfg # il devrait y avoir "append root=/dev/sda1"
    -
    - - -

    Si tout est correct, installons syslinux, et paramétrons un mot de passe -root :

    -
    syslinux-install_update /dev/sda -mia
    -
    -passwd root
    -
    - - -

    Et voila, l'installation est terminée! Plus qu'a quitter la session et a -redémarrer l'ordinateur!

    -
     exit
    -umount /mnt/home 
    -umount /mnt
    -reboot
    -
    - - -

    Fini!

    -

    Prenons une petite pause. La partie suivante de ce tutoriel consister en -un paramétrage des principaux services nécessaires a l'utilisation d'un -OS, disons, moyen :

    -
      -
    • -

      Installation de MATE, le gestionnaire de bureau (voir -http://mate-desktop.org/)

      -
    • -
    • -

      Installation de sudo et de networkmanager pour faire fonctionner les -composants essentiels du système sans avoir a tout activer a la main a -chaque démarrage

      -
    • -
    • -

      Installation de SLiM comme gestionnaire de login graphique, pour -présenter une interface plus accueillante que la console, et -configuration de celui-ci

      -
    • -
    • -

      Installation des principaux logiciels utiles non inclus dans mate ni -base (yaourt, chromium, thunderbird, etc...).

      -
    • -
    -

    Ce guide est bien sur optionnel, si vous souhaitez utiliser Arch avec un -gestionnaire de bureau autre que mate, ou sans, vous pouvez vous arrêter -ici.

    -

    Bon, reprenons.

    -

    Nous sommes donc sur une demande de mot de passe. Entrez donc le mot de -passe paramétré plus haut pour le root, puis retapez la commande -utilisée plus tôt pour vous connecter a internet.

    -

    Il convient d'ajouter le dépôt de MATE pour installer ce dernier, puis -d'effectuer l'action en question :

    -
    vim /etc/pacman.conf
    -
    - - -

    Ici, ajoutez les lignes suivantes :

    -
    [mate]
    -Server = http://repo.mate-desktop.org/archlinux/$arch
    -
    - - -

    Installons maintenant les paquets :

    -
    pacman -Syu mate mate-extras dbus dbus-core alsa networkmanager sudo
    -
    - - -

    Ajoutons un compte utilisateur pour utiliser les composants du système -sans tout crasher a chaque fois :

    -
    useradd -g users -G wheel,audio,optical,lp,scanner,log,power,floppy,storage,games,video -m -s /bin/bash *votrenom*
    -passwd *votrenom*
    -su *votrenom*
    -
    - - -

    Il faut maintenant éditer le fichier \~/.xinitrc pour préciser a X.org -ce que l'on veut utiliser :

    -
    echo "exec ck-launch-session mate-session" > ~/.xinitrc
    -
    - - -

    Profitons en pour ajouter les démons système au lancement :

    -
    vim /etc/rc.conf
    -
    - - -

    Ajoutez donc dbus, alsa. hwclock et networkmanager dans la section -DAEMONS (entre les parenthèses, après crond normalement)

    -
    DAEMONS=(syslog-ng network crond dbus alsa hwclock networkmanager)
    -
    - - -

    Pour éviter un reboot, il est ici possible de faire un

    -
    su
    -
    - - -

    Puis un

    -
     /etc/rc.d/dbus start && /etc/rc.d/alsa start && /etc/rc.d/networkmanager start
    -
    - - -

    Sinon, il est possible de juste redémarrer.
    -Une fois cela fait, profitez de ce moment pour vous autoriser vous même -a utiliser sudo. Loggez vous en root, et :

    -
     vim /etc/sudoers
    -
    - - -

    Décommentez la ligne qui commence par # %wheel ALL=(ALL)
    -Sauvegardez le fichier, puis, après un su *votrenom*, tentez de faire -un sudo ls /
    -Normalement, vous devriez avoir un listing du dossier /
    -Bon, maintenant, pourquoi ne pas tenter de lancer MATE?
    -C'est simple comme bonjour :

    -
     startx
    -
    - - -

    Et PAF! Voila un MATE desktop flambant neuf a configurer!
    -Avant de faire ça, retournez sur un TTY (CTRL+ALT+Fx), loggez vous, -puis installez SLiM (sudo pacman -Syu slim).
    -Configurons le:

    -
    echo "exec dbus-launch mate-session" > ~/.xinitrc && vim /etc/slim.conf
    -
    - - -

    Éditez la ligne -"sessions xfce4,icewm-session,wmaker,blackbox" de facon a -ce qu'elle ressemble a "sessions mate-session"
    -Puis ajoutez slim dans /etc/rc.conf, dans la section DAEMONS.
    -Normalement, tout devrait fonctionner!
    -Ah oui, et pour installer thunderbird, firefox, chromium, etc...

    -
    sudo pacman -Syu chromium thunderbird xchat firefox rhythmbox pidgin transmission-gtk vlc
    -
    - - -

    Voila! Et comme dirait @Spartition, c'est sale, mais qu'est-ce que c'est -bon!
    -A plus~

    -
    -
    -
    -
    - -
    -
    - -
    - - \ No newline at end of file diff --git a/output/posts/debuts-presentation-etc/index.html b/output/posts/debuts-presentation-etc/index.html deleted file mode 100644 index 3b12efc..0000000 --- a/output/posts/debuts-presentation-etc/index.html +++ /dev/null @@ -1,246 +0,0 @@ - - - - - Débuts, présentation, etc... - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    -
    -
    -
    -

    - Débuts, présentation, etc... -

    -
    -
    -
    -
    - Date - - Sat 18 August 2012 - -
    - By - Wxcafe -
    - Category - Notes -
    - - - - -
    -

    Bonjour!

    -

    Je m'appelle Wxcafé, et ça fait pas mal de temps que je sévis sur -Twitter, mais aussi sur IRC (Je traîne pas mal sur -irc.freenode.net/##nolife et #debian-fr)

    -

    J'ai 17 ans, je suis donc étudiant (bac général), je vis a Paris, et je -fais partie de ce genre de personne qui sont capables d'investir tout -leur temps et leur énergie a s’intéresser a un sujet en particulier, et -qui ne peuvent pas vivre sans leurs passions, avec une petite différence -cependant, qui est que je m’intéresse a plusieurs choses : -l'informatique, qui est un champ tellement large qu'on peut passer une -vie a apprendre des choses dessus, et plus particulièrement à -l'informatique avancée (Noyaux dérivés d'UNIX et de Linux, outils libres -{bien que n'étant pas un barbu intégriste [ceci est un troll assumé. Les -trolls seront a partir de maintenant indiqués avec le tag [tr]] du -libre, je préfère utiliser de l'open-source si c'est possible}, -programmation en C, python et java, etc...) , mais aussi a -l’électronique.

    -

    Dans un tout autre registre, je m’intéresse aussi -beaucoup aux différents aspects du féminisme et des égalités sexuelles -(anti-homophobie/transphobie/biphobie/etc , anti-sexisme, et cætera) , -et a la culture dite "geek" en général.

    -

    Je tenterai de poster ici le plus souvent possible, mais j'ai de gros -problèmes en terme de régularité de post, donc ne vous inquiétez pas si -vous ne voyez rien pendant deux semaines.

    -

    Merci beaucoup de votre attention, et a bientôt!

    -
    -
    -
    -
    - -
    -
    - -
    - - \ No newline at end of file diff --git a/output/posts/gnulinux-pour-les-non-technophiles-ou-los-libre-pour-votre-grand-mere/index.html b/output/posts/gnulinux-pour-les-non-technophiles-ou-los-libre-pour-votre-grand-mere/index.html deleted file mode 100644 index b0a711d..0000000 --- a/output/posts/gnulinux-pour-les-non-technophiles-ou-los-libre-pour-votre-grand-mere/index.html +++ /dev/null @@ -1,285 +0,0 @@ - - - - - GNU/Linux pour les non technophiles, ou l'OS libre pour votre grand-mère - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    -
    -
    -
    -

    - GNU/Linux pour les non technophiles, ou l'OS libre pour votre grand-mère -

    -
    -
    -
    -
    - Date - - Wed 22 August 2012 - -
    - By - Wxcafe -
    - Category - Teaching -
    - - - - -
    -

    GNU/Linux est un vaste et extraordinaire territoire technologique, mais -je ne vais pas m'attarder ici sur les aspects profondément techniques de -ce territoire pour faire plutôt une sorte d'introduction a ce qu'est -vraiment GNU/Linux, pour les gens n'ayant aucune ou très peu de -connaissances en informatique.

    -

    GNU/Linux, que j’abrégerai ici en Linux pour plus de simplicité, est un -Système d'Exploitation. Un système d'exploitation est, pour simplifier, -un ensemble d'outils informatiques qui vous permettent d'utiliser votre -ordinateur, ainsi, Windows est un système d'exploitation. L'abréviation -de système d'exploitation (Operating System en anglais) est OS. Les 4 -principaux OS existants aujourd'hui sont Windows, Mac OS, GNU/Linux, et -Solaris. Les trois derniers sont issus d'un autre système, plus ancien, -nommé UNIX.

    -

    De ce fait, on pourrait penser que Linux remplace complètement Windows -une fois installé, et comprend une interface graphique, et toutes sortes -d'utilitaires permettant a l'utilisateur d'utiliser le système (sous -Windows, pensez a l'explorateur de fichiers, ou a Internet Explorer. -Pour l'interface graphique, pensez a... Pensez que votre système affiche -autre chose que des lignes de commande.) Or non, une fois installé, -Linux en lui même ne vous afficherait aucune interface graphique, et -s'il est effectivement livré avec des utilitaires, ils ne sont que des -programmes en ligne de commande. Autant les utilisateurs avancés sauront -s'en servir, et pourront argumenter que c'est plus efficace ou plus -rapide, autant les utilisateurs basiques préfèrent une interface -graphique. Alors comment en obtenir une?

    -

    Ici, il convient de faire une précision importante. Si il n'existe -qu'une seule version de Windows, ou de Mac OS, il existe en fait -plusieurs centaines de "versions" différentes de Linux. Appelées -distributions, ces dernière sont développées par des groupes -complètement séparés, et se basent sur le fait que Linux soit -entièrement placé sous licence libre (ce qui leur permet de l'utiliser a -leur guise, a condition que leur travail soit lui aussi placé sous -licence libre). De ce fait, de nombreuses distributions existent et se -développent en parallèle. On peut ainsi citer Debian, qui est l'une -des distributions les plus importantes, ou encore Ubuntu, qui est -l'une des plus connues et des plus simples a utiliser.

    -

    Ainsi, ces distributions intègrent une interface graphique. Cependant, -grâce a la liberté dont bénéficient les développeurs sous Linux, il -existe de nombreuses interfaces graphiques différentes : Unity, la -nouvelle interface d'Ubuntu; GNOME , une interface qui vise a la -simplicité; ou encore KDE, une interface utilisateur ressemblant a -Windows 7.

    -

    Ainsi, le choix astronomique de distributions Linux a bien un sens : -chacune d'entre elle intègre des outils différents. Par exemple, Debian -intègre GNOME 2, qui est l'ancienne version de GNOME, ce qui la rend -particulièrement stable. Ubuntu intègre Unity, ce qui en fait une -distribution particulièrement intuitive. Linux Mint intègre Cinnamon, -qui est une version dérivée de GNOME 3, ce qui permet encore une autre -expérience. Et Arch Linux n'intègre pas d'interface graphique du tout, -ce qui permet a l'utilisateur de choisir entre les multiples interfaces -existantes.

    -

    Ce qu'il est important de retenir de cela, c'est que Linux est un OS -complètement libre, ce qui signifie que n'importe qui peut modifier et -utiliser tout le code de Linux gratuitement et comme il l'entend. Ainsi, -Linux est un OS qui est véritablement créé par des passionnés, pour tous -et toutes. Surtout, il convient de retenir que Linux n'est pas compliqué -a utiliser, ni a installer. Windows et Mac OS ne le sont pas non plus. -Cependant, Linux donne la possibilité a l'utilisateur de le rendre -affreusement complexe, mais aussi de le rendre adapté a ses besoins, -quels que soient ceux ci. Et c'est la que réside l'incroyable puissance -de ce Système d'Exploitation. Il est extraordinairement adaptable.

    -

    N'hésitez donc pas a le présenter a vos proches, même s'ils ne sont pas -technophiles. Ils pourraient adorer, et peut être même le devenir :)

    -

    A bientôt!

    -
    -
    -
    -
    - -
    -
    - -
    - - \ No newline at end of file diff --git a/output/posts/introduction-a-bash-en-tant-que-language-de-programmation/index.html b/output/posts/introduction-a-bash-en-tant-que-language-de-programmation/index.html deleted file mode 100644 index ffcaa39..0000000 --- a/output/posts/introduction-a-bash-en-tant-que-language-de-programmation/index.html +++ /dev/null @@ -1,418 +0,0 @@ - - - - - Introduction a bash en tant que language de programmation. - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    -
    -
    -
    -

    - Introduction a bash en tant que language de programmation. -

    -
    -
    -
    -
    -

    L’interpréteur de commandes bash (Bourne Again SHell) -est possiblement le shell le plus connu, notamment grâce a son -intégration en tant que shell par défaut dans les distributions Linux -les plus répandues (Debian - Ubuntu, Fedora, OpenSUSE, Mandriva - -Mageia, etc...).

    -

    Cependant, il n'est souvent connu qu'en tant qu’interpréteur de -commande. Alors qu'en réalité, le bash est un langage de programmation -(presque) complet! Ainsi, il intègre les structures de contrôle -habituelles ( pour mémoire, les structures de contrôle comprennent les -conditions (les ifs), les boucles (les while), et les choix (les case), -entre autres.), et est donc ce que l'on pourrait appeler un langage de -script, interprété, de la même façon que python, a la difference près -qu'il contient un prompt (un système d'entrée de commande interactif) -bien plus complet et développé que python.

    -

    Cependant, les programmes en bash ne sont executables que dans un -environnement de type UNIX, et donc pas sous Windows (cygwin -(cygwin.com) propose ceci dit un système permettant d'utiliser bash sous -windows. Il faut malgré tout convenir que cet environnement est bien -plus compliqué a manipuler, et globalement ne permet pas d'acceder a des -portages de qualité satisfaisante.)

    -

    Ainsi, il est possible de créer des fichiers .sh, contenant des -instructions bash mises a la suite (de la même façon qu'un script BATCH -Windows .bat), et faisant appel autant aux commandes internes de bash, -aussi bien que les commandes externes mises en place par les programmes -installés sur le système, exactement comme dans une invite de commande. -Ainsi, pour appeller firefox, la commande 'firefox' lancera le petit -panda roux directement dans la boite magique, tandis qu'un if -[condition] suivi d'un then (quelque chose) lancera le fameux quelque -chose suscité si la condition est vérifiée. Un peu comme en C, quoi.

    -

    De cette façon, et avec quelques informations et connaissances, il est -facile de comprendre le fonctionnement de la programmation en bash. -Quelques exemples commentés:

    -
     1
    - 2
    - 3
    - 4
    - 5
    - 6
    - 7
    - 8
    - 9
    -10
    -11
    -12
    -13
    #!/bin/bash 
    -# La ligne du dessus est très importante, c'est elle qui dit a bash quel doit être 
    -# l'interpreteur des commandes écrites dans ce script. Ici, on dit a bash d'interpréter 
    -# lui même les commandes comprises dans ce script. On aurait tout de fois pu lui faire 
    -# executer du python, par exemple, en mettant #!/usr/bin/python a la place.
    -echo "this is a test of bash as a simple script manager" # echo est une commande d'affichage de message.
    -echo "what's your name, user?" 
    -read your_name # la commande read permet de demander a l'utilisateur de donner une 
    -# information, stockée dans la variable en paramètre. 
    -echo $your_name "is your name" # echo permet aussi d'afficher la valeur de variables. 
    -# Ici, on renvoie la variable remplie précédemment, suivie d'un message. 
    -exit # cet appel a exit n'est pas obligatoire, mais donne un aspect plus 
    -# propre au code. Il ne quittera pas la session de terminal, cependant.
    -
    -
    - -

    Voila. Ce script bash ne sert pas a grand chose, mais il a le mérite -d'être clair quand aux capacités et a la simplicité du bash en tant que -language de programmation. Alors en effet, nous n'avons ici absolument -pas utilisé les capacités de bash en lui même, et n'avons fait que le -renvoyer a des programmes externes (sauf read, il est vrai). Voyons -maintenant la syntaxe de bash quand il s'agit d'utiliser les structures -de contrôle:

    -
     1
    - 2
    - 3
    - 4
    - 5
    - 6
    - 7
    - 8
    - 9
    -10
    #!/bin/bash 
    -echo "welcome to this second bash program. would you please kindly enter the name of the machine you're running this on?" 
    -read host_name 
    -if [ $host_name == $HOSTNAME ] ## voici la syntaxe du if. Attention a bien penser a mettre les espaces avant la première variable, et après la seconde. La variable $HOSTNAME ici utilisée est une variable présente par défaut sur le système. 
    -then echo "you told the truth!" 
    -fi ## le fi est la commande fermant le if, tout comme le EndIf en basic. C'est un peu vieillot, mais important en bash. 
    -if [ $host_name != $HOSTNAME ] ## l'opérateur != est l'inverse de ==, il vérifie donc si les deux variables ne sont pas les mêmes. 
    -then echo "you lied!" 
    -fi 
    -exit
    -
    -
    - -

    Voila un petit programme permettant d'apprendre la syntaxe du if en -bash. comme vous pouvez le voir, le language est plutôt lite, et la -structure if n'est pas très difficile a prendre en main.

    -

    Passons maintenant au while:

    -
    1
    -2
    -3
    -4
    -5
    -6
    -7
    #!/bin/bash
    -echo "what is your name?"
    -read name
    -while [ 1 < 10 ]    ## le while se présente sous la forme while (truc); do (machin); done. Les [] sont en fait des programmes differents, inclus dans bash.
    -do echo "i love" $name
    -done
    -exit
    -
    -
    - -

    Ce petit programme permet d'observer les bases de while (qui est la -boucle de base en bash).

    -

    Le troisième opérateur de bash est case. Voyons:

    -
     1
    - 2
    - 3
    - 4
    - 5
    - 6
    - 7
    - 8
    - 9
    -10
    -11
    -12
    -13
    -14
    -15
    -16
    -17
    -18
    -19
    -20
    -21
    -22
    -23
    -24
    #!/bin/bash
    -echo "please enter a number between one and five"
    -read number
    -case $number in 
    -1)
    -echo "the choosen number was one"
    -;;
    -2)
    -echo "the choosen number was two"
    -;;
    -3)
    -echo "the choosen number was three"
    -;;
    -4)
    -echo "the choosen number was four"
    -;;
    -5)
    -echo "the choosen number was five"
    -;;
    -*)
    -echo "this number is not correct"
    -;; 
    -esac
    -exit
    -
    -
    - -

    case est un opérateur plus complexe a utiliser a bon escient, et sert a -faire des ifs multiples sans avoir a taper des dizaines de lignes de -code.
    -(pour ceux qui auraient du mal avec cet opérateur, il faut comprendre -que le code vérifie chacune des conditions : le 1) est validé si la -valeur de \$number est 1, le 2) est validé si cette valeur est 2, etc.. -le *) désigne toutes les valeurs, et est donc validé si aucune autre -valeur n'a précédemment acceptée.

    -

    Quelques notions manquent ici:
    -- les nombres aléatoires sont générés par un appel a la variable -\$RANDOM, qui renvoie un nombre aléatoire entre 0 et 32767 (un entier a -16 bits donc). il est possible de faire des invocations a des nombres -aléatoires plus grands, mais les méthodes permettant de faire cela sont -plus complexes, et je ne les aborderai donc pas ici.
    -- comme vous avez pu le constater, les variables sont désignées en tant -que telles par l'utilisation d'un symbole \$ au début de leur nom. -Ainsi, echo number renverra "number", tandis que echo \$number renverra -le résultat de la variable \$number.
    -être utilisées dans un programme bash.
    -- comme vous avez pu le constater, les commandes doivent tenir en -théorie en une ligne. Cependant, le caractère \ permet de retourner a -la ligne en faisant considérer a bash qu'il s'agit de la même ligne.

    -

    Globalement, il faut admettre que bash n'a pas vocation a être un -langage de programmation extrêmement développé. Sans framework -graphique, avec peu de manières d'utiliser de grandes variables, ou -encore une gestion de la mémoire risible, bash n'a rien d'un langage de -développement professionnel.
    -Cependant, le simple fait qu'il soit considéré comme un langage de -programmation a part entière font de lui un langage de script d'une -puissance incontestable, et sa simplicité et sa grande popularité font -de lui un langage de choix pour apprendre la programmation simplement et -sans trop se prendre la tête.

    -

    J'espère que cet article aura été utile a certain-e-s, et je vous -souhaite bonne chance dans votre découverte de la programmation (n'allez -pas voir ceux qui font de l'orienté objet, c'est des méchants :3)

    -
    -
    -
    -
    - -
    -
    - -
    - - \ No newline at end of file diff --git a/output/posts/la-cryptographie-avec-pgp-et-principalement-gnupg/index.html b/output/posts/la-cryptographie-avec-pgp-et-principalement-gnupg/index.html deleted file mode 100644 index 338d5c1..0000000 --- a/output/posts/la-cryptographie-avec-pgp-et-principalement-gnupg/index.html +++ /dev/null @@ -1,383 +0,0 @@ - - - - - La cryptographie avec PGP et principalement GnuPG - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    -
    -
    -
    -

    - La cryptographie avec PGP et principalement GnuPG -

    -
    -
    -
    -
    - Date - - Mon 19 November 2012 - -
    - By - Wxcafe -
    - Category - Tutoriel -
    - - - - -
    -

    PGP (pour pretty good privacy) est un système de -chiffrement asymétrique (pour plus d'information sur le chiffrement -asymétrique, voir ici) utilisant en général les algorithmes RSA -et/ou DSA, et pouvant servir a chiffrer tout fichier, mais aussi a -signer des emails. Le système de signature consiste a s'identifier en -tant que la personne que l'on est, en certifiant de son identité, et -repose sur un système dit de Web of Trust.

    -

    Ce concept de Web of Trust est simple: si je valide le code vous -identifiant (votre clé), en certifiant que vous êtes qui vous êtes et -que je vous connais, et que d'autres personnes m'ont déjà -personnellement validé, les autres utilisateurs seront enclins a croire -que vous êtes en effet la personne que vous prétendez être. Bien -entendu, les utilisateurs validant trop de clés rapportées comme fausses -voient la valeur de leurs signatures baissée, et toutes les clés signées -par ces utilisateurs voient leur crédibilité baisser.
    -Inversement, les "bons utilisateurs" voient la valeur de leurs -signatures augmentée, ce qui augmente la crédibilité des clés qu'ils ont -signées.

    -

    Ceci dit, un email peut être a la fois signé et chiffré, de façon a être -sûr, non seulement que l’expéditeur de l'email est bien celui qu'il dit -être, mais aussi que l'email n'a pas été modifié entre l'envoi et -la réception (en effet, avec un chiffrement de type RSA/DSA, une -modification du corps de l'email rend ce dernier illisible, la clé -publique ne  correspondant plus a la phrase de passe du message), ce qui -offre bien évidemment des avantages non négligeables dans un -environnement ou la protection des échanges est importante (soit a peu -près partout sur internet, si vous tenez a votre vie privée. Pensez a -quitter Gmail aussi, par exemple).

    -

    Il est cependant a noter que les clés publiques sont généralement -situées sur un serveur de clés publiques, tel pgp.mit.edu ou encore -subkeys.pgp.net (certaines personnes préfèrent garder leur clés hors des -serveurs de clés publiques, craignant une compromission de ces serveurs. -Dans le cas d'utilisateurs normaux (c'est a dire n'échangeant pas de -secrets classés secret-défense par email), la protection offerte par les -serveurs de clé publiques est suffisante)

    -

    L'une des implémentations les plus connues et utilisées de PGP est sans -conteste GPG (GNU Privacy Guard) , qui comme son nom l'indique fait -partie du projet GNU, et qui (<troll> de façon surprenante pour un -programme GNU</troll>) est extrêmement efficace et claire.

    -

    Après ces explications techniques, voici venue le -moment intéressant/utile, a savoir l'application. Le chiffrement et la -signature de mails doivent cependant attendre un petit peu, étant donné -qu'il vous faut d'abord créer votre clé et la placer sur un serveur de -clés publiques, de façon à ce que votre destinataire puisse vous -identifier lorsqu'il recevra le mail, mais aussi a configurer votre -client mail pour utiliser gpg (je baserai les explications de cet -article sur Thunderbird, mais des explications efficaces sont trouvables -facilement sur les interwebs).

    -

    Tout d'abord, générons une clé GPG :

    -
     gpg --gen-key
    -
    - - -

    GPG va vous demander les méthodes de chiffrement que vous voulez -utiliser, le plus sur est de laisser la valeur par défaut. La question -suivante est de savoir quelle taille votre clé doit faire, il est -préférable de choisir la taille la plus importante possible (4096). GPG -veut ensuite savoir quand votre clé doit expirer. La méthode simple est -bien évidemment de ne jamais la faire expirer, il est cependant plus -intéressant dans une logique de sécurité de régler cette durée a six -mois/un an.

    -

    Des informations personnelles vous sont ensuite demandées, -concernant votre nom (mettez le vrai, tel qu'il apparaît sur votre carte -d'identité, si vous souhaitez utiliser votre véritable identité), votre -adresse mail (mettez la plus utilisée, vous pourrez en rajouter plus -tard), et un mot de passe pour la clé (utilisez un mot de passe -sécurisé!! Il est conseillé d'utiliser au moins 8 caractères, dont majuscules, -minuscules, caractères spéciaux et nombres (vous pouvez utiliser la -commande makepasswd, qui génère automatiquement un mot de -passe)

    -

    GPG va maintenant prendre un peu de temps pour générer le couple clé -publique/clé privée, vous devriez profiter de ce temps pour effectuer -des opérations autres sur votre ordinateur : taper des textes, lancer -des films, écouter de la musique... De façon à augmenter les chances -d'obtenir un nombre bien aléatoire (le générateur d'aléatoire se base -sur la RAM pour obtenir des bits au hasard)

    -

    Une fois cela fini, vous obtenez un couple clé publique/clé privée, que -vous ne pouvez pas visualiser entièrement pour l'instant. Il est -cependant possible (et recommandé) de les exporter pour les sauvegarder -via une commande:

    -
    gpg --armor --export --output=pubkey.gpg
    -
    - - -

    pour la clé publique, et

    -
    gpg --armor --export-secret-keys --output=seckey.gpg
    -
    - - -

    pour la clé privée. Il est possible et même souhaitable de copier ces -clés sur une clé USB, une carte SD, ou un autre support de stockage -résistant, de façon a avoir une solution de sauvegarde, au cas ou vous -perdiez ces clés sur ce PC.

    -

    Cela fait, listons les informations sur votre clé publique :

    -
    $ gpg --list-keys --fingerprint
    -pub     4096R/27D81AC8 2012-11-17
    -    Key fingerprint = 6345 A91A FF89 97E0 13D0 96A9 9E2A 1917 27D8 1AC8
    -uid             Clément Hertling (Wxcafe) 
    -uid             [jpeg image of size 14692]
    -sub     4096R/9ED7F77F 2012-11-17
    -
    - - -

    La partie pub indique que c'est une clé publique, 4096R indique que c'est -une clé RSA sur 4096 bits. La partie 27D81AC8 est -l'identifiant de la clé publique, Key fingerprint = 6345 A91A FF89 97E0 13D0 -96A9 9E2A 1917 27D8 1AC8 est appelé fingerprint de la clé. Les champs -uid sont des manières d'identifier la clé et la personne associée a -celle-ci, et enfin le champ sub est indicateur d'une subkey, système -uniquement pris en charge par GPG et non inclus dans les premières -versions de PGP, donc non-implémentées dans nombre de clients pgp.
    -Passons maintenant a la mise en place de cette clé publique sur un -serveur de clés : nous utiliserons ici le serveur pgp.mit.edu.

    -
    gpg --keyserver pgp.mit.edu --send-keys *ID de la clé a uploader*
    -
    - - -

    Maintenant que votre clé publique a été uploadée, vous pouvez l'utiliser -pour signer et chiffrer vos emails!
    -Installons donc l'extension Enigmail pour Thunderbird, permettant de -chiffrer/signer vos emails de façon transparente. Il conviendra de -paramétrer cette extension, via le menu OpenPGP dans Thunderbird, puis -Setup Wizard (l'option entre Help et About OpenPGP). Normalement, -Enigmail détecte votre installation de gpg automatiquement, si cependant -ce n'était pas le cas, vous pouvez utiliser la clé exportée tout a -l'heure (pubkey.gpg) en l'important (import key from file).

    -

    Selon les options que vous avez utilisées, vos emails seront -automatiquement signés et/ou chiffrés a l'envoi. Gardez cependant a -l'esprit que si tout le monde peut lire les mails signés, il n'en est -pas de même pour les mails chiffrés, pour lesquels il est nécessaire de -posséder la clé publique du correspondant en question, et de posséder -soi même une clé privée, donc d'utiliser OpenPGP aussi.
    -Concernant les signatures de clés, elles fonctionnent de manière très -simple :
    -Vous devez télécharger la clé de votre correspondant, via un

    -
     gpg --keyserver pgp.mit.edu --search-keys *ID de la clé de votre correspondant*
    -
    - - -

    (a noter que cette commande fonctionne aussi en cherchant une adresse -email ou un nom. Cependant, en cherchant via l'identifiant de la clé, -vous êtes sur de trouver votre correspondant. Globalement, l'email est -lui aussi assez sûr en terme de recherche de clés, tandis que le nom -donne rarement un résultat). L'étape suivante est de vérifier que votre -correspondant est bien la personne qui est spécifiée sur sa clé. Pour -cela, il convient d'avoir déjà vu physiquement cette personne et si -possible d'avoir vu une pièce d'identité lui appartenant, et d'avoir une -confirmation de cette personne que la clé que vous voyez lui appartient -bien.
    -Ceci fait, vous pouvez signer la clé via un

    -
     gpg --sign *ID de la clé a signer*
    -
    - - -

    puis la renvoyer au serveur via

    -
     gpg --keyserver pgp.mit.edu --send-key *ID de la clé a signer*
    -
    - - -

    Voila, la clé de votre correspondant est signée!

    -

    Ce tutoriel sur PGP/GPG est terminé, et votre sécurité est améliorée -grâce a cette superbe invention qu'est la cryptographie!

    -
    -
    -
    -
    - -
    -
    - -
    - - \ No newline at end of file diff --git a/output/posts/la-programmation-expliquee-simplement/index.html b/output/posts/la-programmation-expliquee-simplement/index.html deleted file mode 100644 index 08fb2af..0000000 --- a/output/posts/la-programmation-expliquee-simplement/index.html +++ /dev/null @@ -1,284 +0,0 @@ - - - - - La programmation expliquée simplement - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    -
    -
    -
    -

    - La programmation expliquée simplement -

    -
    -
    -
    -
    - Date - - Mon 27 August 2012 - -
    - By - Wxcafe -
    - Category - Teaching -
    - - - - -
    -

    Salut!
    -Tout d'abord, je tiens a m'excuser de ne pas avoir eu le temps d'écrire -récement, mais j'ai eu la chance d'avoir un PC a monter, donc j'ai passé -pas mal de temps assez occupé.

    -

    Enfin, après un certain temps a farfouiller au millieu des connecteurs -SATA et a apprendre que, oui, l'alimentation sert aussi pour les disques -durs, je suis de retour pour un court article.
    -Du coup, je m'étais dit que j'allais reprendre sur le thème de -l'informatique expliquée au grand public, en tentant d'aller un peu plus -loin que la dernière fois sur le thème de la programmation
    -Ce qu'il faut comprendre, c'est la facon dont fonctionne un ordinateur. -Si a peu près tout le monde sait que "les ordinateurs, ils ne -comprennent que les 1 et les 0!", peu de gens savent comment cela -fonctionne en détail.

    -

    Si vous êtes sur ce blog, il y a pas mal de chance que vous ayez déjà -des notions de base en informatique. Ainsi, vous savez surement que les -ordinateurs fonctionnent avec des programmes, qui sont composés de -code.
    -Ainsi, il faut comprendre que le code (source) est "compilé" en un -fichier "binaire". Un fichier binaire est un fichier comprenant les -instructions telles qu’exécutées par le processeur, et donc absolument -illisible pour un humain.

    -

    La compilation est le processus qui transforme le code source en -binaire executable. Les binaires ont, sous Windows, l'extension .exe, -tandis que sous les systèmes UNIX-like, ils n'ont pas d'extension -particulière.
    -Ceci étant dit, il faut comprendre que certains langages sont plus -proches que d'autres du langage processeur, les langages les plus -proches sont dits de "bas niveau". Les langages les plus éloignés sont -donc dits de haut niveau.

    -

    Par exemple, l'assembleur est l'un des languages de plus bas niveau, -tandis que python par exemple est un langage de plus haut niveau. Les -langages de haut niveau sont souvent bien plus simples a comprendre et a -apprendre que les langages de bas niveau

    -

    Ainsi, en C, un langage de niveau relativement bas, pour afficher -"hello world" sur l'écran, le code nécessaire est :

    -
    #include 
    -void main() {
    -printf("hello world");
    -return 0;
    -}
    -
    - - -

    le même programme en python s'écrit :

    -
    print "hello world"
    -
    - - -

    et n'a pas besoin d'être compilé , puisqu'il peut être intepreté -directement.

    -

    Python utilise en effet un système similaire a Java en ayant un -interpréteur dit "runtime" ou "temps réel", qui interprète le programme -sans le compiler. Java utilise un système légèrement différent, puisque -le code a besoin d'être compilé, mais est interpreté par un interpréteur -et non par le processeur.

    -

    Cette méthode permet le fameux "code once, run everywhere", ce qui -signifie que le même code est exécutable sur quasiment tous les systèmes -d'exploitation (en fait, tous ceux sur lesquels l’interpréteur est -disponible.)

    -

    Voila, je vous laisse sur le fonctionnement de Java et de Python, et je -vais me coucher.
    -A bientôt!

    -
    -
    -
    -
    - -
    -
    - -
    - - \ No newline at end of file diff --git a/output/posts/la-separation-des-eglises-et-de-letat-une-idee-quelle-est-bonne/index.html b/output/posts/la-separation-des-eglises-et-de-letat-une-idee-quelle-est-bonne/index.html deleted file mode 100644 index c70e708..0000000 --- a/output/posts/la-separation-des-eglises-et-de-letat-une-idee-quelle-est-bonne/index.html +++ /dev/null @@ -1,313 +0,0 @@ - - - - - La séparation des églises et de l'état, une idée qu'elle est bonne? - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    -
    -
    -
    -

    - La séparation des églises et de l'état, une idée qu'elle est bonne? -

    -
    -
    -
    -
    - Date - - Thu 13 December 2012 - -
    - By - Wxcafe -
    - Category - Ranting -
    - - - - -
    -

    Aujourd'hui, et depuis 1901 (j'ai révisé mon histoire récemment), il -existe une loi dite de séparation des églises et de l'état, qui consiste -a faire en sorte que l'état n'ait rien a voir avec les differentes -églises, pour de sombres histoires d'indépendance et de laïcité. -(principes qui sont aujourd'hui en voie de disparition, mais ce n'est -pas le propos qui nous occupe ici). Cela dit, cette bonne idée -politique, si elle a évité a ses auteurs de nombreux tracas, et leur a -surement permis de conserver une tête en état de fonctionnement bien -reliée a leur colonne vertébrale, ne vous interesse que moyennement, et -vous voudriez retourner répondre a vos mails sur Gmail et micro-blogguer -(quel mot horrible...) sur twitter?

    -

    Ça tombe bien, vous abordez justement le sujet véritable de cet article -(non, mon blog n'est pas devenu un histoblog, désolé aux déçus...), a savoir -la centralisation qui se met progressivement en place sur internet depuis -quelques années : Twitter, Google, Facebook, Micro$oft, Apple, tous ces -acteurs du web (et pas que, pour certains...) ont commencé a prendre -pour manie de centraliser vos données : pour prendre un exemple simple, -si vous utilisez Gmail (qui depuis quelque temps, lit aussi vos mails -pour accorder la publicité, dites adieu a votre vie privée), vous avez -un compte Google Talk, probablement aussi un Google+.

    -

    L'outil le plus pratique aujourd'hui pour aggreger des flux RSS est -Google Reader, et vous l'utilisez aussi probablement. Votre téléphone -est un android? Ah, un Nexus? Vous avez donc toutes les applications -google installées, et Chrome mobile comme navigateur par défaut, qui est -synchronisé avec la version qui tourne sur votre PC (via les serveurs de -Google, bien sur). -Depuis peu, les recherches sur le moteur de recherche -sont elles aussi ajoutées a votre profil, enregistrées a jamais par -Google (qui n'est pas touchée, en tant que société américaine, par la -"loi des 10 ans" francaise.). Vous commencez a voir le truc? Non, ne -jetez pas ce telephone, enfin! (je refuse de rembourser tout smartphone -ayant été perdu a cause de cet article) J'ai pris ici comme exemple -Google, parce que c'est celui qui propose le plus de services, mais -Apple avec iCloud, iTunes et son iPhone fait pareil, tout comme M$ avec -WP8 et Skydrive.

    -

    Twitter et Facebook n'ont de rôle dans ce sujet qu'en ce que vous leur -fournissez des informations dont ils s'empressent de devenir seuls -propriétaires (cf les Conditions d'Utilisation de ces deux services), -puis de les revendre a des annonceurs faisant de la publicité -ciblée. Le problème est simple a apprehender, vous ne voulez pas que -l'un de ces services connaisse trop de choses sur vous (et ils recoupent -très bien les informations venant de sources differentes), car il est -évident qu'ils les vendent a des entreprises peu scrupuleuses quand -a leurs engagements de confidentialité, quand a leurs securité -aussi; mais surtout parce que depuis le 11 Septembre 2001 et le -Patriot Act, toute entreprise américaine doitfournir toutes ses -informations au gouvernement américain sans aucune intervention d'un -juge, ou de quelque institution de controle que ce soit.

    -

    Ce qui est, comme vous pouvez le comprendre, relativement -problématique. (pour ceux qui a ce point se disent "je n'ai rien a -cacher, donc je m'en fous si le gouvernement américain sait tout de -moi", je vous conseille d'aller lire cet article de Jean Marc -Manach, plein de bon sens...) Pour éviter cela, vous avez plusieurs -possibilités: utiliser des services concurrents pour tout (Facebook -Mail, Skydrive, Twitter et Google Reader par exemple), tout en vous -souvenant que comme ces entreprises sont toutes américaines, le -gouvenrnement américain détient tout de même vos informations, et que ca -lui prendra juste un peu plus de temps.

    -

    Vous pouvez aussi n'utiliser que des entreprises francaises, -mais cela ne regle que le problème du Patriot Act, et pas celui de -la revente de vos données. Et puis essayez de trouver un service équivalent -a Google Reader et fourni par une entreprise française, on en reparlera. -Non, la véritable alternative, c'est d'héberger vos services vous -même, d'avoir votre propre serveur sur lequel vous possedez le plus -de services possibles, et d'utiliser des concurents ou des services -libres au maximum pour les autres, ceux qui ne sont pas distribuables -(par exemple, les cartes sont difficiles a mettre en commun, -or plusieurs alternatives existent: Google Maps, <troll>Apple -Maps</troll>, Bing Maps, OpenStreetMaps, etc...). -Beaucoup de ces services sont cependant très facilement -décentralisables, surement parce qu'ils ont a la base étés conçus comme -des services décentralisés. Ainsi les emails, le web, le chat (via XMPP) -par exemple sont basés sur un système décentralisé.

    -

    De plus, votre serveur peut vous servir a beaucoup d'autres des -choses que vous feriez habituellement sur votre ordinateur -personnel: conserver une présence sur IRC, compiler du code, faire -du rendu vidéo, etc... En bref, un serveur peut vous servir -a effectuer toutes les opérations que vous effectuez sur votre -ordinateur sans les inconvénients de la consommation éléctrique -ni du bruit, mais vous permet aussi de ne dépendre aucunement -d'une entreprise américaine, et cependant de disposer de tous les -services utiles offerts par ces dernières.

    -

    Un serveur peut de plus vous permettre de controller parfaitement -tous ces services, sans aucune limitation d'aucune sorte, -voire de vous créer une page web. Bien entendu, il est bien plus -utile d'avoir un serveur si vous avez aussi un nom de domaine. -Heureusement, ils sont peu chers et souvent fournis avec le serveur.

    -

    Dans de prochains articles, je vous expliquerai comment louer puis -configurer votre serveur pour qu'il serve de serveur mail (IMAP/SMTP), -web, base de données, et proxy. Cela dit, comme c'est un serveur sous -linux, vous pouvez l'utiliser pour a peu près n'importe quoi.
    -Voila, a bientôt!

    -
    -
    -
    -
    - -
    -
    - -
    - - \ No newline at end of file diff --git a/output/posts/le-quenya-episode-o/index.html b/output/posts/le-quenya-episode-o/index.html deleted file mode 100644 index 431be6b..0000000 --- a/output/posts/le-quenya-episode-o/index.html +++ /dev/null @@ -1,250 +0,0 @@ - - - - - Le Quenya - Épisode ø - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    -
    -
    -
    -

    - Le Quenya - Épisode ø -

    -
    -
    -
    -
    - Date - - Tue 18 September 2012 - -
    - By - Wxcafe -
    - Category - Language -
    - - - - -
    -

    Le Quenya est, pour ceux qui ne connaissent pas (comme moi jusqu’à il y -a peu...), le nom que donnait Tolkien au dialecte principal parlé par -les Elfes dans les différentes œuvres de l'auteur, dont Le Seigneur des -Anneaux, le Hobbit, ou encore le Silmarillion. Il faut se rendre compte -avant de commencer cet article que l'une des œuvres les plus -impressionnantes de Tolkien, si ce n'est la plus grande, est -l'impressionnant travail linguistique passé sur les différentes langues -présentes dans son œuvre littéraire : L'elfique, qui est donc le quenya, -la langue des nains, qui est appelé le khazalide, etc.

    -

    En effet, a contrario des "langues" développées dans d'autres œuvres littéraires -telles Eragon ou Harry Potter, où l'auteur-e se contente de lier un mot -de français (ou d'anglais) a un mot de sa "langue", les langues de -l'oeuvre de Tolkien sont des langues complètes. Elles possèdent des -racines logiques, des systèmes de grammaire et de conjugaison propres, -une logique inhérente dans la prononciation ou l'orthographe, et ainsi -de suite.

    -

    Un véritable rêve de linguiste donc, puisque ces langues sont -pratiquement entièrement documentées par Tolkien lui même (voir -l'appendice E du SdA, particulièrement instructif a ce sujet.)

    -

    J'ai donc décidé d'apprendre le Quenya récemment, et je vais donc poster -ici des résumés des cours que je suis ( disponibles ici , une -traduction en français est disponible la en pdf ), et des infos ici -toutes les deux semaines.

    -

    Si ce sujet vous intéresse, le compte twitter @Quenya101 poste -régulièrement des informations sur le sujet, et pour plus d'infos sur le -sujet, vous pouvez en trouver par ici.

    -

    Et en tant que première leçon, vous pouvez apprendre que ce mot que vous -avez prononcé comme le Kenya tout le long de cet article se prononce en -fait [Kwenïa], ou bien Qwenya!

    -
    -
    -
    -
    - -
    -
    - -
    - - \ No newline at end of file diff --git a/output/posts/les-differentes-couches-dun-systeme-dexploitation/index.html b/output/posts/les-differentes-couches-dun-systeme-dexploitation/index.html deleted file mode 100644 index 477150a..0000000 --- a/output/posts/les-differentes-couches-dun-systeme-dexploitation/index.html +++ /dev/null @@ -1,292 +0,0 @@ - - - - - Les différentes couches d'un système d'exploitation - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    -
    -
    -
    -

    - Les différentes couches d'un système d'exploitation -

    -
    -
    -
    -
    - Date - - Thu 06 September 2012 - -
    - By - Wxcafe -
    - Category - Teaching -
    - - - - -
    -

    Étant utilisateur plus ou moins fidèle de GNU/Linux depuis quelques -années (plus ou moins, parce que j'ai toujours un Windows en dual boot, -principalement pour les jeux (possiblement plus pour longtemps, avec -l'arrivée de Steam pour Linux... ) ), je commence a connaître plus ou -moins bien mon système. Or il y a plusieurs choses a savoir sur les -systèmes d'exploitation, et celle dont je vais parler aujourd'hui, c'est -le système de couches.

    -

    Un système d'exploitation (de type UNIX, \<troll>enfin un vrai système quoi. -\</troll>) incorpore plusieurs systèmes de couches.

    -

    Ainsi, Linux (le noyau) a commencé en étant un kernel monolithique, -c'est a dire que tous les composants sont intégrés au kernel. Ce qui -signifie que rien ne peut être ajouté au noyau sans recompiler celui ci. -Or, quand on sait que le noyau comprend entre autres les drivers du -matériel et des systèmes de fichier, cela peut poser des problèmes quand -a la taille du kernel et a la licence libre de ce dernier.

    -

    Depuis un certain temps, le kernel linux est devenu un kernel modulaire, ce qui -signifie que des modules peuvent être chargé a tout moment en cours -d’exécution, ce qui permet l'utilisation de nouveaux systèmes de -fichiers a chaud, ou l'insertion de matériel et l'installation de -drivers sans interrompre l’exécution du système (Windows utilise un -système de fausse installation de drivers pour le matériel externe, et -un système de pré-installation des drivers pour les périphériques dits -"plug and play")

    -

    Après le noyau intervient le système. Or, au tous premiers instants du -boot, les systèmes GNU/Linux utilisent un système permettant de limiter -l'utilisation de ressources systèmes si elles ne sont pas nécessaires, -et incorpore ainsi un système dit de "runlevels"

    -

    Ainsi, au runlevel 0, le système s'éteint après avoir booté. Ainsi, ce -runlevel permet de tester le bon démarrage du système sans avoir a -effectuer de manipulation pour le ré-éteindre

    -

    Le runlevel 1 est appelé mode single user, et c'est un nom plutôt adapté -étant donné que ce runlevel donne accès a un système en étant -automatiquement loggé en tant que root, avec tous les autres -utilisateurs désactivés, de même que tous les systèmes de réseaux

    -

    Le runlevel 2 est appelé mode multi user, et vous mets en face d'un -système classique. en ligne de commande, mais avec tous les systèmes de -réseau désactivés.

    -

    Le runlevel 3 est le même que le 2, mais avec les systèmes de réseaux -activés.

    -

    Le runlevel 4 n'est pas officiellement défini, et est censé être -activable en fonction des besoins de l'utilisateur. Sur la plupart des -distributions grand public, ce runlevel est lié au...

    -

    Runlevel 5! Multi-user, networking, with working GUI! c'est le système -tel que vous le connaissez, avec l'interface graphique et le système de -login graphique.

    -

    Le runlevel 6, enfin, est le bien nommé "reboot", qui reboot la machine -quand il devient le runlevel courant.

    -

    (Il est a noter que Debian, et donc toutes les distribs qui en sont -dérivées, ne font pas de distinction entre les differents runlevels du 2 -au 5. Ainsi, Ubuntu fonctionne par défaut au runlevel 2, avec un login -et une interface graphique, et un mode réseau fonctionnel, bref avec des -fonctionnalités qui ne sont normalement disponibles que sous le runlevel 5.)

    -

    Il est possible de changer de runlevel grâce a la commande runlevel -(oui, c'est évident...)

    -

    Les systèmes Linux utilisent aussi un système dit de SandBox , qui en -informatique est un système permettant d'isoler les processus les uns -des autres. Ainsi, la pile réseau, qui est le système auquel les -différents processus envoient les différents paquets qui doivent sortir -de la machine , et qui redistribue ces paquets, est isolée du reste du -système, en cela qu'aucun des autres processus ne peuvent modifier cette -pile hors du runlevel 1 ou 2.

    -

    De la même façon, le navigateur chrom/ium fait fonctionner tous les -onglets, ainsi que toutes les extensions, dans des processus différents. -Certaines distributions linux implémentent un système de cette sorte -pour toutes les applications, ou seulement pour certaines. ainsi Chakra -Linux a un système d'installation d'applications dans des disques -virtuels, ce qui permet une sécurité totale du processus.

    -

    Voila, j'espère vous en avoir appris un peu sur le fonctionnement des -différentes couches de linux, et j'espère que cet article vous poussera -a tester un peu votre système et a vous amuser avec les différents -runlevels

    -
    -
    -
    -
    - -
    -
    - -
    - - \ No newline at end of file diff --git a/output/posts/les-systemes-de-fichiers/index.html b/output/posts/les-systemes-de-fichiers/index.html deleted file mode 100644 index 1fd39d3..0000000 --- a/output/posts/les-systemes-de-fichiers/index.html +++ /dev/null @@ -1,336 +0,0 @@ - - - - - Les systèmes de fichiers - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    -
    -
    -
    -

    - Les systèmes de fichiers -

    -
    -
    -
    -
    - Date - - Tue 25 September 2012 - -
    - By - Wxcafe -
    - Category - Teaching -
    - - - - -
    -

    Un système de fichiers. Vous en avez surement déjà entendu parlé si vous -avec déjà installé Linux, ou formaté une clé USB. Dans ces cas, vous -connaissez surement NTFS, EXT4, ou encore FAT32.

    -

    Ces différents noms désignent en effet des systèmes de fichiers. Mais -qu'est-ce qu'un système de fichiers?

    -

    Pour comprendre cela, il faut déjà savoir ce qu'est exactement un -fichier. Un fichier est un ensemble de blocs (les blocs sont l'unité la -plus petite traitable par le matériel, ils font généralement 1 ou 4 Kio -(kibioctet), en fonction du système de fichier utilisé.), qui est -donc composé de bits, interprétés différemment en fonction du type de -fichier. Cependant, seul, le fichier n'est pas accessible, puisqu'il -n'est pas indexé, c'est a dire que l'OS ne sait pas qu'il est présent, -ou il commence ni où il s'arrête (je schématise un peu, mais c'est -l'idée).

    -

    Ainsi, le système de fichier donne un cadre et un standard à -l'arborescence des fichiers. Par exemple, le système de fichier ext4 -utilise des blocs de 1 Kio, et de ce fait, toutes les partitions de -disque dur formatées en ext4 peuvent prendre comme unité de base 1 Kio -et mesurer la taille des fichiers en blocs de cette façon. Les systèmes -de fichiers nécessitent l'inclusion de drivers dans le noyau pour -pouvoir être pris en compte.

    -

    Le noyau linux inclut par défaut les drivers pour ext2/3/4, btrfs, -reiserfs, ntfs, fat16/32 et hfsx, ce qui permet de monter a peu -près tout type de partition récente.

    -

    Il convient de bien faire la différence entre le système de fichier et -l'arborescence des fichiers. Si l'arborescence des fichiers est en fait -une entité virtuelle englobant la racine / et tous les fichiers et -dossiers contenus dedans, le système de fichier permet a votre système -GNU/Linux de distinguer les différents fichiers composants cette -arborescence.

    -

    Détaillons maintenant les types de fichiers les plus répandus:

    -
      -
    • -

      FAT16/32 : Les systèmes de fichier FAT (pour File Allocation Table, - soit la définition d'un système de fichier), remplissent leur rôle le - plus simplement possible. Ne permettant (historiquement) que des noms de - 8 caractères (plus extension de trois caractères), ni chiffrement, ni - système de distinction d'utilisateurs (DOS étant un système - mono-utilisateur), Il fut décliné par microsoft en FAT16 et en FAT32, - utlisants respectivement des blocs de 16 et 32 Kio.

      -
    • -
    • -

      NTFS :. Le NTFS (pour New Technology File System, rapport a Windows - NT) est un système de fichier qui est apparu avec Windows XP, et qui - était une mise a jour nécessaire du FAT32 vieillissant. NTFS ajoute a - FAT différentes capacités dont le chiffrement, les liens symboliques, la - compression et les quotas pour les volumes, permettant de limiter la - taille maximum occupée dans une partition.

      -
    • -
    • -

      ReFS : ReFS est le système de fichiers introduit dans Windows Server 2012. - Ne différant pas énormément de NTFS, je le mentionne principalement - parce qu'il est prévu qu'il soit le défaut pour Windows 8. - Il apporte principalement la redondance, c'est a dire que chaque - fichier possède une somme de contrôle en 64 bits stockée dans un fichier - séparé pour éviter les corruption de disque.

      -
    • -
    • -

      Ext2/3/4 : les systèmes ext (extended) sont les systèmes de fichiers - les plus utilisés sous linux pour le grand public. (Je traiterai ici - d'ext4, puisque c'est le plus récent.) Il dispose de toutes les - fonctions que l'on peut attendre d'un système de fichiers moderne, ni - plus ni moins. Ainsi, ext4 est un système de fichiers journalisé, - acceptant les capacités jusqu’à 1 Exioctet, et utilise l'allocation dite - "par extent", ce qui signifie que la création d'un fichier réserve - automatiquement les zones contiguës de façon a réduire la fragmentation.

      -
    • -
    • -

      ReiserFS : ce système de fichiers, créé par le (légèrement mégalo) - programmeur Hans Reiser, est a retenir pour avoir été le premier système - de fichiers journalisé, et accepte un nombre de fichiers de l'ordre des - 4 milliards. Le but de ce système est de créer un système polyvalent, a - la fois système de fichiers et base de donnée (de part sa grande - capacité en terme de nombre de fichiers et de l'utilisation d'un - journal.)

      -
    • -
    • -

      Btrfs : ce système est l'évolution logique d'ext4, et inclut lui aussi - l'allocation par extent, mais possède de plus un système de - sous-volumes, qui permet d’accéder a plusieurs arborescences de fichiers - montées en même temps (système pratique et utile pour faire des - snapshots de systèmes.). Il permet aussi de redimensionner a chaud la - taille des partitions, en les agrandissant ou en les rétrécissant, est - compatible avec LVM, a un système de checking intégré (btrfsck), et - utilise un algorithme de compression appelé LZ4, qui accélère les accès - aux fichiers compressés d'environ 30% par rapport a LZO, le système - utilisé dans ext4.

      -
    • -
    • -

      HFS+ : le système de fichier présent sur tous les macs a des capacités - relativement standards, et ressemble énormément a l'ext3. Il supporte - cependant les liens directs vers les dossiers, fonction rare sur les - systèmes de fichiers actuels. Il est possible qu'il évolue a nouveau - dans les années a venir

      -
    • -
    • -

      ZFS : Ce système de fichier, venu de Solaris mais utilisable par Linux - et *BSD, est, tel Btrfs, a la fois un système de fichier et un - remplaçant/compatible avec LVM, C'est un système de fichiers conçu - principalement pour les serveurs, et il intègre ainsi un système de - redondance des données pour éviter les corruptions, un mode RAID-Z - (apparenté au RAID5), des checks d’intégrité en continu, des snapshots, - etc...

      -
    • -
    -

    Comme on a pu le voir, les systèmes de fichiers disponibles sont -légions. Cependant, le plus adapté a Linux et a une utilisation grand -public aujourd'hui est probablement Btrfs. Malheureusement, ce dernier -n'est pas aujourd'hui proposé par défaut sur les distributions les plus -utilisées, au profit de l'ext4, qui commence a accuser son âge...

    -

    Les systèmes de fichiers, s'ils peuvent ne pas sembler primordiaux au -fonctionnement du système, sont en fait de première importance, et ce -choix ne devrait pas être laissé au hasard, et être mis a jour -régulièrement (pour éviter les failles de sécurité...)

    -

    Bon courage, et bon choix pour votre prochain système.

    -
    -
    -
    -
    - -
    -
    - -
    - - \ No newline at end of file diff --git a/output/posts/linformatique-a-lecole/index.html b/output/posts/linformatique-a-lecole/index.html deleted file mode 100644 index e5b2dbe..0000000 --- a/output/posts/linformatique-a-lecole/index.html +++ /dev/null @@ -1,286 +0,0 @@ - - - - - L'informatique a l'école - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    -
    -
    -
    -

    - L'informatique a l'école -

    -
    -
    -
    -
    - Date - - Mon 15 October 2012 - -
    - By - Wxcafe -
    - Category - Ranting -
    - - - - -
    -

    Après avoir lu cet article paru sur écrans.fr, et au vu des -nombreuses réflexions que j'ai eu sur ce sujet au cours des années, je -commence a me demander si la réponse logique ne serait pas d'enseigner -les bases de l'informatique (bases d’électronique, de programmation et -de logique formelle) dès le collège.

    -

    En effet, l'exemple qui me revient toujours est celui des technoprêtres -de warhammer 40 000, dans un univers ou la technologie est ritualisée et -incomprise même des plus savants, qui se contentent de reproduire ce qui -existe, et parfois par chance de retrouver un schéma explicatif lisible -par une machine, et qu'ils ne comprennent pas eux mêmes, ou toute -technologie est ointe d'onguents sacrés, entourée d'encens avant d'être -péniblement actionnée par des assistants ne comprenant rien a cette -technologie (ayant lu Hackers - Heroes of the Computer Revolution de -Steven Levy, c'est l'ambiance que l'on retrouve quand l'auteur décrit -l'ambiance près des machines IBM au MIT, au début de l'ouvrage), et il -me semble que de plus en plus la société se rapproche de cela.

    -

    Cette culture de l’ingénierie, qui existait beaucoup lors des débuts de -l'informatique (telle que décrite par exemple par Steve Wozniak dans son -livre iWoz) disparait pour laisser place a une culture de la -consommation et de l'utilisation de contenus existants, et même a une -certaine peur de la compréhension de la technologie. Ceux qui s'y -intéressent sont considérés comme marginaux (combien de hackers créent -des outils sur lesquels seront construits tous les systèmes du siècle a -venir, tels des Dennis Ritchie en puissance? Combien d'entre eux ne sont -pas intégrés a la société dite "normale"?), et on peut souvent observer -les réactions de peur que lancent les actions des hackers, ne serait-ce -que dans les journaux (combien de journaux 'mainstream' ont-ils parlés -des hackers en bien, c'est a dire tels qu'ils sont réellement, depuis -les années 80?) ou a la télévision.

    -

    Ainsi, la culture et la connaissance de ces appareils que -sont les ordinateurs, qui aujourd'hui se trouvent du fond de nos -poches a dans l'espace en passant par l’intérieur des pacemakers -jusqu’à être une composante indispensable de la société, se perdent et -rendent ainsi la compréhension de ces appareils impossible (j'ai eu -la désagréable surprise récemment de voir un camarade de classe -me poser ingénument la question "Ah, mais en fait, quand tu installes -Linux, ça change le fond d'écran et les icônes?". Au-delà du niveau, -la misère de cette question est que cette personne n'avait probablement -aucune idée de la façon dont fonctionnait son ordinateur, a part -pour le fond d'écran en question et pour les fameuses icônes.) pour -le grand public, et cet évolution crée de fait une sorte d'oligarchie de -techno-comprenants, seuls capables de manier et de créer la technologie.

    -

    C'est pour cela qu'il me semble intéressant, important, peut être même -requis, d'inclure au programme du collège puis du lycée des cours -d’électronique et d'informatique tels que décrits plus haut, de façon a -ce que les élèves comprennent le monde qui les entoure. Car c'est la le -but du cycle scolaire secondaire, me semble-t-il, et non pas de former -des futurs travailleurs. Sinon, pourquoi y aurait-il des cours de -musique, d'arts plastiques, ou encore de philosophie? Si le but du cycle -secondaire est bien d'ouvrir l'esprit des élèves sur le monde et sur ce -qui les entoure, alors les cours sur l'informatique s'imposent comme une -évidence, puisque ceux-ci nous entourent aujourd'hui bien plus que quoi -que soit d'autre...

    -

    Ces cours seraient susceptibles de s’insérer en un mélange entre des -cours de technologie (qui aujourd'hui sont bien plus orientés physique -et machines-outils qu'informatique ou électronique, alors que la -technologie d'aujourd'hui et vraisemblablement de demain aussi est -l'informatique) et de physique, pour le côté électronique, et de façon a -donner enfin aux cours de physique un intérêt quelconque, sortir au delà -de la théorie et de l'abstraction complète que sont actuellement ces -cours et passer un peu dans la réalisation, avec des arduinos par -exemple.

    -

    Vous aussi, intéressez vous a cela, de façon a ce que les jeunes ne -finissent pas par ne rien comprendre a ce qui est aujourd'hui l'une des -composante les plus importantes du monde tel qu'il est programmé.

    -
    -
    -
    -
    - -
    -
    - -
    - - \ No newline at end of file diff --git a/output/posts/update-a-propos-du-blog/index.html b/output/posts/update-a-propos-du-blog/index.html deleted file mode 100644 index 2d3d442..0000000 --- a/output/posts/update-a-propos-du-blog/index.html +++ /dev/null @@ -1,247 +0,0 @@ - - - - - Update a propos du blog - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    -
    -
    -
    -

    - Update a propos du blog -

    -
    -
    -
    -
    - Date - - Tue 18 September 2012 - -
    - By - Wxcafe -
    - Category - Notes -
    - - - - -
    -

    Bonsoir! Un petit post pour faire un peu le point sur ce blog.
    -Comme vous avez pu le remarquer, j'ai un peu de mal a tenir les délais -que je m'étais fixés pour ce blog (un post tous les 8 jours), et après y -avoir un tantinet réfléchi, ceci est du a deux points principaux :

    -
      -
    • -

      Tout d'abord, le manque d'inspiration, tout simplement. C'est assez -compliqué de trouver des sujets intéressants liés a l'informatique, et -qui méritent un article. Je vous invite d'ailleurs a me suggérer des -sujets via les commentaires ou twitter (@Wxcafe)

      -
    • -
    • -

      Ensuite, le délai de 8 jours est trop court pour me permettre de faire -les recherches nécessaires, tout en manageant mes cours et mon temps -libre.

      -
    • -
    -

    A cause de cela, j'ai pris la décision de changer le rythme de parution -des articles a un *minimum* d'un post tous les 10 jours. Bien entendu, -si j'ai de l'inspiration en trop, plus de posts sont envisageables.

    -

    Voila. A part ca, je tiens a vous remercier de me lire (c'est assez -étonnant de voir ca...), et je précise que je vais ajouter une page -About Me, qui bien entendu rassemblera des informations sur moi, ma vie, -mon oeuvre :P

    -

    Ceci dit, je vais bosser un peu sur le prochain article.

    -

    A plus tard!

    -
    -
    -
    -
    - -
    -
    - -
    - - \ No newline at end of file diff --git a/pelicanconf.py b/pelicanconf.py index 7bbb03a..1003d31 100644 --- a/pelicanconf.py +++ b/pelicanconf.py @@ -5,11 +5,7 @@ from __future__ import unicode_literals # Misc Settings AUTHOR = u'wxcafé' SITENAME = u'Wxcafé' -<<<<<<< HEAD SITEURL = '//wxcafe.net' -======= -SITEURL = 'file:///home/wxcafe/code/blog-source/output' ->>>>>>> origin/master TIMEZONE = 'Europe/Paris' DEFAULT_LANG = u'fr' DEFAULT_PAGINATION = 10 @@ -39,10 +35,6 @@ MD_EXTENSIONS = [ # Blogroll LINKS = ( ('Source!', 'https://github.com/wxcafe/blog-source', 'code'), -<<<<<<< HEAD -======= - ('Zerobin', 'http://paste.wxcafe.net', 'paste'), ->>>>>>> origin/master ('Public Git', 'http://git.wxcafe.net', 'github-sign'), ) @@ -51,14 +43,8 @@ SOCIAL = ( ('Twitter', 'https://twitter.com/wxcafe', 'twitter'), ('Github', 'https://github.com/wxcafe', 'github'), ('Email', 'mailto://wxcafe@wxcafe.net', 'envelope'), -<<<<<<< HEAD ('Gpg', 'https://pub.wxcafe.net/wxcafe.asc', 'key'), ('IRL', 'https://www.openstreetmap.org/relation/105146', 'map-marker') -======= - ('Gpg', 'https://data.wxcafe.net/wxcafe.asc', 'key'), - ('Finger', 'finger://wxcafe@wxcafe.net', 'terminal'), - ('IRL', 'http://leloop.org/where.html', 'map-marker') ->>>>>>> origin/master ) # Categories on right-side bar but not on top menu diff --git a/pelicanconf.pyc b/pelicanconf.pyc index acf6bc0..c9ba17c 100644 Binary files a/pelicanconf.pyc and b/pelicanconf.pyc differ diff --git a/themes/bootstrap2/templates/base.html b/themes/bootstrap2/templates/base.html index 62a03b3..270f76d 100644 --- a/themes/bootstrap2/templates/base.html +++ b/themes/bootstrap2/templates/base.html @@ -7,10 +7,7 @@ -<<<<<<< HEAD -======= ->>>>>>> origin/master