Howto: Installer DJBDNS sur Debian Sarge

Dans cet article, nous allons faire une installation de DJBDNS alias tinydns (un serveur DNS très léger et très sécurisé) sur une distribution Debian Sarge.

Nous allons devoir installer avant tout 2 packages qui sont nécessaires : ucspi-tcp et daemontools.

Préparation de la Debian Sarge

Il faut tout d’abord ajouter dans /etc/apt/sources.list les non-free. En effet, DJBDNS ne possédant pas une licence « free » (au sens debian du terme), il ne se trouve pas dans la distribution de base. Il faut donc rajouter le terme « non-free » à la fin de la ligne principale de package des sources apt (à personnaliser suivant le mirroir que vous utilisez).

/etc/apt/sources.list

deb http://ftp.fr.debian.org/debian/ stable main non-free

Nous mettons maintenant à jour notre base APT, pour y mettre les sources de ucspi-tcp, Daemontools et DJBDNS. En effet, en raison de sa licence, il ne peut être livré que sous forme de code source, à nous donc de les compiler. Nous devrons être root durant cette installation.


su -
apt-get update

Installation de ucspi-tcp et Daemontools

Nous lançons maintenant le téléchargement, la compilation et la création des paquets .deb qui seront installés.


apt-get install -y ucspi-tcp-src patch libssl-dev
build-ucspi-tcp

Suivez les instructions dans chacune des compilations, les infos sont claires.

Nous allons maintenant télécharger et installer Daemontools. Plusieurs solutions sont possibles, nous choisirons d’utiliser des version pré-compilées depuis le site de Gerrit Pape.


wget http://smarden.org/pape/Debian/dists/woody/unofficial/binary-i386/daemontools_0.76-woody1_i386.deb
wget http://smarden.org/pape/Debian/dists/woody/unofficial/binary-i386/daemontools-run_0.76.3_all.deb
dpkg -i daemontools_0.76-woody1_i386.deb daemontools-run_0.76.3_all.deb

Par sécurité, on va copier des binaires aux bons endroits… :


cd /usr/bin
for i in envdir envuidgid fghack multilog pgrphack readproctitle \
setlock setuidgid softlimit supervise svc svok svscan svscanboot \
svstat tai64n tai64nlocal ; do ln -s /usr/local/bin/$i ; done

Installation de DJBDNS

Attaquons maintenant la véritable installation de djbdns ! djbdns est constitué de 3 sous-programmes majeurs :
- tinydns : le serveur DNS en lui-même. C’est lui qui écoutera sur votre IP publique le port UDP 53 et qui répondra aux requêtes DNS pour les domaines DNS que vous allez héberger.
- dnscache : c’est votre serveur DNS local, qui vous servira à répondre à votre serveur (uniquement) à toute les requêtes DNS possible (même celles que vous n’hébergez pas). C’est donc un serveur DNS qui sait aller interroger les autres serveurs DNS sur Internet et faire des requêtes récursives. il écoutera donc sur votre IP locale (ou localhost) sur le port UDP 53.
- axfrdns : C’est lui qui va servir à gérer les transfert de zone DNS, il écoutera donc sur votre IP publique sur le port TCP 53.

Nous allons devoir également compiler les sources.


apt-get install djbdns-installer
build-djbdns

Encore une fois, suivez les instructions pour la compilation, les infos sont claires.

Nous allons maintenant devoir configurer DJBDNS. Modifiez la ligne ci-dessous avec l’IP de votre serveur :


tinydns-conf tinydns dnslog /etc/tinydns 192.168.0.5

Nous pouvons maintenant faire prendre en compte tinydns par daemontools (puis on vérifie que tout est ok).


ln -s /etc/tinydns /service
svstat /service/tinydns

Nous allons maintenant installer dnscache (si vous en avez besoin)


dnscache-conf dnscache dnslog /etc/dnscache 127.0.0.1
ln -s /etc/dnscache /service
svstat /service/dnscache

Si vous désirez que votre serveur utilise ce serveur DNS, vous devez modifier votre fichier de conf locale DNS : /etc/resolv.conf


nameserver 127.0.0.1

Allez, pour terminer, nous allons installer axfrdns (pour les transferts de zone) :


axfrdns-conf axfrdns dnslog /etc/axfrdns /etc/tinydns 192.168.0.5

Pour terminer la configuration d’axfrdns, nous allons lui dire d’autoriser toutes les connexions entrantes, de répondre aux requêtes DNS, mais de refuser tout transfert de zones (nous verrons plus bas comment autoriser le transfert de zones vers d’autres serveurs). Puis on active le service.

echo ':allow,AXFR=""' > /etc/axfrdns/tcp
ln -s /etc/axfrdns /service
svstat /service/axfrdns

Si vous désirez autoriser le transfert de toutes vos zones vers un autre serveur 192.168.0.10 (par exemple).


echo '192.168.0.10:allow' >> /etc/axfrdns/tcp

Il faut valider les changements fais dans /etc/axfrdns/tcp Utilisez simplement les commandes suivantes, en root, pour valider les changements faits dans vos règles, Notez aussi qu’il est inutile de redémarrer axfrdns, le programme tcpserver prends automatiquement en compte les changements fais dans tcp.cdb :


cd /etc/axfrdns
make

Configuration de DJBDNS

Toute la configuration de djbdns (hors configuration de base comme l’IP d’écoute) se fait via le fichier /service/tinydns/root/data

Afin de pouvoir gérer sans pb toutes les extensions de domaine, nous allons configurer tinydns avec les serveurs root. Ajouter dans /service/tinydns/root/data


&:198.41.0.4:a.root-servers.net
&:128.9.0.107:b.root-servers.net
&:192.33.4.12:c.root-servers.net
&:128.8.10.90:d.root-servers.net
&:192.203.230.10:e.root-servers.net
&:192.5.5.241:f.root-servers.net
&:192.112.36.4:g.root-servers.net
&:128.63.2.53:h.root-servers.net
&:192.36.148.17:i.root-servers.net
&:192.58.128.30:j.root-servers.net
&:193.0.14.129:k.root-servers.net
&:198.32.64.12:l.root-servers.net
&:202.12.27.33:m.root-servers.net
.localhost
.1.0.0.127.in-addr.arpa
=localhost:127.0.0.1

Voici quelques exemples de configuration de domaine, mais vous trouverez l’intégralité des méthodes de configuration sur http://cr.yp.to/djbdns/tinydns-data.html Exemples d’ajout dans /service/tinydns/root/data


# SOA Test.com
Ztest.com:ns.wiroo.com:dns.wiroo.com:2005011401::86100:86100:

# Name Server
.test.com::ns4.wiroo.com:86100
.test.com::ns2.wiroo.com:86100

# MX Record
@test.com:192.168.58.128:mail.wiroo.com:10

# A Record
=www.test.com:192.168.58.128

Après chaque modification, il suffit d’aller dans le répertoire /service/djbdns/root et d’y faire un make. Aucun redémarrage du démon n’est nécessaire, le fichier texte /service/tinydns/root/data sera compilé en /service/tinydns/root/data.cdb


cd /etc/tinydns/root
make

djbdns inclut certains outils pour tracer les pb : tinydns-get A www.wiroo.com ns4.wiroo.com ou dnstrace any www.aol.com a.root-servers.net > AOL & dnstracesort < AOL | less

Dernière chose, regardons maintenant comme répliquer notre configuration dns sur un autre serveur (tinydns également). L’avantage avec tinydns, c’est qu’il suffit d’envoyer le fichier data compiler (/service/tinydns/root/data.cdb) vers le second serveur. Mieux, nous pouvons automatiser très facilement cela pour que cela se fasse automatiquement à chaque make ! Nous utiliserons le protocole SSH pour copier data.cdb (nous considèrerons que le serveur a une autorisation de connexion SSH au serveur cible via clé ssh automatisée)

Modifions donc le fichier /service/tinydns/root/Makefile


remote: data.cdb
scp data.cdb ns2.wiroo.com:/etc/tinydns/root/data.cdb.tmp
ssh ns2.wiroo.com mv /etc/tinydns/root/data.cdb.tmp /etc/tinydns/root/data.cdb
data.cdb: data
/usr/bin/tinydns-data

Et voila, amusez vous bien avec votre nouveau serveur DNS !

Howto: Installation VMWare Server 1.0 sur Linux Debian Sarge

Cet article va vous guider dans l’installation de VMWare Server 1.0 et les différentes dépendances de Linux Debian Sarge.

Premièrement, nous allons télécharger les packages et les décompresser. Tous doit se faire en root.

wget http://download3.vmware.com/software/vmserver/VMware-server-1.0.0-28343.tar.gz
tar zxvf VMware-server-1.0.0-28343.tar.gz

Mais avant de lancer l’install, nous allons lui fournir les dépendances dont il a besoin, et enlever nfs-common car il utilise le port 902 qui sera utilisé par la console VMware Server (Si vous avez tout de même besoin de NFS sur cette machine, vous pourrez toujours demander à VMWare Server d’utiliser un autre port). VMWare Server a besoin des headers du noyau pour compiler ses propres modules. Nous partirons du principe que vous utilisez un noyau 2.6 Debian Sarge non modifié. Si vous utilisez un 2.4, utilisez les headers qui vont bien, et si vous avez recompilé votre propre noyau, ces explications sont superflues pour votre niveau 😉

apt-get -y install libxt6 libxrender1 libxtst-dev libxtst6 kernel-headers-2.6.8-2-386
apt-get -y remove nfs-common

Il ne vous reste plus maintenant qu’à utiliser le script d’installation :

cd vmware-server-distrib/
./vmware-install.pl

L’installation doit se faire sans trop de pb avec les options par défaut. Je passe sur les parties de config des sous-réseaux vmnet, c’est globalement bien expliqué et vous trouverez plus d’infos à ce sujet sur le site de vmware.

Vous devez faire une demande d’un numéro de série (gratuit) sur le site de VMWare : http://register.vmware.com/content/registration.html

J’ai juste eu un warning avant la config du réseau me disant que je pouvais avoir des problèmes avec ma libc5 et qu’il valait mieux updater vers la glibc… Bon… La Sarge est en libc6, mais bon… 😉 On va laisser.

Vous devez donc avoir à la fin un joli :

Starting VMware services:
Virtual machine monitor                                             done
Virtual ethernet                                                    done
Bridged networking on /dev/vmnet0                                   done
Host-only networking on /dev/vmnet1 (background)                    done
Bridged networking on /dev/vmnet2                                   done
Host-only networking on /dev/vmnet8 (background)                    done
NAT service on /dev/vmnet8                                          done

The configuration of VMware Server 1.0.0 build-28343 for Linux for this running
kernel completed successfully.

Maintenant : La Console !

L’installation est simple et rapide… La console utilise apache et perl, mais l’ensemble est déjà packagé et pré-paramètré dans le package d’install. Donc on télécharge, on décompresse, et on install… Rien de plus simple !

wget http://download3.vmware.com/software/vmserver/VMware-mui-1.0.0-28343.tar.gz
tar zxvf VMware-mui-1.0.0-28343.tar.gz
cd vmware-mui-distrib/
vmware-install.pl

L’install n’est qu’un classique « Next, Next, Next, Finish » !

Une fois terminé, tout doit tourner correctement via un « netstat -tnpl », vous devriez avoir (entre autres) ces lignes :

Connexions Internet actives (seulement serveurs)
Proto Recv-Q Send-Q Adresse locale          Adresse distante        Etat        PID/Program name
tcp        0      0 0.0.0.0:902             0.0.0.0:*               LISTEN     4276/inetd
tcp        0      0 0.0.0.0:8333            0.0.0.0:*               LISTEN     4715/httpd.vmware
tcp        0      0 0.0.0.0:8222            0.0.0.0:*               LISTEN     4715/httpd.vmware

Le port 902 sert à la console en direct. Le port 8222 est l’accès Web en HTTP, et le 8333 en HTTPS. Prenez votre navigateur favoris, et allez sur : https://MON-IP:8333/

Le login/mot de passe à utiliser est « root » ainsi que le mot de passe associé dans le système.

Les utilisateurs standards que vous avez créé sur la debian peuvent également créer leurs propres machines virtuelles… Les droits individuels peuvent être sélectionnés…

Je vous laisse jouer avec ces fonctionnalités. Bonne virtualisation !

Howto : Carte Wifi PCI Linksys WMP54G v4 (wmp54gv4) sur Linux Debian Sarge

Voici comment installer une carte Wifi PCI Linksys WMP54G v4 sur une distrib debian Sarge 3.1r2 (kernel 2.6.8).

Cette carte utilise en fait le chipset Ralink rt2500 : http://www.ralinktech.com/supp-1.htm

Tout d’abord, installons le package qui va nous permettre de préparer et compiler le module, ainsi que le package wireless-tools qui va nous permettre de controler la partie configuration wifi :

apt-get install module-assistant wireless-tools
module-assistant prepare

Nous devons maintenant reccupérer les sources du drivers. Ces sources sont inclues dans les version Debian Etch et Sid, mais pas en Sarge (stable).

Nous prendrons donc une version du source disponible sur le site officiel du drivers, et lançons la compilation (adaptez suivant la version/date du CVS)

wget http://rt2x00.serialmonkey.com/rt2500-cvs-daily.tar.gz
tar zxvf rt2500-cvs-daily.tar.gz
cd rt2500-cvs-2006071214/Module
make
make install
echo rt2500 >> /etc/modules

A ce stade, je vous conseille de rebooter pour vérifier que votre carte est bien prise en compte à ce stade. Puis nous testons qu’elle voit bien les réseaux Wifi.

ifconfig ra0 up
iwconfig ra0 scan

Une liste des réseaux Wifi visibles et à porté sera donc affichée. Maintenant, nous allons tester votre connexion avec votre Point d’Accès Wifi. Nous allons considéré que votre borne est déjà configurée, et que la sécurité mise en place est de type WPA (plus que conseillé, évitez le WEP autant que possible pour des raisons de sécurité), et choisissez vous un bon mot de passe :

iwconfig ra0 essid VotreESSID
iwpriv ra0 set AuthMode=WPAPSK
iwpriv ra0 set EncrypType=TKIP
iwpriv ra0 set WPAPSK="VotrePassword"
ifconfig ra0 192.168.0.5

Automatisons tout cela maintenant… Rajoutez les lignes suivantes dans /etc/network/interfaces

Pour faire du WPA :

auto ra0
iface ra0 inet static
address 192.168.0.5
netmask 255.255.255.0
broadcast 192.168.0.255
gateway 192.168.0.1
pre-up iwconfig ra0 mode managed
pre-up iwpriv ra0 set AuthMode=WPAPSK
pre-up iwpriv ra0 set EncrypType=TKIP
pre-up iwconfig ra0 essid VotreESSID
pre-up iwpriv ra0 set WPAPSK="MaCleWPAaMoi"

Pour faire du WEP (pas bien !) :

auto ra0
iface ra0 inet static
address 192.168.0.5
netmask 255.255.255.0
gateway 192.168.0.1
wireless_mode managed
wireless_essid VotreESSID
wireless_key1 ***VOTRE-CLE***

Et voila… Bon wifi !

Howto: Installer qmail sur Debian Sarge

Dans cet article, nous allons faire une installation de Qmail sur une distribution Debian Sarge. Nous activerons/installerons :
- La gestion des utilisateurs et domaines virtuels (via vpopmail)
- Un serveur POP3 (via qmail-popup) avec fonction de roaming SMTP des utilisateurs authentifiés
- Un serveur IMAP4 (courier-imap).
- Un anti-spam (spamassassin)
- Un antivirus (clamav).

Il est possible (et même recommandé) d’utiliser les DaemonTools pour gérer qmail, plutot que le système de démon classique. Pour des raisons de simplicité, et dans un soucis d’avoir un minimum de package externe à l’install classique de debian, nous utiliserons les démons classiques, fournit et installés par défaut dans l’install debian de qmail.

Installation de base de qmail

Il faut tout d’abord ajouter dans /etc/apt/sources.list les non-free. En effet, qmail ne possédant pas une licence « free » (au sens debian du terme), il ne se trouve pas dans la distribution de base. Il faut donc rajouter le terme « non-free » à la fin de la ligne principale de package des sources apt (à personnaliser suivant le mirroir que vous utilisez). /etc/apt/sources.list


deb http://ftp.fr.debian.org/debian/ stable main non-free

Nous mettons maintenant à jour notre base APT, et nous allons désinstaller exim, pour y mettre les sources de Qmail et de ucspi-tcp. En effet, en raison de sa licence, il ne peut être livré que sous forme de code source, à nous donc de le compiler. Nous devrons être root durant cette installation.


su -
apt-get update
apt-get remove --purge exim exim4-base exim4-config
apt-get install -y procmail qmail-src ucspi-tcp-src exim4-daemon-light

Nous lançons maintenant la compilation et la création des paquets .deb qui seront installés. Suivez les instructions dans chacune des compiliations, les infos sont claires.


build-ucspi-tcp
build-qmail

Afin de cloturer cette installation de base de qmail, nous devons lui donner quelques paramètres de base : le nom de la machine (tel qu’il va se présenter), les hosts locaux, et le domaine par défaut.


echo "smtp.mondomaine.com" > /var/qmail/control/me
echo "localhost" > /var/qmail/control/locals
echo "mondomaine.com" > /var/qmail/control/defaultdomain

Nous pouvons maintenant démarrer et stopper qmail pour tester que tout fonctionne bien via le script /etc/init.d/qmail


/etc/init.d/qmail start
/etc/init.d/qmail stop

Vérifier bien dans les logs mail (/var/log/mail.*) que tout est fonctionnel.

Installation de vpopmail : support utilisateurs et domaines virtuels

De base, qmail utilise des fichiers de type .qmail* dans les répertoires des utilisateurs (physique) pour gérer les adresses mails.

Ici, nous voulons pouvoir gérer facilement et à grande échelle les boites mails, et sur plusieurs domaines. De plus, nous ne désirons pas que les utilisateurs existent sur le serveur pour des raisons de sécurité. Nous allons donc utiliser une base de données pour stocker les domaines, les noms de boites mails, les alias, et les forward. Les mails en eux-mêmes seront bien sûr stockés sous forme de fichiers (au format Maildir) sur le serveur.

La gestion virtuelle est fournie par vpopmail. Nous allons donc tout d’abord installé le serveur MySQL, y créer le compte utilisateur de vpopmail, et créer la base. N’oubliez pas ensuite de sécuriser votre installation MySQL (password de l’utilisateur root qui est vide par défaut, etc…).


apt-get install -y mysql-server
cat > /tmp/sql.cmd
INSERT INTO mysql.user SET Host = 'localhost',
User = 'vpopmail', Password = PASSWORD('pass-a-modifier'),
Select_priv = 'N', Insert_priv = 'N', Update_priv = 'N',
Delete_priv = 'N', Create_priv = 'N', Drop_priv = 'N',
Reload_priv = 'N', Shutdown_priv = 'N', Process_priv = 'N',
File_priv = 'N', Grant_priv = 'N', References_priv = 'N',
Index_priv = 'N', Alter_priv = 'N';

FLUSH PRIVILEGES;

CREATE DATABASE vpopmail;

GRANT Select, Insert, Update, Delete, Create, Drop,
Index, Alter ON `vpopmail`.* TO 'vpopmail'@'localhost';

FLUSH PRIVILEGES;

Ctrl+c

cat /tmp/sql.cmd |mysql -p && rm -f /tmp/sql.cmd
Enter password: <laisser vide, faites entrée>

Et maintenant, téléchargeons, et installons vpopmail. Il faut avant tout lui créer ses users locaux, et installer quelques logiciels/librairies.


apt-get install -y make g++ libmysqlclient10-dev

groupadd -g 89 vchkpw && \
useradd -g vchkpw -u 89 -d /var/lib/vpopmail vpopmail && \
mkdir /var/lib/vpopmail && \
mkdir /etc/vpopmail && \
mkdir /usr/share/doc/vpopmail && \
ln -s /etc/vpopmail /var/lib/vpopmail/etc && \
ln -s /usr/bin /var/lib/vpopmail/bin && \
ln -s /usr/share/doc/vpopmail /var/lib/vpopmail/doc && \
ln -s /usr/include /var/lib/vpopmail/include && \
ln -s /usr/lib /var/lib/vpopmail/lib && \
chown -R vpopmail.vchkpw /var/lib/vpopmail

cd /usr/src
wget http://ovh.dl.sourceforge.net/sourceforge/vpopmail/vpopmail-5.4.16.tar.gz
tar xvfz vpopmail-5.4.16.tar.gz
cd vpopmail-5.4.16
./configure --prefix=/usr \
--enable-qmaildir=/var/qmail \
--enable-qmail-newu=/var/qmail/bin/qmail-newu \
--enable-qmail-inject=/var/qmail/bin/qmail-inject \
--enable-qmail-newmrh=/var/qmail/bin/qmail-newmrh \
--enable-tcprules-prog=/usr/bin/tcprules \
--enable-tcpserver-file=/etc/tcp.smtp \
--enable-incdir=/usr/include/mysql --enable-libdir=/usr/lib \
--enable-auth-module=mysql --enable-valias \
--enable-logging=p --enable-md5-passwords \
--enable-qmail-ext \
--enable-mysql-limits \
--enable-roaming-users=y \
--enable-tcprules-prog=/usr/bin/tcprules \
--enable-tcpserver-path=/etc/tcp.smtp

make && make install-strip

On configure vpopmail pour se connecter à notre base de données :


echo "localhost|0|vpopmail|pass-a-modifier|vpopmail" \
> ~vpopmail/etc/vpopmail.mysql

On met en place l’effacement du roaming SMTP


crontab -e

Ajouter la ligne suivante dans le fichier, et quitter vi en sauvant le fichier.


40 * * * * /var/lib/vpopmail/bin/clearopensmtp 2>&1 > /dev/null

Relançons maintenant qmail pour être sur que tout est opérationnel (vérifier encore une fois les logs)


/etc/init.d/qmail start
/etc/init.d/qmail stop

Pour créer des domaines et des comptes mails, nous devons maintenant utiliser les commandes de vpopmail (le compte postmaster est créé automatiquement à chaque création de domaine) :


# Création d'un nouveau domaine virtuel
vadddomain nouveau-domaine.com password-postmaster

# Création d'un compte sur le domaine virtuel
vadduser test@nouveau-domaine.com password

# Création d'alias de postmaster (nouvel alias : romain)
valias -i postmaster@nouveau-domaine.com romain@nouveau-domaine.com

# Visualiser les alias / forwards
valias postmaster@nouveau-domaine.com

# Création d'un forward de postmaster vers romain@mail-externe.com
valias -i romain@mail-externe.com postmaster@nouveau-domaine.com

Il y a beaucoup de commande vpopmail disponibles, elles commencent toutes par v* Je vous laisse les décrouvrir… vaddaliasdomain, vdeldomain, vmoduser, vadddomain, vadduser , vdeloldusers, valias, vdeluser, vdir, vipmap, vpopbull vchangepw, vdominfo, vchkpw (utilisation interne), vkill, vsetuserquota, vconvert, vmkpasswd (interne), vmoddomlimits, vuserinfo

Il y a des interfaces de gestion web qui existent pour gérer directement vpopmail. On pourra utiliser par exemple un module de Webmin, ou bien le très sympa qmailadmin. Toutefois, j’ai préféré créer la mienne, qui est totalement intégrée à l’interface de l’intranet de l’espace client que j’ai mis en place pour Wiroo.

Configuration du serveur POP3

Maintenant que qmail est fonctionnel, nous allons nous attacher à ce que nos utilisateurs puissent aller chercher leurs mails en POP3. Le serveur POP3 est déjà présent dans qmail, mais nous allons juste devoir l’activer et changer sa méthode de vérification des comptes (pour utiliser vpopmail, et non plus les comptes systèmes).

Pour cela, modifions le fichier /etc/init.d/qmail Décommentez les lignes concernant POP3 (environs entre les lignes 59 et 63), et modifions /usr/bin/checkpassword en /usr/bin/vchkpw Vous devriez donc avoir les lignes suivantes dans ce fichier (entre 59 et 63) :


sh -c "start-stop-daemon --start --quiet --user root \
--pidfile /var/run/tcpserver_pop3d.pid --make-pidfile \
--exec /usr/bin/tcpserver -- -R -H \
0 pop-3 /usr/sbin/qmail-popup `hostname`.`dnsdomainname` \
/usr/bin/vchkpw /usr/sbin/qmail-pop3d Maildir &"

Configuration du serveur IMAP4

A venir

Configuration de l’antivirus

A venir

Configuration de l’antispam

A venir

Problème rm : Liste d’arguments trop longue

Si vous voulez faire un rm sur un trop grand nombre de fichiers, rm risque de vous renvoyer un joli « Liste d’arguments trop longue ».

C’est en fait la limite que qu’on rencontre dans bash, qui alloue un tableau de taille limitée pour tenir les arguments. Un programme C qui utilise exec() peut faire mieux, mais sera quand même limité par les capacités du noyau : cf ARG_MAX dans /usr/include/limits.h.

Il faut donc utiliser une méthode de contournement :


find . -name {pattern} -print0 | xargs -0 rm

On peut y rajouter un « -type f » si on désire ne filtrer que les fichiers. L’option -print0 du find de GNU, permet d’avoir un délimiteur entre noms de fichiers transmis entre find et xargs qui est le caractère ASCII NUL, et c’est grâce au -0 que xargs le reconnait.

Donc prenons un exemple concret : nous voulons effacer l’ensemble des fichiers d’un répertoire mais le nombre de fichiers est beaucoup trop important pour notre ami rm (j’ai eu ce pb dans des répertoires de quarantaine de virus mail ou de spam). Utilisons donc le pattern « * » et filtrons pour n’effacer que les fichiers, et pas de sous-réperoires :


find . -type f -name "*" -print0 | xargs -0 rm

Howto: Linksys WPC54GS sur Linux Suse 10.0 : Installation et paramétrage

ndiswrapper (http://ndiswrapper.sourceforge.net/) est le logiciel qui va nous permettre d’utiliser notre carte réseau Linksys WPC54GS sous Linux, via les drivers Windows. En effet, lynksys n’a pas mis à disposition de drivers sous Linux pour cette carte PCMCIA.

L’installation est simplifiée par le fait que ndiswrapper fait déjà parti de la distribution Suse Linux 10.0. Il suffit donc de se rendre dans Yast, dans la partie Ajout de logiciels, puis d’ajouter ndiswrapper et wireless-tools. Je passerais sur la partie installation PCMCIA, car elle doit déjà avoir été faite puisque vous êtes sur un PC équipé en PCMCIA… Vous devez insérer la carte WPC54GS dès le déjà dans le slot PCMCIA.

Vous devrez ensuite télécharger les drivers Windows pour la carte WCP54GS à cette adresse : ftp://ftp.linksys.com/pub/network/wpc54gs_driver_utility_v1.0.zip

Décompressez ce fichier zip dans un répertoire, et ouvrez une console. Passer en mode root (via un « su – » pour les novices), et positionnez vous dans le répertoire dans lequel vous avez décompresser les drivers Windows.

Vous devez donc avoir cette liste de fichiers :

rdu:/home/buggs/WPC54GS-FR_dr # ll
total 372
drwxr-xr-x   5 buggs users    296 Mar 12 23:01 .
drwxr-xr-x  46 buggs users   3536 Mar 12 23:10 ..
-rw-r--r--   1 buggs users    112 May 27  2004 AUTORUN.INF
drwxr-xr-x   2 buggs users    208 Mar 12 23:01 AutoRun
drwxr-xr-x   2 buggs users    272 Mar 12 23:01 AutoRunFR
-rw-r--r--   1 buggs users  28672 Dec 18  2002 SETUP.EXE
drwxr-xr-x   2 buggs users    560 Mar 12 23:01 UtilityFR
-rw-r--r--   1 buggs users 300928 Feb 19  2004 bcmwl5.sys
-rw-r--r--   1 buggs users   8102 Mar 18  2004 lsbcmnds.cat
-rw-r--r--   1 buggs users  29701 Mar 11  2004 lsbcmnds.inf

Nous allons maintenant demander à ndiswrapper d’installer le drivers Windows (il va en fait copier les fichiers drivers dans /etc/ndiswrapper/)

rdu:/home/buggs/WPC54GS-FR_dr # ndiswrapper -i lsbcmnds.inf
Installing lsbcmnds

Vérifions maintenant que le drivers est bien installé et que le hardware a bien été trouvé.


rdu:/home/buggs/WPC54GS-FR_dr # ndiswrapper -l
Installed ndis drivers:
lsbcmnds        driver present, hardware present

Nous allons maintenant tester d’installer le module noyau de ndiswrapper (puis de vérifier que tout est ok) :


rdu:/home/buggs/WPC54GS-FR_dr # modprobe ndiswrapper
rdu:/home/buggs/WPC54GS-FR_dr # lsmod | grep ndis
ndiswrapper           176308  0
usbcore               126720  4 ndiswrapper,ohci_hcd,ehci_hcd

Bon, tout est ok ? Maintenant, vérifions que la carte Wifi est maintenant bien détecté via l’outils de configuration des cartes réseau sans fil :


rdu:/home/buggs/WPC54GS-FR_dr # iwconfig
lo        no wireless extensions.

sit0      no wireless extensions.

eth0      no wireless extensions.

wlan0     IEEE 802.11g  ESSID:off/any  Nickname:"rdu"
Mode:Managed  Frequency:2.437 GHz  Access Point: 00:00:00:00:00:00
Bit Rate=54 Mb/s   Tx-Power:25 dBm
RTS thr=2347 B   Fragment thr=2346 B
Encryption key:off
Power Management:off
Link Quality:100/100  Signal level:-10 dBm  Noise level:-256 dBm
Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
Tx excessive retries:0  Invalid misc:1482   Missed beacon:0

Nous devez maintenant passer à la dernière étape de l’installation : sauvegardez la configuration !!! 🙂 Comme cela, tout sera rechargé à chaque reboot…


rdu:/home/buggs/WPC54GS-FR_dr # ndiswrapper -m
Adding "alias wlan0 ndiswrapper" to /etc/modprobe.d/ndiswrapper

Maintenant, il nous reste à configurer la partie sécurité / SSID / WEP (non testé avec WPA… A suivre 😉 ) Nous allons retourner dans notre ami Yast, qui va nous aider lors de cette configuration. Nous allons dans la partie Matériel -> Carte réseau.

(PNG)

Configuration carte réseau sous Yast

Puis nous cliquons sur Ajouter en bas. Nous sélectionnons le type de périphérique « sans fil », cochons la case PCMCIA, et à l’emplacement « Nom de la configuration » nous mettons wlan0 (à la place de bus-pcmcia qui a été mis automatiquement quand nous avons coché la case PCMCIA). Ce nom provient de ndiswrapper, c’est celui qui nous est donné par iwconfig (cf plus haut). On valide en cliquant sur « Suivant ».

(PNG)

Configuration IP sous Yast

Dans la page suivante, on doit faire la configuration IP… A voir si vous avez un DHCP sur votre réseau ou si vous êtes en IP fixe… Je vous laisse faire cette configuration… Une fois que c’est terminé, on clique encore sur « Suivant ».

(PNG)

Configuration sécurité Wifi sous Yast

Enfin, nous arrivons dans la partie configuration de la carte sans fil. Yast nous la propose automatiquement du fait de notre type de carte. Votre carte doit être en « mode d’exécution » : Géré. Entrez le SSID de votre réseau Wifi, et réglez votre mode : d’authentification wep clé ouverte, wep clé partagée, WPA-EAP, WPA-PSK. Enfin, entrez la clé de chiffrement… Attention, si vous utilisez encore du WEP, pensez bien à entrer la clé WEP en mode héxadécimal.

Il reste juste une chose à ajouter manuellement, allez dans le fichier /etc/sysconfig/network/ifcfg-wlan-wlan0 et ajoutez ceci à la fin


DHCLIENT_MODIFY_RESOLVE_CONF='yes'
DHCLIENT_SET_DEFAULT_ROUTE='yes'

Et voila, la configuration est terminée. Amusez-vous bien !