Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 02/08/2017, à 23:21

DonutMan75

[RESOLU] Tuto hostapd : proposition d'améliorations ?

Bonsoir à tous,

en suivant le tuto sur hostapd je me suis rendu compte qu'on pouvait faire les choses légèrement différemment de ce qui était proposé.
J'ai déjà testé mes modifs et ça marche bien smile
Mais j'aurais aimé avoir votre retour afin de savoir si ces modifications sont pertinentes ou dangereuses.

Merci d'avance smile

EDIT : après discussion avec les uns et les autres, il apparaît qu'il existe plusieurs façons de faire les choses et qu'il n'y a pas toujours LA bonne solution, mais DES solutions chacune avec des avantages et des inconvénients ^^ Je passe le sujet en RESOLU du coup. Mais merci aux contributeurs d'avoir apporté leur éclairage (toujours instructif !).

Section 3.4

dans le cadre du partage de la connection internet, le tuto nous invite à configurer un serveur dndmasq.
De mon côté, je me suis dit que cette étape était superflue puisqu'il suffirait de modifier la ligne "option domain-name-servers" dans la configuration du serveur dhcp afin de la faire pointer vers notre box internet. Avec les conventions du tuto, ça donnerait donc quelque chose comme ça :

subnet 192.168.0.0 netmask 255.255.255.0 {
     #option domain-name "wifi.localhost";
     option routers 192.168.0.1;
     option subnet-mask 255.255.255.0;
     option broadcast-address 192.168.0.0;
     option domain-name-servers 192.168.1.1; 
     range dynamic-bootp 192.168.0.15 192.168.0.100;
}

Le seul inconvénient que je vois est que si on a 50 machines connectées sur wlan0 et qu'elles demandent toutes www.google.fr, notre AP demandera 50 fois à la box l'IP de www.google.fr. Donc y'a pas de mutualisation des requêtes...
Mais ça permet de s'éviter l'installation d'un serveur DNS supplémentaire.

Qu'en dites-vous ?

Section 3.6

L'utilisation de la Mascarade n'est ici pas la seule option car, via les baux statiques du serveur DHCP de notre box internet, on peut attribuer une IP statique à notre interface wlan6.
Auquel cas, un SNAT suffirait ?

Ainsi à supposer que l'IP statique côté wlan6 soit 192.168.1.2

sudo iptables -A POSTROUTING -t nat -o wlan6 -j MASQUERADE

deviendrait

sudo iptables -A POSTROUTING -t nat -o wlan6 -j SNAT --to-source 192.168.1.2

J'ai testé et ça marche bien smile

En revanche, je n'ai pas encore implémenté les trois règles suivantes du tuto :

sudo iptables -A FORWARD --match state --state RELATED,ESTABLISHED --jump ACCEPT
sudo iptables -A FORWARD -i wlan0 --destination 192.168.0.0/24 --match state --state NEW --jump ACCEPT
sudo iptables -A INPUT -s 192.168.0.0/24 --jump ACCEPT

J'attends de les avoir bien comprises avant de les coder.
Il me semble que cela est pertinent si on définit les politiques par défaut en drop, non ?
Donc il faudrait en toute fin des chaînes, quelque chose comme :

iptables -P OUTPUT DROP
iptables -P FORWARD DROP


Section 3.7

On pourrait totalement s'affranchir de ce script en faisant des modifications pérennes...

Par exemple, le ifconfig qui définit l'IP côté wlan 0 pourrait avantageusement être remplacé par une modification dans /etc/network/interfaces...
Mieux : les différents serveurs (hostapd, isc-dhcp-server) seraient gérés en "vrais démons" (Init = père) et plus seulement exécutés en arrière plan.

Enfin voilà, comme je débute un peu là dedans, je raconte peut-être des énormités.
J'attends vos retours avec grand intérêt smile


Donut

Dernière modification par DonutMan75 (Le 09/08/2017, à 10:54)

Hors ligne

#2 Le 03/08/2017, à 12:42

J5012

Re : [RESOLU] Tuto hostapd : proposition d'améliorations ?

https://doc.ubuntu-fr.org/hostapd#confi … sq_serveur

Notre sous-réseau étant créé, il ne reste plus qu'à configurer un serveur de cache DNS sur notre interface, qui transformera toute demande d'un domaine en adresse Ip.

Attention notre DNS ne fait que lire le fichier '/etc/resolv.conf' déjà alimenté de serveur DNS par une autre interface ayant Internet. ...

3.4 : la section ne cree pas un autre serveur dns ! elle cree un cache pour le serveur dns deja installé, pour pouvoir justement "mutualiser" tes requetes nom/ip ...

Mais ça permet de s'éviter l'installation d'un serveur DNS supplémentaire.

3.6 : https://doc.ubuntu-fr.org/hostapd#confi … u_firewall
→ à traduire plutot par : masquage des ip : dit aussi traduction d'adressages du reseau (ou NAT)

cependant la difference masquerading / SNAT est pertinente ...
MASQUERADE target
SNAT target

l'option masquerade de iptables est obligatoire dans un reseau avec allocation dhcp (les ip changent)

3.7 : l'exemple du script est un exemple de ce qui peut etre fait si on ne veut pas qu'un ordi soit definitivement un point d'acces; dans le cas d'un point d'acces permanent, un systeme embarqué est davantage optimisé et economique energetiquement ...

Hors ligne

#3 Le 04/08/2017, à 14:27

DonutMan75

Re : [RESOLU] Tuto hostapd : proposition d'améliorations ?

Hello,
merci J5012 pour ton retour !

D'ailleurs concernant le point 3.7 j'ai lu avec beaucoup d'intérêt la page sur iptables : https://doc.ubuntu-fr.org/iptables

Pour rendre la règle persistante, ils conseillent d'installer le paquet iptables-persistent sur un Unbuntu récent.
Pour les anciennes versions (i.e. sans systemd si j'ai bien compris ?), ils proposent la démarche suivante

https://doc.ubuntu-fr.org/iptables a écrit :

Commencez par éditer un fichier en root, que vous enregistrerez sous /etc/init.d/monIptables (variable selon la distribution utilisée). La première ligne de ce fichier doit être :

#!/bin/bash
Cette ligne indique que le fichier doit être enregistré en tant que script bash.

Le reste du fichier doit contenir les commandes iptables que vous avez générées.

Déplacez le script iptables dans /etc/init.d

sudo mv /emplacement/du/script/iptables /etc/init.d
Rendez ce script exécutable :

sudo chmod +x /etc/init.d/monIptables
Pour indiquer à votre ordinateur de l'utiliser au démarrage:

sudo update-rc.d monIptables defaults

En farfouillant un peu la doc, je me suis dit que les lignes iptables devraient plutôt figurer dans /etc/rc.local non ? Etant donné que c'est un "one shot" au démarrage et pas un service au sens classique qu'on pourrait arrêter ou redémarrer.

De plus l'option "defaults" de update-rc.d attend qu'un header spécifique soit indiqué en début du script /etc/init.d/monIptables ainsi que l'indique le man :

man update-rc.d a écrit :

update-rc.d has two modes of operation for installing scripts into the boot sequence.  A legacy mode where command line arguments are
       used to decide the sequence and runlevel configuration, and the default mode where dependency and runlevel information in the  init.d
       script  LSB comment header is used instead.  Such header is required to be present in init.d scripts.

Le format du header est donné par /etc/init.d/skeleton

$ head -n 15 /etc/init.d/skeleton 
#! /bin/sh
### BEGIN INIT INFO
# Provides:          skeleton
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Example initscript
# Description:       This file should be used to construct scripts to be
#                    placed in /etc/init.d.
### END INIT INFO

# Author: Foo Bar <foobar@baz.org>
#
# Please remove the "Author" lines above and replace them

Qu'en dites vous ?

Merci d'avance et bonne aprem smile

Donut

Hors ligne

#4 Le 04/08/2017, à 19:29

maxire

Re : [RESOLU] Tuto hostapd : proposition d'améliorations ?

Salut,

Le paquet iptables-persistent est disponible a partir de  Ubuntu12.04 qui n'est pas sous SystemD, tu peux donc l'utiliser avec une 14.04, pour la 16.04 sous SystemD je ne sais pas.
Normalement la commande iptables permet de sauvegarder les tables courantes sous un fichier texte que tu pourras mettre dans /etc/iptables, si je me souviens bien.
En tout cas  c'est le principe appliqué sous Archlinux qui est sous SystemD depuis presque 5 ans.


Maxire
Archlinux/Mate + Ubuntu 22.04 + Archlinux/Gnome sur poste de travail

Hors ligne

#5 Le 04/08/2017, à 19:56

J5012

Re : [RESOLU] Tuto hostapd : proposition d'améliorations ?

@DonutMan75 :

iptables est une application à utiliser en espace utilisateur (une fois que le systeme a chargé la config des utilisateurs) par des utilisateurs non-root en mode admin ...

iptables-persistent va juste installer un service qui permet de demarrer au plus tot (lors du chargement de init.d) les regles iptables, le service necessite iptables ...

sinon ici il y a toutes les facons pour demarrer au plus tot iptables :
- par la carte reseaux
- par les scripts d'activation des connexions reseaux
- par iptables-persistent

Hors ligne

#6 Le 04/08/2017, à 22:19

DonutMan75

Re : [RESOLU] Tuto hostapd : proposition d'améliorations ?

Bonsoir
super, merci à vous deux pour ces retours smile
Je vais potasser la doc que tu as citée J5012.

A bientôt !

Donut

Hors ligne