Vous êtes sur la page 1sur 7

Scurit Informatique

Avertissements : Le contenu de ce document est sous licence GPL. Le document est librement diffusable dans le contexte de cette licence. Toute modification est encourage et doit tre signale webmaster@e-watching.net Les documents ou applications diffuses sur e-watching.net sont en ltat et sans aucune garantie ; ni les auteurs, ni les membres du groupe ne peuvent tre tenus pour responsables dune mauvaise utilisation (au sens lgal comme au sens fonctionnel). Il appartient lutilisateur de prendre toutes les prcautions dusage avant tout test ou mise en exploitation des technologies prsentes.

Objet :

Passerelle SMS base sur Kannel

Date : 07/03/05 Version : 1.0

Description
Mise en place dune passerelle denvoi de SMS partir dun tlphone mobile reli lordinateur. Les moyens utiliss reviennent un tlphone portable fonctionnel, un ordinateur, une distribution Linux et Kannel.

Prrequis
Les explication suivantes sont faites sur une plate-forme Mandrake 10 Apache : non MySQL (ou PostgreSQL ou Orcale) : non, encore que. un tlphone mobile (+ carte SIM) avec un cble de liaison srie ou USB pour le relier lordinateur si connection par USB : mettre jour le noyau en 2.6.10 qui corrige quelques problmes pnibles avec le convertisseur PL2303 intgr au cble USB. Installez LIBXML2 (ftp://fr.rpmfind.net/pub/libxml/libxml22.6.17-1.i386.rpm)

Un petit test avant de commencer sembourber


1. Connectez votre portable au port choisi (USB ou COMx). Si le port est en USB (et que cest le seul), le port Linux sera /dev/usb/tts/0 sinon /dev/tts0 pour le port srie COM1 et ainsi de suite. 2. Dmarrez sous Windows XX puis lancer un hyperterminal sur le port COM (9600N,8,1), puis tapez ATI0, le tlphone (si il est allum)

Page 1 sur 7 Version 1.0

doit vous renvoyer son modle de tlphone. Sous Linux, installez Gnokii (http://www.gnokii.org/) , modifiez le fichier /etc/gnokiirc (notamment le champ port = /Dev/xx, model = AT-HW, connection = serial). Lancez gnokii identify . Vous devez alors voir une config trs dtaille de votre portable en retour. 3. Passez linstallation

Installation
La version prsente ici est 1.4.0 de Kannel dispo ici : http://www.kannel.org/download/1.4.0/gateway-1.4.0.tar.gz Tar xzvf gateway-1.4.0.tar.gz ./configure make make bindir=/usr/kannel install

Configuration des fichiers de configuration


Crez un rpertoire dans /etc/kannel et mettez-y ce fichier sous le nom de sms.conf (cf Annexe A ou pour les fainants, les fichiers sont tlchargeables ici : http://www.e-watching.net/projets/kannel.zip ) Modifiez au moins sur le fichier ci-dessus les champs suivants : Device = encore une fois le priphrique (USB ou srie) Pin = code pin de votre portable, si ncessaire Username et password = nom dutilisateur et mot de passe requis pour lenvoi de sms Box-allow-ip et box-deny-ip = adresses ip qui seront acceptes ou refuses en connexion. Sparer les IP par un point-virgule. Les adresses IP explicitement autorises prvalent sur les refus. Placez ensuite le fichier modems.conf dans /etc/kannel (galement dispo via le fichier Zip ou dans larchive gateway de Kannel ou dans lannexe B).

Dmarrage des programmes ncessaires


Pour fonctionner, il faut lancer : /usr/kannel/bearerbox-v 1 /etc/kannel/sms.conf Puis /usr/kannel/smsbox -v 1 /etc/kannel/sms.conf

Page 2 sur 7 Version 1.0

Je vous laisse le soin de mettre tout ceci au dmarrage de votre poste ! En cas de problmes : modifiez le paramtre v 1 en v 0 pour ces deux applis, le mode dboguage rendra votre dpannage plus facile. Sinon, -v 3 ne logue que les erreurs.

Utilisation
Ladministration se fait par le port spcifi dans le fichier sms.conf soit via navigateur graphique soit par ligne de commande, par exemple : lynx -dump http://127.0.0.1:13000/restart pour redmarrer la passerelle Lenvoi de SMS se fait partir dun navigateur web (ligne de commande ou graphique) : http://adresse_ip_du_serveur:port_sms/cgi-bin/ sendsms?username=utilisateur&password=mot_de_passe &to=tlphone_destinataire&text=contenu_du_message o : adresse_ip_du_serveur = adresse IP ou nom FQN du poste hbergeant Kannel port_sms = port TCP dfini dans sms.conf, ligne sendsms-port (section SMSBOX SETUP) utilisateur = login autoris envoyer un SMS, dfini dans sms.conf, ligne username (section SEND-SMS USERS) mot_de_passe = mot de passe dfini dans la ligne password (section SEND-SMS USERS) tlphone_destinaire = cest vous qui voyez. Contenu_du_message = encore vous de voir.

Complments
Fichiers journaux - Deux fichiers journaux sont gnrs dans /var/kannel (smsbox.log et kannel.log) et correspondent aux informations de fonctionnement (ou dysfonctionnement) des applications respectives smsbox et bearerbox. Lactivation et lemplacement de journaux est dfinie dans sms.conf, lignes log-file des sections CORE et SMSBOX SETUP. - Le fichier /var/kannel/access.log loggue tous les envois de SMS effectus avec lensemble des paramtres de lURL ainsi que ladresse IP du client.

Page 3 sur 7 Version 1.0

Amliorations envisager
La premire est de consulter la doc associe au produit, trs riche. Utilisez un port HTTP/SSL plutt que du simple http. Voir les options de log dans une base SQL pour facturation. Lancer le processus sous lidentit dun utilisateur protg avec les options en ligne de commande de lancement de bearerbox et smsbox.

Annexes
A modle de fichier de configuration principale : sms.conf # Fichier de config pour Modem GSM connecte sur le port USB 05/03/2005 group = core admin-port = 13000 #smsbox-port = 13001 admin-password = 123456 #status-password = foo #admin-deny-ip = "" #admin-allow-ip = "" log-file = "/tmp/kannel.log" #log-level = 0 box-deny-ip = "*.*.*.*" box-allow-ip = "127.0.0.1;192.168.0.10" #unified-prefix = "+358,00358,0;+,00" #access-log = "/tmp/access.log" #store-file = "/tmp/kannel.store" #ssl-server-cert-file = "cert.pem" #ssl-server-key-file = "key.pem" #ssl-certkey-file = "mycertandprivkeyfile.pem" include = "/etc/kannel/modems.conf" # SMSC CONNECTIONS group = smsc smsc = at modemtype = auto device = /dev/usb/tts/0 speed = 9600 # pin = 1234

Page 4 sur 7 Version 1.0

# SMSBOX SETUP group = smsbox bearerbox-host = localhost sendsms-port = 13013 global-sender = 13013 #sendsms-chars = "0123456789 +-" #log-file = "/tmp/smsbox.log" #log-level = 0 #access-log = "/tmp/access.log" # SEND-SMS USERS group = sendsms-user username = user1 password = bidon #user-deny-ip = "" #user-allow-ip = "" # SERVICES group = sms-service keyword = nop text = "You asked nothing and I did it!" # there should be default always group = sms-service keyword = default text = "No service specified" B modle de fichier des modems gsm : modems.conf # Modems configuration # # Example and default values # # group = modems # id = "my-id" # name = "my-name" # detect-string = "MODEM" # detect-string2 = "" [Default] # init-string = "AT+CNMI=1,2,0,0,0" [Default] # speed = 9600 [Default] # enable-hwhs = "AT+IFC=2,2" [Default] # need-sleep = false [Default] # no-pin = false [Default] # no-smsc = false [Default] # sendline-sleep = 100 [Default, miliseconds] # keepalive-cmd = "AT" [Default] Page 5 sur 7 Version 1.0

# broken = false [Default] # message-storage = "SM" # enable-mms = false [Default]

# If modemtype=auto, try everyone and defaults to this one group = modems id = generic name = "Generic Modem" group = modems id = wavecom name = Wavecom detect-string = "WAVECOM" group = modems id = premicell name = Premicell detect-string = "PREMICEL" no-pin = true no-smsc = true group = modems id = siemens_tc35 name = "Siemens TC35" detect-string = "SIEMENS" detect-string2 = "TC35" init-string = "AT+CNMI=1,2,0,1,1" speed = 19200 enable-hwhs = "AT\\Q3" need-sleep = true group = modems id = siemens_m20 name = "Siemens M20" detect-string = "SIEMENS" detect-string2 = "M20" speed = 19200 enable-hwhs = "AT\\Q3" keepalive-cmd = "AT+CBC;+CSQ" need-sleep = true group = modems id = siemens_sl45 name = "Siemens SL45" detect-string = "SIEMENS" detect-string2 = "SL45" init-string = "AT+CNMI=1,2,2,2,1" Page 6 sur 7 Version 1.0

keepalive-cmd = "AT+CBC;+CSQ" speed = 19200 enable-hwhs = "AT\\Q3" need-sleep = true message-storage = "SM" group = modems id = nokiaphone name = "Nokia Phone" detect-string = "Nokia Mobile Phone" need-sleep = true keepalive-cmd = "AT+CBC;+CSQ" enable-mms = true group = modems id = falcom name = "Falcom" detect-string = "Falcom" no-smsc = true group = modems id = ericsson_r520m name = "Ericsson R520m" detect-string = "R520m" init-string = "AT+CNMI=3,2,0,0" group = modems id = ericsson_t68 name = "Ericsson T68" detect-string = "T68" init-string = "AT+CNMI=3,3" keepalive-cmd = "AT+CBC;+CSQ" broken = true group = modems id = alcatel name = "Alcatel" detect-string = "Alcatel" init-string = "AT+CNMI=3,2,0,0"

Page 7 sur 7 Version 1.0

Vous aimerez peut-être aussi