Forum général.général Serveur linux qui ne communique plus : no route to host

Posté par  .
Étiquettes :
0
10
juin
2007
Bonjour,

Je fais appel à vous, car je suis désespéré, je ne sais plus où chercher...
Suite à un redémarrage de mon serveur linux (sous fedora core 3), plus rien ne fonctionne vu de l'extérieur du serveur en lui même...

Par exemple, si je fais >ftp localhost = OK, mais si je fais ça d'un autre PC de mon réseau local >ftp 192.168.0.23 = no route to host.

Tout fonctionne très bien sur mon serveur, mais aucuns PC n'arrive à accéder à ses services (FTP, HTTP, MAIL), ils se ping tous très bien pourtant...

Voici un test que j'ai effectué, ça peut aider = j'ai écouté le port 80 pour voir la réponse de mon serveur, voici le résultat :

$ sudo tcpdump -ttt -i wlan0 tcp port 80
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on wlan0, link-type EN10MB (Ethernet), capture size 96 bytes
000000 IP marmotte.lan.48805 > 192.168.0.23.www: S 1088531812:1088531812(0) win 5840 <mss 1460,sackOK,timestamp 482833 0,nop,wscale 2>
4. 768548 IP marmotte.lan.48806 > 192.168.0.23.www: S 1085645181:1085645181(0) win 5840 <mss 1460,sackOK,timestamp 484025 0,nop,wscale 2>

marmotte.lan = PC portable
192.168.0.23 = mon serveur

Quelqu'un comprend la réponse?

Merci pour votre aide, je n'ai plus rien qui fonctionne, je n'ai meme plus accès à mes données et à mes mails :(
  • # n

    Posté par  . Évalué à 1.

    route -n ?
    iptables --list ?
    • [^] # Re: n

      Posté par  . Évalué à 1.

      Merci, c'est vrai qu'il faut que je regarde ça.
      (ce soir, car j'ai plus d'accès à distance ducoup)

      Mais c'est vrai que j'ai vraiment l'impression que mon serveur bloque tout, car je peux facilement me connecter en ssh de mon serveur sur un PC distant...
    • [^] # Re: n

      Posté par  . Évalué à 1.

      Ci-dessous, les résultats.

      Je précise que j'ai toujours laissé la configuration de base pour cela, je n'utilise pas ce serveur comme firewall, d'ailleurs, je ne connais pas vraiment les commandes d'iptables, est-ce que quelque chose bloque ici?

      Merci beaucoup.

      >route -n

      Table de routage IP du noyau
      Destination Passerelle Genmask Indic Metric Ref Use Iface
      192.168.1.2 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
      192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
      169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
      127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
      0.0.0.0 192.168.0.254 0.0.0.0 UG 0 0 0 eth0

      >iptables --list

      Chain INPUT (policy ACCEPT)
      target prot opt source destination
      RH-Firewall-1-INPUT all -- anywhere anywhere

      Chain FORWARD (policy ACCEPT)
      target prot opt source destination
      RH-Firewall-1-INPUT all -- anywhere anywhere

      Chain OUTPUT (policy ACCEPT)
      target prot opt source destination

      Chain RH-Firewall-1-INPUT (2 references)
      target prot opt source destination
      ACCEPT all -- anywhere anywhere
      ACCEPT icmp -- anywhere anywhere icmp any
      ACCEPT ipv6-crypt-- anywhere anywhere
      ACCEPT ipv6-auth-- anywhere anywhere
      ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
      REJECT all -- anywhere anywhere reject-with icmp-host-prohibited
      • [^] # Re: n

        Posté par  . Évalué à 1.

        T'as pas de NAT sur le réseau ?
        >> 0.0.0.0 192.168.0.254 0.0.0.0 UG 0 0 0 eth0

        Donc:
        route del default dev eth0

        Par ailleurs, les règles iptables servent pas à grand chose !
        > ACCEPT all -- anywhere anywhere
        • [^] # Re: n

          Posté par  . Évalué à 1.

          Si mon serveur est branché sur un routeur NAT comme tous mes PC ;)

          Internet
          ---- Routeur = 192.168.0.254
          -------- Serveur = 192.168.0.23
          -------- PC fixe = 192.168.0.1

          Je fais la route kan même?

          Pour iptables, je ne l'ai jamais modifié, cela doit être les valeurs par défaut de FC3.
      • [^] # Re: n

        Posté par  . Évalué à 1.

        On pas par ailleusr les @ de ton réseau local.
        Aucune de tes routes ne référence une interface sans fil..
        c'est pas clair
        • [^] # Re: n

          Posté par  . Évalué à 1.

          Je comprend pas trop ce que tu veux dire par là?

          Pour l'interface sans fil, c'est mon PC portable qui est dessus, c'est un PA qui est branché sur mon routeur :

          Internet
          |---- Routeur = 192.168.0.254
          |----|---- Serveur = 192.168.0.23
          |----|---- PC fixe = 192.168.0.1
          |----|---- PA WIFI = 192.168.0.253
          |----|----|---- PC portable = 192.168.10.153

          Mais oublions l'interface sans fil, j'obtiens la même chose de mon PC fixe directement en eth...
          • [^] # Re: n

            Posté par  . Évalué à 2.

            A priori ca n'a pas l'air d'etre un probleme de route du coté de ton serveur. En plus s'ils se ping, peu de chance que ca vienne de la.
            Ton firewall à l'air OK il laisse bien tout passer, ca ne vient donc pas de la non plus.

            Essaye de voir dans ce que recoit le serveur comme données, et ce qu'il pourrait renvoyer (à coup de tcpdump, sans filtrer les ports / protocoles)

            S'il recoit les données mais ne renvoie rien, il est possible que tu ais interit les requetes exterieures à interroger tes services. Regarde dans les conf, dans ton /etc/hosts.deny etc..

            Si tu vois rien, essaye de te voir ce que donne une connexion de ton serveur vers lui meme sur l'interface de loopback avec une adresse IP exterieure (le plus simple c'est de capturer les paquets emis sur une machine (tcpdump -i wlan -w myDump.pcap tcp port 80), et de les rejouer avec tcpreplay tcpreplay -i lo myDump.pcap

            Et regarde ce qu'il se passe sur ton loopback et sur eth0 (la ou en théorie il devrait renvoyer une réponse). S'il répond pas, c'est un probleme de config et re vérifie tes config de serveurs, si il répond.. la je vois pas, mais ca donnera une piste de réflexion :)
            • [^] # Re: n

              Posté par  . Évalué à 1.

              Rien du coté des hotes interdits.

              Vais tenter de m'amuser avec tcpdump, mais, au fait, comment reconnaitre vraiment les réponses que pourrais faire mon serveur?

              On est bien d'accord que cela ne peut pas être un problème matériel?
          • [^] # Re: n

            Posté par  . Évalué à 1.

            "ils se ping tous très bien": uniquement les hosts ? les hosts vers le serveur ? l'inverse ?

            httpd.conf non modifié ? (ecoute sur une @ différente)

            Si tu :
            route add -host 192.168.0.1 dev eth0
            sur le serveur, réponse du host ?


            Si le serveur ne ping pas vers les hosts, sur le serveur,
            -> arp
            les @ MAC sont bien celles des des hosts ?
            • [^] # Re: n

              Posté par  . Évalué à 1.

              Merci pour vos réponses, je vais essayer d'approfondir ça ce soir...

              fcartegnie > Effectivement tous se ping très bien (host->server, server->host).
              Mon httpd.conf n'a pas été modifié.

              Si je :
              route add -host 192.168.0.1 dev eth0
              Qu'est ce que cela doit faire normalement?


              Je rappel que tout ceci m'est arrivé simplement après un redémarrage, juste avant, tout ces services fonctionnaient :

              - Serveur WEB : apache, mysql, php ...
              - Serveur MAIL : postfix, dovecot, ...
              - Serveur FTP : proftpd
              - Serveur de fichiers : samba et nfs
              - Serveur SSH

              Depuis, tous ces services ne me sont accessible qu'en localhost...
              • [^] # Re: n

                Posté par  . Évalué à 1.

                Une route statique ne fera pas grand chose de plus, car tu as déjà une route pour ce réseau.
                Par contre, ne laisser que cette route statique peut aider à dégrossir le problème, tant qu'on a pas d'info sur tes entrées arp.
                (Ce qui est possible, c'est que les réponses au ping ne soient pas celles de ton serveur, mais celles de ta passerelle...)

                Coté apache, laisse tomber ( j'ai relu ) si le local et le serveur ftp marche, c'est pas ca.
                • [^] # Re: n

                  Posté par  . Évalué à 1.

                  Ma table arp fonctionne bien pour les réponses du ping.

                  Je viens de faire plusieurs tests avec tcpdump, qui me permette de conclure que mon serveur ne répond à aucunes demandes, mais les reçoit bien.

                  Exemple avec le serveur WEB, port 80 :
                  (source = BOT live.com)

                  > tcpdump -ttt -i eth0 tcp port 80

                  000000 IP livebot-65-55-210-63.search.live.com.15939 > 192.168.0.23.http: S 3911052111:3911052111(0) win 65535 <mss 1460,nop,nop,sackOK>
                  11. 922363 IP livebot-65-55-210-63.search.live.com.16251 > 192.168.0.23.http: S 76242683:76242683(0) win 65535 <mss 1460,nop,nop,sackOK>
                  3. 061209 IP livebot-65-55-210-63.search.live.com.16251 > 192.168.0.23.http: S 76242683:76242683(0) win 65535 <mss 1460,nop,nop,sackOK>
                  5. 906171 IP livebot-65-55-210-63.search.live.com.16251 > 192.168.0.23.http: S 76242683:76242683(0) win 65535 <mss 1460,nop,nop,sackOK>


                  Je suis en train d'être scanné par un BOT de live.com (en cours dé référencement), on voit bien que mon serveur ne répond pas à ces requetes.


                  Exemple avec le serveur FTP, port 21 :
                  (source = PC fixe 192.168.0.1 (dahu))

                  > tcpdump -ttt -i eth0 tcp port 21

                  000000 IP dahu.54246 > 192.168.0.23.ftp: S 3850633217:3850633217(0) win 5840 <mss 1460,sackOK,timestamp 42974142 0,nop,wscale 2>


                  On voit qu'il n'y a pas de réponse, d'ailleurs, la demande est immédiatement rejetée sur mon PC fixe par : ftp: connect: No route to host


                  Exemple avec le serveur SSH, port 22 :
                  (source = PC fixe 192.168.0.1 (dahu))

                  > tcpdump -ttt -i eth0 tcp port 22
                  000000 IP dahu.58940 > 192.168.0.23.ssh: S 3959785007:3959785007(0) win 5840 <mss 1460,sackOK,timestamp 42999314 0,nop,wscale 2>


                  On voit qu'il n'y a pas de réponse, d'ailleurs, la demande est immédiatement rejetée également sur mon PC fixe par : ssh: connect to host 192.168.0.23 port 22: No route to host


                  J'aimerais simplement comprendre pourquoi pour résoudre cela...
                  Merci pour votre aide.
                  • [^] # Re: n

                    Posté par  . Évalué à 1.

                    Plus d'idées?
                    • [^] # Re: n

                      Posté par  . Évalué à 1.

                      tcpdump ICMP du serveur (pour voir si c'est lui qui envoie le ICMP reject)

                      Sinon une recherche gogole suppose que le eject est bien effectué par le firewall.
                      http://www.linuxforums.org/forum/redhat-fedora-linux-help/36(...)
                      Si c'est bien le cas, on aurait gagné du temps avec un listing iptables avec interfaces :(
                      -> iptables --list -v
                      • [^] # Re: n

                        Posté par  . Évalué à 1.

                        En effet, mon serveur a l'air d'envoyer le rejet ICMP :

                        000000 IP 192.168.0.23 > 192.168.0.254: icmp 68: host 192.168.0.23 unreachable - admin prohibited



                        -> iptables --list -v

                        Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
                        pkts bytes target prot opt in out source destination
                        297K 95M RH-Firewall-1-INPUT all -- any any anywhere anywhere

                        Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
                        pkts bytes target prot opt in out source destination
                        0 0 RH-Firewall-1-INPUT all -- any any anywhere anywhere

                        Chain OUTPUT (policy ACCEPT 328K packets, 86M bytes)
                        pkts bytes target prot opt in out source destination

                        Chain RH-Firewall-1-INPUT (2 references)
                        pkts bytes target prot opt in out source destination
                        10204 880K ACCEPT all -- lo any anywhere anywhere
                        4374 367K ACCEPT icmp -- any any anywhere anywhere icmp any
                        0 0 ACCEPT ipv6-crypt-- any any anywhere anywhere
                        0 0 ACCEPT ipv6-auth-- any any anywhere anywhere
                        226K 88M ACCEPT all -- any any anywhere anywhere state RELATED,ESTABLISHED
                        56720 5418K REJECT all -- any any anywhere anywhere reject-with icmp-host-prohibited


                        Je ne connais pas iptables, cela ne change pas grand chose par rapport à iptables --list, non?
                        • [^] # Re: n

                          Posté par  . Évalué à 1.

                          La solution c'est soit:
                          iptables -F INPUT

                          soit
                          iptables -t filter -A RH-Firewall-1-INPUT -p tcp -i eth0 --dport 80 -j ACCEPT
                          • [^] # Re: n

                            Posté par  . Évalué à 1.

                            iptables -F INPUT fontionne!!!!

                            Merci!

                            Tu peux m'expliquer maintenant STP?
                            Et comment ceci a pu appartaitre?

                            Merci encore, vraimen!!
                          • [^] # Re: n

                            Posté par  . Évalué à 1.

                            Ca a donc enlever tout ce qui était dans INPUT, et pour le reste, c'est bon?

                            Je viens de fouiner dans mes sauvegardes qui date d'avant ce fameux reboot, j'ai trouvé ça /etc/sysconfig/iptables :


                            *filter
                            :FORWARD ACCEPT [0:0]
                            :INPUT ACCEPT [0:0]
                            :OUTPUT ACCEPT [0:0]
                            COMMIT


                            Je n'avais rien! Comment cela a pu être ajouté?
                          • [^] # Re: n

                            Posté par  . Évalué à 1.

                            Désolé de répondre en masse, mais je voulais encore ajouter quelque chose, dans mon iptables actuel, il est écrit en commentaire :

                            # Firewall configuration written by redhat-config-securitylevel

                            :|
                            • [^] # Re: n

                              Posté par  . Évalué à 1.

                              1 - un flush des regles input set pas grave car ton serveur est uniquement local
                              2 - un upgrade rpm peut remplacer le fichier (selon option) sinon il est placé en .rpmnew
                              3 - c'est donc le security level de redhat a modifier. il risque de reecrire les fichiers a chaque fois sinon
                              • [^] # Re: n

                                Posté par  . Évalué à 1.

                                (*** de clavier)
                                "set pas grave" -> "sera pas grave"
                                y'a evidemment pas d'"input set"
                              • [^] # Re: n

                                Posté par  . Évalué à 1.

                                1 - Ok pour le flush. Mais d'ailleurs, si je n'ai aucunes règles ce n'est pas grave non plus puisque je suis en local?
                                2 - Ok pour l'upgrade, mais je n'en ai pas fait entre temps :/
                                3 - On le change comment ce security level?

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.