mardi 12 janvier 2016

Accéder à Gladys depuis internet

Maintenant que Gladys manage un certain nombre de tâches de la maison il peut être intéressant d'y accéder depuis l"extérieur pour modifier certains paramètres ou commander certaines actions.

Il faut pour cela pouvoir accéder à l'interface web depuis l'extérieur.

J'ai une box assez classique avec une ip qui change régulièrement ou à chaque arrêt de celle ci.

Il me faut donc un service qui sache retrouver l'ip dynamique de ma box, et je fais le choix que ce service soit gratuit.

J'ai choisi no-ip.com, il y en a peut être d'autre.

Il faut donc ouvrir un compte sur no-ip.com, comme pour ma part c'est déjà et que c'est très simple je passe cette étape.

Ma box est censée offrir un service qui envoie mon ip dynamique à no-ip.com pour qu'ils puissent faire le lien, malheureusement ce service (je n'ai aucune idée pourquoi) ne fonctionne plus.

Je fais donc le choix d'installer le logiciel client qui fera ce travail depuis un raspberry pi, celui de gladys ou un autre.

Comme d'habitude je pars d'un tutoriel qui se trouve ici :

http://www.noip.com/support/knowledgebase/installing-the-linux-dynamic-update-client-on-ubuntu/


Je vous redonnes ici ce que je fais en suivant ce tutoriel si cela peut vous aider.

Je vais installer No-IP.com’s DUC, (DUC pour Dynamic Update Client).

J'ouvre une console à distance via ssh.


Je me rends dans le répertoire /usr/local/src/

cd /usr/local/src/

Je télécharge le fichier contenant le client duc de no-ip.com

sudo  wget http://www.no-ip.com/client/linux/noip-duc-linux.tar.gz


Je décompresse le fichier sur place

sudo tar xf noip-duc-linux.tar.gz


je me rends dans le répertoire ainsi créé

cd noip-2.1.9-1/



Je lance la commande qui "installe" le logiciel

sudo make install

Il me demande mon mail de connexion, je le renseigne, puis mon mot de passe, je le renseigne et j'obtiens :

Je continue de renseigner les informations demandées :

Update interval en minutes semble t il.
Puis il me demande si je souhaite lancer quelque chose en cas de mise à jour réussie, je répond non.

Please enter an update interval:[30]  5
Do you wish to run something at successful update?[N] (y/N)  N


Il m'affice alors un message de réussite de création du fichier de configuration no-ip2.conf

New configuration file '/tmp/no-ip2.conf' created.



Puis il déplace dans la foulée le dit fichier vers  /usr/local/etc/no-ip2.conf

mv /tmp/no-ip2.conf /usr/local/etc/no-ip2.conf
 
Le tutoriel indique qu'il faut à ce point lancer la commande :

sudo /usr/local/bin/noip2 -C

Mais cette commande répéter ce qui vient d'être fait :

pi@gladys:/usr/local/src/noip-2.1.9-1 $ sudo /usr/local/bin/noip2 -C

Auto configuration for Linux client of no-ip.com.

Please enter the login/email string for no-ip.com  votremail@perso.com
Please enter the password for user '
votremail@perso.com'  **********

Only one host [votre.ddns.net] is registered to this account.
It will be used.
Please enter an update interval:[30]  5
Do you wish to run something at successful update?[N] (y/N)  N

New configuration file '/usr/local/etc/no-ip2.conf' created.


Il change juste le répertoire de destination, dans le doute j'ai tout de même fait la manip.

Le client est installé et configuré, il suffit de le lancer avec la commande :

sudo /usr/local/bin/noip2

C'est presque fini, en effet il faut que je m'assure que ceci se lance au démarrage ou redémarrage du RaspberryPi.

Pour ce faire le tutoriel du site indique de lire le fichier README, celui ci dit :

Si vous désirez qu'il démarre automatiquement à l'amorçage de la machine, placez le script suivant dans votre répertoire de démarrage. (/etc/init.d/
rcX.d ou /sbin/init.d/rcX.d ou ???)

        #######################################################
        #! /bin/sh
        # . /etc/rc.d/init.d/functions  # décommentez/modifiez vers killproc
        case "$1" in
            start)
                echo "Démarrage de noip2."
                /usr/local/bin/noip2
            ;;
            stop)
                echo -n "Arrêt de noip2."
                killproc -TERM /usr/local/bin/noip2
            ;;
            *)
                echo "Usage: $0 {start|stop}"
                exit 1
        esac
        exit 0
        #######################################################

Où le 'X' de rcX.d est la valeur obtenue en exécutant la commande:
        grep initdefault /etc/inittab | awk -F: '{print $2}'

Killproc peut être téléchargé depuis ftp: //ftp.suse.com/pub/projects/init
Autrement, vous pouvez décommentez la ligne qui suit #! /bin/sh


Tout ceci n'est pas pour l'instant très clair pour moi, donc je préfère utiliser la crontab, je vous renvoie à l'article sur ce sujet.

C'est mapremière utilisation de la crontab sur ce RaspberryPi, voici ce qu'il se passe :

Je passe la commande :

sudo crontab -e

Ce qui me donne

pi@gladys:/usr/local/src/noip-2.1.9-1 $ crontab -l
no crontab for pi
pi@gladys:/usr/local/src/noip-2.1.9-1 $ crontab -e
no crontab for pi - using an empty one

/usr/bin/select-editor: 1: /usr/bin/select-editor: gettext: not found
 'select-editor'.
  1. /bin/ed
/usr/bin/select-editor: 1: /usr/bin/select-editor: gettext: not found
  2. /bin/nano        <----
  3. /usr/bin/vim.tiny

/usr/bin/select-editor: 32: /usr/bin/select-editor: gettext: not found
 1-3 [2]: 2   Là je renseigne 2 pour utiliser nano
No modification made

puis il lance nano avec le fichier crontab qui ressemble alors à ceci :


J'ajoute sur la dernière ligne :

#au redémarrage je relance l'utilitaire no-ip.com de mise à jour de l'IP
@reboot sudo /usr/local/bin/noip2

"CTRL X" puis à la demande de nano "Y"

Voilà c'est fait le client redémarrera au démarrage de la machine.

Maintenant il ne vous reste qu'a rediriger le port 80 sur votre routeur vers l'ip de votre RaspberryPi sur lequel fonctionne Gladys, pour ce faire il y a des tutoriel chez chaque fournisseurs d'accès. Quelques exemples ci dessous.

Ensuite de l'extérieur il vous suffira de saisir l'adresse de votre compte no-ip dans votre navigateur pour accéder à la page d'accueil de Gladys.


Sources :

NO-IP

http://www.noip.com/support/knowledgebase/installing-the-linux-dynamic-update-client-on-ubuntu/ 
https://fr.wikipedia.org/wiki/Cron

rediriger le port 80 chez SFR  (avec dyndns au lieu de no-ip)
http://assistance.sfr.fr/runtime/internet-et-box/box-nb6/heberger-site-box.html

rediriger le port 80 chez FREE
http://www.commentcamarche.net/faq/18954-freebox-et-serveur-web-ou-serveur-ftp

En détail
http://raspbian-france.fr/mettre-en-ligne-serveur-web-raspbian-dydns-port-forwarding/

Aucun commentaire:

Enregistrer un commentaire