web-dev-qa-db-fra.com

Impossible de se connecter au serveur VNC

En espérant que votre puissance cérébrale collective puisse m'aider ...

tl; dr - le serveur Ubuntu semble avoir plusieurs ports ouverts, aucun ne peut être vu par le monde extérieur (LAN) - WTF se passe?

Plus long:

J'ai un serveur 17.04 sans tête auquel j'aimerais me connecter via VNC, mais je me bats pour le moment. J'utilise deux clients: Windows 10, un avec RealVNC et un avec TightVNC.

J'ai configuré le serveur TightVNC sur ma machine Ubuntu, en suivant principalement les instructions sur https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-vnc-on-ubuntu -16-04 , ayant l'intention d'exécuter Xfce en tant que bureau:

$ Sudo apt install xfce4 xfce4-goodies tightvncserver

J'ai changé le fichier xstartup en:

#!/bin/bash
xrdb $HOME/.Xresources
startxfce4 &

Et accordé un privilège exécutable.

Si je démarre le serveur en utilisant tightvncserver je reçois:

New 'X' desktop is numbersix:1

Starting applications specified in /home/adam/.vnc/xstartup
Log file is /home/adam/.vnc/numbersix:1.log

nmap localhost donne:

Starting Nmap 7.40 ( https://nmap.org ) at 2017-11-09 21:05 GMT
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000076s latency).
Other addresses for localhost (not scanned): ::1
Not shown: 986 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
53/tcp   open  domain
80/tcp   open  http
111/tcp  open  rpcbind
139/tcp  open  netbios-ssn
445/tcp  open  Microsoft-ds
631/tcp  open  ipp
5901/tcp open  vnc-1
6001/tcp open  X11:1
8000/tcp open  http-alt
8001/tcp open  vcom-tunnel
8010/tcp open  xmpp
8080/tcp open  http-proxy
9091/tcp open  xmltec-xmlmail

nmap 192.168.1.6 donne le même résultat.

J'ai défini le serveur en tant que service systemd - créé /etc/systemd/system/[email protected] avec ce contenu:

[Unit]
Description=Start TightVNC server at startup
After=syslog.target network.target

[Service]
Type=forking
User=adam
PAMName=login
PIDFile=/home/adam/.vnc/%H:%i.pid
ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 :%i
ExecStop=/usr/bin/vncserver -kill :%i

[Install]
WantedBy=multi-user.target

Puis a commencé le service avec

$ Sudo systemctl daemon-reload
$ Sudo systemctl enable [email protected]
$ Sudo systemctl start vncserver@1

Tout semble fonctionner. Sudo systemctl status vncserver@1 donne:

[email protected] - Start TightVNC server at startup
   Loaded: loaded (/etc/systemd/system/[email protected]; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2017-11-09 21:38:13 GMT; 6s ago
  Process: 3924 ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 :1 (code=exited, status=0/SUCCESS)
  Process: 3916 ExecStartPre=/usr/bin/vncserver -kill :1 > /dev/null 2>&1 (code=exited, status=2)
 Main PID: 3937 (Xtightvnc)
    Tasks: 0 (limit: 4915)
   CGroup: /system.slice/system-vncserver.slice/[email protected]
           ‣ 3937 Xtightvnc :1 -desktop X -auth /home/adam/.Xauthority -geometry 
1280x800 -depth 24 -rfbwait 120000 -rfbauth /h

Nov 09 21:38:12 numbersix systemd[1]: Starting Start TightVNC server at startup...
Nov 09 21:38:12 numbersix systemd[3916]: pam_unix(login:session): session opened for user adam by (uid=0)
Nov 09 21:38:12 numbersix systemd[3924]: pam_unix(login:session): session opened for user adam by (uid=0)
Nov 09 21:38:13 numbersix systemd[1]: Started Start TightVNC server at startup.

telnet localhost 5901 semble se connecter correctement:

Trying ::1...
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
RFB 003.008

Et Sudo netstat -nlpt | grep :59 donne:

tcp        0      0 0.0.0.0:5901            0.0.0.0:*               LISTEN      3937/Xtightvnc

Mais, telnet numbersix 5901 et telnet 192.168.1.6 (sous Windows) échouent avec:

Could not open connection to the Host, on port 5901: Connect failed

Et ni RealVNC ni TightVNC ne se connecteront (à l'aide du nom d'hôte ou de l'IP). Ping fonctionne sur les deux hôtes Windows avec IP ou nom d’hôte. Impossible également de se connecter à partir d'un ordinateur portable Ubuntu. Encore une fois, peut ping. Je peux SSH sans problèmes. Sudo nmap numbersix de l'ordinateur portable Ubuntu donne:

Starting Nmap 7.01 ( https://nmap.org ) at 2017-11-10 12:50 GMT
Nmap scan report for numbersix (192.168.1.6)
Host is up (0.0032s latency).
Not shown: 997 filtered ports
PORT     STATE SERVICE
22/tcp   open  ssh
8000/tcp open  http-alt
8001/tcp open  vcom-tunnel
MAC Address: 60:45:CB:64:2B:C8 (Unknown)

Nmap done: 1 IP address (1 Host up) scanned in 12.85 seconds

Les chaînes INPUT, FORWARD et OUTPUT de Sudo iptables -L sur le serveur sont les suivantes:

Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     udp  --  anywhere             anywhere             udp dpt:domain
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:domain
ACCEPT     udp  --  anywhere             anywhere             udp dpt:bootps
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:bootps
ACCEPT     all  --  anywhere             anywhere             ctstate RELATED,ESTABLISHED
ACCEPT     all  --  anywhere             anywhere
INPUT_direct  all  --  anywhere             anywhere
INPUT_ZONES_SOURCE  all  --  anywhere             anywhere
INPUT_ZONES  all  --  anywhere             anywhere
DROP       all  --  anywhere             anywhere             ctstate INVALID
REJECT     all  --  anywhere             anywhere             reject-with icmp-Host-prohibited

Chain FORWARD (policy DROP)
target     prot opt source               destination
ACCEPT     all  --  anywhere             192.168.122.0/24     ctstate RELATED,ESTABLISHED
ACCEPT     all  --  192.168.122.0/24     anywhere
ACCEPT     all  --  anywhere             anywhere
REJECT     all  --  anywhere             anywhere             reject-with icmp-port-unreachable
REJECT     all  --  anywhere             anywhere             reject-with icmp-port-unreachable
DOCKER-USER  all  --  anywhere             anywhere
DOCKER-ISOLATION  all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere             ctstate RELATED,ESTABLISHED
DOCKER     all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere             ctstate RELATED,ESTABLISHED
ACCEPT     all  --  anywhere             anywhere
FORWARD_direct  all  --  anywhere             anywhere
FORWARD_IN_ZONES_SOURCE  all  --  anywhere             anywhere
FORWARD_IN_ZONES  all  --  anywhere             anywhere
FORWARD_OUT_ZONES_SOURCE  all  --  anywhere             anywhere
FORWARD_OUT_ZONES  all  --  anywhere             anywhere
DROP       all  --  anywhere             anywhere             ctstate INVALID
REJECT     all  --  anywhere             anywhere             reject-with icmp-Host-prohibited

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     udp  --  anywhere             anywhere             udp dpt:bootpc
OUTPUT_direct  all  --  anywhere             anywhere

Donc, je pense que cela suggère qu'iptables ne bloque rien ...

Quelqu'un peut-il m'aider à diagnostiquer le problème, s'il vous plaît?

1
Adam-the-Kiwi

La réponse résidait dans mon incapacité à comprendre iptables - et en particulier ce que signifiait le résultat de Sudo iptables -L ...

Lorsque j’ai plutôt lancé Sudo iptables -S, on m'a présenté une description beaucoup plus détaillée de chaque règle. Il était donc évident qu’il n’y avait pas de règle INPUT appropriée autorisant le trafic tcp sur 5901 (ou l’un des autres ports). Je regardais) à travers. Ensuite, la règle INPUT finale, qui consistait essentiellement à rejeter tout ce qui ne correspondait pas à une règle, collectait ce trafic et le rejetait. La règle qui, à mon avis, aurait dû être ACCEPTER le trafic s’appliquait uniquement à l’interface lo (bouclage).

J'ai couru ceci: Sudo iptables -I INPUT 7 -s 192.168.1.0/24 -i enp37s0 -j ACCEPT

Il s'agit essentiellement d'insérer une règle à la ligne 7 de la chaîne INPUT et de lui indiquer d'accepter tout trafic provenant du sous-réseau 192.168.1.0/24 arrivant sur le port Ethernet.

Le prochain défi est d’obtenir iptables-persistent pour qu’il fonctionne réellement au redémarrage!

1
Adam-the-Kiwi