Configuration réseau sur Debian Testing
Document version 1.0
Retour à la page d'accueil
Table des matières
- Vous utilisez Debian ; configuration testée sur Debian Testing fin 2006 (=> Debian Etch).
- Votre ordinateur est connecté à Internet soit en RTC, soit via une boîtier ADSL
La configuration DNS est définie dans /etc/resolv.conf
.
Exemple de fichier /etc/resolv.conf
.
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 192.168.1.1
nameserver 194.117.200.10
|
Que lisons-nous dans ce fichier ? Qu'il ne faut surtout pas le modifier à la main.
En effet, lorsque le paquetage resolvconf est installé, c'est l'utilitaire éponyme
(resolvconf) qui gère son contenu.
Resolvconf peut modifier le fichier /etc/resolv.conf
en fonction
des connexions réseau établies ou arrêtées, ce qui est très pratique
lorsque la configuration DNS peut évoluer (accès Wifi sur borne publique,
utilisation de plusieurs fournisseurs d'accès...)
Resolvconf exécute des scripts lors de changements de DNS,
pour que des démons comme sendmail et fetchmail s'adaptent.
Ces scripts se trouvent dans /etc/resolvconf/update-libc.d
.
Si resolvconf est installé (cas par défaut), le fichier /etc/resolv.conf
est un lien symbolique vers /etc/resolvconf/run/resolv.conf
.
Resolvconf est configuré dans le répertoire /etc/resolvconf
.
Empêcher une modification dynamique de /etc/resolv.conf
Une solution est de remplacer le lien symbolique /etc/resolv.conf
par un
fichier régulier. C'est utile seulement pour faire des tests ou si vous êtes très
pressés, car dans ce cas, autant dés-installer resolvconf.
Ici seul le cas d'un modem externe connecté au port série est traité.
Cela rend les choses très simples, car seul l'accès au port série standard est nécessaire,
et Linux le gère par défaut. Les modems internes, que l'on trouve le plus souvent sur des
portables, ne sont pas toujours faciles à faire reconnaître. C'est le cas sur mon Dell D600,
dont le modem intégré est un AC'97
(identifiant PCI : '00:1f.6 Modem: Intel Corporation 82801DB/DBL/DBM
(ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (rev 01)'),
et après de nombreuses tentatives infructueuses de l'utiliser sous Linux, j'ai fini par me rabattre
sur un modem externe.
Le conseils donnés plus loin pour identifier les adaptateurs Ethernet peuvent servir
à identifier et faire reconnaître un modem interne (ou PCMCIA).
2.2.1 Pré-requis
2.2.1.1 Paquetages Debian
Les paquetages ppp, pppconfig et resolvconf (non nécessaire mais fortement recommandé) sont à installer.
Paquetages installés sur ma Debian :
sebastien@maison-1:~$ dpkg -l "ppp*"
Souhait=inconnU/Installé/suppRimé/Purgé/H=à garder
| État=Non/Installé/fichier-Config/dépaqUeté/échec-conFig/H=semi-installé
|/ Err?=(aucune)/H=à garder/besoin Réinstallation/X=les deux (État,Err: majuscule=mauvais)
||/ Nom Version Description
+++-=============================-=============================-==========================================================================
ii ppp 2.4.4rel-4 Point-to-Point Protocol (PPP) daemon
pn ppp-dev <néant> (aucune description n'est disponible)
un ppp-pam <néant> (aucune description n'est disponible)
un ppp-udeb <néant> (aucune description n'est disponible)
ii pppconfig 2.3.15 A text menu based utility for configuring ppp
pn pppdcapiplugin <néant> (aucune description n'est disponible)
ii pppoe 3.8-1.1 PPP over Ethernet driver
ii pppoeconf 1.12 configures PPPoE/ADSL connections
pn pppstatus <néant> (aucune description n'est disponible)
sebastien@maison-1:~$ dpkg -l "resolvconf"
Souhait=inconnU/Installé/suppRimé/Purgé/H=à garder
| État=Non/Installé/fichier-Config/dépaqUeté/échec-conFig/H=semi-installé
|/ Err?=(aucune)/H=à garder/besoin Réinstallation/X=les deux (État,Err: majuscule=mauvais)
||/ Nom Version Description
+++-=============================-=============================-==========================================================================
ii resolvconf 1.37 nameserver information handler
|
2.2.1.2 Options de compilation du noyau
Pour utiliser ppp, il est inutile de recompiler le noyau
Si toutefois vous le recompilez, il faut inclure les options ci-dessous, qui se trouvent
dans la partie Device Drivers -> Network Device Support
.
Remarque
Les compressions DEFLATE et BSDCOMP sont documentées comme facultatives. Elles
augmentent le débit en compressant les données transitant par le modem.
CONFIG_PPP=y
# CONFIG_PPP_MULTILINK is not set
CONFIG_PPP_FILTER=y
CONFIG_PPP_ASYNC=y
# CONFIG_PPP_SYNC_TTY is not set
CONFIG_PPP_DEFLATE=y
CONFIG_PPP_BSDCOMP=y
|
2.2.2 Configuration de la connexion au fournisseur d'accès
Exécuter la commande pppconfig
.
Des questions vous sont posées, qui créeront les fichiers nécessaires. Les ports série
sont /dev/ttyS0
(premier port de communication série), /dev/ttyS1
, etc.
Les fichiers créés ou paramétrés sont (liste non exhaustive) :
/etc/ppp/options |
Options générales de pppd. |
/etc/ppp/peers/nom_connexion |
Options de pppd pour la connexion (même format que /etc/ppp/options ). |
/etc/ppp/{chap-secrets,pap-secrets} |
Mots de passe pour l'authentification par {CHAP, PAP}. |
/etc/ppp/resolv/nom_connexion |
Informations DNS pour la connexion. |
/etc/chatscripts/nom_connexion |
Script de connexion pour le modem. |
La connexion se lance avec la commande pon
, et se ferme avec
poff
.
Attention, ces informations ont été mises à jour d'après Debian Stable fin 2005 (=> Sarge).
Modem silencieux
Éditer le fichier /etc/chatscripts/nom_connexion
, et ajouter
la ligne
OK-AT-OK "ATM0L0"
juste avant la ligne qui contient la commande ATDT.
2.2.3 Fichiers
Fichier /etc/ppp/options
Seules les options activées, avec leurs commentaires, sont
reproduites ici.
# /etc/ppp/options
#
# Originally created by Jim Knoble <jmknoble@mercury.interpath.net>
# Modified for Debian by alvar Bray <alvar@meiko.co.uk>
# Modified for PPP Server setup by Christoph Lameter <clameter@debian.org>
#
# To quickly see what options are active in this file, use this command:
# egrep -v '#|^ *$' /etc/ppp/options
# async character map -- 32-bit hex; each bit is a character
# that needs to be escaped for pppd to receive it. 0x00000001
# represents '\x01', and 0x80000000 represents '\x1f'.
asyncmap 0
# Require the peer to authenticate itself before allowing network
# packets to be sent or received.
# Please do not disable this setting. It is expected to be standard in
# future releases of pppd. Use the call option (see manpage) to disable
# authentication for specific peers.
auth
# Use hardware flow control (i.e. RTS/CTS) to control the flow of data
# on the serial port.
crtscts
# Specifies that pppd should use a UUCP-style lock on the serial device
# to ensure exclusive access to the device.
lock
# Don't show the passwords when logging the contents of PAP packets.
# This is the default.
hide-password
# Use the modem control lines. On Ultrix, this option implies hardware
# flow control, as for the crtscts option. (This option is not fully
# implemented.)
modem
# Add an entry to this system's ARP [Address Resolution Protocol]
# table with the IP address of the peer and the Ethernet address of this
# system.
proxyarp
# If this option is given, pppd will send an LCP echo-request frame to the
# peer every n seconds. Normally the peer should respond to the echo-request
# by sending an echo-reply. This option can be used with the
# lcp-echo-failure option to detect that the peer is no longer connected.
lcp-echo-interval 30
# If this option is given, pppd will presume the peer to be dead if n
# LCP echo-requests are sent without receiving a valid LCP echo-reply.
# If this happens, pppd will terminate the connection. Use of this
# option requires a non-zero value for the lcp-echo-interval parameter.
# This option can be used to enable pppd to terminate after the physical
# connection has been broken (e.g., the modem has hung up) in
# situations where no hardware modem control lines are available.
lcp-echo-failure 4
# Disable the IPXCP and IPX protocols.
# To let pppd pass IPX packets comment this out --- you'll probably also
# want to install ipxripd, and have the Internal IPX Network option enabled
# in your kernel. /usr/doc/HOWTO/IPX-HOWTO.gz contains more info.
noipx
# ---<End of File>---
|
Fichier /etc/ppp/peers/Lsurf.smt
# This optionfile was generated by pppconfig 2.3.10.
#
#
hide-password
noauth
connect "/usr/sbin/chat -v -f /etc/chatscripts/Lsurf.smt"
debug
/dev/ttyS0
57600
defaultroute
noipdefault
user "smil0014@lsurf.fr"
remotename Lsurf.smt
ipparam Lsurf.smt
idle 300
|
Fichier /etc/ppp/chap-secrets
# Secrets for authentication using CHAP
# client server secret IP addresses
"sebastien.millet1" * "ze_password"
|
Fichier /etc/ppp/pap-secrets
#
# /etc/ppp/pap-secrets
#
# This is a pap-secrets file to be used with the AUTO_PPP function of
# mgetty. mgetty-0.99 is preconfigured to startup pppd with the login option
# which will cause pppd to consult /etc/passwd (and /etc/shadow in turn)
# after a user has passed this file. Don't be disturbed therfore by the fact
# that this file defines logins with any password for users. /etc/passwd
# (again, /etc/shadow, too) will catch passwd mismatches.
#
# This file should block ALL users that should not be able to do AUTO_PPP.
# AUTO_PPP bypasses the usual login program so its necessary to list all
# system userids with regular passwords here.
#
# ATTENTION: The definitions here can allow users to login without a
# password if you don't use the login option of pppd! The mgetty Debian
# package already provides this option; make sure you don't change that.
# INBOUND connections
# Every regular user can use PPP and has to use passwords from /etc/passwd
* hostname "" *
# UserIDs that cannot use PPP at all. Check your /etc/passwd and add any
# other accounts that should not be able to use pppd!
guest hostname "*" -
master hostname "*" -
root hostname "*" -
support hostname "*" -
stats hostname "*" -
# OUTBOUND connections
# Here you should add your userid password to connect to your providers via
# PAP. The * means that the password is to be used for ANY host you connect
# to. Thus you do not have to worry about the foreign machine name. Just
# replace password with your password.
# If you have different providers with different passwords then you better
# remove the following line.
# * password
"smil0014@lsurf.fr" Lsurf.smt "myfirstpassword"
"smil0057@alice.fr" Lsurf.ape "my2ndpassword"
|
Fichier /etc/ppp/resolv/Lsurf.smt
# resolv.conf created by pppconfig for Lsurf.smt
nameserver 194.149.160.1
nameserver 194.149.160.9
|
Fichier /etc/chatscripts/Lsurf.smt
# This chatfile was generated by pppconfig 2.3.10.
# Please do not delete any of the comments. Pppconfig needs them.
#
# ispauth PAP
# abortstring
ABORT BUSY ABORT 'NO CARRIER' ABORT VOICE ABORT 'NO DIALTONE' ABORT 'NO DIAL TONE' ABORT 'NO ANSWER' ABORT DELAYED
# modeminit
'' ATZ
OK-AT-OK "ATM0L0"
# ispnumber
OK-AT-OK "ATDT08 60 15 55 55"
# ispconnect
CONNECT \d\c
# prelogin
# ispname
# isppassword
# postlogin
# end of pppconfig stuff
|
La première étape est de faire reconnaître la carte réseau par le noyau.
C'est automatique le plus souvent, mais on ne sait jamais.
2.3.1 Identifier l'adaptateur réseau Ethernet cable
Dans le cas le plus fréquent, la carte réseau est connectée au bus PCI.
La commande lspci
va nous être utile. Exemple :
sebastien@maison-1:~$ lspci
00:00.0 Host bridge: Intel Corporation 82855PM Processor to I/O Controller (rev 03)
00:01.0 PCI bridge: Intel Corporation 82855PM Processor to AGP Controller (rev 03)
00:1d.0 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (rev 01)
00:1d.1 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (rev 01)
00:1d.2 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (rev 01)
00:1d.7 USB Controller: Intel Corporation 82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (rev 01)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev 81)
00:1f.0 ISA bridge: Intel Corporation 82801DBM (ICH4-M) LPC Interface Bridge (rev 01)
00:1f.1 IDE interface: Intel Corporation 82801DBM (ICH4-M) IDE Controller (rev 01)
00:1f.5 Multimedia audio controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (rev 01)
00:1f.6 Modem: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (rev 01)
01:00.0 VGA compatible controller: ATI Technologies Inc Radeon R250 [Mobility FireGL 9000] (rev 02)
02:00.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5705M Gigabit Ethernet (rev 01)
02:01.0 CardBus bridge: O2 Micro, Inc. OZ711EC1 SmartCardBus Controller (rev 20)
02:01.1 CardBus bridge: O2 Micro, Inc. OZ711EC1 SmartCardBus Controller (rev 20)
02:03.0 Network controller: Broadcom Corporation BCM4306 802.11b/g Wireless LAN Controller (rev 03)
|
Maintenant nous savons que la carte réseau Ethernet cable est une
Broadcom BCM5705M Gigabit.
2.3.2 Contrôler que l'adaptateur réseau Ethernet cable est reconnu
Pour s'assurer que la carte est reconnue par le noyau Linux, exécuter la commande
dmesg
, et aller à la pêche aux informations pertinentes, ce qui
n'est pas toujours facile. Exemple, toujours avec une Broadcom 5705M Gigabit.
sebastien@maison-1:~$ dmesg
[...]
tg3.c:v3.69 (November 15, 2006)
[...]
eth0: Tigon3 [partno(BCM95705A50) rev 3001 PHY(5705)] (PCI:33MHz:32-bit) 10/100/1000BaseT Ethernet 00:0f:1f:cd:08:cf
eth0: RXcsums[1] LinkChgREG[1] MIirq[1] ASF[0] Split[0] WireSpeed[1] TSOcap[1]
eth0: dma_rwctrl[763f0000] dma_mask[64-bit]
[...]
|
Apparemment, tout va bien. La commande ifconfig -a
confirme que l'on
a bien un périphérique eth0 reconnu comme périphérique réseau :
maison-1:~# ifconfig -a
[...]
eth0 Lien encap:Ethernet HWaddr 00:0F:1F:CD:08:CF
BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:1000
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
Interruption:11
[...]
lo Lien encap:Boucle locale
inet adr:127.0.0.1 Masque:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:3454 errors:0 dropped:0 overruns:0 frame:0
TX packets:3454 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:0
RX bytes:2700922 (2.5 MiB) TX bytes:2700922 (2.5 MiB)
|
Il n'y a pas d'adresse IP définie pour eth0 (pas de "inet addr"), contrairement
à l'interface loopback (lo). Pour le moment, l'adaptateur eth0 est inutilisable,
il va falloir le configurer et le monter.
2.3.3 Configurer l'adaptateur réseau Ethernet cable
La configuration de tous les adaptateurs réseau est faite dans le fichier
/etc/network/interfaces
.
La structure de ce fichier est expliquée dans la page de manuel du
fichier interfaces
(exécuter man interfaces
).
Pour résumer grossièrement la structure de ce fichier :
- La description d'un adaptateur réseau commence par une ligne
iface nom_interface options
, et les lignes
qui suivent définissent certains paramètres comme l'adresse IP. Parfois, la ligne iface
se suffit à elle-même.
2.3.3.1 Adresse statique ou DHCP ?
La plupart des boîtiers ADSL sont serveurs DHCP. Personnellement, je préfère
fonctionner en adresse IP fixe, cela simplifie la configuration du NAT sur le boîtier
ADSL, et la configuration du firewall Linux.
Comment savoir si mon boîtier ADSL est serveur DHCP ?
Configurer puis examiner le résultat ! Il existe sans doute des méthodes
plus fines pour examiner le comportement du serveur DHCP, mais
cette méthode est la plus simple.
2.3.3.2 Adresse statique
Exemple de fichier /etc/network/interfaces
pour une configuration statique.
On suppose que le boîtier ADSL a pour adresse IP 192.168.1.1.
Remarque
L'option dns-nameservers évite de configurer le DNS ailleurs.
En l'absence du paquetage resolvconf, il faudrait modifier le fichier
/etc/resolv.conf
à la main (un exemple se trouve au début de ce document).
Si resolvconf est présent, il faudrait modifier le fichier
/etc/resolvconf/resolv.conf.d/base
. Mais le paramètre dns-nameservers
dans /etc/network/interfaces
évite de modifier quoi que ce soit dans resolvconf.
C'est le moyen le plus simple et le plus élégant de configurer le DNS.
Curieusement, il est peu documenté.
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.1.2
network 192.168.1.0
netmask 255.255.255.0
broadcast 192.168.1.255
gateway 192.168.1.1
dns-nameservers 192.168.1.1 194.117.200.10
|
2.3.3.3 Adresse dynamique
Exemple de fichier /etc/network/interfaces
pour une configuration
dynamique (DHCP).
Ici on ne précise pas de serveur DNS, bien que ce soit possible. En général,
le serveur DHCP fournit lui-même cette information (en même temps
que l'adresse IP).
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
|
Encore une fois, la première étape est de faire reconnaître la carte réseau par le noyau.
Et encore une fois, c'est automatique le plus souvent.
2.4.1 Pré-requis
2.4.1.1 Paquetages Debian
Installer le paquetage wireless-tools. Exemple sur ma Debian :
sebastien@maison-1:~$ dpkg -l "wireless*"
Souhait=inconnU/Installé/suppRimé/Purgé/H=à garder
| État=Non/Installé/fichier-Config/dépaqUeté/échec-conFig/H=semi-installé
|/ Err?=(aucune)/H=à garder/besoin Réinstallation/X=les deux (État,Err: majuscule=mauvais)
||/ Nom Version Description
+++-=============================-=============================-==========================================================================
ii wireless-tools 28-1 Tools for manipulating Linux Wireless Extensions
|
2.4.1.2 Options de compilation du noyau
Certaines options sont génériques, d'autres dépendent de carte Wifi utilisée.
Dans mon cas (carte Broadcom BCM4306), il m'a fallu définir les options suivantes.
L'exemple suivant anticipe sur l'identification de la carte réseau Wifi, décrite plus loin.
Dans la partie Networking
CONFIG_IEEE80211=m
CONFIG_IEEE80211_DEBUG=y
CONFIG_IEEE80211_CRYPT_WEP=m
CONFIG_IEEE80211_CRYPT_CCMP=m
CONFIG_IEEE80211_CRYPT_TKIP=m
CONFIG_IEEE80211_SOFTMAC=m
CONFIG_IEEE80211_SOFTMAC_DEBUG=y
Dans la partie Network device support -> Wireless LAN drivers (non-hamradio) & Wireless Extensions
CONFIG_BCM43XX=m
CONFIG_BCM43XX_DEBUG=y
CONFIG_BCM43XX_DMA=y
CONFIG_BCM43XX_PIO=y
CONFIG_BCM43XX_DMA_AND_PIO_MODE=y
# CONFIG_BCM43XX_DMA_MODE is not set
# CONFIG_BCM43XX_PIO_MODE is not set
|
Remarques
- Tant que les options IEEE80211* ne sont pas activées, le driver BCM43XX n'apparaît pas
dans les périphériques réseau Wireless. Or les autres drivers apparaissent, ce qui peut prêter à confusion.
- Le driver bcm43xx a besoin d'un firmware à charger sur la carte
lors de son activation. Cela est décrit paragraphe suivant.
Cas particulier du driver bcm43xx
Sans fichier firmware accessible par le driver bcm43xx, impossible d'utiliser la carte.
Il existe plusieurs méthodes pour récupérer le bon firmware. La méthode
la plus usuelle (si l'on en croit les forums) consiste à le récupérer
depuis le driver Windows. Avec Debian, il faut et il suffit d'installer le paquetage
bcm43xx-fwcutter. Lors de la configuration du paquetage, il vous est demandé si vous
souhaitez récupérer le firmware (il y en a plusieurs, pour différentes variétés de carte)
depuis Internet. Une fois cette étape réalisée, le répertoire /lib/firmware
contient les firmware.
Si vous n'êtes pas connecté à Internet : le paquetage bcm43xx-fwcutter demeure la bonne
solution, mais il faut lui fournir un fichier correspondant au driver Windows.
Paquetage bcm43xx-fwcutter installé sur ma Debian.
sebastien@maison-1:~$ dpkg -l "bcm43xx*"
Souhait=inconnU/Installé/suppRimé/Purgé/H=à garder
| État=Non/Installé/fichier-Config/dépaqUeté/échec-conFig/H=semi-installé
|/ Err?=(aucune)/H=à garder/besoin Réinstallation/X=les deux (État,Err: majuscule=mauvais)
||/ Nom Version Description
+++-=============================-=============================-==========================================================================
ii bcm43xx-fwcutter 005-2 Utility for extracting Broadcom 43xx firmware
|
2.4.2 Identifier l'adaptateur réseau Ethernet Wifi
Si la carte réseau est connectée au bus PCI, elle sera visible avec la commande
lspci
. Exemple :
sebastien@maison-1:~$ lspci
00:00.0 Host bridge: Intel Corporation 82855PM Processor to I/O Controller (rev 03)
00:01.0 PCI bridge: Intel Corporation 82855PM Processor to AGP Controller (rev 03)
00:1d.0 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (rev 01)
00:1d.1 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (rev 01)
00:1d.2 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (rev 01)
00:1d.7 USB Controller: Intel Corporation 82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (rev 01)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev 81)
00:1f.0 ISA bridge: Intel Corporation 82801DBM (ICH4-M) LPC Interface Bridge (rev 01)
00:1f.1 IDE interface: Intel Corporation 82801DBM (ICH4-M) IDE Controller (rev 01)
00:1f.5 Multimedia audio controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (rev 01)
00:1f.6 Modem: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (rev 01)
01:00.0 VGA compatible controller: ATI Technologies Inc Radeon R250 [Mobility FireGL 9000] (rev 02)
02:00.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5705M Gigabit Ethernet (rev 01)
02:01.0 CardBus bridge: O2 Micro, Inc. OZ711EC1 SmartCardBus Controller (rev 20)
02:01.1 CardBus bridge: O2 Micro, Inc. OZ711EC1 SmartCardBus Controller (rev 20)
02:03.0 Network controller: Broadcom Corporation BCM4306 802.11b/g Wireless LAN Controller (rev 03)
|
Ici, nous voyons qu'il y a dans le PC une carte Broadcom BCM4306. "802.11"
est synonyme de Wifi, ce qui est confirmé par "Wireless".
2.4.3 Contrôler que l'adaptateur réseau Ethernet Wifi est reconnu
Pour le Wifi, cela se fera en deux parties.
- S'assurer que la périphérique est reconnu par le noyau.
- S'assurer que la carte est bien vue comme étant "Wireless".
Carte Ethernet Wifi reconnue par le noyau Linux
Cette partie est identique à la partie se rapportant à la carte Ethernet cable.
Exécuter la commande dmesg
, et aller à la pêche aux informations pertinentes,
ce qui n'est pas toujours facile. Exemple, toujours avec une Broadcom BCM4306.
sebastien@maison-1:~$ dmesg
[...]
ieee80211_crypt: registered algorithm 'NULL'
ieee80211: 802.11 data/management/control stack, git-1.1.13
ieee80211: Copyright (C) 2004-2005 Intel Corporation <jketreno@linux.intel.com>
bcm43xx driver
ACPI: PCI Interrupt 0000:02:03.0[A] -> Link [LNKB] -> GSI 5 (level, low) -> IRQ 5
bcm43xx: Chip ID 0x4306, rev 0x3
bcm43xx: Number of cores: 5
bcm43xx: Core 0: ID 0x800, rev 0x4, vendor 0x4243, enabled
bcm43xx: Core 1: ID 0x812, rev 0x5, vendor 0x4243, disabled
bcm43xx: Core 2: ID 0x80d, rev 0x2, vendor 0x4243, enabled
bcm43xx: Core 3: ID 0x807, rev 0x2, vendor 0x4243, disabled
bcm43xx: Core 4: ID 0x804, rev 0x9, vendor 0x4243, enabled
bcm43xx: PHY connected
bcm43xx: Detected PHY: Version: 2, Type 2, Revision 2
bcm43xx: Detected Radio: ID: 2205017f (Manuf: 17f Ver: 2050 Rev: 2)
bcm43xx: Radio turned off
|
Le module bcm43xx a reconnu la carte Wifi et va la gérer.
A noter que ce module n'est plus maintenu.
La commande ifconfig -a
confirme que l'on
a bien un périphérique eth1 reconnu comme périphérique réseau (eth0
est un autre adaptateur, câblé).
maison-1:~# ifconfig -a
[...]
eth1 Lien encap:Ethernet HWaddr 00:0B:7D:0C:49:6C
BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:1000
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
Interruption:11 Adresse de base:0x8000
lo Lien encap:Boucle locale
inet adr:127.0.0.1 Masque:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:63 errors:0 dropped:0 overruns:0 frame:0
TX packets:63 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:0
RX bytes:5048 (4.9 KiB) TX bytes:5048 (4.9 KiB)
|
Carte Ethernet reconnue comme étant sans fil
Le paquetage wireless-tools contient, entre autres, le programme iwconfig,
qui affiche les informations sur les extensions "Wireless" lorsqu'elles sont trouvées.
En tant que root, exécuter la commande iwconfig sans option. Exemple :
maison-1:~# iwconfig
eth0 no wireless extensions.
lo no wireless extensions.
dummy0 no wireless extensions.
eth1 IEEE 802.11b/g ESSID:off/any Nickname:"Broadcom 4306"
Mode:Managed Frequency=2.412 GHz Access Point: Invalid
Bit Rate=1 Mb/s
RTS thr:off Fragment thr:off
Encryption key:off
Link Quality=0/100 Signal level=-256 dBm Noise level=-256 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
|
Ici la carte eth1 est bien reconnue comme étant une carte Wifi.
2.4.4 Configurer l'adaptateur réseau Ethernet Wifi
Deux cas peuvent se présenter.
- Connexion avec le chiffrement WEP, considéré comme basique.
- Connexion avec un chiffrement WPA, mieux sécurisé.
2.4.4.1 Afficher les caractéristiques de la carte réseau Wifi
Le programme iwlist
installé avec le paquetage wireless-tools
permet d'afficher les caractéristiques de la carte, et de détecter les réseaux
Wifi environnants.
iwlist nom_interface key
affiche des informations utiles sur
les capacités de la carte, et les clés utilisées.
maison-1:~# iwlist eth1 key
eth1 2 key sizes : 40, 104bits
4 keys available :
[1]: off
[2]: off
[3]: off
[4]: off
Current Transmit Key: [1]
Authentication capabilities :
WPA
WPA2
CIPHER TKIP
CIPHER CCMP
|
Cet exemple montre que la carte BCM4306 gère le WPA avec les chiffrements TKIP et CCMP.
Le WEP est toujours géré, il fait partie de la définition de 802.11g (à vérifier).
iwlist nom_interface scan
affiche les réseaux Wifi alentour.
maison-1:~# iwlist eth1 scan
eth1 Interface doesn't support scanning : No such device
|
Comme la radio de l'interface n'est pas activée, le scanning n'est pas disponible.
Comment savoir si la radio est activée, ou pas ? Cela dépend de la carte.
Sur la BCM43xx, et pour peu que le débogage soit activé (cf. options de compilation
du noyau), c'est le fichier /var/log/messages
qui va nous donner cette
information.
Exécuter la commande grep -i radio /var/log/messages
.
maison-1:~# grep -i radio /var/log/messages
Feb 3 17:15:30 maison-1 kernel: bcm43xx: Radio turned off
Feb 3 17:26:14 maison-1 kernel: bcm43xx: Detected Radio: ID: 2205017f (Manuf: 17f Ver: 2050 Rev: 2)
Feb 3 17:26:14 maison-1 kernel: bcm43xx: Radio turned off
Feb 3 17:26:14 maison-1 kernel: bcm43xx: Radio turned off
Feb 4 09:16:58 maison-1 kernel: bcm43xx: Detected Radio: ID: 2205017f (Manuf: 17f Ver: 2050 Rev: 2)
Feb 4 09:16:58 maison-1 kernel: bcm43xx: Radio turned off
Feb 4 09:16:58 maison-1 kernel: bcm43xx: Radio turned off
Feb 4 09:24:13 maison-1 kernel: bcm43xx: Radio turned on
Feb 4 10:15:15 maison-1 kernel: bcm43xx: Radio turned off
|
Le dernier événements est "radio turned off", la radio est bien éteinte.
Pour allumer la radio de la carte il faut la monter, ce qui oblige à la configurer.
Donc une fois de plus j'anticipe sur la configuration à venir, et sur la partie
consacrée au montage et démontage manuel d'une interface réseau.
Exécuter ifup -v nom_interface
. Exemple dans mon cas :
maison-1:/etc/network# ifup -v eth1
Configuring interface eth1=eth1 (inet)
run-parts --verbose /etc/network/if-pre-up.d
run-parts: executing /etc/network/if-pre-up.d/wireless-tools
run-parts: executing /etc/network/if-pre-up.d/wpasupplicant
ifconfig eth1 192.168.1.3 netmask 255.255.255.0 broadcast 192.168.1.255 up
route add default gw 192.168.1.1 eth1
run-parts --verbose /etc/network/if-up.d
run-parts: executing /etc/network/if-up.d/000resolvconf
Restarting mail retriever agent: fetchmail.
run-parts: executing /etc/network/if-up.d/mountnfs
run-parts: executing /etc/network/if-up.d/sendmail
run-parts: executing /etc/network/if-up.d/wpasupplicant
|
Maintenant que nous avons monté la carte, la radio est-elle allumée ? Nouvel
examen du fichier /var/log/messages
.
maison-1:~# grep -i radio /var/log/messages
Feb 3 17:15:30 maison-1 kernel: bcm43xx: Radio turned off
Feb 3 17:26:14 maison-1 kernel: bcm43xx: Detected Radio: ID: 2205017f (Manuf: 17f Ver: 2050 Rev: 2)
Feb 3 17:26:14 maison-1 kernel: bcm43xx: Radio turned off
Feb 3 17:26:14 maison-1 kernel: bcm43xx: Radio turned off
Feb 4 09:16:58 maison-1 kernel: bcm43xx: Detected Radio: ID: 2205017f (Manuf: 17f Ver: 2050 Rev: 2)
Feb 4 09:16:58 maison-1 kernel: bcm43xx: Radio turned off
Feb 4 09:16:58 maison-1 kernel: bcm43xx: Radio turned off
Feb 4 09:24:13 maison-1 kernel: bcm43xx: Radio turned on
Feb 4 10:15:15 maison-1 kernel: bcm43xx: Radio turned off
Feb 4 11:07:32 maison-1 kernel: bcm43xx: Radio turned on
|
Ça a fonctionné ! Maintenant, nouvelle exécution de la commande
iwlist eth1 scan
.
maison-1:~# iwlist eth1 scan
eth1 Scan completed :
Cell 01 - Address: 55:01:23:45:67:89
ESSID:"<hidden>"
Protocol:IEEE 802.11bg
Mode:Master
Channel:1
Encryption key:on
Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 6 Mb/s; 9 Mb/s
11 Mb/s; 12 Mb/s; 18 Mb/s; 24 Mb/s; 36 Mb/s
48 Mb/s; 54 Mb/s
Quality=100/100 Signal level=-30 dBm Noise level=-66 dBm
Extra: Last beacon: 20ms ago
Cell 02 - Address: 55:01:23:45:67:89
ESSID:"MYPERIPH-MYID1-MYID2"
Protocol:IEEE 802.11bg
Mode:Master
Channel:1
Encryption key:on
Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 6 Mb/s; 9 Mb/s
11 Mb/s; 12 Mb/s; 18 Mb/s; 24 Mb/s; 36 Mb/s
48 Mb/s; 54 Mb/s
Quality=100/100 Signal level=-30 dBm Noise level=-66 dBm
Extra: Last beacon: 240ms ago
|
Pour l'exemple ci-dessus, j'ai changé l'adresse MAC et le SSID de mon réseau, pour ne
pas les exposer.
Remarque
Même lorsque la carte ne parvient pas à se connecter au réseau Wifi,
elle est considérée comme "montée". Donc pour faire un scan, une configuration
partielle est suffisante.
2.4.3.2 Connexion avec chiffrement WEP
Dans le fichier /etc/network/interfaces
, le WEP est configuré
avec les paramètres wireless-. Exemple de configuration.
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
auto eth1
iface eth1 inet static
address 192.168.1.3
network 192.168.1.0
netmask 255.255.255.0
broadcast 192.168.1.255
gateway 192.168.1.1
wireless-mode Managed
wireless-essid MYPERIPH-MYID1-MYID2
wireless-key restricted 000608F12360E7899C49012ACF
dns-nameservers 192.168.1.1 194.117.200.10
|
Les paramètres MYPERIPH-MYID1-MYID2
et 000608F12360E7899C49012ACF
sont configurées sur le boîtier ADSL.
Le driver bcm43xx (en mode debug, cf. options de compilation du noyau) indique
dans le log (/var/log/messages
) le moment où il parvient à s'associer.
Exemple avec une erreur dans le paramètre (mauvaise clé WEP).
maison-1:~# egrep -i "(softmac|bcm43xx)" /var/log/messages | tail -n 24
Feb 4 11:31:09 maison-1 kernel: bcm43xx: set security called, .active_key = 0, .level = 1, .enabled = 1, .encrypt = 1, .auth_mode = 1
Feb 4 11:31:09 maison-1 kernel: SoftMAC: Associate: Scanning for networks first.
Feb 4 11:31:09 maison-1 kernel: SoftMAC: Associate: failed to initiate scan. Is device up?
Feb 4 11:31:09 maison-1 kernel: bcm43xx: PHY connected
Feb 4 11:31:09 maison-1 kernel: bcm43xx: Microcode rev 0x127, pl 0xe (2005-04-18 02:36:27)
Feb 4 11:31:09 maison-1 kernel: bcm43xx: Radio turned on
Feb 4 11:31:10 maison-1 kernel: bcm43xx: Chip initialized
Feb 4 11:31:10 maison-1 kernel: bcm43xx: 30-bit DMA initialized
Feb 4 11:31:10 maison-1 kernel: bcm43xx: Keys cleared
Feb 4 11:31:10 maison-1 kernel: bcm43xx: Selected 802.11 core (phytype 2)
Feb 4 11:31:10 maison-1 kernel: SoftMAC: Associate: Scanning for networks first.
Feb 4 11:31:10 maison-1 kernel: SoftMAC: Associate: failed to initiate scan. Is device up?
Feb 4 11:31:11 maison-1 kernel: bcm43xx: set security called, .active_key = 0, .level = 1, .enabled = 1, .encrypt = 1, .auth_mode = 1
Feb 4 11:31:11 maison-1 kernel: SoftMAC: Canceling existing associate request!
Feb 4 11:31:11 maison-1 kernel: SoftMAC: Associate: Scanning for networks first.
Feb 4 11:31:11 maison-1 kernel: SoftMAC: Start scanning with channel: 1
Feb 4 11:31:11 maison-1 kernel: SoftMAC: Scanning 14 channels
Feb 4 11:31:11 maison-1 kernel: SoftMAC: Scanning finished
Feb 4 11:31:11 maison-1 kernel: SoftMAC: Queueing Authentication Request to 00:16:38:76:ab:c8
Feb 4 11:31:11 maison-1 kernel: SoftMAC: Cannot associate without being authenticated, requested authentication
Feb 4 11:31:11 maison-1 kernel: SoftMAC: Already requested authentication, waiting...
Feb 4 11:31:11 maison-1 kernel: SoftMAC: Already requested authentication, waiting...
Feb 4 11:31:11 maison-1 kernel: SoftMAC: Sent Authentication Request to 00:16:38:76:ab:c8.
Feb 4 11:31:11 maison-1 kernel: SoftMAC: Shared Key Authentication with 00:16:38:76:ab:c8 failed, error code: 15
|
Exemple avec les bons paramètres.
maison-1:~# egrep -i "(softmac|bcm43xx)" /var/log/messages | tail -n 23
Feb 4 11:42:15 maison-1 kernel: bcm43xx: PHY connected
Feb 4 11:42:15 maison-1 kernel: bcm43xx: Microcode rev 0x127, pl 0xe (2005-04-18 02:36:27)
Feb 4 11:42:15 maison-1 kernel: bcm43xx: Radio turned on
Feb 4 11:42:15 maison-1 kernel: bcm43xx: Chip initialized
Feb 4 11:42:15 maison-1 kernel: bcm43xx: 30-bit DMA initialized
Feb 4 11:42:15 maison-1 kernel: bcm43xx: Keys cleared
Feb 4 11:42:15 maison-1 kernel: bcm43xx: Selected 802.11 core (phytype 2)
Feb 4 11:42:15 maison-1 kernel: SoftMAC: Associate: Scanning for networks first.
Feb 4 11:42:15 maison-1 kernel: SoftMAC: Associate: failed to initiate scan. Is device up?
Feb 4 11:42:15 maison-1 kernel: bcm43xx: set security called, .active_key = 0, .level = 1, .enabled = 1, .encrypt = 1, .auth_mode = 1
Feb 4 11:42:15 maison-1 kernel: SoftMAC: Canceling existing associate request!
Feb 4 11:42:15 maison-1 kernel: SoftMAC: Associate: Scanning for networks first.
Feb 4 11:42:15 maison-1 kernel: SoftMAC: Start scanning with channel: 1
Feb 4 11:42:15 maison-1 kernel: SoftMAC: Scanning 14 channels
Feb 4 11:42:15 maison-1 kernel: SoftMAC: Scanning finished
Feb 4 11:42:15 maison-1 kernel: SoftMAC: Queueing Authentication Request to 00:16:38:76:ab:c8
Feb 4 11:42:15 maison-1 kernel: SoftMAC: Cannot associate without being authenticated, requested authentication
Feb 4 11:42:15 maison-1 kernel: SoftMAC: Already requested authentication, waiting...
Feb 4 11:42:15 maison-1 kernel: SoftMAC: Already requested authentication, waiting...
Feb 4 11:42:15 maison-1 kernel: SoftMAC: Sent Authentication Request to 00:16:38:76:ab:c8.
Feb 4 11:42:15 maison-1 kernel: SoftMAC: Shared Key Authentication completed with 00:16:38:76:ab:c8
Feb 4 11:42:15 maison-1 kernel: SoftMAC: sent association request!
Feb 4 11:42:15 maison-1 kernel: SoftMAC: associated!
|
Remarque
Entre le premier et le deuxième exemple, j'ai dû redémarrer le PC. En effet après avoir tenté
de démarrer le Wifi avec une mauvaise clé, il n'y avait plus moyen de réussir l'association,
même après avoir corrigé la clé dans le fichier /etc/network/interfaces
.
Contournement d'un bug
Pour des raisons obscures, ma carte Wifi ne parvient pas à se monter du premier coup.
Il fallait exécuter à la main la commande ifup eth1
, puis
ifup --force eth1
. Sans doute une latence lors de la mise en route
de la radio.
Comment automatiser cela ? C'est ce que je vais décrire maintenant.
Attention, la solution qui suit est un contournement éminemment gruiiik, mais bon, parfois
il faut savoir être pragmatique.
Le contournement consiste à exécuter un script juste après le montage de la carte, à l'aide
du paramètre post-up. Ce script attend une seconde, puis exécute la commande
ifup --force eth1
.
C'est gruiiik ? Oui, ça l'est !
A noter que cela pourrait produire une récursivité infinie dans l'exécution du post-up,
mais non, le programme ifup
ne se laisse pas piéger, vive le logiciel libre !
Contenu du fichier /etc/network/interfaces
pour le Wifi, avec
le contournement du bug.
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
auto eth1
iface eth1 inet static
address 192.168.1.3
network 192.168.1.0
netmask 255.255.255.0
broadcast 192.168.1.255
gateway 192.168.1.1
wireless-mode Managed
wireless-essid TECOM-AH4222-76ABBD
wireless-key restricted B70608FCED60E36D9C47AB29DE
dns-nameservers 192.168.1.1 194.117.200.10
post-up /etc/network/setup-eth1
|
Fichier /etc/network/setup-eth1
.
Droits sur le fichier = 755, propriétaire = root.root.
#!/bin/sh
#
# /etc/network/setup-eth1
#
# Sébastien Millet, December 2006
sleep 1
ifup --force eth1
exit 0;
|
2.4.3.3 Connexion avec chiffrement WPA
Le noyau Linux ne gère pas le WPA tout seul, il lui faut un utilitaire supplémentaire
pour gérer le WPA.
Paquetage wpasupplicant
Sur ma Debian :
sebastien@maison-1:~$ dpkg -l "wpa*"
Souhait=inconnU/Installé/suppRimé/Purgé/H=à garder
| État=Non/Installé/fichier-Config/dépaqUeté/échec-conFig/H=semi-installé
|/ Err?=(aucune)/H=à garder/besoin Réinstallation/X=les deux (État,Err: majuscule=mauvais)
||/ Nom Version Description
+++-=============================-=============================-==========================================================================
pn wpagui <néant> (aucune description n'est disponible)
ii wpasupplicant 0.5.5-2 Client support for WPA and WPA2 (IEEE 802.11i)
|
Auparavant, ce programme était configuré dans le répertoire /etc/wpa_supplicant
.
Avec les versions actuelles, ce répertoire existe toujours mais il ne contient aucun
fichier de configuration. A la place, ce sont des paramètres wpa-* dans le fichier
/etc/network/interfaces
qui indiquent la configuration WPA.
Exemple d'une configuration WPA (ne fonctionne pas chez moi !)
Ça doit fonctionner ailleurs. Dans mon cas, impossible de se connecter avec
ces paramètres.
C'est juste pour donner un exemple. Ensuite, je décrirai comment j'ai réglé
le problème.
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
auto eth1
iface eth1 inet static
address 192.168.1.3
network 192.168.1.0
netmask 255.255.255.0
broadcast 192.168.1.255
gateway 192.168.1.1
wpa-driver wext
wpa-ssid TECOM-AH4222-76ABBD
wpa-scan-ssid 0
wpa-psk c8bd7810f278a79ec6d0839d2fd891b85ee5b15d1d21b7a7758e7708aff27b1a
dns-nameservers 192.168.1.1 194.117.200.10
|
Avec cette configuration, il apparaît dans le log (/var/log/messages
)
les lignes suivantes, continuellement.
[...]
Feb 4 13:19:40 maison-1 kernel: SoftMAC: Start scanning with channel: 1
Feb 4 13:19:40 maison-1 kernel: SoftMAC: Scanning 14 channels
Feb 4 13:19:40 maison-1 kernel: SoftMAC: Scanning finished
Feb 4 13:19:45 maison-1 kernel: SoftMAC: Start scanning with channel: 1
Feb 4 13:19:45 maison-1 kernel: SoftMAC: Scanning 14 channels
Feb 4 13:19:46 maison-1 kernel: SoftMAC: Scanning finished
Feb 4 13:19:51 maison-1 kernel: SoftMAC: Start scanning with channel: 1
Feb 4 13:19:51 maison-1 kernel: SoftMAC: Scanning 14 channels
Feb 4 13:19:51 maison-1 kernel: SoftMAC: Scanning finished
[...]
|
Et la connexion n'est jamais établie.
Déboguer wpasupplicant
De nombreuses manipulations seront gruiiik, c'est pas grave, c'est pour faire
du débogage.
Récupérer le source de wpasupplicant
Dans le répertoire où l'on désire récupérer les sources, exécuter
apt-get source wpasupplicant
.
maison-1:/usr/src/tmp# apt-get source wpasupplicant
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances... Fait
E: Vous devez insérer quelques adresses « sources » dans votre sources.list
|
Après avoir ajouté la ligne
deb-src http://mir1.ovh.net/debian/ testing main contrib
au fichier /etc/apt/sources.list
, ça va déjà mieux :
maison-1:/usr/src/tmp# apt-get source wpasupplicant
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances... Fait
Nécessité de prendre 738ko dans les sources.
Réception de : 1 http://mir1.ovh.net testing/main wpasupplicant 0.5.5-2 (dsc) [834B]
Réception de : 2 http://mir1.ovh.net testing/main wpasupplicant 0.5.5-2 (tar) [661kB]
Réception de : 3 http://mir1.ovh.net testing/main wpasupplicant 0.5.5-2 (diff) [75,8kB]
738ko réceptionnés en 3s (203ko/s)
dpkg-source : extraction de wpasupplicant dans wpasupplicant-0.5.5
dpkg-source : extraction de wpasupplicant_0.5.5.orig.tar.gz
dpkg-source : ./wpasupplicant_0.5.5-2.diff.gz
maison-1:/usr/src/tmp# ll
total 740
drwxr-xr-x 9 root root 4096 2007-02-04 13:36 wpasupplicant-0.5.5
-rw-r--r-- 1 root src 75798 2006-10-05 02:19 wpasupplicant_0.5.5-2.diff.gz
-rw-r--r-- 1 root src 834 2006-10-05 02:19 wpasupplicant_0.5.5-2.dsc
-rw-r--r-- 1 root src 661097 2006-09-12 03:32 wpasupplicant_0.5.5.orig.tar.gz
|
Par compiler, le fichier .config
doit exister. Le fichier
par défaut pour créer .config
est defconfig
.
Ensuite, lancer la compilation avec la commande make
.
maison-1:/usr/src/tmp# cd wpasupplicant-0.5.5/
maison-1:/usr/src/tmp/wpasupplicant-0.5.5# cp -i defconfig .config
maison-1:/usr/src/tmp/wpasupplicant-0.5.5# make
cc -MMD -O2 -Wall -g -I. -I../utils -I../hostapd -DCONFIG_BACKEND_FILE -DCONFIG_DRIVER_HOSTAP -DCONFIG_DRIVER_WEXT -DCONFIG_DRIVER_ATMEL -DCONFIG_DRIVER_WIRED -DEAP_TLS -DEAP_PEAP -DEAP_TTLS -DEAP_MD5 -DEAP_MSCHAPv2 -DEAP_GTC -DEAP_OTP -DEAP_LEAP -DEAP_TLV -DIEEE8021X_EAPOL -DEAP_TLS_FUNCS -DEAP_TLS_OPENSSL -DPKCS12_FUNCS -DCONFIG_SMARTCARD -DINTERNAL_SHA256 -DCONFIG_WIRELESS_EXTENSION -DCONFIG_CTRL_IFACE -DCONFIG_CTRL_IFACE_UNIX -DCONFIG_PEERKEY -c -o config.o config.c
cc -MMD -O2 -Wall -g -I. -I../utils -I../hostapd -DCONFIG_BACKEND_FILE -DCONFIG_DRIVER_HOSTAP -DCONFIG_DRIVER_WEXT -DCONFIG_DRIVER_ATMEL -DCONFIG_DRIVER_WIRED -DEAP_TLS -DEAP_PEAP -DEAP_TTLS -DEAP_MD5 -DEAP_MSCHAPv2 -DEAP_GTC -DEAP_OTP -DEAP_LEAP -DEAP_TLV -DIEEE8021X_EAPOL -DEAP_TLS_FUNCS -DEAP_TLS_OPENSSL -DPKCS12_FUNCS -DCONFIG_SMARTCARD -DINTERNAL_SHA256 -DCONFIG_WIRELESS_EXTENSION -DCONFIG_CTRL_IFACE -DCONFIG_CTRL_IFACE_UNIX -DCONFIG_PEERKEY -c -o common.o common.c
[...]
cc -MMD -O2 -Wall -g -I. -I../utils -I../hostapd -DCONFIG_BACKEND_FILE -DCONFIG_DRIVER_HOSTAP -DCONFIG_DRIVER_WEXT -DCONFIG_DRIVER_ATMEL -DCONFIG_DRIVER_WIRED -DEAP_TLS -DEAP_PEAP -DEAP_TTLS -DEAP_MD5 -DEAP_MSCHAPv2 -DEAP_GTC -DEAP_OTP -DEAP_LEAP -DEAP_TLV -DIEEE8021X_EAPOL -DEAP_TLS_FUNCS -DEAP_TLS_OPENSSL -DPKCS12_FUNCS -DCONFIG_SMARTCARD -DINTERNAL_SHA256 -DCONFIG_WIRELESS_EXTENSION -DCONFIG_CTRL_IFACE -DCONFIG_CTRL_IFACE_UNIX -DCONFIG_PEERKEY -c -o eap_tls_common.o eap_tls_common.c
cc -MMD -O2 -Wall -g -I. -I../utils -I../hostapd -DCONFIG_BACKEND_FILE -DCONFIG_DRIVER_HOSTAP -DCONFIG_DRIVER_WEXT -DCONFIG_DRIVER_ATMEL -DCONFIG_DRIVER_WIRED -DEAP_TLS -DEAP_PEAP -DEAP_TTLS -DEAP_MD5 -DEAP_MSCHAPv2 -DEAP_GTC -DEAP_OTP -DEAP_LEAP -DEAP_TLV -DIEEE8021X_EAPOL -DEAP_TLS_FUNCS -DEAP_TLS_OPENSSL -DPKCS12_FUNCS -DCONFIG_SMARTCARD -DINTERNAL_SHA256 -DCONFIG_WIRELESS_EXTENSION -DCONFIG_CTRL_IFACE -DCONFIG_CTRL_IFACE_UNIX -DCONFIG_PEERKEY -c -o tls_openssl.o tls_openssl.c
tls_openssl.c:23:25: warning: openssl/ssl.h: Aucun fichier ou répertoire de ce type
tls_openssl.c:24:25: warning: openssl/err.h: Aucun fichier ou répertoire de ce type
tls_openssl.c:25:28: warning: openssl/pkcs12.h: Aucun fichier ou répertoire de ce type
tls_openssl.c:26:28: warning: openssl/x509v3.h: Aucun fichier ou répertoire de ce type
tls_openssl.c:28:28: warning: openssl/engine.h: Aucun fichier ou répertoire de ce type
tls_openssl.c:43: error: expected specifier-qualifier-list before 'SSL'
tls_openssl.c: In function 'tls_show_errors':
tls_openssl.c:76: warning: implicit declaration of function 'ERR_error_string'
tls_openssl.c:76: warning: implicit declaration of function 'ERR_get_error'
tls_openssl.c:76: warning: format '%s' expects type 'char *', but argument 5 has type 'int'
tls_openssl.c:80: warning: format '%s' expects type 'char *', but argument 3 has type 'int'
tls_openssl.c: At top level:
tls_openssl.c:518: error: expected ')' before '*' token
tls_openssl.c:526: warning: type defaults to 'int' in declaration of 'SSL'
tls_openssl.c:526: error: expected ';', ',' or ')' before '*' token
[...]
tls_openssl.c:2248: error: 'struct tls_connection' has no member named 'ssl'
tls_openssl.c:2250: warning: implicit declaration of function 'EVP_CIPHER_key_length'
tls_openssl.c:2251: warning: implicit declaration of function 'EVP_MD_size'
tls_openssl.c:2252: warning: implicit declaration of function 'EVP_CIPHER_iv_length'
make: *** [tls_openssl.o] Erreur 1
|
Apparemment, il lui manque certaines librairies pour être content.
Je suis pressé et je n'ai surtout pas envie de compiler "proprement"
avec le SSL, donc je corrige en faisant les modifications suivantes, dans
le fichier .config
:
Extrait du fichier wpasupplicant-0.5.5/.config, avant modification
CONFIG_EAP_TLS=y
CONFIG_EAP_PEAP=y
CONFIG_EAP_TTLS=y
#CONFIG_TLS=openssl
Extrait du fichier wpasupplicant-0.5.5/.config, après modification
#CONFIG_EAP_TLS=y
#CONFIG_EAP_PEAP=y
#CONFIG_EAP_TTLS=y
# Ici on a dé-commenté, et remplacé openssl par none
CONFIG_TLS=none
# Ligne supplémentaire, pour avoir une chance de récupérer du débogage.
CONFIG_DEBUG_FILE=y
CONFIG_INTERNAL_AES=y
CONFIG_INTERNAL_SHA1=y
CONFIG_INTERNAL_MD5=y
|
Ça compile ! Reste à activer le débogage, ce qui n'est pas aussi simple.
A noter que l'outil apt-src
automatise le téléchargement des
dépendances (ou bien, encore mieux, apt-build
), mais à l'époque,
je ne connaissais pas...
Fichier common.c
Remplacer les lignes
int wpa_debug_use_file = 0;
int wpa_debug_level = MSG_INFO;
int wpa_debug_show_keys = 0;
int wpa_debug_timestamp = 0;
par les lignes
int wpa_debug_use_file = 1;
int wpa_debug_level = MSG_DEBUG;
int wpa_debug_show_keys = 1;
int wpa_debug_timestamp = 1;
|
Fichier wpa_supplicant.c
Remplacer la ligne
wpa_debug_use_file = params->wpa_debug_use_file;
par la ligne
wpa_debug_use_file = 1;
|
Reste à remplacer l'exécutable actuel par le nouveau, et le tour est joué.
maison-1:~# cd /sbin
maison-1:/sbin# mv -i wpa_supplicant wpa_supplicant.orig
maison-1:/sbin# cp -i /usr/src/tmp/wpasupplicant-0.5.5/wpa_supplicant .
|
Que se passe-t-il si nous redémarrons le Wifi ? (ifdown eth1 puis ifup eth1,
ces manipulations sont décrites en détails plus loin).
Ça ne fonctionne toujours pas, il n'y a pas de fichier de débogage dans /tmp
.
Si ça se trouve, il manque une ligne -CFLAGS dans le Makefile pour passer
au compilateur l'option CONFIG_DEBUG_FILE définie dans le fichier .config.
Un moyen rapide et facile de palier cela est d'ajouter la ligne
#define CONFIG_DEBUG_FILE y
au début du fichier common.c
.
Ça marche ! par contre, il n'y a pas beaucoup de debug.
Pour lancer wpa_supplicant en mode debug, une dernière manipulation est nécessaire.
Dans le fichier /etc/wpa_supplicant/functions.sh
, faire la
modification suivante.
Remplacer la ligne
start-stop-daemon --start --oknodo $DAEMON_VERBOSITY \
--name $WPA_SUP_PNAME --startas $WPA_SUP_BIN --pidfile $WPA_SUP_PIDFILE \
-- $WPA_SUP_OPTIONS -D $WPA_SUP_DRIVER $WPA_SUP_CONF
par la ligne
start-stop-daemon --start --oknodo $DAEMON_VERBOSITY \
--name $WPA_SUP_PNAME --startas $WPA_SUP_BIN --pidfile $WPA_SUP_PIDFILE \
-- $WPA_SUP_OPTIONS -D $WPA_SUP_DRIVER $WPA_SUP_CONF -dd
|
On y est, désormais, wpa_supplicant produit des fichiers
/tmp/wpa_supplicant-log-0.txt
qui contiennent
beaucoup de données.
Que se passe-t-il dans mon cas ? Il semble qu'il y ait un problème de taille de clé avec
CCMP. Qu'à cela ne tienne, je vais utiliser uniquement TKIP, et le configurer
comme seul protocole aussi bien dans /etc/network/interfaces
que sur le
boîtier ADSL.
Voilà pour finir le fichier /etc/network/interfaces
, fonctionnel avec WPA :
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
auto eth1
iface eth1 inet static
address 192.168.1.3
network 192.168.1.0
netmask 255.255.255.0
broadcast 192.168.1.255
gateway 192.168.1.1
wpa-driver wext
wpa-key-mgmt WPA-PSK
wpa-pairwise TKIP
wpa-group TKIP
wpa-ssid MYPERIPH-MYID1-MYID2
wpa-bssid 55:01:23:45:67:89
wpa-ap-scan 2
wpa-scan-ssid 0
wpa-psk 996b7257c96079a6a3b9779640ecfa74fe2ca0ab631b1770b38af2cca59254d9
dns-nameservers 192.168.1.1 194.117.200.10
|
A noter qu'ici, si on maintient le contournement "post-up" décrit plus haut, consistant
à exécuter la commande ifup --force eth1 juste après le montage, le PC ne démarre plus,
car il entre dans une boucle infinie. Mais ici c'est inutile de toute façon.
Pour info, le log (extrait de /var/log/messages
) lorsque le WPA
se connecte avec succès.
Feb 4 15:27:34 maison-1 kernel: bcm43xx driver
Feb 4 15:27:34 maison-1 kernel: ACPI: PCI Interrupt 0000:02:03.0[A] -> Link [LNKB] -> GSI 5 (level, low) -> IRQ 5
Feb 4 15:27:34 maison-1 kernel: bcm43xx: Chip ID 0x4306, rev 0x3
Feb 4 15:27:34 maison-1 kernel: bcm43xx: Number of cores: 5
Feb 4 15:27:34 maison-1 kernel: bcm43xx: Core 0: ID 0x800, rev 0x4, vendor 0x4243, enabled
Feb 4 15:27:34 maison-1 kernel: bcm43xx: Core 1: ID 0x812, rev 0x5, vendor 0x4243, disabled
Feb 4 15:27:34 maison-1 kernel: bcm43xx: Core 2: ID 0x80d, rev 0x2, vendor 0x4243, enabled
Feb 4 15:27:34 maison-1 kernel: bcm43xx: Core 3: ID 0x807, rev 0x2, vendor 0x4243, disabled
Feb 4 15:27:34 maison-1 kernel: bcm43xx: Core 4: ID 0x804, rev 0x9, vendor 0x4243, enabled
Feb 4 15:27:34 maison-1 kernel: bcm43xx: PHY connected
Feb 4 15:27:34 maison-1 kernel: bcm43xx: Detected PHY: Version: 2, Type 2, Revision 2
Feb 4 15:27:34 maison-1 kernel: bcm43xx: Detected Radio: ID: 2205017f (Manuf: 17f Ver: 2050 Rev: 2)
Feb 4 15:27:34 maison-1 kernel: bcm43xx: Radio turned off
Feb 4 15:27:34 maison-1 kernel: bcm43xx: Radio turned off
Feb 4 15:27:34 maison-1 kernel: EXT3 FS on hda7, internal journal
Feb 4 15:27:34 maison-1 kernel: NTFS volume version 3.1.
Feb 4 15:27:34 maison-1 last message repeated 2 times
Feb 4 15:27:34 maison-1 kernel: kjournald starting. Commit interval 5 seconds
Feb 4 15:27:34 maison-1 kernel: EXT3 FS on dm-0, internal journal
Feb 4 15:27:34 maison-1 kernel: EXT3-fs: mounted filesystem with ordered data mode.
Feb 4 15:27:34 maison-1 kernel: Adding 506008k swap on /dev/mapper/cswap. Priority:-1 extents:1 across:506008k
Feb 4 15:27:34 maison-1 kernel: ip_tables: (C) 2000-2006 Netfilter Core Team
Feb 4 15:27:34 maison-1 kernel: ip_conntrack version 2.4 (4093 buckets, 32744 max) - 208 bytes per conntrack
Feb 4 15:27:34 maison-1 kernel: bcm43xx: PHY connected
Feb 4 15:27:34 maison-1 kernel: bcm43xx: Microcode rev 0x127, pl 0xe (2005-04-18 02:36:27)
Feb 4 15:27:34 maison-1 kernel: bcm43xx: Radio turned on
Feb 4 15:27:34 maison-1 kernel: bcm43xx: Chip initialized
Feb 4 15:27:34 maison-1 kernel: bcm43xx: 30-bit DMA initialized
Feb 4 15:27:34 maison-1 kernel: bcm43xx: Keys cleared
Feb 4 15:27:34 maison-1 kernel: bcm43xx: Selected 802.11 core (phytype 2)
Feb 4 15:27:34 maison-1 kernel: bcm43xx: set security called, .level = 0, .enabled = 0, .encrypt = 0
Feb 4 15:27:34 maison-1 last message repeated 3 times
Feb 4 15:27:34 maison-1 kernel: SoftMAC: generic IE set to 30140100000fac020100000fac020100000fac020000
Feb 4 15:27:34 maison-1 kernel: SoftMAC: Associate: Scanning for networks first.
Feb 4 15:27:34 maison-1 kernel: SoftMAC: Start scanning with channel: 1
Feb 4 15:27:34 maison-1 kernel: SoftMAC: Scanning 14 channels
Feb 4 15:27:34 maison-1 kernel: SoftMAC: Scanning finished
Feb 4 15:27:34 maison-1 kernel: SoftMAC: Queueing Authentication Request to 00:16:38:76:ab:c8
Feb 4 15:27:34 maison-1 kernel: SoftMAC: Cannot associate without being authenticated, requested authentication
Feb 4 15:27:34 maison-1 kernel: SoftMAC: Sent Authentication Request to 00:16:38:76:ab:c8.
Feb 4 15:27:34 maison-1 kernel: SoftMAC: Open Authentication completed with 00:16:38:76:ab:c8
Feb 4 15:27:34 maison-1 kernel: SoftMAC: sent association request!
Feb 4 15:27:34 maison-1 kernel: SoftMAC: associated!
Feb 4 15:27:34 maison-1 kernel: bcm43xx: set security called, .active_key = 0, .level = 2, .enabled = 1, .encrypt = 1
Feb 4 15:27:34 maison-1 kernel: bcm43xx: set security called, .enabled = 1, .encrypt = 1
|
3.1.1 Montage manuel d'une interface réseau
Pour monter une carte à la main, en tant que root, exécuter la commande
ifup -v nom_interface
. L'option -v rend la commande ifup bavarde.
Exemple :
maison-1:~# ifup -v eth0
Configuring interface eth0=eth0 (inet)
run-parts --verbose /etc/network/if-pre-up.d
run-parts: executing /etc/network/if-pre-up.d/wireless-tools
run-parts: executing /etc/network/if-pre-up.d/wpasupplicant
ifconfig eth0 192.168.1.2 netmask 255.255.255.0 broadcast 192.168.1.255 up
route add default gw 192.168.1.1 eth0
run-parts --verbose /etc/network/if-up.d
run-parts: executing /etc/network/if-up.d/000resolvconf
Restarting mail retriever agent: fetchmail.
run-parts: executing /etc/network/if-up.d/mountnfs
run-parts: executing /etc/network/if-up.d/sendmail
run-parts: executing /etc/network/if-up.d/wpasupplicant
|
3.1.2 Démontage manuel d'une interface réseau
Exemple de commande ifdown -v nom_interface
:
maison-1:~# ifdown -v eth0
Configuring interface eth0=eth0 (inet)
run-parts --verbose /etc/network/if-down.d
run-parts: executing /etc/network/if-down.d/resolvconf
run-parts: executing /etc/network/if-down.d/sendmail
run-parts: executing /etc/network/if-down.d/wpasupplicant
route del default gw 192.168.1.1 eth0
ifconfig eth0 down
run-parts --verbose /etc/network/if-post-down.d
run-parts: executing /etc/network/if-post-down.d/wireless-tools
run-parts: executing /etc/network/if-post-down.d/wpasupplicant
|
3.1.3 Montage automatique d'une interface réseau
Automatiquement s'entend "au démarrage du PC".
Dans le fichier /etc/network/interfaces
, les lignes
commençant par auto
indiquent quelles interfaces monter au démarrage.
Il peut y en avoir plusieurs.
Si l'on souhaite régler la carte en mode 10 ou 100 Mbps, half ou full duplex, etc., il
faut invoquer l'outil ethtool après le montage de la carte.
Exemple de fichier /etc/network/interfaces
avec
réglage de la carte.
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.1.2
network 192.168.1.0
netmask 255.255.255.0
broadcast 192.168.1.255
gateway 192.168.1.1
dns-nameservers 192.168.1.1 194.117.200.10
post-up /etc/network/setup-eth0
|
Fichier /etc/network/setup-eth0
.
Droits sur le fichier = 755, propriétaire = root.root.
#!/bin/sh
#
# /etc/network/setup-eth0
#
# Sébastien Millet, July 2006
# echo Setting eth0 to 10Mbps/full duplex/no negociation
ethtool -s $IFACE speed 10 duplex full autoneg off
|
Tout le monde sait que le firewall sous Linux se configure avec la
commande iptables
. Par contre il n'est jamais précisé
où et comment faire en sorte que le firewall soit activé, au démarrage du PC,
de manière automatique et élégante. Élégante = juste avant que les interfaces
réseau ne soient montées par le système.
Pour ma part je crée le script /etc/network/setup-fw
,
que j'invoque dans la section iface de l'adaptateur que je souhaite protéger.
Fichier /etc/network/interfaces
avec mise en route du firewall
juste avant le montage de la carte. Dans l'exemple ci-dessous, j'ai laissé
le réglage de la carte (setup-eth0 -> 10Mbps full duplex, sans négociation).
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.1.2
network 192.168.1.0
netmask 255.255.255.0
broadcast 192.168.1.255
gateway 192.168.1.1
dns-nameservers 192.168.1.1 194.117.200.10
pre-up /etc/network/setup-fw
post-up /etc/network/setup-eth0
|
Et le fichier /etc/network/setup-fw
Droits sur le fichier = 755, propriétaire = root.root.
#!/bin/sh
#
# /etc/network/setup-fw
#
# Sébastien Millet, Mai 2006
# Block everything except outgoing connecitons.
# Copied from /usr/share/doc/iptables/html/packet-filtering-HOWTO-5.html on
# a debian 3.1.
# Gruiiik!!!/Appropriate only for cable ethernet devices, handled by ethtool
if [ "$IFACE" = "eth0" ]; then
echo Setting $IFACE with autoneg on.
ethtool -s $IFACE autoneg on
fi
echo Setting up netfilter configuration
# Erase any existing configuration
iptables -F
iptables -X
# Zero counters
iptables -Z
# Now setup firewall rules
iptables -N block
iptables -A block -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A block -m state --state NEW -i ! $IFACE -j ACCEPT
# Authorize incoming AZUREUS connections
iptables -A block -m state --state NEW -i $IFACE -p tcp --destination-port 37351 -j ACCEPT
iptables -A block -i $IFACE -p udp --destination-port 37351 -j ACCEPT
# Authorize aMule connections
iptables -A block -m state --state NEW -i $IFACE -p tcp --destination-port 4662 -j ACCEPT
iptables -A block -i $IFACE -p udp --destination-port 4672 -j ACCEPT
# Other stuff
iptables -A block -j DROP
iptables -A INPUT -j block
iptables -A FORWARD -j block
|
Explications sur le script qui précède
Les options décrites se rapportent, si ce n'est pas précisé,
au programme iptables
.
- Philosophie du firewall ci-dessus
- Les connexions sortantes sont toujours autorisées.
- Les connexions entrantes sont interdites sauf cas particulier.
- Au démarrage du firewall, on met la carte en mode négociation
automatique, ce qui ne fonctionne qu'avec une carte Ethernet cable. Avec une carte
Wifi, ce script provoque une erreur, sans importance. Comme le firewall est
démarré dans
pre-up
, cela n'empêchera pas ensuite le script
post-up
de régler la carte à notre convenance avec
ethtool
.
- L'option -t n'est jamais utilisée, car nous nous plaçons toujours dans
la table
filter
, qui est la table par défaut. Cette option
serait nécessaire pour faire du NAT, mais ce n'est pas le cas ici.
- -F efface les règles existantes, -X efface les chaînes existantes
(autres que les chaînes d'origine), -Z remet les compteurs de paquets et d'octets à
zéro. Ces trois options réinitialisent complètement le firewall.
- -N crée une nouvelle chaîne.
- -A ajoute de nouvelles règles à une chaîne.
- --state, qui vient avec -m state, permet de filtrer différemment
selon qu'une nouvelle connexion est en train d'être établie (NEW), ou est déjà
établie (ESTABLISHED). RELATED permet de gérer le cas du FTP, où une nouvelle
connexion (de transfert) se rapporte à une connexion existante (de contrôle).
- --destination-port vient avec -p tcp ou bien
-p udp, et filtre par port de destination.
- -i interface filtre les paquets qui entrent sur l'interface,
-i ! interface filtre les paquets qui sortent de l'interface.
- -j est un saut vers une autre chaîne, dans ce cas les règles suivantes
de la chaîne ne sont pas examinées. Ainsi la dernière règle de la chaîne block
(
iptables -A block -j DROP
) élimine les paquets non traités
dans une règle précédente.
Examen du firewall
L'option -L affiche les chaînes et règles en cours. En y ajoutant les options
--line-numbers (numérotation des règles) et -v (mode bavard), on obtient
des informations détaillées sur la situation. Exemple :
maison-2:/etc/network# iptables -v --line-numbers -L
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
num pkts bytes target prot opt in out source destination
1 1290 1357K block 0 -- any any anywhere anywhere
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num pkts bytes target prot opt in out source destination
1 0 0 block 0 -- any any anywhere anywhere
Chain OUTPUT (policy ACCEPT 900 packets, 64700 bytes)
num pkts bytes target prot opt in out source destination
Chain block (2 references)
num pkts bytes target prot opt in out source destination
1 1118 1349K ACCEPT 0 -- any any anywhere anywhere state RELATED,ESTABLISHED
2 5 348 ACCEPT 0 -- !eth0 any anywhere anywhere state NEW
3 0 0 ACCEPT tcp -- eth0 any anywhere anywhere state NEW tcp dpt:37351
4 0 0 ACCEPT udp -- eth0 any anywhere anywhere udp dpt:37351
5 0 0 ACCEPT tcp -- eth0 any anywhere anywhere state NEW tcp dpt:4662
6 0 0 ACCEPT udp -- eth0 any anywhere anywhere udp dpt:4672
7 167 7609 DROP 0 -- any any anywhere anywhere
|
Le programme NetworkManager
, fourni avec le paquetage network-manager,
est conçu pour gérer en continu la configuration du réseau. Par exemple,
il sait monter une interface réseau (cable) au moment où le cable est branché
sur la carte et la démonter dans le cas inverse.
NetworkManager
exploite les événements remontés par d-bus.
Sur une Debian Testing installée en février 2007, NetworkManager provoquait
un démontage sauvage de mes cartes réseau. Après avoir enlevé le paquetage
network-manager, tout est rentré dans l'ordre.
Cela ne signifie pas que NetworkManager ne doit pas être utilisé. Mais
comme /etc/network/interfaces
était suffisant pour ma
configuration, il était inutile de passer du temps à configurer
NetworkManager.
Ce programme fait partie du paquetage dhcp3-client, installé par défaut.
Exécuter dhclient nom_interface
pour monter l'interface réseau correspondante en DHCP.
Exemple :
maison-2:~# dpkg -l "dhcp3-client"
Souhait=inconnU/Installé/suppRimé/Purgé/H=à garder
| État=Non/Installé/fichier-Config/dépaqUeté/échec-conFig/H=semi-installé
|/ Err?=(aucune)/H=à garder/besoin Réinstallation/X=les deux (État,Err: majuscule=mauvais)
||/ Nom Version Description
+++-=========================-=========================-==================================================================
ii dhcp3-client 3.0.4-13 DHCP Client
maison-2:~# dhclient eth0
Internet Systems Consortium DHCP Client V3.0.4
Copyright 2004-2006 Internet Systems Consortium.
All rights reserved.
For info, please visit http://www.isc.org/sw/dhcp/
Listening on LPF/eth0/00:00:e8:e8:ff:8c
Sending on LPF/eth0/00:00:e8:e8:ff:8c
Sending on Socket/fallback
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 6
DHCPOFFER from 192.168.1.1
DHCPREQUEST on eth0 to 255.255.255.255 port 67
DHCPACK from 192.168.1.1
Restarting mail retriever agent: fetchmail.
addr=192.168.1.11, name=
Updating sendmail.cf ...
Updating auth ...
sasl2-bin not installed, not configuring sendmail support.
To enable sendmail SASL2 support at a later date, invoke "/usr/share/sendmail/update_auth"
Creating /etc/mail/relay-domains
# Optional file...
The following file(s) have changed:
/etc/mail/sendmail.cf
** ** You should issue `/etc/init.d/sendmail reload` ** **
bound to 192.168.1.11 -- renewal in 241971 seconds.
|
ifplugd
gère dynamiquement l'activation et la désactivation d'interfaces réseau.
Il semble que le projet n'est plus maintenu.
QuickSwitch gère le caractère itinérant d'un portable. Apparemment ce projet non plus n'est plus
maintenu.
Les URL de ces deux projets sont données à la fin de ce document, dans la partie consacrée
à la documentation.
- Création du document