Ce mini-HOWTO décrit la configuration d'un système Linux dans le but de partager un modem avec d'autres systèmes à travers un réseau TCP/IP.
Je suppose que le serveur est une machine sous Linux avec
/dev/ttySx
;isdn4linux
sur un port
/dev/ttyIx
.La configuration la plus simple à laquelle je peux penser utilise un script perl de cinq lignes comme "démon modem" :
$ cat /usr/sbin/modemd #!/usr/bin/perl select((select(STDOUT), $| = 1)[$[]); select((select(STDIN), $| = 1)[$[]); exec 'cu -s 115200 -l /dev/ttyS1'; die '$0: Cant exec cu: $!\n';
Ce démon est lancé par le processus
inetd
si un client se connecte sur le port
approprié, comme décrit ci-dessous. Le
modemd
se contente de connecter le socket avec
l'entrée standard STDIN et la sortie standard STDOUT de la
commande cu
et laisse cu
piloter le
véritable modem. Si cu
n'est pas
installé sur votre système, installez le paquetage
UUCP, dont il fait habituellement partie.
inetd
doit être averti de l'existence du
démon modem. Pour cela, il faut mettre à jour son
fichier de configuration, en général
/etc/inetd.conf
, comme ceci :
# # modem daemon # modem stream tcp nowait root /usr/sbin/tcpd /usr/sbin/modemd /dev/ttyS1
Pour que cela fonctionne, il faut aussi ajouter une
entrée au fichier /etc/services
:
modem 2006/tcp modemd
Cette entrée associe un nom symbolique à un port
explicite, 2006 dans cet exemple. Le numéro du port peut
être n'importe quoi, du moment qu'il n'est pas
déjà assigné à un service existant.
Après avoir procédé à ces changements,
il faut envoyer un signal à inetd
pour lui
faire relire son fichier de configuration :
$ ps |grep inetd 194 ? S 0:00 /usr/sbin/inetd kill -HUP 194
Maintenant, le serveur est prêt à accepter les requêtes des clients. Vous pouvez vérifier son bon fonctionnement :
$ telnet localhost modem Trying 127.0.0.1... Connected to localhost. Escape character is '^]'.
Vous êtes maintenant connecté au modem. Vous pouvez lui passer des commandes AT pour vérifier la configuration :
atz atz OK ati1 ati1 Linux ISDN OK ^] telnet>quit $
A la place du script perl, vous pouvez utiliser le programme
mserver
, disponible sur ftp://ftp.innet.be/pub/staff/carl/.
S'il ne s'y trouve plus, vous pouvez utiliser archie ou tout autre
moteur de recherche pour trouver l'archive mserver
.
Jusqu'à présent, je n'ai pas eu l'occasion de
l'installer ni de l'utiliser.
A l'heure actuelle, seule la configuration d'un client Windows est décrite ici. Sur le PC client, vous aurez besoin d'un redirecteur de port COM vers TCP/IP. Le meilleur que j'ai trouvé est DialOut/IP de Tactical Software, pour Windows 3.1 et Windows 95. La version 3.1 peut être utilisée sous Windows NT avec des applications 16 bits ; une version 32 bits pour Windows NT doit sortir à la fin de l'été 1997. NdT : Actuellement, Windows 98 et NT4 sont également supportés.
DialOut/IP présente le modem partagé comme un nouveau port COM sur la machine Windows. Ce port COM virtuel peut être utilisé par les programmes Windows comme si le modem partagé était connecté directement. La plupart des applications clientes (y compris l'accès réseau à distance de Windows 95) l'acceptent et fonctionnent comme s'il s'agissait d'un véritable port série, à l'exception des applications de fax et de tout ce qui doit accéder directement à l'UART. DialOut/IP peut être configuré pour utiliser le protocole TELNET, mais cette fonction ne s'applique qu'à certains racks de modems et pas à la configuration de Linux décrite ici. Notez que malgré son nom, DialOut/IP peut aussi être utilisé par les applications qui attendent des appels entrants.
Sur http://www.tactical-sw.com, vous
trouverez une page où vous pouvez télécharger
une version d'évaluation totalement fonctionnelle utilisable
pendant une à deux semaines. L'installation et la
configuration sont assurées par un programme ad
hoc, et les détails de l'installation sont couverts par
le fichier README.TXT
. Quand vous lancez DialOut/IP,
vous entrez l'adresse IP et le numéro du port du modem
partagé.
DialOut/IP est un produit commercial dont la licence s'applique par modem, c'est à dire que le prix dépend du nombre de modems que vous partagez. La licence dit que vous pouvez installer le logiciel sur un nombre quelconque de PC qui utilisent les modems partagés.
Si vous n'avez qu'un seul modem pour toutes les machines de
votre réseau local, vous n'avez probablement aucune
inquiétude à avoir quant à la
sécurité. Par contre, si une ou plusieurs machines de
votre réseau sont connectées à internet par
d'autres moyens que votre serveur de modem, vous devez vous pencher
sur la sécurité, ou n'importe qui pourra taper
telnet votre_machine modem
et lancer des appels longue
distance ou internationaux à volonté.
Je vous suggère d'installer et de configurer les TCP-wrappers pour protéger le serveur de modem contre les accès non autorisés.
J'utilise la configuration décrite dans les sections précédentes avec Quicken sur mon ThinkPad sous Windows 95 pour contacter ma banque à domicile avec le modem de ma machine Linux. Le "modem" n'en est en fait même pas un, c'est une émulation qui utilise une carte ISDN-So. Quicken voit simplement un port série, il ne sait pas que le périphérique relié au port série est en fait à l'autre bout du réseau local ethernet, ni qu'il ne s'agit pas d'un modem analogique standard mais d'un adaptateur ISDN qui se trouve comprendre les commandes AT.
V1.01, 02/11/97 Conversion du source au format HTML. Ajout de
références sur les endroits où se procurer
cu
et mserver
. Ajout du paramètre
-s
à l'exemple d'utilisation de
cu
.
V1.00, 12/06/97 Première version.