Différences
Ci-dessous, les différences entre deux révisions de la page.
Révision précédente | |||
— | pratique:informatique:pibox [30/11/2020 10:36] (Version actuelle) – modification externe 127.0.0.1 | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | ====== Pibox : Une rapsberry pour les échanges ====== | ||
+ | J'ai testé les logiciels " | ||
+ | Comme ça se base sur une raspberry pi, j' | ||
+ | ===== Installation du raspberry ===== | ||
+ | |||
+ | Voir [[pratique: | ||
+ | |||
+ | |||
+ | ===== Reconnaître la clé wifi ===== | ||
+ | Il faut une carte wifi à ajouter et le bon driver pour la faire tourner. La carte (ou clé) wifi doit supporter le mode AP, ce qu'on peut voir avec la commande '' | ||
+ | |||
+ | Dans mon cas, j'ai une clé usb wifi Hercule, bien prise en charge sous linux et qui propose le mode AP. Pour connaître le modèle : '' | ||
+ | |||
+ | lsusb | ||
+ | Bus 001 Device 004: ID 06f8:e010 Guillemot Corp. HWGUSB2-54-LB | ||
+ | |||
+ | Un petit tour ensuite sur la database des périphériques usb de Debian : https:// | ||
+ | |||
+ | sudo apt-get install firmware-ralink | ||
+ | |||
+ | Vérifiez que votre carte wifi est bien wlan0 avec '' | ||
+ | |||
+ | ===== Transformer la Raspberry en accès wifi ===== | ||
+ | <WRAP center round info 60%> | ||
+ | À noter : je ne cherche pas à sécuriser le réseau donc la configuration d' | ||
+ | </ | ||
+ | |||
+ | Quelques logiciels à installer pour créer un " | ||
+ | sudo apt-get install hostapd dnsmasq iptables-persistent | ||
+ | |||
+ | * hostapd va générer le réseau sans fil auquel se connecter. | ||
+ | * dnsmasq sert à la fois à gérer la partie dhcp et la partie dns : il va donner des adresses ip aux machines qui se connectent et servir de DNS. | ||
+ | * iptables-persistent permet de relancer la même configuration iptable d'un redémarrage à l' | ||
+ | |||
+ | Il faut aussi tripatouiller dhcpcd, installé et configuré de base. Il suffit de lui dire d' | ||
+ | |||
+ | sudo nano / | ||
+ | Ajouter au fichier, tout au début : | ||
+ | denyinterfaces wlan0 | ||
+ | |||
+ | |||
+ | ==== Interface, wlan0 ==== | ||
+ | On va configurer wlan0 | ||
+ | sudo ifdown wlan0 | ||
+ | sudo nano / | ||
+ | |||
+ | Éditez-le pour qu'il ressemble à cela (commentez le reste) : | ||
+ | |||
+ | < | ||
+ | source-directory / | ||
+ | |||
+ | auto lo | ||
+ | iface lo inet loopback | ||
+ | |||
+ | iface eth0 inet manual | ||
+ | |||
+ | allow-hotplug wlan0 | ||
+ | iface wlan0 inet static | ||
+ | address 172.24.1.1 | ||
+ | netmask 255.255.255.0 | ||
+ | network 172.24.1.0 | ||
+ | broadcast 255.0.0.0 | ||
+ | |||
+ | </ | ||
+ | |||
+ | Relancer dhcpcd pour que tout soit pris en compte. | ||
+ | |||
+ | sudo service dhcpcd restart | ||
+ | |||
+ | Et ensuite, donnez son adresse ip statique à wlan0 : | ||
+ | sudo ifdown wlan0 | ||
+ | sudo ifup wlan0 | ||
+ | sudo ifconfig wlan0 172.24.1.1 | ||
+ | |||
+ | |||
+ | ==== Hostapd ==== | ||
+ | Modifiez le ficher de configuration d' | ||
+ | |||
+ | sudo nano / | ||
+ | <WRAP center round important 60%> | ||
+ | Cette configuration est particulière car elle ne demande pas de mot de passe pour se connecter. C'est un wifi ouvert ! | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | # interface wlan du Wi-Fi | ||
+ | interface=wlan0 | ||
+ | # nl80211 avec tous les drivers Linux mac80211 | ||
+ | driver=nl80211 | ||
+ | # Nom du spot Wi-Fi | ||
+ | ssid=PiBox | ||
+ | # mode Wi-Fi (a = IEEE 802.11a, b = IEEE 802.11b, g = IEEE 802.11g) | ||
+ | hw_mode=g | ||
+ | # canal de fréquence Wi-Fi (1-14) | ||
+ | channel=6 | ||
+ | </ | ||
+ | |||
+ | Ce qui suit peut aussi s' | ||
+ | <code php># Beacon interval in kus (1.024 ms) | ||
+ | beacon_int=100 | ||
+ | # DTIM (delivery trafic information message) | ||
+ | dtim_period=2 | ||
+ | # Maximum number of stations allowed in station table | ||
+ | max_num_sta=255 | ||
+ | # RTS/CTS threshold; 2347 = disabled (default) | ||
+ | rts_threshold=2347 | ||
+ | # Fragmentation threshold; 2346 = disabled (default) | ||
+ | fragm_threshold=2346</ | ||
+ | |||
+ | |||
+ | |||
+ | Pour le driver, suivant la carte wifi, cela peut être '' | ||
+ | |||
+ | Éditer ensuite les fichiers suivants pour que la configuration soit prise en compte par le daemon | ||
+ | |||
+ | * ''/ | ||
+ | * ''/ | ||
+ | |||
+ | |||
+ | Ensuite on teste si la configuration est bonne : | ||
+ | sudo / | ||
+ | S'il y a des warning et des erreurs, corriger. | ||
+ | Sinon, une autre machine ayant le wifi devrait voir apparaître le réseau wifi PiBox (ou le nom que vous lui avez donné) et peut s'y connecter. | ||
+ | |||
+ | ==== Dnsmasq ==== | ||
+ | Sauvegarder le fichier de configuration d' | ||
+ | |||
+ | sudo mv / | ||
+ | sudo nano / | ||
+ | |||
+ | <code bash / | ||
+ | # Redirect all in local | ||
+ | address=/#/ | ||
+ | # Use interface wlan0 | ||
+ | interface=wlan0 | ||
+ | # Explicitly specify the address to listen on | ||
+ | listen-address=172.24.1.1 | ||
+ | # Bind to the interface to make sure we aren't sending things elsewhere | ||
+ | bind-interfaces | ||
+ | # Don't forward short names | ||
+ | domain-needed | ||
+ | # Never forward addresses in the non-routed address spaces. | ||
+ | bogus-priv | ||
+ | # Assign IP addresses between 172.24.1.50 and 172.24.1.150 with a 12 hour lease time | ||
+ | dhcp-range=172.24.1.50, | ||
+ | </ | ||
+ | <WRAP center round important 60%> | ||
+ | À propos de l' | ||
+ | # Redirect all in local | ||
+ | address=/#/ | ||
+ | |||
+ | ''#'' | ||
+ | |||
+ | Cela facilite le boulot lors du partage puisque toute adresse sera la " | ||
+ | |||
+ | Une autre solution consiste à mettre un nom de domaine sur son serveur, que nos visteurs doivent taper, sinon ils n'ont qu'une page d' | ||
+ | |||
+ | Vu ce à quoi je destine la pibox, je prends le risque de me faire gronder par un sysadmin de passage. Sachez cependant que lorsque vous vous connectez sur un réseau (quel qu'il soit), un administrateur peu scrupuleux peux enregistrer tout ce que vous faites passer. D'où l' | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | ==== Donner de l'ipv4 et gérer iptable ==== | ||
+ | Ok, l'ipv4 c'est mort, tout ça, mais vu le réseau on s'en moque. | ||
+ | |||
+ | sudo nano / | ||
+ | Enlever le commentaire devant '' | ||
+ | |||
+ | |||
+ | <code php> | ||
+ | sudo su | ||
+ | iptables -A INPUT -i wlan0 -m conntrack --ctstate RELATED, | ||
+ | iptables -A INPUT -i wlan0 -p tcp -m tcp --dport 80 -j ACCEPT | ||
+ | iptables -A INPUT -i wlan0 -p udp -m udp --dport 53 -j ACCEPT | ||
+ | iptables -A INPUT -i wlan0 -p udp -m udp --dport 67:68 -j ACCEPT | ||
+ | iptables -A INPUT -i wlan0 -j DROP | ||
+ | iptables-save > / | ||
+ | </ | ||
+ | |||
+ | ==== Finitions ==== | ||
+ | Relancez les services : | ||
+ | sudo service hostapd start | ||
+ | sudo service dnsmasq start | ||
+ | sudo service networking start | ||
+ | |||
+ | Vérifiez que tout tourne sans erreur : | ||
+ | sudo service hostapd status | ||
+ | sudo service dnsmasq status | ||
+ | sudo service networking status | ||
+ | |||
+ | Connectez-vous depuis votre autre machine sur le réseau PiBox, puis rendez-vous sur 172.24.1.1/ | ||
+ | |||
+ | Redémarrez la Raspberry, vérifiez que ça marche toujours... c'est bon ? Parfait ! | ||
+ | |||
+ | ===== Installation du serveur web ===== | ||
+ | |||
+ | Raspberry étant un mini-machin, | ||
+ | |||
+ | sudo apt-get install lighttpd php5-cgi php5-gd php5-imagick php5-curl php5-intl | ||
+ | |||
+ | <wrap round tip> | ||
+ | Tous ces modules ne vous seront pas forcément utiles, il y a surtout php5-cgi qui compte, mais le reste me sert souvent dans les CMS que j'aime utiliser donc : léger d'un coté, plein de l' | ||
+ | </ | ||
+ | |||
+ | Activer les modules de php : | ||
+ | sudo lighty-enable-mod fastcgi | ||
+ | sudo lighty-enable-mod fastcgi-php | ||
+ | |||
+ | Et relancer le démon : | ||
+ | sudo service lighttpd force-reload | ||
+ | |||
+ | Ajoutez ensuite l' | ||
+ | |||
+ | <code php>sudo usermod -a -G www-data pi | ||
+ | sudo chown -R www-data: | ||
+ | sudo chmod -R g+rwX / | ||
+ | |||
+ | |||
+ | Pour voir si ça marche : | ||
+ | |||
+ | < | ||
+ | </ | ||
+ | |||
+ | Accédez-y via l' | ||
+ | |||
+ | ==== CMS à installer ==== | ||
+ | À partir de là, tout ce qui s' | ||
+ | |||
+ | Je conseille quelque chose comme [[https:// | ||
+ | |||
+ | Pour modifier la barre de menu, par exemple pour ajouter des items, éditez ''/ | ||
+ | |||
+ | <code php> | ||
+ | |||
+ | <!-- ajout perso -->< | ||
+ | <!-- fin du menu --> | ||
+ | <form class=" | ||
+ | |||
+ | J'ai aussi installé [[http:// | ||
+ | |||
+ | <code php / | ||
+ | |||
+ | J'ai tenté d' | ||
+ | |||
+ | Voici le texte que j'ai mis pour expliquer la démarche sur la Pibox | ||
+ | <WRAP center round box 90%> | ||
+ | Ceci est une pibox. C'est un petit réseau local, sans FAI, sans contrôle, sans pub. Ce genre de dispositif s' | ||
+ | </ | ||
+ | Et voici le texte à côté de la Pibox, imprimé : | ||
+ | |||
+ | <WRAP center round box 90%> | ||
+ | Pibox : espace de libre échange numérique. Sur un réseau local non relié à Internet, partagez des fichiers, | ||
+ | discutez anonymement, | ||
+ | |||
+ | * Réseau " | ||
+ | * Adresse : pinata.local((En réalité peu importe, vu la configuration, | ||
+ | |||
+ | </ | ||
+ | Ces deux textes sont en CC0, adaptez sans vous prendre la tête sur le droit. | ||
+ | |||
+ | === Autres cms à voir === | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | |||
+ | ===== Liens utiles (ou pas) ===== | ||
+ | Disons que ça m'a servi à en arriver là. | ||
+ | - https:// | ||
+ | - http:// | ||
+ | - http:// | ||
+ | - https:// | ||
+ | - https:// | ||
+ | - https:// | ||
+ | - https:// | ||
+ | - https:// | ||
+ | - http:// | ||
+ | - http:// | ||
+ | |||
+ | ===== Pour trouver plus d' | ||
+ | Une recherche sur " | ||
+ | |||
+ | " |