Planet PLUG

March 26th, 2007

Ouverture de Planet PLUG, le Planet du PLUG (Provence Linux Users Group) \o/ À vos blogs…

reverse DNS query for LDAP server with nss_ldap

February 3rd, 2007

With nss_ldap Debian unstable host, when I start a lot of softwares (XTerm, bash, top, xmms, etcetera), there is a reverse DNS query for LDAP server. I don’t know why there is this reverse DNS query !!
The problem is when this reverse DNS query fails and you use Avahi daemon : all this softwares start after 2 or 3 seconds. Example, if I start XTerm… I wait 3 seconds… Xterm window appears … I wait 3 seconds… bash prompt appears : WTF.
Workarounds could be :
- Add line for LDAP server in /etc/hosts
- Have reverse DNS entrie in DNS server
- Disable Avavhi daemon use in nsswitch.conf

NoBreakSPace in Vim with utf-8 encoding

December 25th, 2006

In Vim with iso-8859-1 encoding, when you press NBSP (NoBreakSPace) character (0xa0 in 8-bit ASCII), you see:

«| Es-tu là| ?| »

But with utf-8 encoding, you see by default a common space for NBSP.
Then, you can add theses lines in your vimrc to see it:

if &encoding == "utf-8"
set list lcs=nbsp:·
endif

And you can see:

«·Es-tu là·?·»

PPTP VPN Gateway with Debian

December 18th, 2006

PPTP VPN gateway can avoid various constraints : single connection, delay for switching VPN between two hosts, etc.

Here is an easy solution :

- Install Debian with ppp and pptp-linux packages
- RTFM and create /etc/ppp/options.pptp file :

lock noauth nobsdcomp nodeflate

And /etc/ppp/peers/my-tunnel file :

pty "pptp SERVER-IP --nolaunchpppd"
name LOGIN
remotename PPTP
require-mppe-128
file /etc/ppp/options.pptp
ipparam my-tunnel

where LOGIN is your PPTP login.

Put Microsoft CHAP parameters in /etc/ppp/chap-secrets file :

LOGIN PPTP PASSWORD *

where PASSWORD is your PPTP password.

Then, PPTP connection is ready.
Add it in interfaces file :

auto mobile
iface mobile inet ppp
provider my-tunnel
up sleep 10 && route add -net 192.168.x.0/24 dev ppp0
up route add -net 192.168.y.0/24 dev ppp0
up /etc/init.d/firewall start

In this example, 192.168.x.0/24 and 192.168.y.0/24 are in VPN network.

And /etc/init.d/firewall file is easy IPTables script :

#!/bin/sh

# just route it !
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 0 > /proc/sys/net/ipv4/tcp_ecn
iptables -t nat -D POSTROUTING -o ppp0 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

# MTU in tunnel (only for Windows machines... strange)
iptables -D FORWARD -p tcp  --tcp-flags SYN,RST SYN --jump TCPMSS --clamp-mss-to-pmtu
iptables -A FORWARD -p tcp  --tcp-flags SYN,RST SYN --jump TCPMSS --clamp-mss-to-pmtu
(update : I use now "--set-mss 294" option after some problems with "--clamp-mss-to-pmtu")
iptables -L --line-numbers
iptables -L -t nat --line-numbers

Then, to enable or disable your PPTP VPN Gateway :

# ifup mobile
# ifdown mobile

My Acer Aspire laptop : RIP

December 6th, 2006

Today is a sad day. My famous Acer laptop is definitly dead. Hardware crash takes it suddenly while a classical compilation.

Acer Aspire

According to SMART informations, my laptop was up during about 11.000 hours, then more 458 days (not too bad for three-old-years laptop). It boots about 1.900 times. The only system on it was Debian Linux.

R.I.P.

SiRF protocol specification

November 18th, 2006

SiRF protocol is designed by SiRF for GPS material.
I don’t find a really clear specification, then I write it !

Format of SiRF packet :

****************************************************
* begin ** length ** payload ** checksum ** end *
****************************************************

begin (2 bytes) = 0xa0a2
length (2 bytes) = number of bytes in payload
checksum (2 bytes) = XOR of bytes in payload AND 0×7fff
end (2 bytes) = 0xb0b3

Example of SIRF message dump :
a0a2 0009 000000010203040506 0007 b0b3

power-on password sur IBM xSeries

November 4th, 2006

Vendredi 19h, me voilà arrivé à la dernière étape de la procédure d’installation d’un Pack Evolix Serveur. Il s’agit de mettre la touche finale avant le départ de la machine pour le datacenter, c’est-à-dire protéger le BIOS par un mot de passe.

“Facile!” me direz-vous, “Ou pas!” ajouterais-je. En effet, le mot de passe choisi va me coûter quelques précieuses heures. Je vous passe les détails sur le côté ergonomique du BIOS des machines IBM (auquel je ne m’habituerais jamais) pour aller à l’essentiel : activer ce fameux power-on password. Je valide donc mon choix avec précaution (ça serait bête de bloquer la machine) et je redémarre pour le test ultime. On me demande d’entrer mon mot de passe, et là, c’est le drame : error 189, invalid passwords. Your system is now locked.

Quelques redémarrages plus tard (précisons que ce genre de machine met quelques minutes à démarrer), je me rends à l’évidence, la machine est bloquée. Après une conférence avec moi-même (”je suis sûr d’avoir entré le bon mot de passe”, “d’ailleurs il faut le confirmer”, etc.), je me retrouve avec un problème bien stupide de mot de passe. Bien sûr, aucun manuel fourni ne précise comment réinitialiser le mot de passe du BIOS, et vu le prix de la machine, je vais éviter de me jeter tout de suite sur la carte-mère pour jouer avec les cavaliers à l’aveugle. Ravalant ma fierté, je me décide à appeler le support IBM… mais c’est pour mieux pointer du doigt le ridicule de ma situation : “voilà, j’ai mis un mot de passe et il marche plus”. Combien de fois me suis-je moqué (gentiment hein) des utilisateurs dans cette situation mais là, mon appel enregistré pourra faire le tour du callcenter. Enfin, précisons que plus de 10% des demandes à un support concernent un reset de mot de passe. Bref, il faut absolument que je me sorte de ces 10%. J’ai l’impression d’être plongé dans le feuilleton “Lost” où il faut que je trouve un moyen d’entrer ce #!@ de mot de passe avant l’explosion (de mes nerfs).

Je me décide à ouvrir le capot de l’engin et à trouver un manuel descriptif de ces jumpeurs qui ont l’air de me défier de leur trouver une utilité. Ma déception est assez grande, pas de manuel disponible !! Et oui, pour le PC de Madame Michu, on a le manuel de la carte-mère mais pour les serveurs des décideurs pressés, pas besoin (c’est pas pour rien qu’ils sont pressés). Soupir. Je rejette un coup d’oeil à la carte et là, je suis attiré par un cavalier au titre évocateur “PASSWORD RESET”. Mouarf, c’est si évident, pas besoin d’en faire un manuel. Mais ne faisons pas la fine bouche la machine est débloquée.

Je vais donc enfin savoir si la fatigue du vendredi soir m’a joué un tour en ré-essayant la même manipulation que la première fois. Et, bien l’erreur se reproduit (évidemment hein). Apparemment, le mappage du clavier dans le BIOS et au démarrage est différent car si le mot de passe contient un chiffre, ça bloque !! Est-ce trop compliqué d’écrire quelque part cette information ? Bref, avec le mot de passe test, ça fonctionne bien. Mais avec un mot de passe un peu plus complexe, le blocage se reproduit (au passage, rappelez-vous le délai de quelques minutes pour le redémarrage entre tous ces essais). Allez, nouvelle hypothèse : il faut utiliser un mot de passe compatible azerty/qwerty. J’ai deviné juste, et c’est l’occasion de sortir un nouvelle acronyme : WTFM, aka Write The F***ing Manuel. Bref, c’est enfin le bout du tunnel et deux bonnes heures plus tard, je suis enfin parvenu à activer le power-on password.

Mais ne croyez pas que cela soit complètement terminé. Il reste à choisir ce que l’on veut faire avec ce mot de passe. IBM propose deux modes : un blocage complet (le mot de passe est nécessaire pour toute opération) ou blocage transparent (le système peut démarrer mais le clavier reste inactif tant que le mot de passe n’est pas entré). À vrai dire, le principe du deuxième mode est sympa, car il permet à la machine de redémarrer sans présence humaine mais il bloque également l’accès au BIOS, au choix du périphérique de démarrage et même l’accès système au clavier. Mais c’est bien sûr trop beau pour être vrai car avec le 2e mode sous Linux, le clavier est bloqué ad vitam eternam. Mais je ne suis plus à une concession près et en attendant de reporter le problème chez IBM, on se passera du clavier (qui, à vrai dire, ne sert presque à rien au datacenter).

Vendredi 23h, fin de la journée.

Mirroir non-officiel pour la base de virus ClamAV

October 28th, 2006

Histoire d’éviter de multiples requêtes sur les mirroirs ClamAV, tous les serveurs installés par Evolix utilisant ClamAV se mettent désormais à jour sur clamav.evolix.net, un mirroir non officiel de la base des virus utilisée par ClamAV.

Pour rappel, ClamAV est un antivirus libre particulièrement efficace en terme de reconnaissance de virus. Evolix l’utilise sur de nombreux serveurs de messagerie où il donne satisfaction et des tests l’annoncent même comme l’antivirus le plus efficace. Notez bien que vous pouvez soumettre un virus si vous en découvrez un non reconnu.

‘df’ command VS ‘du’ command

October 28th, 2006

On a mail server, I had a strange problem on ext3 partition. When I saw output of ‘df’ command, partition was Use% at 95% (size of 8 Go) but only 2 Go if I use ‘du’ command. And I have only 15.000 files on this partition according “find | wc -l” hack (then no block-size problem). Solution is in Linux ext3 FAQ :

The standard cause for this is some user process keeping a deleted file open. When this happens, the space is not visible via ‘du’, since the file is no longer visible in the directory tree. However, the space is still used by the file until it is deallocated, and that can only happen once the last process which has the file open either closes its file descriptor to the file, or the process exits. You can use the lsof program to try to find which process is keeping an open file. Usually it’s some log file, or some large data base file which gets rotated out, but some older process are still keeping the log file open.

Then I discovered ghost files with :

# lsof | grep “(deleted)”

In my case, an amavis daemon didn’t close an old and big log file.
I closed this process and now ‘df’ command say me Use% at 20%.

Then ‘df’ command win ;-)
End of alert.

TCP window scaling in kernel 2.6.17

July 17th, 2006

I had a strange problem: TCP freeze after HTTP GET with particular web sites (but no problem for HTTP HEAD for example) when I use machines with 2.6.17 Linux (Debian) kernel. I find why. Use of TCP window scaling changes in 2.6.17 and some broken routers don’t like this. Here is interesting discussion about use of TCP window scaling.

For my problem, fast (and bad) work around is:

echo 0 > /proc/sys/net/ipv4/tcp_default_win_scale

or even:

echo 0 > /proc/sys/net/ipv4/tcp_window_scaling