Les Cartels du PI

De Centre de Ressources Numériques - Labomedia
Révision de 6 février 2017 à 17:01 par Billard fm (discussion | contributions)

(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à : navigation, rechercher
Les Cartels du PI
LescartelsduPILogo.png


Pour modifier la page utiliser l'onglet Modifier avec formulaire.

Résumé Proposer un gestion de Cartel sous forme de code QR via un portail captif.
Auteur(s) François-marie BILLARD
Licence CC-BY-SA 3
Date de création 20 janvier 2016


Intentions / Contexte

Proposer des informations sur les œuvres exposées, sous la forme de pages web accessibles en local sur un portail captif, via un spot WIFI en flashant un code QR.

Principe de fonctionnement

Dans le cadre d'un modèle de test, une carte Raspberry Pi équipée d'un adaptateur wifi fournira les services suivants :

  • spot wifi et adresse IP (hostapd et Dnsmasq)
  • serveur web light httpd
  • CMS Spip pour le site internet.
  • une base de données : SQLITE

Besoins / Compétences

  • Raspberry PI
  • Carte wifi USB
  • Connaissances Linux pour l'installation des paquets et l'édition des fichiers de configurations.
  • Connaissance de SPIP.
  • Création et adaptation des codes QR.


Documentation

L'ensemble est basé sur une distribution raspbian Jessie lite sur raspberryII avec un adaptateur wifi TL-WN722N.

INSTALLATION :

Partie réseau.

Antenne WIFI
lsusb 
Bus 001 Device 004: ID 0cf3:9271 Atheros Communications, Inc. AR9271 802.11n

lsmod 
Module                  Size  Used by
arc4                    1972  2 
ath9k_htc              62678  0 
ath9k_common           26119  1 ath9k_htc
ath9k_hw              469847  2 ath9k_common,ath9k_htc
ath                    22870  3 ath9k_common,ath9k_htc,ath9k_hw
mac80211              622304  1 ath9k_htc
cfg80211              499834  4 ath,ath9k_common,mac80211,ath9k_htc
rfkill                 22491  1 cfg80211

Présence de l'interface wlan0

ifconfig wlan0
wlan0     Link encap:Ethernet  HWaddr e8:de:27:a5:ad:a9  
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:49 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:9998 (9.7 KiB)

configuration de l'interface wlan0

sudo nano /etc/network/interfaces
wlan0 auto
iface wlan0 inet static
   address 192.168.2.1

Modèle:Attention il ne doit y avoir qu'une seule déclaration wlan0 Rappel dans l'éditeur nano : CTRL-x pour sauvegarder et quitter

Relancer la configuration de l'antenne WIFI par sudo ifdown wlan0 puis sudo ifup wlan0

Installation de hostapd et dnsmasq
sudo apt-get install hostapd

indiquez dans fichier de configuration du lancement de hostapd ou se trouve le fichier de configuration hostapd.conf

sudo nano /etc/default/hostapd 

Vérifier la présence de DAEMON_CONF="/etc/hostapd/hostapd.conf", par defaut il y a

  1. DAEMON_CONF=""


puis configuration proprement dites de hostapd comme point d'accès Wifi

 
sudo nano /etc/hostapd/hostapd.conf 

et y placer les paramètres indiqués ci-dessous pour un réseau ouvert sans clef :

#Nom de l'interface réseau utilisée
interface=wlan0
#Nom du réseau wifi créé 
ssid=EXPOSITION
# Rôle à préciser
hw_mode=g
#Canal de communication
channel=6
# Rôle à préciser
auth_algs=1
# Rôle à préciser
wmm_enabled=0 


Relance du service et test de la présence du réseau

sudo service hostapd start

depuis un terminal (Téléphone, tablette ou autre) avec le wifi vous devez voir le réseau EXPOSITION


DHCP ET le reste

Installation du paquet dnsmasq

sudo apt-get install dnsmasq

Configuration dans le fichier dnsmasq.conf

sudo nano /etc/dnsmasq.conf

Cette configuration doit permettre de distribuer des adresses entre 192.168.2.100 et 108 avec un bail de 24h00.

# Configuration file for dnsmasq.
#
#ce serveur DNS est valable pour toutes les requetes
address=/#/192.169.1.1
listen-address=192.168.2.1
domain-needed
expand-hosts
bogus-priv
dhcp-authoritative
#spécifie ou se trouve le fichier contenant les adresses des DNS supplémentaires.
resolv-file=/etc/resolv_conf.conf


cache-size=256
# plage dynamique 192.168.2.100  à 192.168.2.108,24h
dhcp-range=192.168.2.100,192.168.2.200,24h

NON A REVOIR Il faut alors créer le fichier /etc/resolv_conf.conf et y placer dedans

name-server=192.168.1.2 TEST de dnsmasq

sudo service dnsmasq start

depuis un terminal avec le wifi en demandant une connexion vous devez obtenir une adresse IP.


Configuration du nom de domaine

Modification du hostname

sudo nano /etc/hostname
expositions

modification de /etc/hosts

sudo nano /etc/hosts
127.0.0.1 expositions
192.168.2.1 expositions
192.168.2.1 www.expositions


Partie serveur WEB et CMS.

sudo apt-get install lighttpd

TEST dans le navigateur du terminal mobile accedez à l'adresse wlan0 de votre PI. Rappel ifconfig wlan0 sur le PI. Vous devez obtenir la page d'accueil de lighttpd placeholder page

Installation de sqlite et php et pour activer le module cgi pour php

sudo apt-get install sqlite3

sudo apt-get install php5-common php5-cgi php5-gd php5-sqlite

sudo lighty-enable-mod fastcgi
sudo lighty-enable-mod fastcgi-php

Configuration de lighttpd

Ajout d'un certificat SSL

sudo mkdir /var/www/html/certificat
openssl req -new -x509 -keyout server.pem -out /var/www/html/certificat/server.pem -days 3650 -nodes 

Ajout de l'usage du certificat dans light /etc/httpd.conf

#CERTIFICATION SSL
$SERVER["socket"] == ":443" {
        ssl.engine = "enable"
        ssl.pemfile = "/var/www/html/certificat/server.pem"
}
#REDIRECTION WEB DE TOUTES LES REQUETES POUR PORTAIL CAPTIF
$HTTP["host"] =~ "(.*)" {
 $HTTP["host"] !~ "(expositions)$" {
	  url.redirect = (
    		"^/(.*)" => "http://expositions" 
  	)
 }
}


installation de SPIP via spip loader

ATTENTION la configuration implique de couper dnsmasq et hostapd pour la suite/

wget http://www.spip.net/spip-dev/INSTALL/spip_loader.php
sudo mv ./spip_loader.php /var/www/html/
sudo chown www-data:www-data /var/www/html/spip_loader.php
sudo chmod +x  /var/www/html/spip_loader.php

puis Changement de mode pour le répertoire /var/www/html

sudo chmod 777 /var/www/html
/etc/init.d/lighttpd restart



INSTALLATION DE SPIP

dans un navigateur accéder à la page IP_PI/spip_loader.php

Sélection du français

Installation du serveur de fichier vsftpd

A revoir pour création de deux utilisateurs dont un est réservé à l'utilisation du protocole FTP.

sudo apt-get install vsftpd 

modifier le fichier de configuration /etc/vsftpd.conf avec ceci

#Interdiction des utilisateurs anonymes.
anonymous_anable=NO
#Autorisation d'écriture
write_enable=YES
#Changement de repértoire local
local_root=/var/www/html


SAUVEGARDE DE LA CARTE SD :

sudo dd if=/dev/mmcblk0 of=~/imageDeMaCarte.img


Liens utiles :

Pour vsftpd

http://howto.gumph.org/content/setup-virtual-users-and-directories-in-vsftpd/

pour Hostapd http://fspot.org/plk/piratebox-raspberry-pi.html


Création d'un certificat pour HTTPS:

http://dev.petitchevalroux.net/linux/generation-certificat-ssl-pour-https-linux.229.html

Lighttpd et SSL

http://dev.petitchevalroux.net/linux/lighttpd-ssl-linux.237.html

Autre à trier

http://www.chicoree.fr/w/DNS_et_DHCP_dans_Dnsmasq

http://elinux.org/RPI-Wireless-Hotspot

https://www.etud.insa-toulouse.fr/wiketud/Raspberry_Pi_comme_point_d'acc%C3%A8s_wifi_au_VPN

http://fspot.org/plk/piratebox-raspberry-pi.html

http://www.andrewoberstar.com/blog/2012/12/30/raspberry-pi-as-server-dns-and-dhcp

Evolutions :

avec un esp8266 : http://dominicm.com/esp8266-configure-access-point/ http://www.projetsdiy.fr/wemos-d1-mini-esp8266-test/ https://primalcortex.wordpress.com/2015/08/21/nodemcu-and-i2c-how-to-start-and-using-the-pcf8574a-i2c-port-expander-on-esp-01-board/