fév 25 2009

Modifier le « User-Agent » sous Firefox & Thunderbird

Tag: Firefox, Logiciels diversSylvain @ 12:54

Rien de plus simple, il suffit d’aller dans l’éditeur de configuration des ces outils :

  • Sous Firefox, il faut taper « about:config » dans la barre de navigation
  • Sous Thunderbird, il faut aller dans le menu « Édition -> Préférences », sélectionner l’onglet « Avancé » puis « Général » et cliquer sur « Éditeur de configuration»

Ensuite, il faut ajouter (ou modifier si elle existe déjà) une chaîne de caractères que vous nommerez « general.useragent.override », la valeur que vous rentrerez par la suite sera utilisée par Firefox ou Thunderbird pour spécifier l’« User-Agent ».

À lire :


fév 23 2009

Problème d’accès à l’IP publique d’une Freebox à travers le NAT

Tag: Debian GNU/Linux, SystèmeSylvain @ 07:20

Voici un état des lieux : je dispose d’une Freebox v4, j’ai activé le NAT et le DHCP (adresses IP fixées par adresse MAC) pour mes PC. Il y en a un qui est entièrement accessible depuis internet grâce à l’option « IP DMZ » présente dans la console d’administration de la Freebox qui redirige toutes les connexions entrantes non encore établies en provenance d’internet vers l’adresse IP désignée, dans mon cas 192.168.0.1. Mon adresse IP publique est associée au domaine gnusquad.org donc tout le traffic à destination de ce domaine part sur le PC ayant l’IP 192.168.0.1.

Voici un schéma afin d’être plus clair :
Graphique Freebox

Le problème est qu’il est impossible depuis le PC ayant l’IP 192.168.0.2 d’accéder, par exemple, à mon blog (http://blog.gnusquad.org), la résolution DNS renvoyant mon adresse IP publique et la Freebox ne redirigeant le traffic « IP DMZ » que depuis le WAN et non le LAN !

Ma solution initiale était d’ajouter sur le PC ayant l’IP 192.168.0.2, une entrée dans le fichier « /etc/hosts » qui pour rappel, permet de fixer une adresse IP pour une liste de domaines et de sous-domaines :

root@gnusquad:~# vi /etc/hosts

192.168.0.1 gnusquad.org www.gnusquad.org blog.gnusquad.org man.gnusquad.org
...

Cette solution a le mérite d’être simple et rapide à mettre en œuvre mais a comme désavantage le fait de devoir tenir à jour cette entrée par rapport à la liste grandissante des sous-domaines hébergés sur la même machine.

Il était donc temps de trouver une solution plus confortable, c’est pourquoi j’ai décidé d’installer un proxy DNS, en l’occurence pdnsd qui me permettrait de modifier les enregistrements DNS à ma guise.

root@gnusquad:~# aptitude install pdnsd

L’installation vous demandera si vous préférez utiliser les DNS fournis par le programme resolvconf, les DNS des serveurs racines ou bien encore si vous préférez les indiquer manuellement.
Utilisant resolvconf, ce que je vous conseille au passage, j’ai choisi cette option ce qui aura pour conséquence, au lancement de pdnsd de mettre l’IP 127.0.0.1 dans le fichier /etc/resolv.conf à la place des DNS de votre FAI, ces derniers étant utilisés par le proxy pour la résolution de noms.

Il faut ensuite, désactiver la génération automatique du fichier de configuration du proxy en commentant la ligne AUTO_MODE du fichier /etc/default/pdnsd.conf . Vous pouvez également spécifiez des options de démarrage via la variable START_OPTIONS ce qui peut être utile pour activer le mode debug (option –debug). Voici ce que ça donne une fois le fichier modifié :

root@gnusquad:~# cat /etc/default/pdnsd.conf

# do we start pdnsd ?
START_DAEMON=yes
# auto-mode, overrides /etc/pdsnd.conf if set [see /usr/share/pdnsd/]
#AUTO_MODE=resolvconf
# optional CLI options to pass to pdnsd(8)
START_OPTIONS="--debug"

Maintenant il ne reste plus qu’à configurer le proxy DNS pour renvoyer l’IP 192.168.0.2 pour toutes demandes de résolution de noms portant sur le domaine gnusquad.org ce qui se fait aisément une fois après avoir lu la man page du fichier pdnsd.conf :

root@gnusquad:~# vi /etc/pdnsd.conf

...
rr {
    name=gnusquad.org;
    ns=localhost;
    reverse=on;
    a=192.168.0.1;
}
rr {
    name=*.gnusquad.org;
    a=192.168.0.1;
}
...

Il ne reste plus qu’à redémarrer le proxy DNS pour que les changements soient pris en compte :

root@gnusquad:~# /etc/init.d/pdnsd restart
Stopping pdnsd.
Starting pdnsd.

Pour terminer, sachez que pdnsd fait également office de cache DNS pour accélérer les résolutions de noms, ce cache se trouve dans le fichier /var/cache/pdnsd/pdnsd.cache que vous pouvez supprimer sans souci si vous rencontrez quelques problèmes durant vos tests. Quant aux logs, ceux-ci se trouvent dans le fichier /var/cache/pdnsd/pdnsd.debug.

À lire :


fév 06 2009

Mettre en surbrillance un élément dans un Shell

Tag: Debian GNU/Linux, SystèmeSylvain @ 23:41

Ne vous est-il jamais arrivé d’avoir eu besoin de mettre en surbrillance un élément dans un shell suite à un « cat », un « tail », etc tout en conservant le contexte ?

Si la réponse est « oui », voici deux solutions du même acabit permettant de parvenir à vos fins :

1ère solution utilisant Perl

Nous allons définir une fonction bash nommée « hl » (pour highlight) prenant en paramètre une expression rationnelle compatible Perl (une « PCRE ») capturant l’élément à mettre en surbrillance :

user@gnusquad:~$ function hl(){ perl -pe "s/($1)/\e[1;42m\$1\e[0m/g" ; }

Voici quelques exemples d'utilisation :

user@gnusquad:~$ echo "GNU Squad" | hl GNU
GNU Squad

user@gnusquad:~$ echo "GNU Squad" | hl S.+d
GNU Squad

root@gnusquad:~# tail -f /var/log/apache2/access.log | hl 192.168.[0-9]+.[0-9]+
192.168.0.3 - - [06/Feb/2009:22:51:18 +0100] "GET / HTTP/1.1" 304 - "http://blog.gnusquad.org/" ""

Je vous invite à lire le billet « Mettez de la couleur dans votre prompt » si vous souhaitez changer la couleur de surbrillance.

2ème solution utilisant grep

Même principe que précédemment : nous allons définir une fonction bash nommée « hl » prenant en paramètre une expression rationnelle compatible POSIX capturant l’élément à mettre en surbrillance :

user@gnusquad:~$ function hl(){ grep --color -C1000000 -E $1 ; }

Le résultat étant le même que la solution précédente, pas besoin de nouveaux exemples.

Notez cependant que cette solution est moins propre que la première à cause de l’option -C qui utilise un nombre magique (en fait celui-ci correspond au nombre de lignes à afficher avant et après le motif trouvé) mais est en contrepartie plus facile à lire…

Il ne vous reste plus qu’à mettre cette fonction dans votre fichier ~/.bashrc et le tour est joué ! :)

À lire :


fév 05 2009

Faites taire votre PC Speaker !

Tag: Debian GNU/Linux, Système, X Window SystemSylvain @ 14:20

Quoi de plus énervant que de se faire agresser par le PC Speaker lors d’une erreur, d’une completion automatique dans bash ou que sais-je encore ? Je vais vous présenter plusieurs solutions pour le faire taire à jamais :

  • Empêcher le module noyau dédié au PC Speaker de se charger :
root@gnusquad:~# echo "install pcspkr /bin/true" > /etc/modprobe.d/pcspkr

Il est également possible d’ignorer le chargement du module mais la première méthode est la méthode conseillée en cas de module récalcitrant :

root@gnusquad:~# echo "blacklist pcspkr" > /etc/modprobe.d/pcspkr

Il se peut que le module à désactiver ne soit pas « pcspkr » mais « snd_pcsp », à vous de tester avec « rmmod xxx » qui déchargera le module en live.

  • Désactiver les beeps sous X11 :
user@gnusquad:~$ xset b off

Vous pouvez également ajouter cette commande dans votre fichier « ~/.xinitrc » pour qu’elle soit lancée automatiquement au démarrage de X11.

  • Désactiver les beeps sous une console tty
user@gnusquad:~$ setterm -blength 0

Vous pouvez également ajouter cette commande dans votre fichier « ~/.bashrc » pour qu’elle soit lancée automatiquement lorsque vous vous authentifiez.

  • Désactiver les beeps pour les programmes utilisant la bibliothèque « readline » :
user@gnusquad:~$ echo "set bell-style none" >> ~/.inputrc

À lire :