OVH Cloud OVH Cloud

Déconnexion modem adsl

3 réponses
Avatar
Khanh-Dang
Bonjour,

j'ai un système faisant tourner un noyau linux 2.6 et qui fait office de
routeur. La machine possède principalement les interfaces réseau lo,
ppp0 (la connexion ADSL), eth1 (le réseau interne). Les connexions des
machines du réseau interne sont NATées par cette machine, que
j'appelerais « routeur » par la suite.

Le problème réside dans la connexion ADSL. Le fournisseur d'accès dont
je dispose me déconnecte toute les 24h (oui, oui, je sais, mauvais
fournisseur, changer de fournisseur, tout ça ;-). La déconnexion au
niveau physique peut aussi se faire quand je débranche involontairement
le câble.

Mais quand il y a déconnexion au niveau physique, les connexions TCP
routeur/internet et machine_réseau_interne/internet persistent, ce qui
n'est pas la panacée.

J'aimerais donc couper ces connexions TCP, ce qui se fait techniquement
en envoyant un paquet RST forgé (par exemple). J'ai pensé à des outils
tels que hping qui servent à générer de tels paquets. Je pense qu'un
script bien écrit combinant par exemple netstat, netstat-nat et hping
pourrait permettre de parvenir à mes fins.

Mais n'y a-til pas des outils ou techniques plus appropriés pour faire
ce que je voudrais ? Le noyau contiendrait-il déjà une telle
fonctionnalité ?

Merci par avance pour vos réponses,

Khanh-Dang

3 réponses

Avatar
Khanh-Dang
Mais quand il y a déconnexion au niveau physique, les connexions TCP
routeur/internet et machine_réseau_interne/internet persistent

J'aimerais donc couper ces connexions TCP, ce qui se fait techniquement
en envoyant un paquet RST forgé (par exemple).


On m'a soufflé ailleurs (merci kolter) que je pouvais lancer un
"apt-cache search close tcp", ce qui m'amène à découvrir un programme
appelé cutter, dont la page de projet est ici :
<http://www.lowth.com/cutter/>.

Avatar
Pascal
Salut,

Je ne t'apporte pas de solution mais juste quelques réflexions.


j'ai un système faisant tourner un noyau linux 2.6 et qui fait office de
routeur. La machine possède principalement les interfaces réseau lo,
ppp0 (la connexion ADSL), eth1 (le réseau interne). Les connexions des
machines du réseau interne sont NATées par cette machine, que
j'appelerais « routeur » par la suite.

Le problème réside dans la connexion ADSL. Le fournisseur d'accès dont
je dispose me déconnecte toute les 24h (oui, oui, je sais, mauvais
fournisseur, changer de fournisseur, tout ça ;-).


La déconnexion quotidienne n'est pas mauvaise en soi si la reconnexion
est rapide. Ce qui est mauvais, c'est le changement d'adresse IP qui
s'ensuit car toutes les communications en cours sont perdues. Avec une
adresse IP fixe, les déconnexions-reconnexions sont quasi-transparentes.

La déconnexion au
niveau physique peut aussi se faire quand je débranche involontairement
le câble.


La déconnexion des 24h n'est pas du tout au niveau physique mais au
niveau PPP avec un paquet LCP de terminaison. C'est une déconnexion
"propre" immédiatement détectée puisque signalée à pppd, donc la
reconnexion peut être rapide. Débrancher le câble provoque une
déconnexion sale qui ne peut être détectée par pppd que par un time-out
d'echo LCP.

Mais quand il y a déconnexion au niveau physique, les connexions TCP
routeur/internet et machine_réseau_interne/internet persistent, ce qui
n'est pas la panacée.


Si tu NATes les machines du réseau local avec MASQUERADE, les connexions
en cours dans la table de suivi de connexion sont censées être effacées
quand l'interface tombe (cf. man iptables). Il y avait d'ailleurs dans
l'ancien patch-o-matic de Netfilter un patch soumis pour inclusion dns le
noyau officiel nommé masquerade-sameip-noflush.patch qui faisait que les
connexions n'étaient effacées qu'à la reconnexion si l'adresse IP avait
changé. (Techniquement, ça ne doit pas être évident du tout)

D'autre part, tout paquet émis par une machine du réseau local sur une
connexion TCP établie précédemment avec l'ancienne adresse IP devrait
provoquer l'envoi par la machine en face d'un TCP reset en réponse.

J'aimerais donc couper ces connexions TCP, ce qui se fait techniquement
en envoyant un paquet RST forgé (par exemple).


Pense que ce ne sera pas forcément possible vers la machine distante. Le
paquet devra être envoyé avec l'ancienne adresse IP, et certains FAI
bloquent l'envoi de paquets avec une adresse source spoofée.

--
Pascal
Vous pouvez me tutoyer.
Piège à spam (pour test) :
Annonce désespérée : cherche doc onduleur Merlin Gerin Pulsar S4. Merci.

Avatar
Kevin Denis
On 2005-04-18, Khanh-Dang wrote:
Mais quand il y a déconnexion au niveau physique, les connexions TCP
routeur/internet et machine_réseau_interne/internet persistent

J'aimerais donc couper ces connexions TCP, ce qui se fait techniquement
en envoyant un paquet RST forgé (par exemple).


On m'a soufflé ailleurs (merci kolter) que je pouvais lancer un
"apt-cache search close tcp", ce qui m'amène à découvrir un programme
appelé cutter, dont la page de projet est ici :
<http://www.lowth.com/cutter/>.


Ca me fait penser au projet "couic" (Cut-Off Unwanted Ip Connection)
http://michel.arboi.free.fr/couic.html
--
Kevin