Actions sur le document
Accès à la console via Minicom
Accès à la console d'un switch ou d'un routeur via Minicom
Même s'il est souvent possible de configurer un équipement à partir d'une interface Web, la console a toujours été l'interface de configuration la plus «sérieuse». Voici quelques arguments pour étayer cette idée :
-
Les «conditions de sécurité» des accès Web de configuration d'équipement ont toujours été médiocres jusqu'à présent. Soit le serveur Web inclu dans l'équipement contient de nombreux trous de sécurité (il suffit d'interroger les bases de rapport d'incidents du CERT: Vulnerabilities, Incidents & Fixes pour s'en convaincre) ; soit le coût financier et humain de modification de l'infrastructure d'accès aux équipements est trop important relativement aux bénéfices attendus.
-
Les interfaces Web ne permettent pas d'appréhender globalement les paramètres de configuration. En effet, dès que le nombre des paramètres et des options devient important, les formulaires Web deviennent très lourds à gérer. Naviguer d'un paramètre à l'autre suppose plusieurs manipulations de formulaires alors que la même opération est immédiate à la console.
Sur les systèmes GNU/Linux, minicom est le «couteau suisse» idéal pour toutes les manipulations sur les liaisons séries.
Ports série
Avant de s'attaquer à la configuration du logiciel, il faut s'assurer que le port série que l'on veut utiliser est disponible. Comme il s'agit d'un périphérique matériel, c'est dans le noyau Linux que l'on trouve les informations utiles. Normalement, tous les noyaux livrés avec les distributions intègrent directement les pilotes des ports série.
Il est facile de vérifier que les ports sont disponibles à l'aide de la commande dmesg :
:~$ dmesg | less
<snip/>
Serial: 8250/16550 driver .Revision: 1.4 . 48 ports, IRQ sharing enabled
ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
Les informations ci-dessus indiquent que l'on dispose de deux
ports : ttyS0 et ttyS1 pilotés par
le composant 16550A.
Dans le cas où l'on utilise un noyau «compilé maison», il faut retenir les options indiquées ci-dessous à partir des menus de configuration du noyau :
Linux Kernel Configuration
Device Drivers
Character devices
Serial drivers
<*> 8250/16550 and compatible serial support
[*] Console on 8250/16550 and compatible serial port
< > 8250/16550 PCMCIA device support
[ ] 8250/16550 device discovery via ACPI namespace
(4) Maximum number of non-legacy 8250/16550 serial ports
[*] Extended 8250/16550 serial driver options
[*] Support more than 4 legacy serial ports
[*] Support for sharing serial interrupts
[ ] Autodetect IRQ on standard ports (unsafe)
[*] Support special multiport boards
[*] Support RSA serial ports
--- Non-8250 serial port support
Administration des accès
Une fois que le noyau Linux assure le pilotage des ports série, il faut
administrer les droits d'accès à ces ports. Par défaut, les périphériques du
système de fichiers correspondant aux ports série appartiennent au groupe
dialout :
:~$ ls -l /dev/ttyS?
crw-rw---- 1 root dialout 4, 64 2003-02-13 16:41 /dev/ttyS0
crw-rw---- 1 root dialout 4, 65 2002-03-14 22:51 /dev/ttyS1
crw-rw---- 1 root dialout 4, 66 2002-03-14 22:51 /dev/ttyS2
crw-rw---- 1 root dialout 4, 67 2002-03-14 22:51 /dev/ttyS3
Pour qu'un utilisateur normal ait accès aux ports série, il doit
appartenir au groupe dialout :
:~# adduser etu dialout
Ajout de l'utilisateur etu au groupe dialout...
Fait.
L'utilisateur etu doit se
reconnecter pour bénéficier des ces nouveaux droits d'accès.
Installation et configuration par défaut de minicom
L'installation de minicom se résume pour fedora à l'intruction suivante :
:~# yum install minicom
Après cette étape, il faut créer le fichier de configuration par
défaut. Ce fichier sert de dénominateur commun à l'echelle du système. Les
paramètres de ce fichier : /etc/minirc.dfl
sont activé à chaque lancement du programme
minicom. L'utilisateur est ensuite libre de tout
modifier et de se créer ses propres paramètres de configuration par
défaut.
Voici un exemple de première exécution du programme :
:~# minicom -s
<snip/>
-------------[configuration]-------------
| Noms de fichers et chemins |
| Protocoles de transfert |
| Configuration du port série
| Modem et appel |
| Ecran et clavier |
| Enregistrer config. sous dfl
| Enregistrer la configuration sous... |
| Sortir |
| Sortir de Minicom |
-----------------------------------------
Pour aller au plus simple, on se contente de fixer les paramètres du port série et de sauvegarder.
Paramètres du port série
Les valeurs présentés ci-dessous correspondent à la grande majorité des paramètres par défaut des équipements d'interconnexion.
-----------------------------------------------------------------------
| A - Port série : /dev/ttyS0
| B - Emplacement du fichier de verrouillage : /var/lock |
| C - Programme d'appel intérieur : |
| D - Programme d'appel extérieur : |
| E - Débit/Parité/Bits : 9600 8N1
| F - Contrôle de flux matériel : Oui
| G - Contrôle de flux logiciel : Non |
| |
| Changer quel réglage ? |
-----------------------------------------------------------------------
![]() |
En fonction de la liste des ports série disponibles (voir Section 3.1, « Ports série »), on saisit le nom du premier port série. |
![]() |
En fonction des paramètres de l'équipement à gérer, on fixe les paramètres de la liaison à l'aide du menu suivant : ------[Paramètres de communication]------- |
![]() |
Toujours en fonction de l'équipement à gérer, on choisit le contrôle de flux matériel. C'est le mode le plus fiable. |
Fichier de configuration par défaut
Voici une exemple de fichier
/etc/minirc.dfl obtenu à partir des réglages
ci-dessus.
# Fichier généré automatiquement - utilisez « minicom -s »
# pour changer les paramètres
pu port /dev/ttyS0
pu baudrate 9600
pu bits 8
pu parity N
pu stopbits 1
pu scriptprog /usr/bin/runscript
pu minit ~^M~ATZ^M~
pu mreset ~^M~ATZ^M~
pu escape-key Escape (Meta)
Il est aussi possible d'effacer toutes les commandes Hayes de dialogue avec les modems. Comme minicom possède une option de démarrage éliminant tous les dialogues modems, il n'est pas nécessaire de traiter ce problème au niveau système. Il se peut qu'un utilisateur ait effectivement besoin d'un modem.
Configuration utilisateur
Le jeu des fonctionnalités de minicom est
très riche. Il suffit de consulter les pages de manuels pour s'en
convaincre : man minicom. L'objet de ce document
n'étant de dresser un catalogue exhaustif de ces fonctions, voici un exemple
type de configuration utilisateur :
:~$ MINICOM="-o-8
-l
-m
-con
-t linux
" ; export MINICOM
Une fois que l'on est satisfait de son jeu d'options minicom, il est possible de le conserver dans la configuration du shell :
:~$ echo export MINICOM=\"-o -8 -l -m -con -t linux\" >>~/.bash_profile
De cette façon, toute ouverture d'un nouveau
shell comprendra la variable d'environnement
MINICOM et ses options.
Exemples d'utilisation de minicom
Connexion à un switch ou un routeur
Séquences Break
Les exemples d'utilisation des séquences Break sont
nombreux. Le plus souvent, il s'agit d'interrompre brutalement le chargement
du système d'exploitation sur un équipement. À la suite de cette opération,
on peut charger une nouvelle image système ou reprendre la main sur un
équipement dont on a perdu les mots de passe.
Suivant la configuration de minicom, les séquences de touches diffèrent.
-
Avec un codage clavier sur 7 bits, la séquence est : Ctrl+a puis f.
-
Avec un codage clavier sur 8 bits, la séquence est : Alt+f.
- Initialisation d'un commutateur Cisco™ 2950
-
Pour interrompre le chargement du système d'un commutateur de ce modèle il faut que la variable d'environnement
ENABLE_BREAKsoit préalablement positionnée suron.sw1#sh boot
BOOT path-list:
Config file: flash:/config.text
Private Config file: flash:/private-config.text
Enable Break: ON
Manual Boot: no
HELPER path-list:
NVRAM/Config file
buffer size: 32768Lors du redémarrage de l'équipement il est possible d'utiliser la séquence Ctrl+a puis f pour envoyer un
Breaket interrompre le chargement du système.flashfs[0]: Bytes available: 3169792
flashfs[0]: flashfs fsck took 7 seconds.
...done initializing flash.
Boot Sector Filesystem (bs:) installed, fsid: 3
Parameter Block Filesystem (pb:) installed, fsid: 4
Loading "flash:/c2950-i6q4l2-mz.121-22.EA2.bin"...###########################bad
Error loading "flash:/c2950-i6q4l2-mz.121-22.EA2.bin"
Interrupt within 5 seconds to abort boot process.
Boot process failed...
The system is unable to boot automatically. The BOOT
environment variable needs to be set to a bootable
image.
switch: - Initialisation d'un routeur Cisco™ 2500
-
Pour interrompre le chargement du système IOS d'un routeur de cette marque, il faut envoyer un
Breakpendant les 60 premières secondes après la mise sous tension de l'équipement. Comme cet exemple est traité via un portable avec une interface graphique, la séquence de touches est : Alt+f.System Bootstrap, Version 11.0(10c)XB2, PLATFORM SPECIFIC RELEASE SOFTWARE (fc1)
Copyright (c) 1986-1998 by cisco Systems
2500 processor with 14336 Kbytes of main memory
Abort at 0x11198B6 (PC)
>
>o/r 0x2142
>
>b
Transfert d'une image système via xmodem
En reprenant le cas du commutateur Cisco™ 2950, on peut transférer une image du système d'exploitation via la connexion série avec le protocole xmodem. Ce n'est certainement pas la méthode la plus rapide mais lorsque toutes les informations de la mémoire flash ont été détruite, il ne reste pas beaucoup d'autre solution.
Voici un exemple de «catastrophe provoquée» :
-
On commence par détruire le contenu de la mémoire flash.
switch: format flash:
Are you sure you want to format "flash:" (all data will be lost) (y/n)?y
flashfs[0]: 0 files, 1 directories
flashfs[0]: 0 orphaned files, 0 orphaned directories
flashfs[0]: Total bytes: 7741440
flashfs[0]: Bytes used: 1024
flashfs[0]: Bytes available: 7740416
flashfs[0]: flashfs fsck took 5 seconds.
Filesystem "flash:" formatted
switch: dir flash:
Directory of flash:/
2 -rwx 285 <date> env_vars
7739904 bytes available (1536 bytes used)
switch: -
On prépare le transfert d'image système via xmodem sur le commutateur.
switch: flash_init
Initializing Flash...
...The flash is already initialized.
switch: load_helper
copy xmodem: flash:c2950-i6q4l2-mz.121-22.EA2.bin
Begin the Xmodem or Xmodem-1K transfer now...
C -
On lance le transfert à partir de la séquence de touches Crtl+A puis s.

Sélection du protocole de transfert.

Sélection du fichier image système à transférer.

Transfert du fichier image système.
+-[Envoyer]--+
| zmodem |
| ymodem |
| xmodem
| kermit |
| ascii |
+------------+
<snip/>
+-----------[Sélectionner un fichier pour envoyer]------------+
|Répertoire : /home/phil |
| [..] |
| [ios] |
| .bash_history |
| .bash_profile |
| .bashrc |
| .viminfo |
| c2950-i6q4l2-mz.121-22.EA2.bin

-con
-t linux
" ; export MINICOM