Probleme connexion IRC (timed out)

Bonjour a tous,

Quelque soit le client IRC que j’utilise (teste xchat, quassel et chatzilla), il m’est impossible de me connecter sur IRC. J’utilise Debian Squeeze am64. Sur la meme machine avec la meme connexion, le tout marche sous Ubuntu 12.04.

Typiquement ce que j’obtiens avec Quassel :

[20:09:15] * Connecting to irc.ubuntu.org:6667
[20:10:20] * Connection failure: Connection timed out
[20:10:20] * Connection failed. Cycling to next Server
[20:10:20] * Connecting to irc.debian.org:6667
[20:13:20] * Connection failure: Connection timed out
[20:14:20] * Connection failed. Cycling to next Server
[20:14:20] * Connecting to irc.ubuntu.org:6667
[20:15:25] * Connection failure: Connection timed out
[20:16:25] * Connection failed. Cycling to next Server
[20:16:25] * Connecting to irc.debian.org:6667
[20:19:25] * Connection failure: Connection timed out
[20:20:25] * Connection failed. Cycling to next Server
[20:20:25] * Connecting to irc.ubuntu.org:6667
[20:21:31] * Connection failure: Connection timed out
[20:22:31] * Connection failed. Cycling to next Server

Comment savoir ce qui ne va pas ?

Un firewall très restrictif peut-être ? Que te renvoie iptables -S ?

-P INPUT DROP
-P FORWARD DROP
-P OUTPUT DROP
-N INBOUND
-N LOG_FILTER
-N LSI
-N LSO
-N OUTBOUND
-A INPUT -s 10.0.1.20/32 -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -j ACCEPT 
-A INPUT -s 10.0.1.20/32 -p udp -j ACCEPT 
-A INPUT -s 10.0.1.21/32 -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -j ACCEPT 
-A INPUT -s 10.0.1.21/32 -p udp -j ACCEPT 
-A INPUT -i lo -j ACCEPT 
-A INPUT -p icmp -m limit --limit 10/sec -j ACCEPT 
-A INPUT -d 255.255.255.255/32 -i eth0 -j DROP 
-A INPUT -d 10.0.1.255/32 -j DROP 
-A INPUT -s 224.0.0.0/8 -j DROP 
-A INPUT -d 224.0.0.0/8 -j DROP 
-A INPUT -s 255.255.255.255/32 -j DROP 
-A INPUT -d 0.0.0.0/32 -j DROP 
-A INPUT -m state --state INVALID -j DROP 
-A INPUT -f -m limit --limit 10/min -j LSI 
-A INPUT -i eth0 -j INBOUND 
-A INPUT -j LOG_FILTER 
-A INPUT -j LOG --log-prefix "Unknown Input" --log-level 6 
-A FORWARD -p icmp -m limit --limit 10/sec -j ACCEPT 
-A FORWARD -j LOG_FILTER 
-A FORWARD -j LOG --log-prefix "Unknown Forward" --log-level 6 
-A OUTPUT -s 10.0.1.183/32 -d 10.0.1.20/32 -p tcp -m tcp --dport 53 -j ACCEPT 
-A OUTPUT -s 10.0.1.183/32 -d 10.0.1.20/32 -p udp -m udp --dport 53 -j ACCEPT 
-A OUTPUT -s 10.0.1.183/32 -d 10.0.1.21/32 -p tcp -m tcp --dport 53 -j ACCEPT 
-A OUTPUT -s 10.0.1.183/32 -d 10.0.1.21/32 -p udp -m udp --dport 53 -j ACCEPT 
-A OUTPUT -o lo -j ACCEPT 
-A OUTPUT -s 224.0.0.0/8 -j DROP 
-A OUTPUT -d 224.0.0.0/8 -j DROP 
-A OUTPUT -s 255.255.255.255/32 -j DROP 
-A OUTPUT -d 0.0.0.0/32 -j DROP 
-A OUTPUT -m state --state INVALID -j DROP 
-A OUTPUT -o eth0 -j OUTBOUND 
-A OUTPUT -j LOG_FILTER 
-A OUTPUT -j LOG --log-prefix "Unknown Output" --log-level 6 
-A INBOUND -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT 
-A INBOUND -p udp -m state --state RELATED,ESTABLISHED -j ACCEPT 
-A INBOUND -j LSI 
-A LSI -j LOG_FILTER 
-A LSI -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -m limit --limit 1/sec -j LOG --log-prefix "Inbound " --log-level 6 
-A LSI -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j DROP 
-A LSI -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK RST -m limit --limit 1/sec -j LOG --log-prefix "Inbound " --log-level 6 
-A LSI -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK RST -j DROP 
-A LSI -p icmp -m icmp --icmp-type 8 -m limit --limit 1/sec -j LOG --log-prefix "Inbound " --log-level 6 
-A LSI -p icmp -m icmp --icmp-type 8 -j DROP 
-A LSI -m limit --limit 5/sec -j LOG --log-prefix "Inbound " --log-level 6 
-A LSI -j DROP 
-A LSO -j LOG_FILTER 
-A LSO -m limit --limit 5/sec -j LOG --log-prefix "Outbound " --log-level 6 
-A LSO -j REJECT --reject-with icmp-port-unreachable 
-A OUTBOUND -p icmp -j ACCEPT 
-A OUTBOUND -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT 
-A OUTBOUND -p udp -m state --state RELATED,ESTABLISHED -j ACCEPT 
-A OUTBOUND -j ACCEPT 

Ben voilà, on dirait bien que tu l’as ta réponse… Et vu la tête de ton firewall je ne pense pas avoir besoin de t’expliquer quoi faire ni comment le faire. :wink:

Je ne connais pas du tout iptables pour etre honnete. Un petit coup de main pour identifier et surtout comprendre la solution serait le bienvenu :smiley:

Merci :smiley:

Je ne connais pas du tout iptables pour etre honnete. Un petit coup de main pour identifier et surtout comprendre la solution serait le bienvenu :smiley:

Merci :smiley:[/quote]

Il vient de où le tient dans ce cas là :think:

Firestarter maybe ?

One of the IT guys at my lab tweaked my default install using Firestarter, but it did not make my problem go away unfortunately.

Euh… :open_mouth: Avec des règles aussi spécifiques, il a bien fallu les mettre en place. Tu as fais comment ?
Sinon sur le principe, tu es en OUTPUT DROP et le port 6667 n’est ouvert nulle part donc il faut juste l’ouvrir en sortie. Mais la manière précise de le faire va dépendre de la manière dont tu gères ton firewall habituellement…

Edit :

Oui probablement, ça expliquerait les règles exotiques. Malheureusement je ne connais pas Firestarter, donc je vais pas pouvoir t’aider beaucoup plus que simplement te dire “ouvrir le port 6667 en sortie”.

[quote=“gigix”]Firestarter maybe ?

One of the IT guys at my lab tweaked my default install using Firestarter, but it did not make my problem go away unfortunately.[/quote]

Ooops desole pour la reponse en Anglais, avec l’habitude du boulot. C’est pas tres poli.

Ok donc c’est bien mon iptables qui bloque tout. Je vais donc essayer d’en lire un peu plus sur le sujet et ensuite de defaire ce que Firestarter a fait. Je suppose que la configuration d’iptables est specifique a la machine et qu’il n’y a pas moyen de creer un default comme lors de l’installation si ?

Bah le firewall post-installation est simple, il se limite à tout accepter :

-P INPUT ACCEPT -P FORWARD ACCEPT -P OUTPUT ACCEPT
Bref, il est pas très utile. :mrgreen:

Un firewall un poil moins inutile consiste à n’autoriser que les connexions sortantes (mais sans distinction) :

-P INPUT DROP -P FORWARD DROP -P OUTPUT ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT ! -i lo -d 127.0.0.0/8 -j DROP -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -A INPUT -m state ! --state NEW -j DROP -A INPUT -p tcp ! --syn -j DROP
Mais avant de te lancer là-dedans il faudrait déjà savoir si tes règles actuelles sont réellement utiles ou non.

Les règles iptables en place ne sont pas simples à lire mais à moins que j’aie raté quelque chose il me semble qu’elles ne devraient pas bloquer les connexions sortantes. Je vois notamment :

pour tout accepter en sortie, et

-A INBOUND -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT -A INBOUND -p udp -m state --state RELATED,ESTABLISHED -j ACCEPT
pour accepter les retours de connexions sortantes TCP et UDP.

En tout cas je ne vois aucune règle spécifique pour des ports particuliers à l’exception du DNS, or je suppose que les connexions autres qu’IRC (web notamment) fonctionnent.

Mais la première chose à faire, c’est bien sûr de tout désactiver pour vérifier si le problème vient bien de là.

[quote=“PascalHambourg”]Les règles iptables en place ne sont pas simples à lire mais à moins que j’aie raté quelque chose il me semble qu’elles ne devraient pas bloquer les connexions sortantes.
[…]
En tout cas je ne vois aucune règle spécifique pour des ports particuliers à l’exception du DNS, or je suppose que les connexions autres qu’IRC (web notamment) fonctionnent.[/quote]
Hmm tu as raison comme toujours (allez, on va plutôt dire “souvent” histoire de t’éviter de me reprendre :wink:). Ça m’apprendra à lire en diagonale. :blush:

Ok je pense que je commence a piger comment iptables est foutu. Du coup, je l’ai remis en config d’origine “passe tout”, sauvegarde le tout puis effectue un reboot. Maintenant j’obtiens:

sudo iptables -S
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT

Par contre mon probleme d’irc persiste, chatzilla ne se connecte pas, xchat me donne:

 Tcl plugin for XChat - Version 1.64 
 Copyright 2002-2005 Daniel P. Stasinski
 http://www.scriptkitties.com/tclplugin/
 Tcl interface loaded
 Perl interface loaded
 Python interface loaded
* Looking up irc.ubuntu.com
* Connecting to chat.freenode.net (140.211.167.98) port 6667...
* Connection failed. Error: Network is unreachable
 Cycling to next server in Ubuntu Servers...
* Disconnected ().
* Looking up irc.ubuntu.com
* Connecting to chat.freenode.net (130.239.18.172) port 6667...
* Connection failed. Error: Network is unreachable
 Cycling to next server in Ubuntu Servers...
* Disconnected ().
* Looking up irc.ubuntu.com
* Connecting to chat.freenode.net (89.16.176.16) port 6667...

c la meme avec " ne peut établir de connexion avec le serveur à l’adresse www.debian-fr.org:8001.

ca viens pas du FW

Gni ?

[Correction de ma réponse initiale]
En effet, l’erreur “Network is unreachable” indique normalement l’absence de route pour la destination, soit sur la machine source soit sur un routeur intermédiaire. La cible REJECT d’iptables peut bloquer un paquet en renvoyant le même message d’erreur, mais l’option correspondante --reject-with icmp-net-unreachable n’était pas utilisée dans les règles ci-dessus.

Contenu de la table de routage ?
Résultat de traceroute vers ces serveurs (laisser tourner jusqu’à l’erreur !N pour voir quelle adresse envoie ce message) ou d’une capture de paquets lors des tentatives de connexion ?

[quote=“PascalHambourg”][quote=“Grhim”]c la meme avec " ne peut établir de connexion avec le serveur à l’adresse
Contenu de la table de routage ?
Résultat de traceroute vers ces serveurs (laisser tourner jusqu’à l’erreur !N pour voir quelle adresse envoie ce message) ou d’une capture de paquets lors des tentatives de connexion ?[/quote][/quote]

Desole Pascal, mais je n’ai absolument rien compris a ce que tu me demandes de faire. Pour info, il m’a ete demande de regarder mon dmesg pour verifier si y’avait des rejets provenenant de mon Firewall. Malheureusement rien de tout ca.

La discussion sur Debian User Forum: forums.debian.net/viewtopic.php? … 95#p444195

[code]# table de routage
route -n

ou bien

ip route

traceroute

traceroute irc.ubuntu.com[/code]