Forum Linux.redhat Accès xdmcp

Posté par .
Tags : aucun
-1
20
sept.
2011

Bonjour,

Je tente désespérément d'activer XDMCP sur ma machine sans succès.
Ce sujet est déjà abordé dans de nombreux forums mais aucune des solutions présentées n'a l'air de fonctionner sur ma machine.

Configuration actuelle:

kdm utilisé avec comme configuration

solane@bigbox:~$ cat /etc/kde/kdm/kdmrc

[Xdmcp]
# Whether KDM should listen to incoming XDMCP requests. Default is true
Enable=true
Xaccess=/etc/kde/kdm/Xaccess
Willing=/etc/kde/kdm/Xwilling
DisplaysPerHost=2
HonorIndirect=false
MaxPending=4
MaxSessions=16
MaxWait=30
MaxWaitIndirect=30
PingIntervalSeconds=60
Port=177

[security]
DisallowTCP=true
AllowRemoteRoot=true

solane@bigbox:~$ cat /etc/kde/kdm/Xaccess
[...]
* #any host can get a login window
localhost
[...]

root@bigbox berti]# cat /etc/hosts.allow
ALL: ALL

firewall coupé

[root@bigbox solane]# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

[root@bigbox solane]# netstat -l | grep xdmcp
udp 0 0 :xdmcp *:

selinux coupé

[root@bigbox solane]#cat /selinux/enforce
0

Observations:

Toutes les tentatives de connexion à partir de deux PC externes échouent.
X semble se lancer mais un écran noir apparait (pas de curseur et pas de kdm).
Un des PC externes est sous windows avec cygwin et se connecte très bien à un autre serveur XDMCP.
L'autre est un PC sous ubuntu (X fonctionne correctement dessus).

Si localement je lance
X :1 -query localhost

ça marche (kdm s'affiche)

Si localement je lance
X :1 -query 192.168.1.3
où 192.168.1.3 est l'ip local ça ne marche pas. Mêmes symptômes qu'à distance (écran noir sans curseur). C'est semblable à ce que j'obtiens si je lance "X :1" tout seul.

Questions:

Une idée sur l'origine du problème ?

Quels sont les fichiers de logs qui pourraient fournir une information sur un échec de xdmcp ?

Merci d'avance pour tout aide.

  • # Commentaire inutile

    Posté par . Évalué à 0.

    Je sais vraiment pas comment t'aider. Mais j'adore le nom de "bigbox" :)

  • # DisallowTCP=false ?

    Posté par . Évalué à 2.

    Une piste avec un petit lien : http://www.unixtutorial.org/?s=disallowtcp
    L'article parle de GDM mais le principe doit être le même pour KDM.
    Bonne journée

    • [^] # Re: DisallowTCP=false ?

      Posté par . Évalué à 0.

      J'ai basculé le DisallowTCP à false mais ça ne change rien.

      À noter que j'ai également essayer avec gdm mais que j'ai exactement le même type de problème.

      Auparavant j'étais sous fedora 13, j'ai fini par soupçonner un bug et j'ai upgradé à fedora 15 mais sans succès.

  • # hop

    Posté par . Évalué à 3.

    ça ressemble a un -nolisten tcp dans le lancement de X
    fait un petit rgrep nolisten /etc/sysconfig /etc/X11
    tu devrais pouvoir trouver l'origine de l'option qui fait chier ;)

    Il ne faut pas décorner les boeufs avant d'avoir semé le vent

    • [^] # Re: hop

      Posté par . Évalué à 2.

      Y'a aussi le

      [security]
      DisallowTCP=true
      
      

      qui mériterait de creuser un peu la doc.

      • [^] # Re: hop

        Posté par . Évalué à 0.

        J'ai essayé de le basculer à false mais sans résultat (voir post plus haut).

    • [^] # Re: hop

      Posté par . Évalué à 0.

      Il n'y a pas l'air d'avoir de "nolisten" dans les fichiers de config de relatif à X

      [root@bigbox etc]# grep -R nolisten sysconfig/
      sysconfig/vncservers:# Use "-nolisten tcp" to prevent X connections to your VNC server via TCP.
      sysconfig/vncservers:# VNCSERVERARGS[2]="-geometry 800x600 -nolisten tcp -localhost"
      [root@bigbox etc]# grep -R nolisten X11/
      [root@bigbox etc]#

      • [^] # Re: hop

        Posté par . Évalué à 3.

        après une breve recherche j'en ai dans

        /etc/alternatives/kdm4-config:ServerArgsLocal=-nr -nolisten tcp
        /etc/X11/xdm/Xservers::0 local /usr/bin/X vt7 -deferglyphs 16 -nolisten tcp
        /etc/X11/xdm/Xservers::1 local reserve /usr/bin/X :1 vt8 -deferglyphs 16 -nolisten tcp
        /etc/X11/xdm/Xservers::2 local reserve /usr/bin/X :2 vt9 -deferglyphs 16 -nolisten tcp
        /etc/X11/xdm/Xservers::3 local reserve /usr/bin/X :3 vt10 -deferglyphs 16 -nolisten tcp
        /etc/X11/xdm/Xservers::4 local reserve /usr/bin/X :4 vt11 -deferglyphs 16 -nolisten tcp
        /etc/X11/xdm/Xservers::5 local reserve /usr/bin/X :5 vt12 -deferglyphs 16 -nolisten tcp

        (sur une mageia; ça a un peu changé par rapport a avant)

        Il ne faut pas décorner les boeufs avant d'avoir semé le vent

        • [^] # Re: hop

          Posté par . Évalué à 1.

          Le plus simple est probablement de faire un 'ps' et de voir les options utilisées par X.

          Un 'netstat' te montrera aussi si X est a l'écoute en TCP.

          • [^] # Re: hop

            Posté par . Évalué à 1.

            X n'était pas lancé avec "nolisten" par contre kdm l'était. J'ai modifié afin que kdm soit lancé sans cette option mais cela n'a rien changé.

            Je suis finalement parvenu à avoir XDMCP qui marche. Pour ceux qui ont/auront le même problème que moi, voici ce que j'ai du faire (c'est probablement uniquement la dernière partie qui compte):
            1. Installation d'une autre distribution (ubuntu étant sensé être tellement simple que j'espérais que cela allait résoudre mon problème tout seul) -> exactement le même problème
            2. Le message d'erreur lors du lancement de X était désormais du style "XDMCP fatal error Session failed [...] for display Mon addresse IPV6 cannot open display"
            3. Soupçonnant un mélange ipv4, ipv6 (cfr https://bugs.launchpad.net/ubuntu/+source/kdebase-workspace/+bug/58071) je me suis intéressé à ça. Confirmé par un appel à "netstat -l |grep xdmc" qui indiquait que xmdcp écoutait en ipv6
            4. J'ai forcé xdmcp à écouter en ipv4 en ajoutant LISTEN 0.0.0.0 dans Xaccess -> n'a pas résolu le problème, même erreur avec l'addresse IPV6 apparaissant dans le message d'erreur.
            5. J'ai changé mon routeur (intégré dans le modem de mon fournisseur internet) par un vieux routeur mais de bonne qualité (linksys WRT54G avec firmware flashé) -> toujours la meme erreur mais le message d'erreur a changé : l'addresse ipv6 est remplacé par bigbox.local (bigbox étant le nom de ma machine).
            6. J'ai ajouté dans /etc/hosts MONADDRESSEIPV4 bigbox.local et ça a marché en local (X :1 -query MONADDRESSEIPV4 fait apparaître kdm) !
            7. Si j'utilise un PC distant j'ai besoin d'ajouter sur les deux machines dans les deux hosts.allow les deux adresses IPv4 avec les deux noms.

            Maintenant ça marche. Mais si quelqu'un pouvait m'expliquer je serais intéressé.

            • [^] # Re: hop

              Posté par . Évalué à 2.

              la solution est dans ton 6 et 7

              si tu remets la box de ton FAI, et que tu mets les noms des machines dans /etc/hosts et dans hosts.allow ca devrait marcher.

              en effet, par defaut, les machines ne sont probablements pas autorisées à se connecter à ton serveur XDMCP (d'ou la necessité du hosts.allow)

              puis il peut y avoir besoin de reconnaitre un peu plus que les IPs (pour eviter de se faire spoofer) et il faut donc verifier dans /etc/hosts si la machine qui se presente est bien reconnu (lookup et reverse lookup)

Suivre le flux des commentaires

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