logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 23-05-2018 12:25:03

Henry33
Membre
Inscription : 23-12-2016

[Difficulté] Configuration routeur dnsmasq dhcpv4 + dhcpv6

Bonjour à vous,

J'essaye de configurer dnsmasq pour router de l'ivp4 et de ipv6 mais pour être franc, je ne comprends pas complètement ce que je fais...

Le contexte : routeur Raspberry Pi sous Debian Jessie, dnsmasq fait le serveur dhcp pour l'ipv4, eth0 est le réseau privé, wlan1 est le réseau "publique" connecté à une Livebox qui fourni de l'ipv6. Tables ip6tables en ACCEPT par défaut pour INPUT OUTPUT et FORWARD. Le ping6 (avec adresse et nom) vers Internet fonctionne depuis le routeur.

Questions :

-  J'ai du mal à comprendre quelles adresses ipv6 fixes donner à eth0.

- J'ai du mal à définir la bonne méthode : je voudrais que l'adresse ipv6 des clients ne soit pas visible depuis Internet ou que l'adresse change régulièrement.
--> Dans les choix de configuration de dhcpv6, j'ai compris qu'il est possible d'attribuer l'adresse depuis le routeur et non de la recevoir depuis la machine mais ça peut poser problème avec certains équipements (tablettes).
--> Sinon, il est possible de recevoir l'adresse depuis la machine et je peux la changer grâce à macchanger. J'ai réussi à l'installer et à le faire fonctionner sur le routeur et sur le PC, ça marche bien. Problème sur le PC (sous Debian Jessie) c'est qu'il ne prend plus le réseau quand l'adresse MAC est changée (je suppose que ça vient des réglages de Debian...)

Merci pour votre aide.

Hors ligne

#2 24-05-2018 23:03:43

raleur
Membre
Inscription : 03-10-2014

Re : [Difficulté] Configuration routeur dnsmasq dhcpv4 + dhcpv6

Pas le temps de rédiger une réponse correcte pour le moment.

Il vaut mieux montrer que raconter.

Hors ligne

#3 24-05-2018 23:07:27

Henry33
Membre
Inscription : 23-12-2016

Re : [Difficulté] Configuration routeur dnsmasq dhcpv4 + dhcpv6

Salut,

J'ai une réponse partielle. Pour changer l'adresse ipv6 il faut activer la "privacy extension". Pour ça, il faut ajouter ces lignes à /etc/sysctl.conf

net.ipv6.conf.all.use_tempaddr=2
net.ipv6.conf.default.use_tempaddr=2



Vérifier la présence de ufw (ou autre). Si oui, même opération pour /etc/ufw/systcl.conf car il prend le pas sur /etc/sysctl.conf .


Pour le Raspberry, c'est la même opération sauf que ça marche pas du premier coup sur le miens, ça doit venir du fait qu'il a des adresses fixes configurées. Il y a une autre procédure qui consiste à paramétrer les interfaces individuellement :

net.ipv6.conf.eth0.use_tempaddr = 2



On peut vérifier dans le fichier /proc/sys/net/ipv6/conf/eth0/use_tempaddr que la valeur est passée à 2 (la valeur par défaut est 0).

Hors ligne

#4 24-05-2018 23:08:40

Henry33
Membre
Inscription : 23-12-2016

Re : [Difficulté] Configuration routeur dnsmasq dhcpv4 + dhcpv6

On est synchro.

Hors ligne

#5 25-05-2018 10:43:00

Henry33
Membre
Inscription : 23-12-2016

Re : [Difficulté] Configuration routeur dnsmasq dhcpv4 + dhcpv6

Salut,

J'ai adapté la table de filtrage pour l'ipv6, à mon avis, c'est pas très beau, mais ça marche : les tests ipv6 depuis le PC sont validés (https://test-ipv6.com/). Je suis passé en conntrack pour le fun, j'ai lu que en fait, le state est converti en conntrack par le noyau. En faisant comme ça, je me dis que je gagne un demi millième de seconde.


J'ai encore des questions concernant ces règles :


- Je n'ai pas vu d'états configurés pour les neighbor discovery, seulement des hop limit. Ca suffit ? J'ai fait un essai avec des états et ça n'a pas marché

- J'ai lu que pour un routeur, le router-advertisement pouvait poser problème en OUTPUT (vers les réseaux publiques, je présume). Tu confirmes ?

- Est-ce que j'ai des choses à rajouter ou à modifier avant de clôturer cette partie ?



Merci de me donner ton avis quand tu auras le temps.


/etc/ip6tables.rules

*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]

# chaines utilisateur
-N in_priv
-N in_pub
-N out_priv
-N out_pub
-N in
-N out
-N icmp_error
-N ping
-N ssh

-A INPUT -i eth0   -j in_priv
-A OUTPUT -o eth0  -j out_priv

-A INPUT -i wlan0  -j in_priv
-A OUTPUT -o wlan0 -j out_priv

-A INPUT -i eth1   -j in_pub
-A OUTPUT -o eth1  -j out_pub

-A INPUT -i wlan1  -j in_pub
-A OUTPUT -o wlan1 -j out_pub

-A in_pub  -j in
-A out_pub -j out

-A FORWARD -i eth0  -o eth1  -j out
-A FORWARD -i eth1  -o eth0  -j in

-A FORWARD -i eth0  -o wlan1 -j out
-A FORWARD -i wlan1 -o eth0  -j in

-A FORWARD -i wlan0 -o eth1  -j out
-A FORWARD -i eth1  -o wlan0 -j in

-A FORWARD -i wlan0 -o wlan1 -j out
-A FORWARD -i wlan1 -o wlan0 -j in

#  type 1
-A icmp_error -p icmpv6 --icmpv6-type destination-unreachable -m conntrack --ctstate RELATED -j ACCEPT

#  type 2
-A icmp_error -p icmpv6 --icmpv6-type packet-too-big -m conntrack --ctstate RELATED -j ACCEPT

#  type 3
-A icmp_error -p icmpv6 --icmpv6-type time-exceeded -m conntrack --ctstate RELATED -j ACCEPT

#  type 4
-A icmp_error -p icmpv6 --icmpv6-type parameter-problem -m conntrack --ctstate RELATED -j ACCEPT

# --- Neighbor Discovery ---
#  type 135
-A icmp_error -p icmpv6 --icmpv6-type neighbor-solicitation -m hl --hl-eq 255 -j ACCEPT

#  type 136
-A icmp_error -p icmpv6 --icmpv6-type neighbor-advertisement -m hl --hl-eq 255 -j ACCEPT

#  type 133
-A icmp_error -p icmpv6 --icmpv6-type router-solicitation -m hl --hl-eq 255 -j ACCEPT

#  type 134 EN INPUT SEULEMENT ?
-A icmp_error -s fe80::/64 -p icmpv6 --icmpv6-type router-advertisement -m hl --hl-eq 255 -j ACCEPT


# --- Ping ---
#  type 128
-A ping -p icmpv6 --icmpv6-type echo-request -m limit --limit 900/min -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT

#  type 129
-A ping -p icmpv6 --icmpv6-type echo-reply -m limit --limit 900/min -m conntrack --ctstate ESTABLISHED -j ACCEPT

-A ssh -p tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT

-A ssh -p tcp --sport 22 -m conntrack --ctstate ESTABLISHED -j ACCEPT

# - loopback -

-A INPUT -i lo -j ACCEPT
-A OUTPUT -o lo -j ACCEPT


# - SSH - sens réseau privé <-> routeur

-A in_priv -j ssh
-A out_priv -j ssh


# - ICMP -

-A in_priv -j icmp_error
-A out_priv -j icmp_error

-A in -j icmp_error
-A out -j icmp_error


# - PING -  réseau privé <-> routeur

-A in_priv -j ping  
-A out_priv -j ping

# - PING - sens routeur et réseau privé -> réseau publique

-A out -j ping
-A in -m state ! --state NEW -j ping


# - DNS - en passant par dnsmasq (routeur)

-A in_priv -p tcp --dport 53 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
-A out_priv -p tcp --sport 53 -m conntrack --ctstate ESTABLISHED -j ACCEPT
-A in_priv -p udp --dport 53 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
-A out_priv -p udp --sport 53 -m conntrack --ctstate ESTABLISHED -j ACCEPT


# - DNS - pour le routeur

-A out_pub -p tcp --dport 53 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
-A in_pub -p tcp --sport 53 -m conntrack --ctstate ESTABLISHED -j ACCEPT
-A out_pub -p udp --dport 53 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
-A in_pub -p udp --sport 53 -m conntrack --ctstate ESTABLISHED -j ACCEPT


# - DNS - FORWARD (sans passer par le routeur)

#-A out -p tcp --dport 53 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
#-A in -p tcp --sport 53 -m conntrack --ctstate ESTABLISHED -j ACCEPT
#-A out -p udp --dport 53 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
#-A in -p udp --sport 53 -m conntrack --ctstate ESTABLISHED -j ACCEPT


# - DHCP - eth0 et wlan0

-A in_priv  -p udp --sport 68 --dport 67 -j ACCEPT
-A out_priv -p udp --sport 67 --dport 68 -j ACCEPT

# - DCHP - eth1 et wlan1 (supprimer les # en cas de besoin)

#-A out_pub -p udp --sport 67 --dport 68 -j ACCEPT
#-A in_pub  -p udp --sport 68 --dport 67 -j ACCEPT


# - HTTP -

-A out -p tcp -m multiport --dports 80,443 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
-A in -p tcp -m multiport --sports 80,443 -m conntrack --ctstate ESTABLISHED -j ACCEPT


COMMIT

*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -o wlan1 -j MASQUERADE
-A POSTROUTING -o eth1 -j MASQUERADE
COMMIT
 

Hors ligne

#6 25-05-2018 14:05:09

raleur
Membre
Inscription : 03-10-2014

Re : [Difficulté] Configuration routeur dnsmasq dhcpv4 + dhcpv6

Réponse rapide, toujours pas le temps de me pencher sur les détails.

Henry33 a écrit :

Je n'ai pas vu d'états configurés pour les neighbor discovery, seulement des hop limit. Ca suffit ? J'ai fait un essai avec des états et ça n'a pas marché


Les types ICMPv6 du protocole NDP sont classés dans l'état UNTRACKED (ou INVALID avec les noyaux très anciens) car ils ne peuvent être suivis de façon fiable à cause de l'utilisation du multicast. Le suivi de connexion ne fonctionne essentiellement qu'avec les communications unicast.

Henry33 a écrit :

- J'ai lu que pour un routeur, le router-advertisement pouvait poser problème en OUTPUT (vers les réseaux publiques, je présume).


Quel problème ?
Un routeur IPv6 peut être configuré pour émettre des announces de routeur (RA) sur les réseaux auquel il distribue des information de préfixes, routes, DNS... (avec le demon radvd). Il ne faut évidemment pas les bloquer.

Dernière modification par raleur (25-05-2018 14:05:33)


Il vaut mieux montrer que raconter.

Hors ligne

#7 26-05-2018 18:38:45

Henry33
Membre
Inscription : 23-12-2016

Re : [Difficulté] Configuration routeur dnsmasq dhcpv4 + dhcpv6

Salut,

Merci d'être passé.

- Quel problèmes ?

Je ne sais pas, mais dans le cas de mon routeur, il y en aura régulièrement un routeur en amont : le wifi "publique" est prévu pour se connecter à des box, donc des routeurs, et je ne sais pas ce qu'il en ai pour la clé 4G. Je vais faire des essais en le supprimant des règles OUTPUT. Si ça marche encore, je laisse comme ça.

Merci pour ton aide.

Hors ligne

Pied de page des forums