~bohwaz/blog/

Avec de vrais morceaux de 2.0 !

Transformer sa machine en passerelle avec une seule carte réseau

Voilà le HOWTO du jour parce que je l'ai fait avec succès (merci à Lunar pour l'aide), et parce que j'en avais besoin.

Donc le postulat de base c'est que vous avez plusieurs machines, mais un seul accès à Internet. Hors votre modem est en Ethernet (comme ce modem noos que j'utilise), cool, mais vous avez beau brancher un switch entre vos machines et votre modem, une seule de vos machines peut accéder au net en même temps. Logique le modem ne fait pas routeur, il renvoie une adresse IP en DHCP, mais il renvoie toujours la même, l'adresse publique. Hors il vous manque donc un routeur/passerelle qui fasse pour vous tout le boulot de passage de vos machines (votre réseau local) vers le grand ternet. Dans pas mal de cas soit le modem fait déjà routeur (cas des freebox, miam), vous avez un routeur wifi ou vous avez une machine récupérée des fins fonds de la cave qui s'en charge grâce à 2 cartes réseau ethernet et une distrib qui va bien (IPCop c'est bon mangez-en). Mais si vous n'avez sous la main que des machines avec une seule interface réseau (genre comme moi des laptops avec une carte Ethernet), ben c'est coton, mais heureusement vous allez pouvoir faire routeur/passerelle avec une seule interface réseau.

Voici donc comment faire (avec Debian ici). Il faut déjà éditer /etc/network/interfaces et rajouter une interface réseau virtuelle (que nous allons appeller "rezo" pour le fun):

auto lo eth0 eth0:rezo
iface lo inet loopback

# Connexion au modem en DHCP
iface eth0 inet dhcp

# Interface virtuelle pour le réseau local
iface eth0:rezo inet static
       address 192.168.1.1
       netmask 255.255.255.0
       network 192.168.1.0
       broadcast 192.168.1.255

Faites un "/etc/init.d/networking restart" et hop en faisant "ifconfig" vous devriez voir votre nouvelle interface réseau. Maintenant plus dur il faut activer le routage et donc faire dans une ligne de commande:

sudo sysctl -w net.ipv4.ip_forward=1
sudo iptables -t nat -A POSTROUTING -s 192.168.1.0/24

Maintenant vous pouvez faire le test cela devrait fonctionner en mettant dans le "/etc/network/interfaces" d'une autre machine du réseau local ceci:

iface eth0 inet static
      address 192.168.1.2
      netmask 255.255.255.0
      gateway 192.168.1.1
      network 192.168.1.0

Et ensuite avec un "ping -n 192.168.1.1" vous verrez si le lien local est actif et avec un "ping -n 212.27.48.10" si le lien vers le net est actif. Désormais vous n'avez plus qu'à rajouter les IPs des DNS de votre FAI dans le "/etc/resolv.conf" de l'autre machine et voilà vous aurez une passerelle fonctionnelle sur une seule interface réseau grâce aux alias virtuels :)

PS: Faire fonctionner deux DHCP sur le même réseau est complexe, surtout si votre FAI vous donne votre IP publique avec un DHCP. Personnellement j'ai simplement mis une option "deny unknown-clients;" ainsi que des hostname associés aux adresses MACs des machines du réseau dans mon /etc/dhcpd.conf comme ça les machines du réseau local ont une adresse donnée en DHCP (et les serveurs DNS aussi) mais la machine qui fait routeur n'utilise pas le DHCP local plutôt que celui du FAI.

Wikikubbe 0.6.0 est sorti!

Voilà enfin enfin, après tant de temps une nouvelle vraie version de Wikikubbe, et la branche 0.6 a été entièrement recodée de zéro, mais garde sa compatibilité avec les 0.5.x grâce à une détection automatique des anciennes données à convertir. Cette version fait donc:

  • Wiki ultra-simple: un fichier à mettre sur son FTP et hop! (voir plus bas)
  • Mode privé: seul l'admin peut éditer les pages et donner l'accès aux visiteurs à certaines
  • Mode public: toutes les pages sont éditables, l'admin peut en bloquer certaines
  • Syntaxe d'édition wiki2xhtml
  • Design CSS-proof whoo ça rox
  • Accès admin par mot de passe et/ou adresse IP
  • Adresses des pages zolies
  • Différents thèmes possibles
  • Catégories de pages: /wiki/Films/Die_Hard (par exemple)
  • Cache des pages
  • Index des pages du wiki (+ Suppression en masse pour l'admin)
  • Index des pages d'une catégorie
  • Possibilité de renommer/déplacer une page
  • Possibilité de supprimer une page
  • Gestion des pluriels: truc et trucs pointent sur la même page si une des deux existe.

Voilà c'est beau c'est nouveau et ça tourne sur Free.fr (youpi), avec une démo par ici donc (mot de passe: abcd). Pour les feignasses y'a toujours un screenshot ici.

Installation

Pour installer le wikikubbe sur votre hébergement c'est simple:

  • Télécharger ce fichier: http://dev.kd2.org/wikikubbe/0.6/wikikubbe-installer.php.txt
  • Le renommer en wikikubbe-installer.php
  • Le mettre dans un nouveau répertoire de votre hébergement (par exemple /wiki/ tiens c'est très bien ça)
  • Aller à l'adresse http://monbeausite.com/wiki/wikikubbe-installer.php et hop c'est dans la boite!

Sinon pour les geeks y'a aussi l'archive en .tar.gz et en .zip.

Enjoy!

[Edit: on en parle sur le blog de jinfoo]

On parle du plugin d'import de skyblog

Comme quoi certains sont intéressés finalement :)

On en parle sur le forum Hardware.fr, sur le forum Ubuntu et sur le blog parentheses.be, sans compter le topic sur le forum DotClear.

Sinon oui je sais que la version 0.2 buggue avec certains skyblogs, je travaille sur une 0.3 qui corrige ces bugs et permet de choisir dans quelle catégorie et dossier image importer le skyblog (parce que certains veulent importer plusieurs skyblogs). Pour savoir quand cette version sortira vous n'avez qu'à vous abonner au flux RSS de ce blog et vous le saurez :) En fait j'attends déjà que Gna! ait accepté le projet pour avoir un SVN surtout...

[edit: le projet est sur le SVN de gna: ViewCVS, Reposito SVN :)]

WikiKubbe est sur SVN!

Les choses bougent pas mal en ce moment et je vais commencer progressivement à mettre tous mes projets sur des repos SVN pour pouvoir un peu suivre le bordel de mes projets. Idéalement j'aurais bien créé mon serveur svn à moi mais vu que c'est relativement chiant à faire (il faut apache2 etc.) j'ai préféré prendre mes repos sur des trucs existants. Ainsi on commence avec WikiKubbe dont la future version 0.6 est désormais sur http://opensvn.csie.org/wikikubbe (aussi dispo en httpS), avec le ViewCVS qui va bien, même s'il a du mal avec l'UTF-8 de subversion.

Le service de OpenSVN.csie.org est génial: dépôt SVN complet avec gestion des permissions, des users, forward des commits par mail, checkout anonyme ou pas, et même Trac, l'usine à gaz (même si mat dis le contraire je persiste à le penser à l'utilisation). Et le must c'est que c'est sans pub et très simple/léger niveau interface. Bref ça fait ce qu'on lui demande.

Les prochains à arriver seront sûrement le plugin d'import de skyblog pour dotclear (j'ai déposé une demande sur Gna!) et L'Encrier (sur Tuxfamily dont le panel d'admin ne marche plus sous Opera 8.5x d'ailleurs), tous deux sur des repos SVN aussi. Je touche un peu à toutes les étables pour diversifier et puis bon ça peut pas faire de mal.

Concernant le bug tracking, j'ai rien trouvé de satisfaisant donc je suis en train de coder ma solution en PHP5/SQLite. Ca sera léger et simple, et surtout rapide pour pas prendre 50 ans à reporter des bugs plutôt qu'à les corriger.

Bot jabber qui vous parle

Voilà un petit bot jabber tout sympatoche. C'est basé sur edgar 0.2.1, mais tout en français et avec quelques trucs en plus. Le premier truc c'est que le bot comprends les demandes de rappel en langage humain.

Exemple:

[17:18:21] <BohwaZ> rappelle moi dans 5 minutes de manger un truc j'ai trop faim
[17:18:21] <Bot> Rappel enregistré pour le 17/04/2006 à 17:23.
Message: manger un truc j'ai trop faim

Le second c'est qu'on peux lui apprendre à parler et répondre, par exemple:

[17:23:27] <BohwaZ> !teachme question j'ai faim!
[17:23:27] <Bot> J'ai bien enregistré cette question. Utilisez cet ID pour vous y référer désormais: 5
[17:23:46] <BohwaZ> !teachme reponse 5 ben t'as qu'à manger
[17:23:46] <Bot> J'ai bien enregistré cette réponse à la question #5.
[17:24:15] <BohwaZ> !teachme reponse 5 tu m'invite?
[17:24:16] <Bot> J'ai bien enregistré cette réponse à la question #5.
[17:24:19] <BohwaZ> j'ai faim
[17:24:19] <Bot> ben t'as qu'à manger
[17:24:31] <BohwaZ> j'ai faim
[17:24:31] <Bot> tu m'invite?

Alors voilà pour la petite histoire le robot sort une réponse au hasard parmis les réponses enregistrées. Pour plus d'infos demandez-lui "aide !teachme"

Le bot est actuellement présent sur bot@im.apinc.org et il ne comprends pas grand chose

Je sais pas s'il va rester vu que les admins du serveur apinc ont peut-être envie que cette adresse serve à autre chose et peut-être aussi que ma copie du bot ne restera pas en ligne sur la même adresse.

Le code source est ici: http://jabber.kd2.org/edgarbot-fr.tar.bz2

Enjoy.

Images dans dotclear

Comme moi vous avez dotclear et les images ne marchent pas? (et oui encore un bug de dotclear) Le symptôme chez moi étant l'affichage du répertoire /ecrire/ plutôt que /images/ dans la page images.php. Alors voici une solution qui pourrait vous aider (en tout ça résoud le problème pour toute installation de dotclear sur plate-forme alternC. Dans le fichier inc/post_config.php vous devez repérer ces lignes (vers la ligne 49):

# dc_img_root
if (!defined('dc_img_path')) {
       define('dc_img_root',$_SERVER['DOCUMENT_ROOT'].'/'.dc_img_url);
} elseif (strpos(dc_img_path,'/') === 0) {
       define('dc_img_root',dc_img_path);
} else {
       define('dc_img_root',$_SERVER['DOCUMENT_ROOT'].'/'.dc_img_path);
}

Et remplacez les par:

# dc_img_root
#if (!defined('dc_img_path')) {
#       define('dc_img_root',$_SERVER['DOCUMENT_ROOT'].'/'.dc_img_url);
#} elseif (strpos(dc_img_path,'/') === 0) {
#       define('dc_img_root',dc_img_path);
#} else {
#       define('dc_img_root',$_SERVER['DOCUMENT_ROOT'].'/'.dc_img_path);
#}

define('dc_img_root','../images/');

Voilà ça devrait résoudre le problème :)

Notes rapides... ↓