Meuporgue ?!


Ouais, effectivement... c'est dur a prononcer ...

Sinon, quand il s'agit de cracher sur Internet ou les jeux-vidéos, les journalistes ne sont jamais loin... Il suffit d'écouter de nouveau le résumé du "journaliste" de France2 et de repérer le champs lexical que dernier utilise pour parler des meuporgues. C'est loin d'être reluisant. Comme on dit: « Il suffit de dire que la chien a la rage ».

Au feu, tournez à gauche

Pour des raisons évidentes, j’ai décidé de rendre un peu moins aisée (i.e. pas immédiate) la découverte de mon IP. Plus précisemment, pour certains protocoles et pour certaines machines, je veux que l’IP vue par mon/mes peers ne soit pas directement l’IP que mon fournisseur d’accès m’affecte.

J’ajoute, mais cela n’a evidemment aucun rapport avec cet article, que certains pays intellectuellement plus développés ont recemment confirmé que le partage de fichiers sur le réseau n’était pas illégal sur leur sol.

Le postulat est donc le suivant: seules certaines machines de mon réseau privé devront “sortir” sur une passerelle differente, et uniquement pour certains ports et protocoles.

Pour réaliser cette petite tambouille, j’ai à ma disposition :

  • Un serveur dédié ou virtuel hébergé “ailleurs”, possédant une interface sur une DMZ
  • Le serveur en question fonctionne sous GNU/Linux, on gère donc le NAT et le firewalling grâce à iptables
  • Une passerelle qui me relie à l’Internet par le biais de mon fournisseur d’accès
  • Cette passerelle fonctionne sous NetBSD 5.0.2, on gère le NAT et le firewalling grâce à pf (notez qu’ipf ne permettrait pas, à ma connaissance, d’utiliser les fonctions qui nous seront nécessaires)

La première étape consiste à établir un lien VPN entre la passerelle et le serveur dédié. J’ai utilisé OpenVPN, solution de choix de par sa simplicité, sa souplesse et sa grande stabilité. Étant donné qu’il existe un nombre incalculable de documentations sur cet outil, je colle ici mes configurations client et serveur sans plus de détails :

Sur le serveur :

tls-server

port 4444
dev tun
proto udp
local mon.serveur.dedie

cd /home/imil/etc/openvpn
ca keys/ca.crt
cert keys/dedie.crt
key keys/dedie.key
dh keys/dh1024.pem

client-config-dir ccd

server 10.20.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt

client-to-client
route 192.168.1.0 255.255.255.0

comp-lzo

keepalive 10 60
ping-timer-rem
persist-tun
persist-key

status openvpn-status.log

verb 3

Sur le client :

tls-client

proto udp
dev tun0

remote mon.serveur.dedie 4444

nobind

cd /usr/pkg/etc/openvpn/dedie-keys
ca ca.crt
cert monhost.crt
key monhost.key

comp-lzo

keepalive 10 60
ping-timer-rem
persist-tun
persist-key

pull

verb 3
log /var/log/openvpn.log

Une fois OpenVPN démarré sur chaque point, une interface tun0 monte, avec coté serveur une IP du type 10.20.0.1 et côté client, 10.20.0.6.
Notez que, coté serveur dédié, on verra arriver une machine depuis la passerelle avec son IP réelle sur le réseau domestique, soit ici 192.168.1.0/24. Ainsi, c’est ce sous-réseau que nous devons NATer sur le dédié GNU/Linux.

Une particularité de mon montage est que je ne souhaite pas utiliser l’IP publique principale de mon serveur public car celle-ci possède un reverse sur mon domaine et est facilement identifiable. Par chance, mon hébergeur me donne la possibilité d’ajouter des alias IP routés sur l’interface publique. En l’occurence, c’est précisemment sur cet alias que j’effectue un source NAT plutot que du MASQUERADING :

### règles INPUT
# iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT # j'autorise en entrée les connexions établies et connexes
# iptables -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT # j'autorise l'echo-request
# iptables -A INPUT -p udp -m udp --dport 4444 -j ACCEPT # j'autorise la connexion vers OpenVPN
# iptables -A INPUT -i eth0 -j REJECT --reject-with icmp-port-unreachable # et je rejette tout le reste sur l'interface eth0
### règles de NAT
# iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j SNAT --to-source mon.alias.ip.public

Désormais, si sur ma passerelle je plaçais une route par defaut sur 10.20.0.1 (le boût du tunnel sur le serveur dédié), les machines de mon réseau 192.168.1.0/24 apparaîtraient avec l’IP mon.alias.ip.public.
Cependant, seulement certaines machines, et surtout certains protocoles devront être soumis à cette politique, et c’est grâce à pf, et en particulier la directive route-to, que nous allons mettre en place ce routage conditionnel. Voici les lignes corresponsantes du fichier pf.conf de notre passerelle NetBSD :

int_if="xennet0"

[...]

pass in on $int_if route-to (tun0 10.20.0.1) proto tcp from 192.168.1.10 \
        to any port 80
pass in on $int_if route-to (tun0 10.20.0.1) proto udp from 192.168.1.10 \
        to any port > 10000

Décodage: Concernant le traffic qui arrive sur l’interface interne $int_if, toute demande en provenance de l’IP 192.168.1.10 à destination du protocole HTTP devra être routée vers l’interface tun0 en utilisant l’adresse de passerelle 10.20.0.1.
toute demande en provenance de l’IP 192.168.1.10 à destination de ports UDP supérieurs à 10000 devra être routée vers l’interface tun0 en utilisant l’adresse de passerelle 10.20.0.1.

J’utilise ce routage depuis hier soir, l’overhead du lien VPN est minimal et l’ensemble se comporte correctement. Je ne prétend pas, avec ce système, bénéficier d’un anonymat hors du commun, mais il me permet au moins de ne pas exposer mon IP publique.

Le trésor de la langue française informatisé

Ça faisait un bout de temps que je cherchais sans vraiment forcer un
moyen d'accéder vite fait au fameux dictionnaire en ligne TLFI.
http://atilf.atilf.fr/tlf.htm
(Oui, c'est le trésor qui est informatisé)

Les navigateurs récents permettent de rajouter des moteurs de recherche
via une interface conviviale, un fichier de config, etc. (Chercher
'opensearch' sur wikipedia). Le soucis du TLFI, c'est que c'est un poil
vieillot et donc des gens sympas du CNRS (CNRTL précisément) ont
travaillé à monter une interface un peu plus pratique.

Pour le TLFI, utilisez donc l'adresse suivante :
http://www.cnrtl.fr/lexicographie/%s

A l'occasion, jetez aussi un coup d'oeil au project mycroft de la
fondation Mozilla qui recense pas mal de moteurs opensearch :
http://mycroft.mozdev.org/search-engines.html?category=21

Bonne recherche.


pinpin transforme le sang en vin

SL10, c’est fini, et on va encore se faire plein d’amis !

Merci à llaumgui pour la photo ci-dessus et au mysterieux Monsieur J pour cette idée simplement géniale :)

pkg_rollling-replace et pkgsrc

Je pense beaucoup de bien de pkgsrc, une infrastructure multi plateforme pour installer des logiciels à partir du code source,  dont je me sers pour bénéficier des dernières nouveautés du libre à côté des outils standards de ma plateforme.
Pkgsrc permet sur OSX d'avoir ainsi git, mplayer, unrar, hatari, gpg, nedit et sur Linux ( Debian ) d'avoir la dernière version de svn et d'openvpn, sans mettre le bazar dans dpkg.

Pour la dernière mise à jour de pkgsrc, je me suis laissé tenté par pkg_rolling-replace en lieu et place de l'habituel pkg_chk. pkg-rolling-replace a le principal avantage par rapport à pkg_chk de faire une mise à jour progressive, alors que pkg_chk deinstalle tout ce qui doit être mis à jour avant de recompiler.
Comme sur ma machine ( PowerPC 1,42 GHz), la compilation de mes 500 paquets prend plusieurs jours, cela représente un intérêt évident.
J'ai documenté sur le wiki netbsd  les étapes utilisées, la commande principale étant

pkg_rolling-replace -rsuvX bmake,bootstrap-mk-files,pax,pkg_install

Deux échecs seulement dans la mise à jour des 506 paquets.

===> Building for physfs-1.0.1nb1
/Volumes/Projects/netbsd/bin/bmake  all-recursive
/bin/sh ./libtool --mode=link gcc  -O2 -pipe -O2 -I/Volumes/Projects/netbsd/include -I/usr/include -D_REENTRANT -D_REENTRANT -D_THREAD_SAFE   -L/V
olumes/Projects/netbsd/lib -L/usr/lib  -Wl,-framework -Wl,Carbon -Wl,-framework -Wl,IOKit -no-undefined -o test_physfs  test_physfs.o ./libphysfs.
la -lpthread -lz
gcc -O2 -pipe -O2 -I/Volumes/Projects/netbsd/pkgsrc/devel/physfs/work/.buildlink/include -D_REENTRANT -D_THREAD_SAFE -Wl,-framework -Wl,Carbon -Wl
,-framework -Wl,IOKit -o .libs/test_physfs test_physfs.o  -L/Volumes/Projects/netbsd/pkgsrc/devel/physfs/work/.buildlink/lib ./.libs/libphysfs.dyl
ib -lpthread -lz
Undefined symbols:
  "_readline", referenced from:
      _main in test_physfs.o
  "_add_history", referenced from:
      _main in test_physfs.o
      _main in test_physfs.o
ld: symbol(s) not found

Ceci est du à un petit LDFLAGS+=      -lreadline manquant et a fait l'objet d'un rapport de bug (#42468) pour aboutir à la conclusion que ceci avait déja été corrigé, et que mon source n'était pas à jour ! Apparemment csup avait manqué quelques répertoires lors de la mise à jour, ou quelque chose a manqué entre la chaise et l'ordinateur lors de l'update.

===> Installing for tex-courier-2008.7340
ERROR: tex-courier-2008.7340 conflicts with installed package(s):
ERROR:     teTeX-texmf-3.0nb16
ERROR: They install the same files into the same place.
ERROR: Please remove conflicts first with pkg_delete(1).

Un cas de paquet renommé, rien de bien méchant après quelques pkg_delete et bmake install, l'erreur disparait.

The Handsome Men's Club

La suite de « I fuck Matt Damon », par le même Jimmy Kimmel (voir mes précédents posts), c'est juste HANDSOME!:

Crassshhhh

C’est remarquable cette propension des petits lutins bleus de la nuit à aller bousiller les seules machines qui ne sont pas backupées, ils savent tout, ils voient tout, et ce sont de sacrés petits pervers de merde.

Hier matin, alors que je m’apprétais à faire le tour de mes mails avant de partir au boulot, je constate avec effroi que “je ne sors plus”. Comportement plus qu’étrange, ma passerelle récupère bien l’IP publique Free via DHCP, le ping passe quelques secondes, puis s’arrête, plus rien. Inévitablement, je commence à blâmer Free -bien qu’objectivement, je n’ai pas recontré de problèmes majeurs depuis des mois-, puis par acquis de conscience, teste le lien sur une machine differente. Ça passe.

Mon ancienne passerelle était un peu bancale, il faut l’avouer; il s’agissait d’une Sun Netra X1 gracieusement léguée par monsieur ange pendant Solutions Linux 2008, qui faisait tourner un OpenBSD 4.1 qui paniquait environ tous les trois mois.

Il ne m’en fallait pas plus pour plancher sur une nouvelle gateway, sous NetBSD cette fois. M’est alors apparu l’idée de faire fonctionner cette passerelle dans un domU, après tout, en bridgeant l’interface qui reçoit le réseau Free à une interface Xen, et de la même manière, en bridgeant l’interface raccordée à mon LAN, cela devrait fonctionner sans accroc: et bien c’est le cas.

Voici les fichiers impliqués dans ce mic-mac:

Sur le dom0, je déclare mes interfaces comme suit :

$ cat /etc/ifconfig.fxp0 # LAN
inet 192.168.0.10 netmask 255.255.255.0
$ cat /etc/ifconfig.fxp1 # Free
up

Puis je déclare des bridges sur ces interfaces :

$ cat /etc/ifconfig.bridge0 # LAN
create
!brconfig $int add fxp0 up
$ cat /etc/ifconfig.bridge1 # Free
create
!brconfig $int add fxp1 up

Ce qui nous donne, dans la configuration du domU :

$ cat /usr/pkg/etc/xen/exar
#kernel = "/home/imil/xen/netbsd-5.0.2-INSTALL_XEN3_DOMU.gz"
kernel = "/home/imil/xen/netbsd-5.0.2-XEN3_DOMU-pf.gz"
memory = 256
name = "exar"
vcpus = 1
disk = [ 'file:/home/imil/xen/exar.img,0x03,w' ]
disk += [ 'file:/home/imil/iso/amd64cd-5.0.2.iso,0x04,r' ]
vif = [ 'bridge=bridge0' ]
vif += [ 'bridge=bridge1' ]
bootdev = "/dev/xbd0a"

Notez le nom du noyau qui sert à faire booter cette VM, netbsd-5.0.2-XEN3_DOMU-pf.gz. En effet, un modload /usr/lkm/pf.o fait misérablement crasher le domU, il est donc nécessaire de se fendre d’une recompilation du noyau domU en incluant à la configuration :

pseudo-device   pf                      # PF packet filter
pseudo-device   pflog                   # PF log if

Sur le domU-passerelle, on constate la présence des deux interfaces :

$ ifconfig -a
xennet0: flags=8863 mtu 1500
        capabilities=2800
        enabled=0
[...]
xennet1: flags=8863 mtu 1500
        capabilities=2800
        enabled=0
[...]

Leur configuration est triviale :

exar$ cat /etc/ifconfig.xennet0 # LAN
inet 192.168.0.254 netmask 255.255.255.0
exar$ cat /etc/ifconfig.xennet1 # Free
up
!dhclient $int

Et voila !

On active le NAT gràce à pf :

ext_if="xennet1"
int_if="xennet0"

nat on $ext_if from !($ext_if) -> ($ext_if:0)

Et me voila à nouveau en mesure de raconter ma vie trépidante sur l’Intarwebz.

Nagui tacle un politique en direct ...

Une interview intéressante de Nagui sur un évènement qui a du passer inaperçu pour beaucoup de gens mais complètement révélateur d'un homme politique bien connu, et qui a été en avant lors de la loi Création et Internet (HADOPI).

Cet homme n'est autre que ... Jack Lang.

Mais que dit Nagui ? Petit extrait :
« Jack Lang m'a passé 25 coups de fil avant les Victoires pour que je parle de lui et qu'on le montre à l'antenne... Jack Lang m'a saoulé ! Alors, oui, j'ai fait cette petite vanne. Ce que les téléspectateurs ne voient pas, c'est que dès qu'ils ont été cités à l'antenne, la plupart des politiques quittent la salle. Jack Lang n'est pas resté jusqu'au bout de la cérémonie. Et c'est tous les ans comme ça... À la fin, ça me gonfle ! »
Nagui

Le même Jack Lang qui se pavanait au JT de TF1 pour effectuer sa complainte sur la loi HADOPI, son incompréhension face à ses collègues députés et bien entendu sa maitrise totale du sujet.

Le même aussi qui ne s'est jamais présenté à l'assemblée pour suivre les débats de la loi HADOPI...

C'est beau l'hypocrisie ...

La vidéo du passage: Ozap: Jack Lang m'a saoulé
L'interview en question: Le point: Jack Lang m'a saoulé

Making Of: Alice au pays des merveilles (2010)

Back to the future: Analyse de la scène finale ...

Ce week-end, ca a été la rétrospective Back to the future (Retour vers le futur pour les incultes). A la fin du 3ème, on découvre les enfants du Docteur Emmett Lathrop Brown.

En 20 ans, j'avais jamais tilté que l'un des gosses avait une tête chelou. Mais bon, passons.

Et puis, le grand hasard du calendrier aztèque, au détour du web, je tombe sur un mec qui publie une vidéo de ce passage.. et c'est encore plus zarb que je ne le pensais !! :-\


Effectivement: WTF ?!

A noter que Verne Brown est joué par l'acteur Dannel Evans