Не удается подключиться к серверу VNC

1

Надеясь, что ваша коллективная мозговая мощь может помочь мне ...

tl; dr - сервер Ubuntu, кажется, имеет несколько портов, открытых, которые не видны во внешнем (LAN) мире - WTF продолжается?

дольше:

У меня есть сервер без заголовка 17.04, к которому я хочу подключиться с помощью VNC, но сейчас я боюсь. Я использую два клиента - как для Windows 10, так и для RealVNC, один использует TightVNC.

Я установил сервер TightVNC на свой компьютер Ubuntu, в основном следуя инструкциям в Ссылка , намереваясь запустить Xfce в качестве рабочего стола:

$ sudo apt install xfce4 xfce4-goodies tightvncserver

Я изменил файл xstartup на:

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

И предоставлена исполняемая привилегия.

Если я запустил сервер, используя tightvncserver , я получаю:

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 дает:

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 дает тот же результат.

Я установил сервер как службу systemd - создал /etc/systemd/system/[email protected] с этим контентом:

[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

Затем запустили службу с помощью

$ sudo systemctl daemon-reload
$ sudo systemctl enable [email protected]
$ sudo systemctl start [email protected]

Кажется, что все работает. sudo systemctl status [email protected] дает:

[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 , похоже, подключается нормально:

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

И sudo netstat -nlpt | grep :59 дает:

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

Но, telnet numbersix 5901 и telnet 192.168.1.6 (из Windows) терпят неудачу с:

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

И ни RealVNC, ни TightVNC не будут подключаться (используя имя хоста или IP). Ping работает на обоих хостах Windows с IP или именем хоста. Также не удалось подключиться к ноутбуку Ubuntu. Опять же, может пинг. Я могу ssh без проблем. sudo nmap numbersix от ноутбука Ubuntu дает:

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

Цепочки INPUT, FORWARD и OUTPUT из sudo iptables -L на сервере:

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

Поэтому я думаю, что это говорит о том, что iptables ничего не блокирует ...

Может ли кто-нибудь помочь мне диагностировать проблему, пожалуйста?

    
задан Adam-the-Kiwi 09.11.2017 в 22:48
источник

1 ответ

0

Ответ заключается в том, что я не понял iptables - и особенно то, что означало выход из sudo iptables -L ...

Когда я вместо этого выполнял sudo iptables -S , мне было представлено более полное описание каждого правила, и было очевидно, что не было подходящего правила INPUT, которое позволяло трафик tcp на 5901 (или любой другой порты, на которые я смотрел). Тогда окончательное правило INPUT, которое по существу отклоняло все, что не соответствовало правилу, собирало этот трафик и отклоняло его. Правило, которое, как я думал, должно было ПРИНИМАТЬ трафик, применяемый только к интерфейсу lo (loopback).

Я запустил это: sudo iptables -I INPUT 7 -s 192.168.1.0/24 -i enp37s0 -j ACCEPT

Это правило вставляет правило в строке 7 цепочки INPUT и сообщает ему, чтобы ПРИНИМАЛ любой трафик из подсети 192.168.1.0/24, поступающей на порт Ethernet.

Следующая задача - заставить iptables-persistent фактически работать при перезагрузке.

    
ответ дан Adam-the-Kiwi 17.11.2017 в 20:28