Table des matières

Routeur WIFI

Le but de la manip est de créer un réseau wifi privé dans lequel on enregistrera le flux vidéo des caméras.
j'utilise un BananaPi car il y a la possibilité de connecter un disque dur, pratique pour enregistrer !
Pour le wifi, j'utilise un clé usb, le réseau wifi ou ethernet sera en vlan car le réseau privé utilise le filaire et le wifi.

MISE A JOUR

Suite à différents tests décrits ci dessous, je me suis résolu à utiliser un routeur/wifi TP-LINK
En effet créer un passerelle avec un banana pi est faisable, mais dans mon projet, il me manque une deuxième interface réseau pour connecter les caméra non wifi.
Il est bien possible de créer un interface virtuelle, mais cela surcharge encore le système.
De plus l'utilisation de motion (zoneminder dans mon cas) demande de la ressource qui est prise par le réseau.
Donc quitte à utiliser un deuxième banana pi autant utiliser du matos dédié.

Nouvelle configuration

BOX|-->Wan|-->tp-link|-->WIFI|--o Caméras wifi 
                     |    "  |<--WLAN0|--|Mon poste
                     |
               Switch|-->Caméras IP
                 "   |-->Banana pi

Comme décrit un port de la box (192.168.0.0/24) va à l'entré WAN du routeur qui sort en wifi et sur ses ports LAN le réseau privé (192.168.1.0/24)
La conf du routeur ne laisse passer aucun ports et le DHCP est limité au mac address connues, pour accéder au LAN il faut se connecter soit en filaire ou en wifi.
Chose que je fait depuis mon poste auquel j'ai ajouté un clé wifi.

Le banana pi ne se consacre plus qu'à l'enregistrement de flux vidéos des différentes caméra.
Et pour tout dire, c'est déjà pas mal pour lui.

—————————————————————————————————–
Suite pour info !!!

Configuration du wifi

On va chercher quel drivers charger.
On connecte la clé puis un coup de dmesg.

  
usb 4-1: new high-speed USB device number 8 using sw-ehci
Oct 30 19:44:08 lemaker kernel: [ 5307.730571] usb 4-1: New USB device found, idVendor=0bda, idProduct=8176
Oct 30 19:44:08 lemaker kernel: [ 5307.736672] usb 4-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Oct 30 19:44:08 lemaker kernel: [ 5307.739829] usb 4-1: Manufacturer: Realtek
Oct 30 19:44:08 lemaker kernel: [ 5307.743427] usb 4-1: SerialNumber: 00e04c000001
Oct 30 19:44:08 lemaker kernel: [ 5308.268217] usbcore: registered new interface driver rtl8192cu
Oct 30 19:44:08 lemaker ifplugd(wlan0)[2969]: ifplugd 0.28 initializing.
Oct 30 19:44:09 lemaker ifplugd(wlan0)[2969]: Using interface wlan0/00:B8:18:7B:7C:24 with driver <rtl8192cu> (version: )
Oct 30 19:44:09 lemaker kernel: [ 5308.982405] ADDRCONF(NETDEV_UP): wlan0: link is not ready
Oct 30 19:44:09 lemaker wpa_supplicant[2981]: nl80211: Could not configure driver to use managed mode
Oct 30 19:44:09 lemaker ifplugd(wlan0)[2969]: Using detection mode: wireless extension
Oct 30 19:44:09 lemaker ifplugd(wlan0)[2969]: Initialization complete, link beat not detected.
Oct 30 19:44:09 lemaker kernel: [ 5308.990754] ADDRCONF(NETDEV_UP): wlan0: link is not ready

Il s'agit d'une clé realtech rtl8192cu, reste a cherche le drivers sur internet.
bingo ! sur Léa-linux

Sinon un ifconfig -a

wlan0     Link encap:Ethernet  HWaddr 00:b8:18:7b:7c:24  
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          ....

Configuration classique

Il faut activer la configuration wifi

ip link set wlan0 up

Lancer un scan pour trouver les réseaux aux alentours

iwlist wlan0 scan

Choisir votre réseau et ajouter le mot de passe

wpa_passphrase VOTRE_SSID >> /etc/wpa_supplicant.conf

Attention : Après avoir entré cette commande, il faut taper le mot de passe du réseau
Puis il faut appliquer la configuration

wpa_supplicant -B -D wext -i wlan0 -c /etc/wpa_supplicant.conf

Ensuite, vous pouvez lancer l'attribution DHCP pour votre connexion

dhclient wlan0

Cette commande permet de connaitre votre adresse ip

ip addr show wlan0

Enfin, la derniere commande permet de diriger les paquets vers la passerelle. (Généralement : 192.168.1.1)

ip route add default via <passerelle> dev wlan0

Un ping vers www.google.com vous confirmera la connexion vers internet.

Configuration perso

En fait pour mon appli j'ai besoin de configurer manuellement les interfaces réseaux.
Je me suis basé sur :
http://xael.org/2015/raspberry_pi-AP_wifi.html
http://lea-linux.org/documentations/Point_d'acc%C3%A8s_s%C3%A9curis%C3%A9_par_hostAPd

https://translate.google.com/translate?hl=fr&sl=en&u=https://frillip.com/using-your-raspberry-pi-3-as-a-wifi-access-point-with-hostapd/&prev=search

http://www.geekmag.fr/raspberry-pi-creer-un-hotspot-wifi-avec-une-cle-edimax/

Installation

sudo apt-get install dnsmasq hostapd

A noter que par défaut, hostpad n’est pas compatible avec le chipset RTL8188CUS comme celui présent dans la clé USD – Edimax EW. Vous pouvez donc utiliser le binaire indiqué dans ce tuto.

wget http://www.daveconroy.com/wp3/wp-content/uploads/2013/07/hostapd.zip
unzip hostapd.zip 
sudo mv /usr/sbin/hostapd /usr/sbin/hostapd.bak
sudo mv hostapd /usr/sbin/hostapd.edimax 
sudo ln -sf /usr/sbin/hostapd.edimax /usr/sbin/hostapd 
sudo chown root.root /usr/sbin/hostapd 
sudo chmod 755 /usr/sbin/hostapd

Configuration

Dans /etc/network/interfaces

allow-hotplug wlan0  
iface wlan0 inet static  
    address 192.168.1.1
    netmask 255.255.255.0
    network 192.168.1.0
    broadcast 192.168.1.255
#    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

sudo vi /etc/hostapd/hostapd.conf

interface=wlan0
driver=rtl871xdrv
bridge=br0
 
# Nom du spot Wi-Fi
ssid=Skycontroller
channel=1
wmm_enabled=0
wpa=1
#le mot de passse pour se connecter à l’AP
wpa_passphrase=anybody fuck
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
auth_algs=1
macaddr_acl=0

Démarrage par :

sudo hostapd -dd /etc/hostapd/hostapd.conf

Pour que cela soit permanent :

sudo vi /etc/default/hostapd

Dé-commantez cette ligne et indiquer le chemin du fichier de conf hostapd

DAEMON_CONF=“/etc/hostapd/hostapd.conf”

sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig sudo vi /etc/dnsmasq.conf

# Use interface wlan0
interface=wlan0        
 
# Explicitly specify the address to listen on 
listen-address=192.168.1.1   
 
# Bind to the interface to make sure we aren't sending things elsewhere 
bind-interfaces      
 
# Forward DNS requests to Google DNS  
server=8.8.8.8       
 
# Don't forward short names  
domain-needed        
 
# Never forward addresses in the non-routed address spaces.  
bogus-priv         
 
# Assign IP addresses between 192.168.1.50 and 192.168.1.150 with a 12 hour lease time    
dhcp-range=192.168.1.50,192.168.1.150,12h  
 
# If you’d like to have dnsmasq assign static IPs, bind the LAN computer's
# NIC MAC address:
dhcp-host=02:0F:B5:B8:EC:AA,192.168.1.10

sudo vi /etc/sysctl.conf
retirer le # depuis le début de la ligne contenant net.ipv4.ip_forward=1

Nous devons également partager la connexion Internet de notre Pi à nos appareils connectés via WiFi par la configuration d' un NAT entre notre wlan0 interface et notre eth0 interface. Nous pouvons le faire en utilisant les commandes suivantes:

sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE  
sudo iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT  
sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT  

Installation d'un VLAN

La Bananapi a juste une interface réseau, dans mon cas j'ai besoin de connecter une caméra IP filaire et une wifi.
Je pourrais faire le trunk sur le réseau filaire, mais je n'ai pas de switch configurable.
Donc on va passer par le WIFI.

Mise en place

sudo apt-get install vlan

Configuration

Déjà installer le driver.

sudo modprobe 8021q

Pour que cela soit permanent.

sudo su -c 'echo "8021q" >> /etc/modules'

Assigner une nouvelle address IP.

sudo ip addr add 192.168.0.9/24 dev wlan0.1

On démarre la nouvelle interface.

sudo ip link set up wlan0.1

Pour que cela soit permanent, on édite /etc/network/interfaces.

iface wlan0.1 inet static
address 192.168.0.9
netmask 255.255.255.0
gateway 192.168.0.254

Bon après multiples tests cela ne marche pas.
Le pb semble venir de hostapd qui n'accepte pas le vlan.
Il me faut configurer un autre poste qui accroche le wifi défini pas hostpad afin de pouvoir lire les data sur le disque.