Premiers pas avec Linux

Chapitre 4: Installer une connexion à l'Internet (via un modem)

Auteur: Christophe Dioux (chdiouxATclub-internet.fr)
Mise à jour: février 1999
Diffusion autorisée sous réservé que ce soit comme avec une licence GPL, à savoir que vous transfériez ce même droit de
diffusion à vos lecteurs.

Résumé:

Linux a été conçu sur l'Internet, Linux est fait pour l'Internet.
Maintenant que nous avons fait quelques pas, il devient donc urgent de nous connecter à l'Internet.
Comme dans les précédents, je prends ici l'exemple de mon ordinateur, avec une distribution Red Hat 5.0
Il se peut que chez vous ce soit un peu différent, mais ceci ne devrait pas vous handicaper.

Je vais détailler la manière de configurer une connexion en mode texte, en dehors de l'environnement graphique. Si vous êtes vraiment pressés, il y a des moyens éventuellement plus simples de s'y prendre. Par exemple, avec une RedHat, en suivant le document suivant, rédigé par Eric Jacoboni et Joël Bernier:
Configurer une connexion PPP avec l'outil "netcfg" de la RH5
Toutefois, je vous conseille quand même d'essayer la technique ci-dessous, pour deux raisons:
- Elle est plus "basique" et permet, une fois les choses comprises, de mieux résoudre les éventuels problèmes.
- C'est une excellente occasion d'apprendre des choses qui vous seront fort utiles par la suite.

Explications:

Verifions d'abord que Netscape Navigator est bien installe.
Cliquons sur un nouveau bureau virtuel en bas a droite pour y voir plus clair, puis:
Clic gauche / applications / Netscape navigator
Le temoin d'activite du processeur en bas a droite monte un peu. Netscape bouffe des ressources systeme, meme quand il ne fait rien !

Mais bon, il fonctionne.
Le seul probleme, c'est qu'on ne peut pas encore se connecter !

C'est ce qu'on va faire maintenant, mais il faut repasser sous root.
Inutile de fermer cette fois la session xwindow, il suffit pour l'instant d'ouvrir une nouvelle fenetre et d'y taper ce qui suit:

[chris@localhost chris]$ su root
Password:

La ligne de commande change et se termine par le # qui indique qu'on a maintenant les droits (et les risques!) de superutilisateur.

Avant de continuer, profitons de ces droits pour "démonter" le CDrom afin de pouvoir ouvrir le tiroir et le ranger, on ne devrait plus en avoir besoin avant un moment:

[root@localhost chris]# mount
/dev/hdc1 on / type ext2 (rw)
/proc on /proc type proc (rw)
/dev/hdc3 on /home type ext2 (rw)
/dev/hdb on /mnt/cdrom type iso9660 (ro)

[root@localhost chris]# umount /mnt/cdrom
[root@localhost chris]# mount
/dev/hdc1 on / type ext2 (rw)
/proc on /proc type proc (rw)
/dev/hdc3 on /home type ext2 (rw)

Nous allons avoir besoin d'un script qui s'appelle PPPquelquechose.
Pour le chercher on va remonter à la racine:
[root@localhost chris]# cd /

puis lancer la commande de recherche:
[root@localhost /]# find -name "*ppp*" -print

(Il existe une commande plus puissante pour faire la même chose, mais c'est parfois plus compliqué pour un débutant. En quelques mots:
la commande "updatedb" crée une base de données nommée "locatedb" qu'on peut ensuite exploiter en faisant dans notre exemple:
locate *ppp*
Pour plus d'info, taper:
man locate)

Linux mouline un instant (En fait, il explore toute l'arborescence, on a donc bien fait de démonter le CDrom, sinon il aurait cherché aussi sur le CDrom ! Pour ceux qui souhaitent en savoir plus, "man find" présente les très nombreuses options de la commande find)
Puis il affiche:

./etc/ppp
./etc/sysconfig/network-scripts/ifdown-ppp
./etc/sysconfig/network-scripts/ifup-ppp
./lib/modules/2.0.32/net/ppp.o
./usr/doc/ppp-2.2.0f
./usr/doc/ppp-2.2.0f/scripts/ppp-off
./usr/doc/ppp-2.2.0f/scripts/ppp-on
./usr/doc/ppp-2.2.0f/scripts/ppp-on-dialer
./usr/lib/perl5/i386-linux/5.00401/linux/if_ppp.ph
./usr/lib/perl5/i386-linux/5.00401/linux/if_pppvar.ph
./usr/lib/perl5/i386-linux/5.00401/linux/isdn_ppp.ph
[...]

Les scripts dont nous avons besoin sont dans
/usr/doc/ppp-2.2.0f/scripts/

(NB: Sur une distribution Slackware, il peuvent se trouver dans un répertoire différent, mais ce n'est pas grave.
L'important c'est que vous sachiez où ils sont.

Plaçons-nous sur ce répertoire:
[root@localhost doc]# cd /usr/doc/ppp-2.2.0f/scripts

[root@localhost scripts]# ls
README         keepalive      ppp-on         redialer
callback       ppp-off        ppp-on-dialer  secure-card

Les trois scripts dont nous avons besoin sont les trois dont les noms
commencent par les lettre "ppp". Il faut les copier dans le
répertoire:
etc/ppp
[root@localhost scripts]# cp ppp* /etc/ppp

Un mot d'explication: Comme avec msdos, l'expression dite "expression régulière":
ppp*
signifie "tout ce qui commence par les lettres "ppp", suivies de n'importe quoi".

Allons dans ce répertoire pour voir si les copies y sont bien arrivées:
[root@localhost scripts]# cd /etc/ppp
[root@localhost ppp]# ls
chap-secrets   ip-up          pap-secrets    ppp-on
ip-down        options        ppp-off        ppp-on-dialer

Regardons nos scripts plus en détail:
[root@localhost ppp]# ls -l ppp*
-rw-r--r--   1 root     root          967 oct  9 22:48 ppp-off
-rw-r--r--   1 root     root         1641 oct  9 22:48 ppp-on
-rw-r--r--   1 root     root          397 oct  9 22:48 ppp-on-dialer

Le propriétaire (user) de ces fichiers ne peut pas les exécuter. C'est dommage !!!  Corrigeons ça puis vérifions:
[root@localhost ppp]# chmod u+x ppp*
(ce qui signifie : change mode user: ajouter le droit d'eXécuter les programmes commençant par "ppp")
[root@localhost ppp]# ls -l ppp*
-rwxr--r--   1 root     root          967 oct  9 22:48 ppp-off
-rwxr--r--   1 root     root         1641 oct  9 22:48 ppp-on
-rwxr--r--   1 root     root          397 oct  9 22:48 ppp-on-dialer

Autre problème: un de ces fichiers contient le password du compte Internet, et ils sont tous les trois lisibles par tout le monde !
Il faut corriger ça:

[root@localhost ppp]# chmod o-r ppp*
(ce qui signifie change mode pour les autres (others) retirer le droit de lire (read))
[root@localhost ppp]# ls -l ppp*
-rwxr-----   1 root     root          967 oct  9 22:48 ppp-off
-rwxr-----   1 root     root         1641 oct  9 22:48 ppp-on
-rwxr-----   1 root     root          397 oct  9 22:48 ppp-on-dialer

Pour la suite, il sera plus simple d'avoir une vraie console "root" et pas un simple terminal sous Xwindow:

alt-F3
puis si besoin:
exit
login: root
password: xxxx
cd /etc/ppp
 

Nous allons modifier le script crucial avec l'éditeur de texte le plus basique qui soit: "vi"
(Il y a un éditeur de texte beaucoup plus puissant, celui sur lequel j'écris ces lignes, "EMACS", mais il est aussi beaucoup plus complexe).

vi ppp-on
touche d'insertion pour pouvoir ecrire dans le fichier les renseignements qui concernent votre FAI (Fournisseur d'Acces Internet)
modifier:
no de telephone de votre FAI
account (votre login chez votre FAI)
Password (votre password chez votre FAI)
Verifier dans la derniere ligne que /dev/ttyS0 correspond a votre modem.
Ici, il s'agit d'un modem en com1 (/dev/ttyS0).
S'il était en com2 on pourrait mettre /dev/ttyS1, etc .
/dev/cua0 devrait marcher aussi, mais je n'ai pas essayé.

Pour quitter l'insertion de texte:
<escape>

Puis écrire les modifications et quitter:
:w (return)
:q (return)

Vérifier le résultat par la commande:

cat ppp-on
ou:
less ppp-on
(On quitte less avec la touche "q")

Maintenant, lançons la connexion.
Attention, comme le répertoire "/etc/ppp" n'est pas dans le "path"de "root"
(si vous ne me croyez pas, tapez: echo $PATH avec les majuscules, car Linux, comme Unix, fait la différence),
il faut donner l'adresse du script de connexion en entier:

./ppp-on
(Le point signifiant "ce répertoire", comme sous DOS)
ou bien:
etc/ppp/ppp-on
 

Normalement, le modem compose et accroche.
Verifier:
tail -f /var/log/messages
permet de suivre en détails la connexion.
Normalement, quand celle-ci est établie, on voit son adresse numérique sur l'Internet.
(sortir de tail par ctl-c)

Inutile d'aller plus loin, on n'a pas encore configuré les DNS !
Raccrocher par:
./ppp-off

Bien maintenant, le modem fonctionne.
Reste a configurer la connection PPP.
Commencons par verifier que PPP fonctionne en "interne":

[chris@localhost chris]$ ping -c 5 127.0.0.1
PING 127.0.0.1 (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.3 ms
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.2 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.2 ms
64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.2 ms
64 bytes from 127.0.0.1: icmp_seq=4 ttl=64 time=0.2 ms

--- 127.0.0.1 ping statistics ---
5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max = 0.2/0.2/0.3 ms

La résolution de l'adresse interne devrait fonctionner aussi:
[chris@localhost chris]$ ping -c 5 localhost.localdomain
PING localhost (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.2 ms
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.2 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.2 ms
64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.2 ms
64 bytes from 127.0.0.1: icmp_seq=4 ttl=64 time=0.2 ms

--- localhost ping statistics ---
5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max = 0.2/0.2/0.2 ms

Pour accéder à l'Internet, il nous faut configurer les DNS.
Ca se passe dans le fichier:
etc/resolv.conf

donc:
cd /etc

puis vi resolv.conf

Il faut rajouter (pour l'utilisation de vi, cf supra) les lignes:
nameserver  194.117.200.10
nameserver  194.117.200.15

ATTENTION: Les numéros IP ci-dessus sont ceux des DNS de MON fournisseur d'accès, il faut mettre les VOTRES !
Par ailleurs, ces numéros sont précédés d'une tabulation. Je ne sais pas si c'est important, mais je vous le dis.

Normalement, tout devrait fonctionner maintenant:
/etc/ppp/ppp-on
tail -f /var/log/messages
ctl-c après l'affichage des adresses Internet.
ping -c 5 www.linux.com devrait vous donner une réponse
Si oui, c'est que vous êtes connectés à l'Internet !
Revenons à la session Xwindow que nous avions laissée ouverte:
alt-F7
puis surfons un peu avec Netscape, ça devrait fonctionner.

Pour couper la connexion, revenons à la console "root":
alt-ctl-F3
puis:
/etc/ppp/ppp-off