2009-08-10 10:28

Quand on désire imprimer une image sous Gnome (Eye of Gnome ou eog), je n’ai pas trouvé comment mettre la page en paysage de manière à imprimer l’image retournée sur la page.

En fait, il suffit, avant de sélectionner l’impression, de faire une rotation de l’image dans eog, puis d’imprimer l’image.

2009-08-10 10:28 · Tags: ,
2009-08-03 14:20

Si vous constatez de nombreuses tentative de connexion par ssh dans votre fichier /var/log/auth.log (robots qui testent des utilisateurs/mots de passes), il faut faire quelque chose.

Le plus simple est de mettre en place une restriction par IP dans votre pare-feu iptables, ou dans /etc/hosts.deny

Si vous ne pouvez/voulez pas mettre en place cette restriction, utilisez Fail2ban :

aptitude install fail2ban

L’installation par défaut bloque les tentatives de connexion SSH.

On peut adapter un peu la configuration, ou activer Fail2ban pour d’autres services. Exemple :

vi /etc/fail2ban/jail.conf
bantime  = 86400
maxretry = 10 # pour ssh
enabled  = true # pour vsftpd
maxretry = 10 # pour vsftpd

Ensuite, la commande iptables -L donne les adresses IP qui ont été bannies.

2009-08-03 14:20 · Tags: , ,
2009-07-30 15:46

Dans la grande majorité des cas, les redirections http sont installée sur le serveur http.
Dans certains cas, la redirection ne peut pas être installée dans la configuration du serveur http.

Exemple : redirection pour les téléphones mobiles.
Nous voulons rediriger tous les téléphones mobiles de http://www.monsite.com vers http://mobile.monsite.com

L’identification du client se fait avec l’en-tête HTTP User-Agent envoyée par le navigateur. Le problème est que Squid va mettre en cache une seule version de la requête vers http://www.monsite.com. La réponse mise en cache sera probablement la page d’accueil, et non la redirection 301.

Il est aussi possible de configurer le serveur HTTP pour ajouter l’en-tête Vary: User-Agent pour indiquer au Squid de stocker une version par navigateur, mais cela aura pour effet de diviser le cache en autant de navigateurs, ce qui diminuera grandement l’efficacité du cache.

Voici donc la solution :

###################################
# on redirige les telephones vers mobile.monsite.com
url_rewrite_program /etc/squid/redirect_mobile.sh

acl symbian browser Symbian
acl iphone browser iP(hone|od)
acl mobile_url dstdomain mobile.monsite.com

url_rewrite_access deny mobile_url
url_rewrite_access allow symbian
url_rewrite_access allow iphone
url_rewrite_access deny all

Et le script /etc/squid/redirect_mobile.sh contient simplement:

#!/bin/sh
while read line
do
        echo "301:http://mobile.monsite.com"
done

Notes :

  • La méthode de détection des téléphone est loin d’être exhaustive. Si vous connaissez une méthode simple qui couvre 95% des téléphones, je suis preneur !
  • Sous des version plus récentes de Squid (3, 2.HEAD), il est possible d’utiliser une méthode plus élégante à base de redirecteurs internes.

Liens :

2009-07-30 15:46 · Tags: , ,
2009-07-07 17:02

Voici comment créer un filtre système dans Exim4, pour envoyer certains mails dans un script Bash.

Sous Debian, on ajoute les lignes suivantes dans /etc/exim4/exim4.conf.template :

system_filter = /etc/exim4/exim.filter
system_filter_pipe_transport = address_pipe
system_filter_user = Debian-exim

Et le filtre /etc/exim4/exim.filter contient par exemple :

if $h_subject: begins "[MyTest]" and
  $h_to: contains mytest@example.com
then
       unseen pipe /usr/local/bin/myscript.sh
endif 

Dans le script .sh, on pourra récupérer le mail complet par l’instruction :

MAIL=`cat`

Notes :

  • Le transport “address_pipe” est décrit un peu plus bas dans le fichier de configuration d’Exim.
  • Si on ne place pas la directive “system_filter_user”, le script serait lancé en root, et Exim le refuse.

Lien : http://www.exim.org/exim-html-current/doc/html/filter.html

2009-07-07 17:02 · Tags: ,
2009-07-02 15:28

Voici comment colorer simplement la syntaxe d’une sortie de commande avec vim :

Colorer un diff :

diff -u /tmp/1 /tmp/2 | vim -R -

Colorer un fichier un fichier quelconque (moins d’intérêt, car on peut simplement ouvrir le fichier avec vim)

cat script.sh | vim -R -
2009-07-02 15:28 · Tags: , ,
2009-06-29 09:56

Pour faire un test de configuration tout en listant les virtualhosts Apache, utiliser la commande :

apache2ctl -S

Ne pas utiliser la commande apache2 -S qui ne lira pas le contenu de /etc/apache2/envvars, et affichera donc l’erreur :

# apache2 -S
apache2: bad user name ${APACHE_RUN_USER}

Références :

2009-06-29 09:56 · Tags: ,
2009-06-10 11:59

Choses non triviales à savoir :

  • Les fichiers de configuration se trouvent dans /var/lib/pgsql/data/ :
# ls /var/lib/pgsql/data/
base     pg_hba.conf    pg_multixact  pg_twophase  postgresql.conf
global   pg_ident.conf  pg_subtrans   PG_VERSION   postmaster.opts
pg_clog  pg_log         pg_tblspc     pg_xlog      postmaster.pid
  • Il faut ajouter la ligne suivante au fichier pg_hba.conf, pour autoriser les authentifications par le réseau :
host    all         all         127.0.0.1/32          md5
2009-06-10 11:59 · Tags: ,
2009-06-02 15:15

Pour installer une surveillance du RAID SAS sur un serveur Dell :

# lspci|grep -i raid
01:00.0 RAID bus controller: LSI Logic / Symbios Logic MegaRAID SAS 1078 (rev 04)

# vi /etc/apt/sources.list
deb http://hwraid.le-vert.net/debian lenny main

# aptitude update
# aptitude install megactl

# megasasctl 
a0       PERC 6/i Integrated      encl:1 ldrv:1  batt:good
a0d0      278GiB RAID 1   1x2  optimal
a0e32s0    279GiB  a0d0  online  
a0e32s1    279GiB  a0d0  online  

# crontab -l
# monitoring du raid toutes les 4 heures
* */4 * * * /usr/sbin/megasasctl -H

Sources :

2009-06-02 15:15 · Tags: ,
2009-05-24 11:00

Dans un script Bash, voici la solution la plus simple que j’ai trouvée pour faire en sorte que tous les processus enfants soient tués en même temps que le parent :

# kill every children on exit
trap "kill -- -$$" EXIT

La commande kill -- -PID permet de tuer l’ensemble du groupe de processus identifié par PID.
Sachant que dans notre cas, l’ID du groupe de processus est le même que l’ID du processus parent.

Il y aurait aussi peut-être la solution de programmer, dans l’enfant, la commande exit dès que ce dernier reçoit le signal que son parent a changé.

2009-05-24 11:00 · Tags: