Автоматизированное подключение к VNC серверу

Posted by

Задача: нужно автоматизировать подключение по vnc к серверу и настроить плановую перезагрузку клиента с Linux на борту.

В процессе исполнения данной задачей столкнулся с тем, что на этой кастрированной сборке та которая установлена на этом тонком клиенте нет утилиты vncpasswd посредством которой нужно создать так называемый файл с паролем (он бинарен) который нужно будет передать в качестве параметра утилите vncviewer. Во общем все по порядку:

Настраиваю задачу на подключение к серверной части VNC:

Находясь на тонком клиенте нажимаю клавиатурное сочетание клавиш: Ctrl + Alt + X для вызова консоли командной строки xterm. После чего перехожу в каталог /etc/startupconf и создаю файл следующего содержания:

bash-3.00# cd /etc/startupconf

bash-3.00# vi vnc

[application]

vnc

[vnc]

name=vnc

comment=vnc

comment_en=vnc

cmd0=

cmd1=

cmd=sleep 20 && /usr/bin/vncviewer password=/root/passwd fullscreen=1 192.168.13.63:5900

cmd2=

cmd3=

startup=1

canset=1

Не забываем сохранить внесенные изменения.

, где 192.168.13.63:5900 — это сервер с функциями видеонаблюдения где конкретно под этот тонкий клиент созданы условия для отображения 4 камер сервисной зоны.

bash-3.00# chmod +x vnc

Теперь раз на сервере нет утилиты vncpasswd, то потребуется на любой имеющейся в Вашем распоряжении Linux системы, у меня это Ubuntu 14.04.3 Server amd64 (сервер с функциями ATC (Asterisk + FreePBX) создать данный файл с паролем и передать его на данный тонкий клиент Tonk 1202 (а вот это еще та задачка, так как привычных команд: curl, wget, ssh тут нет и это очень здорово все затрудняет, да я бы проще сказал — раскрывает возможности системного администратора для решения этой задачи, вспоминания всего и вся и конечно же гугления с правильно поставленными вопросами).

ekzorchik@srv-phone:~$ sudo apt-get install vnc4server

ekzorchik@srv-phone:~$ vncpasswd

Password:123456

Verify:123456

В итоге получился следующий файл который мне нужно передать на Tonk 1202

ekzorchik@srv-phone:~$ file ~/.vnc/passwd

/home/ekzorchik/.vnc/passwd: data

Поднимаю VSFTPD сервер для подключения анонимных учетных записей на любой системе, в моем случае это сервер с функциями ATC (Astrisk + FreePBX):

ekzorchik@srv-phone:~$ sudo nano /etc/vsftpd.conf

anonymous_enable=YES

listen=YES

#local_enable=YES

ekzorchik@srv-phone:~$ sudo service vsftpd restart

Создаю каталог для анонимных пользователей:

ekzorchik@srv-phone:~$ sudo mkdir /media/ftp

ekzorchik@srv-phone:~$ sudo usermod -d /media/ftp ftp

ekzorchik@srv-phone:~$ sudo touch /media/ftp/1

Проверяю, что смогу с другой системы с осью Ubuntu 12.04.5 Server amd64 на борту подключиться под анонимным пользователем:

aollo@system:~$ ftp 10.7.8.155

Connected to 10.7.8.155.

220 (vsFTPd 3.0.2)

Name (10.7.8.155:aollo): anonymous

331 Please specify the password.

Password:ad@nm.ru

230 Login successful.

Remote system type is UNIX.

Using binary mode to transfer files.

ftp> ls

200 PORT command successful. Consider using PASV.

150 Here comes the directory listing.

-rw-r—r— 1 0 0 0 Nov 14 09:38 1

226 Directory send OK.

ftp> quit

421 Timeout.

Отлично подключился и вижу созданный файл с именем 1.

Переношу файл с паролем passwd в каталог FTP:

ekzorchik@srv-phone:~$ sudo mv /home/ekzorchik/.vnc/passwd /media/ftp

ekzorchik@srv-phone:~$ sudo chown root:root /media/ftp/passwd

ekzorchik@srv-phone:~$ md5sum /media/ftp/passwd

b22f198fd0301c5a43a36640a094e878 /media/ftp/passwd

Переключаемся на консоль xterm тонкого клиента Tonk 1202 и произвожу подключение через утилиту ftp к серверу с ролью FTP сервера:

ftp> open 10.7.8.155

Connected to 10.7.8.155 (10.7.8.155).

220 (vsFTPd 3.0.2)

Name (10.7.8.155:root): anonymous

331 Please specify the password.

Password:ввожу любой вид к примеру: ekzorchik@gov.mil

230 Login successful.

Remote system type is UNIX.

Using binary mode to transfer files.

Ftp> ls

227 Entering Passive Mode (10,7,8,155,82,2).

150 Here comes the directory listing.

-rw-r—r— 1 0 0 0 Nov 14 09:38 1

-rw——— 1 1000 1000 8 Nov 14 09:47 passwd

226 Directory send OK.

Проверяю, что могу скачать файл с именем 1 и получается.

ftp> get 1

local: 1 remote: 1

227 Entering Passive Mode (10,7,8,155,121,45).

150 Opening BINARY mode date connection for 1 (0 bytes).

226 Transfer compler.

Теперь пробую скачать файл с паролем и терплю неудачу:

ftp> get passwd

local: passwd remote: passwd

227 Entering Passive Mode (10,7,8,155,140,104).

550 Failed to open file.

Опытным путем выяснил, что должны быть в каталоге /media/ftp права на файлы: 644

ekzorchik@srv-phone:/media/ftp$ sudo chmod 644 passwd

ekzorchik@srv-phone:/media/ftp$ ls -l

total 4

-rw-r—r— 1 root root 0 Nov 14 09:38 1

-rw-r—r— 1 root root 8 Nov 14 09:47 passwd

Теперь скачиваю файл passwd и все получается:

ftp> get passwd

local: passwd remote:passwd

227 Entering Passive Mode (10,7,8,155,113,17).

150 Opening BINARY mode date connection for passwd (8 bytes).

226 Transfer complete.

8 bytes received in 0,000178 secs (44 Kbytes/sec)

ftp> quit

221 Goodbye.

Проверяю контрольную сумму скачанного файла с той которая есть на FTP сервере, что в процессе передачи файлы ничего не изменилось:

bash-3.00# md5sum passwd

b22f198fd0301c5a43a36640a094e878 /media/ftp/passwd

Контрольная сумма сходится, значит файл передался без каких либо изменений.

После создаем еще один файл с именем shutdown который будет отвечать за плановую перезагрузку в заданное время (просто ранее этого времени перезагружается сама серверная часть VNC развернутая на сервере видеонаблюдения с целью вывода на экран в клиентской зоне камер цеховой зоны. Ранее я поднимал ZoneMinder, но от него пришлось отказаться, т. к. данный тонкий клиент фирмы Tonk не справлялся с нагрузкой и транслируемые изображения с 4 камер подвисали):

bash-3.00# cd /etc/startupconf

bash-3.00# cat vnc > shutdown

bash-3.00# vi shutdown

[application]

shutdown

[shutdown]

name=shutdown

comment=shutdown

comment_en=shutdown

cmd0=

cmd1=

cmd=sleep 20 && /usr/bin/shutdown -r 07:20 &

cmd2=

cmd3=

startup=1

canset=1

Не забываем сохранить внесенные изменения.

bash-3.00# chmod +x shutdown

Проверяем, что тонкий клиент с его хоть и ограниченными возможностями видит созданные конфигурационные файлы:

Start — Настройки Системы — Автозапуск

Созданные файлы автозапуска на Tonk 1202

Видите все нормально.

После конечно же не забываем сохранить все изменения на тонком клиенте:

Start — Сохранить данные.

В конечном итоге после перезагрузки тонкого клиента на экране широкоформатного телевизора к которому он подключен будет вот такое вот изображение:

Изображение сервисной зоны транслируемое по VNC

На этом я прощаюсь, эта заметка пригодится мне на будущее, вот к примеру работая ранее на предыдущем месте и встретившись с данными пародиями на рабочее место, а именно старая версия тонких клиентов фирмы Tonk я здорово намучился изобретая велосипеды и анализируя как же с помощью того что есть решить поставленную задачу. В процесс для себя оформил множество заметок и уже на основе них и своего опыта решил на текущем месте текущую задачу по оптимизации имеющегося для вывода видеоизображения. До встречи, с уважением автор блога — Олло Александр (aka ekzorchik).

Leave a Reply

Ваш e-mail не будет опубликован. Обязательные поля помечены *

4 × четыре =