:.     Home     .:.     Cours     .:.     Faits divers     .:.     Blagues     .:.     Liens     .:.     Perso     .:

 

Installation d’un serveur Modem
sous linux (RedHat 9 ou 8)

 

Un serveur modems est un serveur sur lequel se trouvent connectés plusieurs modems. Ces modems peuvent être des cartes modems (contenant elles même plusieurs modems), comme une carte graphique PCI (par exemple) et donc qu’on connecte dans un slot à l’intérieur du serveur, ou bien même des modems externes comme on en rencontre souvent (US Robotic).
Le rôle d’un serveur modems est de recevoir les connexions des clients modems. Autrement dit, lorsque vous êtes connectés chez vous par modem, vous communiquez directement avec un autre modem de votre ISP lequel est connecté à un serveur modems.


I/ Installation du système Linux

Il suffit juste de ne pas installer une version de RedHat supérieure à RedHat 9.0. Ne marche pas non plus sur Fedora. En fait, cela est dû au fait que le soft de gestion des modems (le driver) n’est supporté que par les noyaux système Kernel Version 2.2 or 2.4 uniquement. Donc, il faut choisir une version de Linux où vous êtes sûr d’avoir un de ces noyaux.

Il faut aussi autoriser le forwarding des paquets IP par le serveur, sinon les requêtes des clients modems ne pourraient le traverser et arriver à leurs destinataires sur l’Internet.
Pour cela, il faut éditer le fichier « /etc/sysctl.conf », et mettre la variable net.ipv4.conf.all.rp_filter à 1.
Vous aurez une ligne de ce genre :
net.ipv4.ip_forward = 0
Remplacez le 0 par 1 pour avoir cette ligne :
net.ipv4.ip_forward = 1

Redémarrez ensuite votre système et marquez une pause avant de continuer.


II/ Installation des RocketModems (Drivers)

- Rendez vous sur le site ftp://ftp.comtrol.com/RModem/Drivers et recherchez un fichier qui porte un nom semblable à 1800024H.tgz. Téléchargez-le.
- Placez vous dans le répertoire « /usr/src » (cd /usr/src)
- Faites un lien symbolique du genre : ln -s /usr/src/linux-2.4.20 linux
- Déplacez le fichier 1800024H.tgz dans le répertoire « /usr/src ». (mv 1800024H.tgz /usr/src)
- Le décompresser : tar -xzvf 1800024H.tgz
- Accéder au répertoire créé lors de la décompression : cd /usr/src/comtrol
- Compilation du driver en trois étapes :
make clean
make
make install

- Relancez votre serveur ; les modems seront reconnus sous le nom de /dev/ttyRx (où x désigne le numéro du modem et débute à 0)

III/ Installation de pppd, rlogin, radiusclient

Sur le site http://sourceforge.net/projects/portslave/ téléchargez les 4 packages que vous y trouverez. Ce sont portslave, portslave-pppd, portslave-rlogin, et radiusclient.

Installation de radiusclient :
- Décompressez le fichier "radiusclient_xyz.tgz"
- Accedez au répertoire créé. Tapez ces commandes :
- ./configure --sysconfdir=/etc/radiusclient
- make
- make install
- Copier les fichiers du genre libradiusxyz du répertoire « /usr/local/lib/ » dans le répertoire « /usr/lib ». Ou tout simplement faîtes des liens symboliques.

Installation de pppd :
- Décompressez le fichier "portslave-pppd_xyz.tgz"
- Accédez au répertoire créé. Faites :
- ./configure
- make USE_RADIUS=y RADIUS_CONF=/etc/radiusclient/radiusclient.conf
- make install

Installation de rlogin :
- Décompressez le fichier "portslave-rlogin_xyz.tgz"
- Accedez au répertoire créé et tapez :
- make
- make install
Vous devriez avoir le fichier "rlogin-radius" dans le répertoire « /usr/bin/ ».


IV/ Installation et configuration de portslave

- Décompressez le fichier "portslave.tgz"
- Accédez au répertoire créé et tapez :

- ./configure --prefix=/usr --sysconfdir=/etc/portslave
- make
- make install
- Faire un lien entre « /etc/radiusclient/radiusclient.conf » et « /etc/portslave/radiusclient.conf »
- Editez le fichier « /etc/radiusclient/radiusclient.conf » et mettez l’IP de votre serveur radius à la place de toutes les occurrences de localhost.
- Editez le fichier « /etc/radiusclient/servers » et ajouter une ligne contenant l’IP de votre serveur radius et un petit mot clé comme ceci :
Exemple :   216.148.136.3        modem9!!
Dans cet exemple, modem9!! est un mot de passe qui doit être configuré sur le serveur d’authentification radius, dont l’IP est 216.148.136.3.
- Editez le fichier « /etc/portslave/pslave.conf » et faire les modifications qui s’imposent : il faudra préciser l’IP du serveur modem en cours de configuration, les différents ports des modems, les différentes IP attribées à chaque port, et la vitesse de connexion.
- Sur le serveur d’authentification radius (vieilles versions), éditez le fichier « /etc/raddb/clients », et ajoutez une ligne contenant l’IP du serveur modems et le mot clé configuré, comme ceci :
Exemple : 196.252.3.21      modem9!!
196.252.3.21 est l’IP du serveur modem en cours de configuration, et modem9!!, le même mot clé configuré sur le serveur modems.

- Sur le serveur d’authentification radius (versions récentes), éditez le fichier « /etc/raddb/clients.conf », et ajoutez une section de ce genre :

client 196.252.3.21 {
secret = modem9!!
shortname = he
nastype = portslave
}

 

V/ Paramétrage de inittab et lancement

Il s’agit aussi d’ajouter une ligne par modem dans le fichier « /etc/inittab »

Exemple de fichier « /etc/inittab » :

# inittab This file describes how the INIT process should set up
# the system in a certain run-level.
#
# Author: Miquel van Smoorenburg, <miquels@drinkel.nl.mugnet.org>
# Modified for RHS Linux by Marc Ewing and Donnie Barnes
#

# Default runlevel. The runlevels used by RHS are:
# 0 - halt (Do NOT set initdefault to this)
# 1 - Single user mode
# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)
# 3 - Full multiuser mode
# 4 - unused
# 5 - X11
# 6 - reboot (Do NOT set initdefault to this)
#
id:3:initdefault:

# System initialization.
si::sysinit:/etc/rc.d/rc.sysinit

l0:0:wait:/etc/rc.d/rc 0
l1:1:wait:/etc/rc.d/rc 1
l2:2:wait:/etc/rc.d/rc 2
l3:3:wait:/etc/rc.d/rc 3
l4:4:wait:/etc/rc.d/rc 4
l5:5:wait:/etc/rc.d/rc 5
l6:6:wait:/etc/rc.d/rc 6

# Trap CTRL-ALT-DELETE
ca::ctrlaltdel:/sbin/shutdown -t3 -r now

# When our UPS tells us power has failed, assume we have a few minutes
# of power left. Schedule a shutdown for 2 minutes from now.
# This does, of course, assume you have powerd installed and your
# UPS connected and working correctly.
pf::powerfail:/sbin/shutdown -f -h +2 "Power Failure; System Shutting Down"

# If power was restored before the shutdown kicked in, cancel it.
pr:12345:powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Cancelled"

# Run gettys in standard runlevels
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6

# Run xdm in runlevel 5
x:5:respawn:/etc/X11/prefdm –nodaemon

#Ajoutées par celui qui configure portslave
R0:23:respawn:/usr/sbin/portslave 141
R1:23:respawn:/usr/sbin/portslave 142
R2:23:respawn:/usr/sbin/portslave 143
R3:23:respawn:/usr/sbin/portslave 144
R4:23:respawn:/usr/sbin/portslave 145
R5:23:respawn:/usr/sbin/portslave 146
R6:23:respawn:/usr/sbin/portslave 147
R7:23:respawn:/usr/sbin/portslave 148
R8:23:respawn:/usr/sbin/portslave 149
R9:23:respawn:/usr/sbin/portslave 150
R10:23:respawn:/usr/sbin/portslave 151
R11:23:respawn:/usr/sbin/portslave 152
R12:23:respawn:/usr/sbin/portslave 153
R13:23:respawn:/usr/sbin/portslave 154
R14:23:respawn:/usr/sbin/portslave 155
R15:23:respawn:/usr/sbin/portslave 156
R16:23:respawn:/usr/sbin/portslave 157
R17:23:respawn:/usr/sbin/portslave 158
R18:23:respawn:/usr/sbin/portslave 159
R19:23:respawn:/usr/sbin/portslave 160
R20:23:respawn:/usr/sbin/portslave 161
R21:23:respawn:/usr/sbin/portslave 162
R22:23:respawn:/usr/sbin/portslave 163
R23:23:respawn:/usr/sbin/portslave 164

 

Ceci est un exemple de 24 modems. Les ports de 141 à 164 doivent être définis dans le fichier « /etc/portslave/pslave.conf ».


Redémarrer votre système et le tour est joué.

Amusez-vous bien !!


Juste une petite chose
: Pour ceux dont les serveur et client radius (serveur modems) sont séparés par un firewall, il faut ouvrir les port 1812 et 1813 en UDP pour le serveur modems, et rediriger les requêtes vers le serveur concerné, c'est à dire le serveur radius.

Sources :

ftp://ftp.comtrol.com/RModem/Drivers/PCI/Linux/SW_Doc/Rckt_Linux.pdf
ftp://ftp.comtrol.com/RModem/Drivers/PCI/Linux/MiniCom_Doc/Minicom.pdf
http://members.surfshop.net.ph/~bench/ppp-radius/ppp-radius-pap.html
http://sourceforge.net/projects/portslave/
http://brlinux.linuxsecurity.com.br/artigos/dicas_portslave.htm

 


L'information, n'est-elle pas précieuse ? Partageons la tous ensemble !

© Mars 2006
Roger YERBANGA
www.yerbynet.com