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?
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!