Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5

Point d'accès Wifi + CherryPy
#1

Bonjour,

Voila j'essaie de mettre en place un point d’accès wifi mais en remplaçant le serveur lighttpd par cherryPy car je me débrouille mieux avec python3 que PHP.

Pour crée le point d'accès wifi j'ai utilisé ce tuto : http://lookingfora.name/2012/12/08/raspb...il-captif/

Le point d'accès fonctionne, j'ai bien un nouveau réseau wifi.

Dans le tuto j'ai ceci :

Citation :Si vous voulez également que le RasPi “capture” toutes les requêtes HTTP(S), sur n’importe quelle IP et les redirige vers lui même, dans une console, tapez :

iptables -t nat -A PREROUTING -i wlan0 -p tcp --dport 443 -j DNAT --to-destination 10.0.0.1:443
iptables -t nat -A PREROUTING -i wlan0 -p tcp --dport 80 -j DNAT --to-destination 10.0.0.1:80


Tip Ces dernières modifications ne seront pas persistantes en l’état. Il faudra pour cela créer un script qui rajoutera automatiquement ces règles Iptables au lancement du RasPi

C'est ici que j'ai besoin de votre aide, je ne sais pas comment créer ce script. Pouvez vous m'aider?

Merci
Répondre
#2

Salut

Une piste : http://www.pihomeserver.fr/2013/05/27/ra...demarrage/

Raspberry Pi Home Server : http://www.pihomeserver.fr
Hotspot Wifi avec portail captif pour Raspberry Pi: Kupiki Hotspot
Répondre
#3

Bonjour à tous,

Perso, j'aime bien utiliser le paquet iptables-persistent.

Cool
Répondre
#4

Merci gambit!
Répondre
#5

Bonjour,

J'ai encore besoin de votre aide svp. Comment rediriger mon serveur python ( cherryPy) vers mon hostpad?

Voici le fichier de configuration de mon serveur (cherry.conf):
Code :
[== Indéfini ==]
[global]
server.socket_host = " ip de mon raspberry"
server.socket_port = 80
server.thread_pool = 5
tools.sessions.on = True
tools.encode.encoding = "Utf-8"
[/annexes]
tools.staticdir.on = True
tools.staticdir.dir = "annexes"

Et voici mon fichier python3 ( un simple Hello world! pour l'instant):
Code :
[== Indéfini ==]
import cherrypy

class siteweb(object):
    def index(self):
        return "<h1> Hello world ! </h1>"
    index.exposed = True



######## Programme principal : ###########

cherrypy.quickstart(siteweb(), config ="cherry.conf")

Je ne sais pas du tout dans quoi je dois modifier pour pourvoir avoir accès à la page web python via le hotspot wifi.
Je ne trouve rien a ce sujet sur le net.

Merci!
Répondre
#6

Il faut lier les interfaces et rediriger le traffic non autorisé vers l'ip/ port de ton serveur web

http://www.pihomeserver.fr/2014/05/23/ra...captif-22/

Raspberry Pi Home Server : http://www.pihomeserver.fr
Hotspot Wifi avec portail captif pour Raspberry Pi: Kupiki Hotspot
Répondre
#7

Merci Chris pour ta réponse rapide.

Est ce que je dois passer directement à l'étape 6 "Créer l’ensemble des règles de routage" et les modifier en fonction de ma config?
Code :
[== Indéfini ==]
iptables -t mangle -N internet
iptables -t mangle -A PREROUTING -i wlan0 -p tcp -m tcp --dport 80 -j internet
iptables -t mangle -A internet -j MARK --set-mark 99
iptables -t nat -A PREROUTING -i wlan0 -p tcp -m mark --mark 99 -m tcp --dport 80 -j DNAT --to-destination 192.168.10.1
Répondre
#8

Oui c'est ça.

Les règles permettent de tagger les connexions. Les non taggées sont routées vers le serveur web

Après il ya peut être des choses à adapter coté hostapd aussi, je ne sais pas

Raspberry Pi Home Server : http://www.pihomeserver.fr
Hotspot Wifi avec portail captif pour Raspberry Pi: Kupiki Hotspot
Répondre
#9

Bon voila j'ai tapé mes règles sans vraiment comprendre se que je fais et pas sûre que cela fonctionne du premier coups:
Code :
[== Indéfini ==]
iptables -t mangle -N internet
iptables -t mangle -A PREROUTING -i wlan0 -p tcp -m tcp --dport 80 -j internet
iptables -t mangle -A internet -j MARK --set-mark 99
iptables -t nat -A PREROUTING -i wlan0 -p tcp -m mark --mark 99 -m tcp --dport 80 -j DNAT --to-destination 192.168.1.20

Malheureusement ça ne fonctionne pas. Quand je veux me connecter sur le réseau wifi, celui-ci met trop de temps pour se connecter et abandonne la connexion.

Voici ma config /etc/network/interfaces :
Code :
[== Indéfini ==]
auto lo
iface lo inet loopback
iface eth0 inet static
        address 192.168.1.20
        netmask 255.255.255.0
        gateway 192.168.1.1


auto wlan0
iface wlan0 inet static
  address 10.0.0.1
  netmask 255.255.255.0
#allow-hotplug wlan0
#iface wlan0 inet manual
#wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

auto wlan1
allow-hotplug wlan1
iface wlan1 inet manual
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

Donc si je comprend: - mon server en python écoute sur le port 80 avec l'IP 192.168.1.20
- Wlan0 est sur 10.0.0.1

il faut que je redirige Wlan0 vers le port 80 avec l'IP 192.168.1.20 ?

Suis-je sur la bonne voie?



Merci
Répondre
#10

Tu as bien suivi le premier tutoriel avec l'ip forwarding et le pont entre les deux interfaces ?

Raspberry Pi Home Server : http://www.pihomeserver.fr
Hotspot Wifi avec portail captif pour Raspberry Pi: Kupiki Hotspot
Répondre
#11

Bonjour Chris57100,

Bon je vais reprendre du début ton tuto et repartir sur de bonne base.

merci à bientot
Répondre
#12

J'essaye d'installer et faire fonctionner CoovaChilli pour faire un hotspot plus "pro" sur le Raspberry et c'est aussi la galère ! :-) Courage !

Raspberry Pi Home Server : http://www.pihomeserver.fr
Hotspot Wifi avec portail captif pour Raspberry Pi: Kupiki Hotspot
Répondre
#13

Bonjour, j'ai repris depuis le début le tuto de chris57100 http://www.pihomeserver.fr/2014/05/22/ra...ve-portal/ j'ai déjà une question:

Je suis arrivé à - Changez le contenu du fichier /etc/network/interfaces.

Pour l'instant j'ai ceci :

Code :
[== Indéfini ==]
/etc/network/interfaces


auto lo
iface lo inet loopback

auto eth0
allow-hotplug eth0
iface eth0 inet manual

auto wlan0
allow-hotplug wlan0
iface wlan0 inet manual
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

auto wlan1
allow-hotplug wlan1
iface wlan1 inet manual
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

Est ce que je dois tout supprimer et remplacer par ? :
Code :
[== Indéfini ==]
auto lo

iface lo inet loopback
iface eth0 inet dhcp

allow-hotplug wlan0
iface wlan0 inet static
address 192.168.10.1
netmask 255.255.255.0
network 192.168.10.0

iface default inet dhcp

Merci
Répondre
#14

Moi je supprime tout parce que je n'ai que le port Ethernet (eth0) et la clé USB (wlan0). A toi d'adapter si tu as des cartes USB en plus

L'Ethernet va chercher par DHCP ses infos et la clé USB se fixe elle-même son IP pour recevoir les demandes des clients

Raspberry Pi Home Server : http://www.pihomeserver.fr
Hotspot Wifi avec portail captif pour Raspberry Pi: Kupiki Hotspot
Répondre
#15

Hello,

Merci Chris57100, dans la suite de ton tuto tu demandes :

-Etape suivante : activer le serveur DHCP pour envoyer les informations aux périphériques qui se connectent à notre hotspot. Pour cela vous devez modifier le fichier /etc/dhcp/dhcpd.conf :

Code :
[== Indéfini ==]
#
# Sample configuration file for ISC dhcpd for Debian
#
#

# The ddns-updates-style parameter controls whether or not the server will
# attempt to do a DNS update when a lease is confirmed. We default to the
# behavior of the version 2 packages ('none', since DHCP v2 didn't
# have support for DDNS.)
ddns-update-style none;

# option definitions common to all supported networks...
option domain-name "example.org";
option domain-name-servers ns1.example.org, ns2.example.org;

default-lease-time 600;
max-lease-time 7200;

# If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.
#authoritative;

# Use this to send dhcp log messages to a different log file (you also
# have to hack syslog.conf to complete the redirection).
log-facility local7;

# No service will be given on this subnet, but declaring it helps the
# DHCP server to understand the network topology.

#subnet 10.152.187.0 netmask 255.255.255.0 {
#}

# This is a very basic subnet declaration.

#subnet 10.254.239.0 netmask 255.255.255.224 {
#  range 10.254.239.10 10.254.239.20;
#  option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org;
#}

# This declaration allows BOOTP clients to get dynamic addresses,
# which we don't really recommend.

#subnet 10.254.239.32 netmask 255.255.255.224 {
#  range dynamic-bootp 10.254.239.40 10.254.239.60;
#  option broadcast-address 10.254.239.31;
#  option routers rtr-239-32-1.example.org;
#}

# A slightly different configuration for an internal subnet.
#subnet 10.5.5.0 netmask 255.255.255.224 {
#  range 10.5.5.26 10.5.5.30;
#  option domain-name-servers ns1.internal.example.org;
#  option domain-name "internal.example.org";
#  option routers 10.5.5.1;
#  option broadcast-address 10.5.5.31;
#  default-lease-time 600;
#  max-lease-time 7200;
#}

# Hosts which require special configuration options can be listed in
# host statements.   If no address is specified, the address will be
# allocated dynamically (if possible), but the host-specific information
# will still come from the host declaration.

#host passacaglia {
#  hardware ethernet 0:0:c0:5d:bd:95;
#  filename "vmunix.passacaglia";
#  server-name "toccata.fugue.com";
#}

# Fixed IP addresses can also be specified for hosts.   These addresses
# should not also be listed as being available for dynamic assignment.
# Hosts for which fixed IP addresses have been specified can boot using
# BOOTP or DHCP.   Hosts for which no fixed address is specified can only
# be booted with DHCP, unless there is an address range on the subnet
# to which a BOOTP client is connected which has the dynamic-bootp flag
# set.
#host fantasia {
#  hardware ethernet 08:00:07:26:c0:a5;
#  fixed-address fantasia.fugue.com;
#}

# You can declare a class of clients and then do address allocation
# based on that.   The example below shows a case where all clients
# in a certain class get addresses on the 10.17.224/24 subnet, and all
# other clients get addresses on the 10.0.29/24 subnet.

#class "foo" {
#  match if substring (option vendor-class-identifier, 0, 4) = "SUNW";
#}

#shared-network 224-29 {
#  subnet 10.17.224.0 netmask 255.255.255.0 {
#    option routers rtr-224.example.org;
#  }
#  subnet 10.0.29.0 netmask 255.255.255.0 {
#    option routers rtr-29.example.org;
#  }
#  pool {
#    allow members of "foo";
#    range 10.17.224.10 10.17.224.250;
#  }
#  pool {
#    deny members of "foo";
#    range 10.0.29.10 10.0.29.230;
#  }
#}

Je présume que je doit dé-commenter et modifier des options en fonction de ce qui a été mis dans /etc/network/interfaces ?

Code :
[== Indéfini ==]
auto lo

iface lo inet loopback
iface eth0 inet dhcp

allow-hotplug wlan0
iface wlan0 inet static
address 192.168.10.1
netmask 255.255.255.0
network 192.168.10.0

iface default inet dhcp

Merci pour ton aide.
Répondre
#16

Oui. Les deux articles ont des soucis des bouts disparraissent du post original

Raspberry Pi Home Server : http://www.pihomeserver.fr
Hotspot Wifi avec portail captif pour Raspberry Pi: Kupiki Hotspot
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)