Bonjour,
que voilà une bien étrange situation, sur une RHEL4 en noyau 2.6.9
(bon, en fait une scientific linux SL4.3, c'est-à-dire une RHEL4 recompilée) :
- un client A boote, et winbind se connecte à un serveur LDAP B,
- tout fonctionne,
- le client A reboote et la connexion à B échoue lamentablement,
- je relance presque aussitôt winbind sur A, échec de la connexion,
- j'attends quelques minutes, relance winbind, et la connexion se fait.
Explication (mais pas solution) :
- premier démarrage,
- la connexion winbind est la première connexion tcp établie par A,
- le port source est tcp:32770,
- iptables sur le serveur mémorise cette connexion comme active,
- tout fonctionne,
- A redémarre,
- winbind est toujours la première connexion tcp établie par A,
- elle utilise encore (et systématiquement) le port source 32770
(ça me surprend beaucoup, je pensais qu'il y avait un peu
d'aléa dans le choix du port source),
- iptables sur B reçoit donc un SYN venant de A,
- B reconnait ce SYN comme faisant partie de la connexion
établie par A lors de son précédent boot (la session a persisté),
- B renvoie un ACK, et pas un SYN/ACK,
- A reçoit donc un ACK, son iptables se dit "mais c'est quoi ce paquet
pourri qui ne correspond à rien ?" et le jette,
- en conséquence de quoi la connexion échoue.
Bref, c'est un peu déconnant tout ça.
Donc mon problème, c'est : que faire de tout ça ?
Pourquoi toujours le port 32770 comme premier port ?
Pourquoi B associe t'il l'initiation de la seconde connexion à la première connexion ?
# une hypothese
Posté par NeoX . Évalué à 1.
pour le 3°)
B n'a pas vu que A etait deconnecté (timeout ou autre)
du coup quand A se reconnecte, B lui repond "merci tu etais deja connecté" et A ne comprend pas le message car pour lui c'est la premiere connexion.
[^] # Re: une hypothese
Posté par Toto . Évalué à 1.
De mémoire (pas touché a iptables depuis qq tps) ca donnerais un truc dans ce genre
Apres faut voir si wondbind va relancer une demande de connexion apres..
[^] # Re: une hypothese
Posté par dbontemps . Évalué à 1.
iptables -A INPUT -p tcp --syn -m state --state ESTABLISHED,RELATED -j REJECT --reject-with tcp-reset
[^] # Re: une hypothese
Posté par Toto . Évalué à 1.
Apres il faut bien entendu l'adapter a l'exsitant en ajouant le filtrage source / destination etc.
Sinon, pour les autres question, j'ai pas trop de réponse, et c'est vrai que toujours utiliser le meme port source me parait etrange
[^] # Re: une hypothese
Posté par fasthm . Évalué à 2.
j'obtiendrai le résultat que j'ai déjà : fermeture de la connexion de winbind.
Et bien entendu, winbind ne retente pas la connexion.
Mais en fait je me dis que je ferai mieux de me pencher sur un moyen de
relancer winbind tant que ça échoue, plutot que de m'acharner sur iptables.
La gent féminine, pas la "gente", pas de "e" ! La gent féminine ! Et ça se prononce comme "gens". Pas "jante".
[^] # Re: une hypothese
Posté par fasthm . Évalué à 2.
La gent féminine, pas la "gente", pas de "e" ! La gent féminine ! Et ça se prononce comme "gens". Pas "jante".
[^] # Re: une hypothese
Posté par fasthm . Évalué à 2.
que le firewall utilisait plus de paramètres que (machine source, port source) pour
décréter qu'un paquet appartient à une connexion existante.
En fait (mais je n'ai rien sous la main pour vérifier là tout de suite), il utilise peut
être la tcp window pour vérifier que le paquet est bien dedans... mais comme
une unique connexion ldap c'est très peu de traffic, ça doit tomber dedans à
chaque fois.
Bref, je suis bien coincé... que faire, ouvrir un certain nombre de connexions
tcp bidons pour mettre un peu de hasard dans tout ça ? Pour une méthode de
goret, ça c'est une méthode de goret :-)
La gent féminine, pas la "gente", pas de "e" ! La gent féminine ! Et ça se prononce comme "gens". Pas "jante".
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.