Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

adsl+dhcp+dns+reseau local = je m'en sors pas

15 réponses
Avatar
Sebastien Kirche
Bonjour,

je suis en train de galérer sur mon réseau local pour faire fonctionner en
harmonie ma passerelle connectée par adsl avec mes postes clients. Ça ne
fonctionne jamais dans son entier :(

Je vous ai fait un petit schéma:

+------------+ eth0 +------------+ eth1 +--------+
internet --| modem adsl |---------| passerelle |--------| switch |
| (eth) | | SS20 | +---+----+
+------------+ | (falbala) | |
+------------+ | +--------+
+--+ obelix |
| +--------+
Les postes : |
- falbala : 2.4.26-sparc32-smp Debian | +--------+
sur eth0 : 192.168.1.5 / 255.255.255.0 +--+ asterix|
sur eth1 : 192.168.0.1 / 255.255.255.0 | +--------+

- obelix : pécé 2.4.22-xfs (ou winXP mais pas encore testé) |
Debian
192.168.0.10 |

- idefix : pécé win98
192.168.0.20

eth0 sur falbala a une adresse pour pouvoir "attaquer" l'outil de
diagnostic interne du modem en 192.168.1.1

J'utilise (j'essaie) dnsmasq pour assurer les attributions ip via dhcp
(samba est installé et dnsmasq configuré pour servir la résolution wins) et
le dns pour les postes clients.

Ah oui aussi je suis abonné chez dyndns pour le domaine seki.homelinux.net
(j'utilise ddclient avec succès).

Le dhcp fonctionne, y compris pour windows.

Le dns fonctionne partiellement. En l'état :
- la passerelle résoud les adresses extérieures
- les clients arrivent à résoudres les adresses extérieures et les adresses
internes (p.ex obelix résoud google.fr, falbala et idefix)
- MAIS : la passerelle n'arrive pas à résoudre les noms des clients (!) qui
sont vus comme des alias (?) à l'adresse publique de ppp0, et ensuite ça
cafouille sur un «sendto opération non permise» qui sent le problème
iptables (?)

Suivant les essais, elle arrive à résoudre les noms de clients locaux mais
alors les clients n'ont plus de dns externe.

Jusqu'à ce que je commence à gérer des postes clients, la connexion adsl
pppoe s'effectuait automatiquement au démarrage ou via pon/poff. La config
a été faite très simplement avec pppoeconf : login/password, recherche dur
fournisseur et ajout automatique des dns dans /etc/resolv.conf

Le fichier /etc/network/interfaces était simpliste (sans les parties "test")
,----
| # The loopback interface
| auto lo
| iface lo inet loopback
| # dns-nameservers 127.0.0.1
| # dns-domain seki.homelinux.net
| # dns-search 127.0.0.1
|
| # connexion vers modem ADSL
| auto eth0
| iface eth0 inet static
| address 192.168.1.5
| netmask 255.255.255.0
| # dns-search tele2.fr
|
| # connexion vers switch
| auto eth1
| iface eth1 inet static
| address 192.168.0.1
| netmask 255.255.255.0
| # dns-nameservers 127.0.0.1
| # dns-domain seki.homelinux.net
`----

Lorsque j'ai paramétré dnsmasq pour les postes clients, j'ai vu que la
passerelle ne parvenait pas à résoudre les noms locaux et après essais en
rajoutant «nameserver 127.0.0.1» au début de /etc/resolv.conf le problème
semblé réglé.
MAIS : avec la directive usepeerdns du paramétrage pppoe, à chaque
reconnexion, le fichier est recréé pour contenir les dns tele2 et mon
nameserver local est perdu...
Je pourrais certes "patcher" le script /etc/ppp/ip-up.d/0000userpeerdns
pour ajouter le nameserver manquant mais ça ne me paraît pas très «propre».

Sur ce un correspondant de la liste Debian-french-user me conseille
resolvconf pour gérer les modifications dynamiques de /etc/resolv.conf ce
qui m'a amené à divers tests dans /etc/network/interfaces (commentaires
avec les paramètres dns-domain, dns-search et dns-nameservers avec le s).

Au final j'ai la modif suivante de /etc/network/interfaces :
,----
| # The loopback interface
| auto lo
| iface lo inet loopback
| dns-nameservers 127.0.0.1
| dns-domain seki.homelinux.net
| dns-search 127.0.0.1
|
| # connexion vers modem ADSL
| auto eth0
| iface eth0 inet static
| address 192.168.1.5
| netmask 255.255.255.0
| dns-search tele2.fr
|
| (le reste est identique)
`----

Qui me permet d'avoir le dns ok sur les clients (interne et externe) et la
passerelle (externe uniquement).

Mais si je tente par exemple un ping obelix, voilà le résultat :
,----
| falbala:~# ping obelix
| PING seki.homelinux.net (213.103.9.213): 56 data bytes
| ping: sendto: Operation not permitted
| ping: wrote seki.homelinux.net 64 chars, ret=-1
| ... en boucle
`----

Le nom n'est pas résolu correctement, quand à l'erreur sendto, ça ressemble
à un problème netfilter consécutif au premier (alors que ping www.google.fr
fonctionne normalement).

Voilà (ouf) c'est un peu long, mais j'espère avoir été clair.

Maintenant si quelqu'un a un tuyau à me filer pour régler correctement ma
résolution dns avec le *bon* paramètre qu'il me manque...
Solution que je préférerai à la modification barbare d'un script standard.

Merci !

Sébastien Kirche

10 réponses

1 2
Avatar
françois
Sebastien Kirche wrote:
Bonjour,

je suis en train de galérer sur mon réseau local pour faire fonctionner en
harmonie ma passerelle connectée par adsl avec mes postes clients. Ça ne
fonctionne jamais dans son entier :(

Je vous ai fait un petit schéma:

+------------+ eth0 +------------+ eth1 +--------+
internet --| modem adsl |---------| passerelle |--------| switch |
| (eth) | | SS20 | +---+----+
+------------+ | (falbala) | |
+------------+ | +--------+
+--+ obelix |
| +--------+
Les postes : |
- falbala : 2.4.26-sparc32-smp Debian | +--------+
sur eth0 : 192.168.1.5 / 255.255.255.0 +--+ asterix|
sur eth1 : 192.168.0.1 / 255.255.255.0 | +--------+

- obelix : pécé 2.4.22-xfs (ou winXP mais pas encore testé) |
Debian
192.168.0.10 |

- idefix : pécé win98
192.168.0.20

eth0 sur falbala a une adresse pour pouvoir "attaquer" l'outil de
diagnostic interne du modem en 192.168.1.1
[....]



Bonjour ,

Ma réponse n'en est pas une ,mais bon :

j'aurais pris plaisir à t'aider , mais la on dirai vraiment un exercice
(ça fait un bout de temps que je n'en ai pas vu .... ) , essai d'être un
peu plus précis et conscis , franchement j'ai eu du mal à lire jusqu'au
bout .

attention ce n'est pas une attaque :-)

cordialement.

Avatar
Sebastien Kirche
On 7 mai 2004, wrote:

j'aurais pris plaisir à t'aider , mais la on dirai vraiment un exercice
(ça fait un bout de temps que je n'en ai pas vu .... ) , essai d'être
un peu plus précis et conscis , franchement j'ai eu du mal à lire
jusqu'au bout .


Ben pourtant... :(
J'ai essayé d'expliquer :
- ce que je veux
- ce que j'ai essayé
- ce que j'ai obtenu

Bon trop détaillé peut-être ? Quoiqu'il manque le fichier de paramétrage
dnsmasq et celui d'iptables, mais ça risquait de faire plus long ;)


attention ce n'est pas une attaque :-)


No problémo. Je préfère savoir que je me suis peut-être mal exprimé plutôt
que ne pas avoir de réponse.

Mais alors comment dire ?

- J'utilise dnsmasq et resolvconf sur une connexion adsl via modem ethernet
(pppoe)
- la machine connecté est la passerelle+firewall d'un réseau local(cf
message original pour les détails) et est serveur dns/dhcp/wins pour ce
réseau - les postes clients fonctionnent correctement
- mais la passerelle ne résout pas correctement les adresses des postes
clients

Et donc je cherche à paramétrer correctement tout ça sur une Debian.

Comme ça c'est plus concis ?

Sébastien Kirche

Avatar
françois
Sebastien Kirche wrote:
On 7 mai 2004, wrote:


j'aurais pris plaisir à t'aider , mais la on dirai vraiment un exercice
(ça fait un bout de temps que je n'en ai pas vu .... ) , essai d'être
un peu plus précis et conscis , franchement j'ai eu du mal à lire
jusqu'au bout .



Ben pourtant... :(
J'ai essayé d'expliquer :
- ce que je veux
- ce que j'ai essayé
- ce que j'ai obtenu

Bon trop détaillé peut-être ? Quoiqu'il manque le fichier de paramétrage
dnsmasq et celui d'iptables, mais ça risquait de faire plus long ;)


attention ce n'est pas une attaque :-)



No problémo. Je préfère savoir que je me suis peut-être mal exprimé plutôt
que ne pas avoir de réponse.

Mais alors comment dire ?

- J'utilise dnsmasq et resolvconf sur une connexion adsl via modem ethernet
(pppoe)
- la machine connecté est la passerelle+firewall d'un réseau local(cf
message original pour les détails) et est serveur dns/dhcp/wins pour ce
réseau - les postes clients fonctionnent correctement
- mais la passerelle ne résout pas correctement les adresses des postes
clients

Et donc je cherche à paramétrer correctement tout ça sur une Debian.

Comme ça c'est plus concis ?

Sébastien Kirche


Bonjour,

As tu essayer de désactiver iptable pour voir si le problème vient de là ?


Avatar
françois
françois wrote:>

Bonjour,

As tu essayer de désactiver iptable pour voir si le problème vient de là ?


En faite , je viens de lire le fil que tu as initié sur lduf
,intéressant ,mais pour ma part je ne vois pas ce que je peut faire de
plus .... :-( .

bon courage et @+ .

ps : ça serai cool de poster le résultat en cas de solution (je n'en
doute pas une seconde)

Avatar
Sebastien Kirche
On 8 mai 2004, wrote:

françois wrote:>
Bonjour,
As tu essayer de désactiver iptable pour voir si le problème vient
de là ?



À propos oui, ça ne change rien.

En faite , je viens de lire le fil que tu as initié sur lduf
,intéressant ,mais pour ma part je ne vois pas ce que je peut faire de
plus .... :-( .

bon courage et @+ .


Ben merci quand même.


ps : ça serai cool de poster le résultat en cas de solution (je n'en
doute pas une seconde)


Je pense que si quelqu'un qui utilise déjà dnsmasq/resolvconf n'arrive pas à
me donner la solution (vu que la doc est quasi inexistante hors des fichiers
de conf commentés fournis en exemple...) je vais tout simplement changer
d'outil et passer à bind9/dhcp3.

Le concept tout en un de dnsmasq m'avait séduit pour mes petits besoins mais
si je ne sais pas le paramétrer (à moins que le problème soit resolvconf) je
vais me rabattre sur des outils plus documentés.

Sébastien Kirche


Avatar
TiChou
Dans le message <news:,
*Sebastien Kirche* tapota sur f.c.o.l.configuration :

Bonjour,


Re bonsoir,

[...]

Le dns fonctionne partiellement. En l'état :
- la passerelle résoud les adresses extérieures
- les clients arrivent à résoudres les adresses extérieures et les
adressesinternes (p.ex obelix résoud google.fr, falbala et idefix)
- MAIS : la passerelle n'arrive pas à résoudre les noms des clients (!)
qui sont vus comme des alias (?) à l'adresse publique de ppp0,


Tu veux dire que la résolution des noms d'hôtes obelix, asterix, etc, donne
l'adresse IP publique ?

ensuite ça cafouille sur un «sendto opération non permise» qui
sent le problème iptables (?)


Pour le problème d'iptables, il s'agit sûrement d'une règle qui filtre le
trafic sur l'interface loopback en fonction de l'adresse source.
Un extrait de tes règles iptables pour régler ce problème éventuellement ?

Suivant les essais, elle arrive à résoudre les noms de clients locaux
mais alors les clients n'ont plus de dns externe.

Jusqu'à ce que je commence à gérer des postes clients, la connexion
adsl pppoe s'effectuait automatiquement au démarrage ou via pon/poff.
La config a été faite très simplement avec pppoeconf : login/password,
recherche dur fournisseur et ajout automatique des dns dans
/etc/resolv.conf

Le fichier /etc/network/interfaces était simpliste


[...]

Lorsque j'ai paramétré dnsmasq pour les postes clients, j'ai vu que
la passerelle ne parvenait pas à résoudre les noms locaux et après
essais en rajoutant «nameserver 127.0.0.1» au début de /etc/resolv.conf
le problème semblé réglé.
MAIS : avec la directive usepeerdns du paramétrage pppoe, à
chaque reconnexion, le fichier est recréé pour contenir les dns
tele2 et mon nameserver local est perdu...
Je pourrais certes "patcher" le script
/etc/ppp/ip-up.d/0000userpeerdns pour ajouter le nameserver manquant mais
ça ne me paraît pas très «propre».


La solution à ton problème se situe à mon avis au niveau de l'option
usepeerdns. C'est-à-dire qu'il faut utiliser ton serveur DNS pour la
résolution DNS sur ta passerelle aulieu des serveurs DNS de ton FAI. Mais il
ne faut pas patcher le script 0000userpeerdns. Il faut soit supprimer
l'option usepeerdns dans ta configuration pppd (fichier /etc/ppp/options ou
fichier /etc/ppp/peers/adsl) ou soit rendre le fichier 0000userpeerdns non
executable.

Sur ce un correspondant de la liste Debian-french-user me
conseille resolvconf pour gérer les modifications dynamiques de
/etc/resolv.conf


Je ne connaissais pas resolvconf. Après avoir regardé de près ce qu'il
faisait, je trouve que ça ressemble beaucoup à du bricolage. S'il s'agit de
bricoler (dans le bon sens du terme), autant le faire sois-même via un
script maison qu'on placera dans /etc/ppp/ip-up.d.
Je te conseille de désinstaller ce package.

[...]

Voilà (ouf) c'est un peu long, mais j'espère avoir été clair.


C'est difficilement clair. :)

Maintenant si quelqu'un a un tuyau à me filer pour régler correctement
ma résolution dns avec le *bon* paramètre qu'il me manque...
Solution que je préférerai à la modification barbare d'un script standard.


Supprimer l'option usepeerdns de la configuration pppd.
Créer le fichier /etc/resolv.conf suivant :

domain votredomain.tld
nameserver 127.0.0.1

Sinon, si le serveur dhcp attribue des adresses IP fixes à tes machines
clientes, renseigner dans le fichier /etc/hosts la liste de tes machines.

Merci !


Avec plaisir.

--
TiChou

Avatar
TiChou
Dans le message <news:,
*TiChou* tapota sur f.c.o.l.configuration :

Maintenant si quelqu'un a un tuyau à me filer pour régler correctement
ma résolution dns avec le *bon* paramètre qu'il me manque...
Solution que je préférerai à la modification barbare d'un script
standard.


Supprimer l'option usepeerdns de la configuration pppd.
Créer le fichier /etc/resolv.conf suivant :

domain votredomain.tld
nameserver 127.0.0.1


En fait en y réfléchissant, l'idéal est de faire comme suit :

- On laisse finallement l'option usepeerdns dans la configuration de
pppd.
- On empêche que les scripts de la Debian modifient le fichier
/etc/resolv.conf :

$ chmod -x /etc/ppp/ip-up.d/{*dns*,*resolv*}

- On renseigne le fichier /etc/resolv.conf comme précédement :

domain votredomain.tld # optionnel
nameserver 127.0.0.1

- On utilise l'option 'resolv-file=/etc/ppp/resolv.conf' dans la
configuration de dnsmasq.

C'est d'ailleurs à très peu de chose près la procédure indiquée par la
documentation de dnsmasq.

--
TiChou


Avatar
Sebastien Kirche
Bonjour, je condense 2 réponses en une :)

Mais il y a un truc que je ne comprends plus : alors que je j'effectue des
tests pour pouvoir répondre précisément aux questions, je constate
que... ça marche maintenant !
La passerelle tourne depuis dimanche sans arrêt et je n'ai rien modifié dans
la config.
Par contre je crois me rappeler avoir mis à jour (c'est une Debian/testing)
et dnsmasq a été mis à jour... mais le changelog ne me montre rien
d'intéressant pour dns... ?

On 10 May 2004, TiChou wrote:

Dans le message <news:,
*Sebastien Kirche* tapota sur f.c.o.l.configuration :

Bonjour,


Re bonsoir,

[...]

Le dns fonctionne partiellement. En l'état :
- la passerelle résoud les adresses extérieures
- les clients arrivent à résoudres les adresses extérieures et les
adressesinternes (p.ex obelix résoud google.fr, falbala et idefix)
- MAIS : la passerelle n'arrive pas à résoudre les noms des clients (!)
qui sont vus comme des alias (?) à l'adresse publique de ppp0,


Tu veux dire que la résolution des noms d'hôtes obelix, asterix, etc,
donne l'adresse IP publique ?


Voilà ! En fait les clients ne résolvaient pas non plus les adresses
internes.
Depuis la passerelle, ping obelix cherchait à pinguer l'adresse publique
avec erreur.
Depuis un client, p.ex ping idefix depuis obelix -> unkown host.


ensuite ça cafouille sur un «sendto opération non permise» qui
sent le problème iptables (?)


Pour le problème d'iptables, il s'agit sûrement d'une règle qui filtre le
trafic sur l'interface loopback en fonction de l'adresse source.
Un extrait de tes règles iptables pour régler ce problème éventuellement ?


Bon, maintenant ping falbala résoud l'adresse locale (avec son fqdn) vers
l'adresse attribuée à eth1 (192.168.0.1 -> réseau local). Bizarre ?

Par contre un ping de l'adresse publique échoue sur l'erreur de sendto.

À priori tout le traffic sur lo est autorisé. Mais je peux me tromper

route indique ceci :
Destination Gateway Genmask Flags Metric Ref Use Iface
d80-170-128-1.c * 255.255.255.255 UH 0 0 0 ppp0
localnet * 255.255.255.0 U 0 0 0 eth0
192.168.0.0 * 255.255.255.0 U 0 0 0 eth1
default d80-170-128-1.c 0.0.0.0 UG 0 0 0 ppp0

Puis en déduire que l'interface défectueuse pour iptables est ppp0 et non
lo ?

Pour la configuration netfilter, je vais ajouter la sortie d'iptable-save à
l afin de ce fichier, ce n'est pas si gros.


Lorsque j'ai paramétré dnsmasq pour les postes clients, j'ai vu que la
passerelle ne parvenait pas à résoudre les noms locaux et après essais
en rajoutant «nameserver 127.0.0.1» au début de /etc/resolv.conf le
problème semblé réglé. MAIS : avec la directive usepeerdns du
paramétrage pppoe, à chaque reconnexion, le fichier est recréé pour
contenir les dns tele2 et mon nameserver local est perdu... Je pourrais
certes "patcher" le script /etc/ppp/ip-up.d/0000userpeerdns pour ajouter
le nameserver manquant mais ça ne me paraît pas très «propre».


La solution à ton problème se situe à mon avis au niveau de l'option
usepeerdns. C'est-à-dire qu'il faut utiliser ton serveur DNS pour la
résolution DNS sur ta passerelle aulieu des serveurs DNS de ton FAI. Mais
il ne faut pas patcher le script 0000userpeerdns. Il faut soit supprimer
l'option usepeerdns dans ta configuration pppd (fichier /etc/ppp/options
ou fichier /etc/ppp/peers/adsl) ou soit rendre le fichier 0000userpeerdns
non executable.


??? et comment dnsmasq est informé des dns du fai ?


Sur ce un correspondant de la liste Debian-french-user me
conseille resolvconf pour gérer les modifications dynamiques de
/etc/resolv.conf


Je ne connaissais pas resolvconf. Après avoir regardé de près ce qu'il
faisait, je trouve que ça ressemble beaucoup à du bricolage. S'il s'agit
de bricoler (dans le bon sens du terme), autant le faire sois-même via un
script maison qu'on placera dans /etc/ppp/ip-up.d. Je te conseille de
désinstaller ce package.


Moui, ça m'a aussi paru un peu foutoir (footware ?) comme utilitaire.
Je vais voir ce que ça donne si je le supprime.

- On laisse finallement l'option usepeerdns dans la configuration de
pppd.
- On empêche que les scripts de la Debian modifient le fichier
/etc/resolv.conf :

$ chmod -x /etc/ppp/ip-up.d/{*dns*,*resolv*}


Mais alors, comment les "nameserver xx.xx.xx.xx" du fai vont-il s'ajouter à
la config réseau ? C'est justement le script 0000usepeerdns qui s'en charge ?
Ou si je comprends, je les ajoute à la main mais dans ce cas le réglage
n'est plus dynamique à la négociation ppp...


- On renseigne le fichier /etc/resolv.conf comme précédement :

domain votredomain.tld # optionnel
nameserver 127.0.0.1

- On utilise l'option 'resolv-file=/etc/ppp/resolv.conf' dans la
configuration de dnsmasq.

C'est d'ailleurs à très peu de chose près la procédure indiquée par la
documentation de dnsmasq.


Que j'ai trouvée assez légère en dehors du dnsmasq.conf fourni (et c'est un
euphémisme).

Bon pour info, voici mon réglage netfilter :
,----
| # Generated by iptables-save v1.2.9 on Tue May 11 14:45:43 2004
| *mangle
| :PREROUTING ACCEPT [231:169522]
| :INPUT ACCEPT [13:808]
| :FORWARD ACCEPT [218:168714]
| :OUTPUT ACCEPT [8:832]
| :POSTROUTING ACCEPT [211:156040]
| COMMIT
| # Completed on Tue May 11 14:45:43 2004
| # Generated by iptables-save v1.2.9 on Tue May 11 14:45:43 2004
| *nat
| :PREROUTING ACCEPT [2:68]
| :POSTROUTING ACCEPT [0:0]
| :OUTPUT ACCEPT [0:0]
| -A PREROUTING -s 195.25.216.129 -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 22
| -A POSTROUTING -o ppp0 -j MASQUERADE
| COMMIT
| # Completed on Tue May 11 14:45:43 2004
| # Generated by iptables-save v1.2.9 on Tue May 11 14:45:43 2004
| *filter
| :INPUT DROP [0:0]
| :FORWARD DROP [15:13506]
| :OUTPUT DROP [0:0]
| :allowed - [0:0]
| :bad_tcp_packets - [0:0]
| :icmp_packets - [0:0]
| :tcp_packets - [0:0]
| :udp_packets - [0:0]
| -A INPUT -p tcp -j bad_tcp_packets
| -A INPUT -s 192.168.0.0/255.255.255.0 -i eth1 -j ACCEPT
| -A INPUT -i lo -j ACCEPT
| -A INPUT -i eth1 -p udp -m udp --sport 68 --dport 67 -j ACCEPT
| -A INPUT -i ppp0 -m state --state RELATED,ESTABLISHED -j ACCEPT
| -A INPUT -i ppp0 -p tcp -j tcp_packets
| -A INPUT -i ppp0 -p udp -j udp_packets
| -A INPUT -i ppp0 -p icmp -j icmp_packets
| -A INPUT -m limit --limit 3/min --limit-burst 3 -j LOG --log-prefix "IPT INPUT packet died: " --log-level 7
| -A FORWARD -p tcp -j bad_tcp_packets
| -A FORWARD -i eth1 -j ACCEPT
| -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
| -A FORWARD -m limit --limit 3/min --limit-burst 3 -j LOG --log-prefix "IPT FORWARD packet died: " --log-level 7
| -A OUTPUT -p tcp -j bad_tcp_packets
| -A OUTPUT -s 127.0.0.1 -j ACCEPT
| -A OUTPUT -s 192.168.0.1 -j ACCEPT
| -A OUTPUT -o ppp0 -j ACCEPT
| -A OUTPUT -m limit --limit 3/min --limit-burst 3 -j LOG --log-prefix "IPT OUTPUT packet died: " --log-level 7
| -A allowed -p tcp -m tcp --tcp-flags SYN,RST,ACK SYN -j ACCEPT
| -A allowed -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT
| -A allowed -p tcp -j DROP
| -A bad_tcp_packets -p tcp -m tcp --tcp-flags SYN,ACK SYN,ACK -m state --state NEW -j REJECT --reject-with tcp-reset
| -A bad_tcp_packets -p tcp -m tcp ! --tcp-flags SYN,RST,ACK SYN -m state --state NEW -j LOG --log-prefix "New not syn:"
| -A bad_tcp_packets -p tcp -m tcp ! --tcp-flags SYN,RST,ACK SYN -m state --state NEW -j DROP
| -A icmp_packets -p icmp -m icmp --icmp-type 8 -j ACCEPT
| -A icmp_packets -p icmp -m icmp --icmp-type 11 -j ACCEPT
| -A tcp_packets -p tcp -m tcp --dport 22 -j allowed
| -A tcp_packets -p tcp -m tcp --dport 25 -j allowed
| -A tcp_packets -p tcp -m tcp --dport 113 -j allowed
| -A tcp_packets -p tcp -m tcp --dport 443 -j allowed
| -A udp_packets -p udp -m udp --sport 53 -j ACCEPT
| -A udp_packets -p udp -m udp --sport 4000 -j ACCEPT
| -A udp_packets -i ppp0 -p udp -m udp --dport 135:139 -j DROP
| -A udp_packets -d 255.255.255.255 -i ppp0 -p udp -m udp --dport 67:68 -j DROP
| COMMIT
| # Completed on Tue May 11 14:45:43 2004
`----

Comme toujours :critiques et commentaires bienvenus :)

Cordialement.


Avatar
TiChou
Dans le message <news:,
*Sebastien Kirche* tapota sur f.c.o.l.configuration :

ensuite ça cafouille sur un «sendto opération non permise» qui
sent le problème iptables (?)


Pour le problème d'iptables, il s'agit sûrement d'une règle qui filtre
le trafic sur l'interface loopback en fonction de l'adresse source.
Un extrait de tes règles iptables pour régler ce problème éventuellement
?


Bon, maintenant ping falbala résoud l'adresse locale (avec son fqdn)
vers l'adresse attribuée à eth1 (192.168.0.1 -> réseau local). Bizarre ?

Par contre un ping de l'adresse publique échoue sur l'erreur de sendto.

À priori tout le traffic sur lo est autorisé. Mais je peux me tromper

route indique ceci :


[...]

Il ne s'agit pas d'un problème de route.

Puis en déduire que l'interface défectueuse pour iptables est ppp0 et
non lo ?


Non.

Pour la configuration netfilter, je vais ajouter la sortie d'iptable-
save à l afin de ce fichier, ce n'est pas si gros.


[...]

??? et comment dnsmasq est informé des dns du fai ?


Suffit de lui indiquer les serveurs DNS du FAI dans sa configuration.

- On laisse finallement l'option usepeerdns dans la configuration de
pppd.
- On empêche que les scripts de la Debian modifient le fichier
/etc/resolv.conf :

$ chmod -x /etc/ppp/ip-up.d/{*dns*,*resolv*}


Mais alors, comment les "nameserver xx.xx.xx.xx" du fai vont-il
s'ajouter à la config réseau ? C'est justement le script 0000usepeerdns
qui s'en charge ? Ou si je comprends, je les ajoute à la main mais
dans ce cas le réglage n'est plus dynamique à la négociation ppp...


Dans ma première réponse il fallait effectivement configurer à la main les
serveurs DNS, en sachant que c'est très rare qu'un FAI change les adresses
de ses serveurs DNS.
Mais dans ma deuxième réponse il n'y a rien à faire de particulier, il
suffit juste de mettre l'option 'resolv-file=/etc/ppp/resolv.conf' dans la
configuration de dnsmasq et ce dernier ira lire automatiquement le fichier
/etc/ppp/resolv.conf qui est créé par pppd lors de la négociation ppp.
Quant au script 0000usepeerdns, il ne fait que copier le contenu du fichier
/etc/ppp/resolv.conf dans le fichier /etc/resolv.conf.

- On renseigne le fichier /etc/resolv.conf comme précédement :

domain votredomain.tld # optionnel
nameserver 127.0.0.1

- On utilise l'option 'resolv-file=/etc/ppp/resolv.conf' dans la
configuration de dnsmasq.

C'est d'ailleurs à très peu de chose près la procédure indiquée par la
documentation de dnsmasq.


Que j'ai trouvée assez légère en dehors du dnsmasq.conf fourni (et c'est
un euphémisme).


Elle est légère parce qu'il n'y a rien de plus à faire ou à comprendre.
C'est là toute la puissance de dnsmasq. Il offre un tas de possibilités que
d'ailleurs d'autres ne proposent même pas, il est léger (28ko compressé avec
upx alors qu'il faut compter 800ko pour le couple bind+dhcpd) et sa
configuration est simple.

Bon pour info, voici mon réglage netfilter :


[...]

|> -A PREROUTING -s 195.25.216.129 -p tcp -m tcp --dport 443 -j REDIRECT

hehe ;-)

|> -A INPUT -i lo -j ACCEPT

Ici on permet à tout trafic d'entrer sur l'interface lo, sans filtrage sur
les adresses IP et sur le protocole.

|> -A OUTPUT -s 127.0.0.1 -j ACCEPT
|> -A OUTPUT -s 192.168.0.1 -j ACCEPT
|> -A OUTPUT -o ppp0 -j ACCEPT

Mais ici on n'accepte en sortie que le trafic local ayant pour IP source
127.0.0.1 ou 192.168.0.1. Donc un ping en local sur l'IP publique sera
accepté en entrée par la précédente règle mais la réponse à ce ping sera
bloquée en sortie.
Il faudrait filtrer le trafic non pas (seulement) en fonction des adresses
IP sources mais en fonction des interfaces.
Mais ensuite c'est une question de point de vue. Doit-on accepter sur
l'interface lo que du trafic initié par la plage d'IP 127.0.0.0/8 ou
accepte-t-on quand même le trafic local initié sur les autres adresses IP du
système ?

Bref, si tuu veux accepter tout le trafic sur l'interface lo :

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

Ainsi, un ping sur les adresses IP publique et privée sera possible.

Comme toujours :critiques et commentaires bienvenus :)


Sur le reste des règles, il me semble que c'est cohérent.

--
TiChou



Avatar
Sebastien Kirche
On 11 May 2004, TiChou wrote:

route indique ceci :


[...]

Il ne s'agit pas d'un problème de route.


Bon.


Puis en déduire que l'interface défectueuse pour iptables est ppp0 et
non lo ?


Non.


Bon aussi (au vu de ce qui suit). Ça me prouve que j'ai encore à apprendre
sur le réseau.

??? et comment dnsmasq est informé des dns du fai ?


Suffit de lui indiquer les serveurs DNS du FAI dans sa configuration.



Ok.

Mais alors, comment les "nameserver xx.xx.xx.xx" du fai vont-il
s'ajouter à la config réseau ? C'est justement le script 0000usepeerdns
qui s'en charge ? Ou si je comprends, je les ajoute à la main mais
dans ce cas le réglage n'est plus dynamique à la négociation ppp...


Dans ma première réponse il fallait effectivement configurer à la main les
serveurs DNS, en sachant que c'est très rare qu'un FAI change les adresses
de ses serveurs DNS. Mais dans ma deuxième réponse il n'y a rien à faire
de particulier, il suffit juste de mettre l'option
'resolv-file=/etc/ppp/resolv.conf' dans la configuration de dnsmasq et ce
dernier ira lire automatiquement le fichier /etc/ppp/resolv.conf qui est
créé par pppd lors de la négociation ppp. Quant au script 0000usepeerdns,
il ne fait que copier le contenu du fichier /etc/ppp/resolv.conf dans le
fichier /etc/resolv.conf.


Ah, j'avais raté la différence entre /etc/resolv.conf et
/etc/ppp/resolv.conf.

Bon, j'essaie ça ce soir. Pas trop envie pour le moment car je ne voudrais
pas couper la branche sur laquelle je suis assis :)

C'est d'ailleurs à très peu de chose près la procédure indiquée par la
documentation de dnsmasq.


Que j'ai trouvée assez légère en dehors du dnsmasq.conf fourni (et c'est
un euphémisme).


Elle est légère parce qu'il n'y a rien de plus à faire ou à
comprendre. C'est là toute la puissance de dnsmasq. Il offre un tas de
possibilités que d'ailleurs d'autres ne proposent même pas, il est léger
(28ko compressé avec upx alors qu'il faut compter 800ko pour le couple
bind+dhcpd) et sa configuration est simple.


Bien, ça m'arrangerait bien d'arriver à faire fonctionner ça. bind/dhcpd
était mon plan B mais sur ma configuration perso ça tient du canon à mouches.


|> -A PREROUTING -s 195.25.216.129 -p tcp -m tcp --dport 443 -j REDIRECT

hehe ;-)


M'enfin ?!? ;)
C'était une bonne idée. Meilleure en tout cas que «port 22» dans sshd_config
de mon point de vue.


|> -A INPUT -i lo -j ACCEPT

Ici on permet à tout trafic d'entrer sur l'interface lo, sans filtrage sur
les adresses IP et sur le protocole.

|> -A OUTPUT -s 127.0.0.1 -j ACCEPT
|> -A OUTPUT -s 192.168.0.1 -j ACCEPT
|> -A OUTPUT -o ppp0 -j ACCEPT

Mais ici on n'accepte en sortie que le trafic local ayant pour IP source
127.0.0.1 ou 192.168.0.1. Donc un ping en local sur l'IP publique sera
accepté en entrée par la précédente règle mais la réponse à ce ping sera
bloquée en sortie. Il faudrait filtrer le trafic non pas (seulement) en
fonction des adresses IP sources mais en fonction des interfaces. Mais
ensuite c'est une question de point de vue. Doit-on accepter sur
l'interface lo que du trafic initié par la plage d'IP 127.0.0.0/8 ou
accepte-t-on quand même le trafic local initié sur les autres adresses IP
du système ?

Bref, si tuu veux accepter tout le trafic sur l'interface lo :

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

Ainsi, un ping sur les adresses IP publique et privée sera possible.


Vu. Je teste ça aussi dès ce soir.


Comme toujours :critiques et commentaires bienvenus :)


Sur le reste des règles, il me semble que c'est cohérent.


Ça n'est pas de moi. Mais j'ai personnalisé et je pense avoir saisi
l'ensemble. Enfin presque :)

Le script qui génère ça est assez bien foutu mais pas adapté à Debian (p.ex
echo 1> /proc/sys/net/ipv4/ip-forward alors que sur Debian, il faut dire
"yes" dans le bon fichier de /etc/defaults)

Je m'en sers pour modifier les règles et je sauve ensuite via
«/etc/init.d/iptables save active»

Sébastien Kirche



1 2