Декабрь 12, 2017, 12:21:50

Автор Тема: Изучаем решение в виде тонкого клиента при помощи FreeNX  (Прочитано 11018 раз)

1clinux

  • Administrator
  • Опытный пользователь
  • *****
  • Сообщений: 164
  • Карма: +7/-0
  • Fire come with me ...
    • Просмотр профиля
    • Вопросы и ответы по 1С на базе Linux
    • Email
http://unixforum.org/index.php?showtopic=64076&st=150&p=721173&#entry721173
http://unixforum.org/index.php?showtopic=108708&st=0

Обсуждается вариант замены старинной FreeNX на x2go (на той же библиотеке, но открытый)

вот вариант запуска nx скиптом - изврат и кучу библиотек левых искать пришлось:
http://offog.org/darcs/misccode/nxminiclient


Собсно всё общее в ветке:
http://unixforum.org/index.php?showforum=89
« Последнее редактирование: Сентябрь 05, 2010, 05:21:30 от 1clinux »

1clinux

  • Administrator
  • Опытный пользователь
  • *****
  • Сообщений: 164
  • Карма: +7/-0
  • Fire come with me ...
    • Просмотр профиля
    • Вопросы и ответы по 1С на базе Linux
    • Email
Казалось бы ничего сложного но получил много секса на ровном месте... о чём и хочу поведать...

прежде всего экспериментирование начал на Mandriva 2010.1 родные пакеты встали сразу и после установки клиента nxclient для линукс в виде rpm с сайта nomachine.com, всё заработало даже заработал запуск приложения в виде окошка, а не рабочего стола, но только под Линуксом... попытки повторить столь поразительный трюк на Windows XP к успеху не привели ... начались разумеется поиски...

дальше больше пошёл позырить что же наш любимый халявщик EterSoft налобать умудрился под название RX, как оказалось поменяли название и сделали патчи по мотивам форумов, собственно, что он сами не придумывали. Ну и да ладно бог им судья.... в общем одно что в результате этого процесса оказался не работоспособным мой freenx...

После всех перестановок мой клиент перестал коннектиться с ошибкой "NX> 204 Authentication failed." долгими эксперементами понял, что коннект происходит таким образом - с начало клиент подсоединяется к ssh сервера с помощью ключа DSA без пароля... дальше клиент авторизуется через открытое соединение тем методом которым вы задали в node.conf и только после этого начитается вся колбасня...

да забыл сказать попробовал ещё и x2go по сути переименованный FreeNX кто видит в этом больше напишите ..
порыл ещё открытого клиента OpenNX - тоже вроде хрень бестолковая ... ну это IMXO

По пути порылся про лицензии в общем дело так обстоит - Сервер FreeNX это с сайта  http://nomachine.com можно взять в виде готовых пакетов, а можно исходники с сайта http://freenx.berlios.de - совершенно бесплатный и свободный...
с клиентами хуже есть бесплатный но не свободный NXClient того же nomachine.com
есть OpenNX - клиент - содержит в себе бесплатную и открытую библиотеку NX на которой основан и NXClient, но это сделано вроде как на открытых условиях ...
и в пику всему этому но сделанное на том же самом основном коде NX заедятся два чучела x2Go и RX (не скажу кого).

а и к нашим балванам :-)
в общем рылся рылся нашёл следующие пути:
/var/lib/nxserver/nxhome/.ssh/ - тут содержатся ключи сервера
/user/NX/share/keys - тут содержатся ключи клиента

для запуска системы создал ключи с помощь ssh-keygen -t  dsa

судя из всего прочитанного надо иметь открытый ключ (.pub) на стороне Сервера! а закрытый ключ (id_dsa) держать на стороне Клиента!

Собсно обновив ключи получил новый геморой: "NX> 280 Exiting on signal: 15"


« Последнее редактирование: Август 30, 2010, 02:21:27 от 1clinux »

1clinux

  • Administrator
  • Опытный пользователь
  • *****
  • Сообщений: 164
  • Карма: +7/-0
  • Fire come with me ...
    • Просмотр профиля
    • Вопросы и ответы по 1С на базе Linux
    • Email
Ну наконец, то моё сознание начало прочищаться ...
значит так: путаница возникает в названиях файлов ключей (у меня)
в папке /usr/NX/share/keys - это папка с ключами пользователя NX от имени которого начинает соединение NXClient, в ней должен находиться файл server.id_dsa.key - это файл в котором содержиться DEFAULT Закрытый ключ формата DSA для ssh (закрытый ключ легко опознать по началу "-----BEGIN DSA PRIVATE KEY----" и многострочному ключу в десять строк) ... дело в том, что в папке /var/lib/nxserver/nxhome/.ssh - сервеной части находиться файл client.id_dsa.key - в котором содержиться нужный нам ключь для клиента ...
(путаница в названиях сервер и клиент, происходят по всей видимости из-за того, что клиент смотрит со своей стороны на сервер как клиента своего ключа, а сервер смотрит на клиента как на сервер этого же ключа)
в общем если просто тупо слить cat /var/lib/nxserver/nxhome/.ssh/client.id_dsa.key > /usr/NX/share/keys/server.id_dsa.key, а затем в настройках клиента "Configure..." зайти в "Key" нажать "Default" потом "Save" вы решите проблему с ошибкой "NX> 204 Authentication failed." - это можно увидеть при попытке соединения клиента по кнопке "Detail"

1clinux

  • Administrator
  • Опытный пользователь
  • *****
  • Сообщений: 164
  • Карма: +7/-0
  • Fire come with me ...
    • Просмотр профиля
    • Вопросы и ответы по 1С на базе Linux
    • Email
Дальше мы авторизуемся как пользователь самого nxserver его надо не забыть добавить коммандой "nxserver --adduser ИмяПользователя" и потом дать пароль "nxserver --passwd ИмяПользователя" - но это для метода авторизации который называется в node.conf - ENABLE_PASSDB_AUTHENTICATION="1" - по умолчанию он выключен!! стоит "0"!!! он ещё под коментом стоит надо убрать "#" в начале строки!

И О ЧУДО ЗАРАБОТАЛ FreeNX Server!!!
 ;D

ЗЫ Во истину, если у вас что-то получилось сразу, значит вы ничему не научились :-)
« Последнее редактирование: Август 30, 2010, 04:44:18 от 1clinux »

1clinux

  • Administrator
  • Опытный пользователь
  • *****
  • Сообщений: 164
  • Карма: +7/-0
  • Fire come with me ...
    • Просмотр профиля
    • Вопросы и ответы по 1С на базе Linux
    • Email
в общем мне показалось мало простого freenx из пакетов и я решил добить тему etesoft-frenx-rx там с ключами походу ещё больше путаницы! но надеюсь может быть там решиться проблема запуска приложения ввиде окна а не всего рабочего стола!

у меня в стандартном freenx - при соединении с ним из под винды и попытке запуска приложения как окна (rootless) просто вываливается клиент и всё, ставлю запускать KDE и всё работает зашибись ... - в некоторых форумах пишут, что это может быть проблемой русских букаф ... но  я пробовал даже kwrite не запускается!

1clinux

  • Administrator
  • Опытный пользователь
  • *****
  • Сообщений: 164
  • Карма: +7/-0
  • Fire come with me ...
    • Просмотр профиля
    • Вопросы и ответы по 1С на базе Linux
    • Email
Слушайте, ну прямо взбесил меня этот FufloSoft - в смысле EterSoft - Опять сделали всё через жопу - нихрена не работает, присвоили себе чужие разработки в очередной раз ... это что получается мы очередной майкософт у себя под боком развиваем что ли?!! походу пора гнать этих засланцев в шею и поганой метлой ... если я не прав кинье в меня чем нибудь !!!

1clinux

  • Administrator
  • Опытный пользователь
  • *****
  • Сообщений: 164
  • Карма: +7/-0
  • Fire come with me ...
    • Просмотр профиля
    • Вопросы и ответы по 1С на базе Linux
    • Email
Вообще считаю что технология FrreNX вполне конкурента в качестве замены тонкого клиента от 1С - вы?
Я так понимаю по ценам - сетевая на файлах плюс freenx и версия с тонкими клиентами 1С - различается в разы!

В ходе испытаний rx@etersoft возникла проблема не один пользователь не может пройти этап авторизации пользователя nx - это первый шах который проходит клиент для получения доступа к серверу. При авторизации пользователя nx клиент отпраляет запрос по ключу который настроен в клиенте как открытый DSA ключик...дальше сервер отвечает расшифровав письмо ключём который лежит в файле

Собсно проблема выглядела так

Клиент при начале соединения пишет: "The NX service is not avaible or the NX access was disabled on host 11.0.0.129"
это текст который можно увидеть по кнопке "Details" после неудачи соединения клиентом:
"
NX> 203 NXSSH running with pid: 3760
NX> 285 Enabling check on switch command
NX> 285 Enabling skip of SSH config files
NX> 285 Setting the preferred NX options
NX> 200 Connected to address: 11.0.0.129 on port: 22
NX> 202 Authenticating user: nx
NX> 208 Using auth method: publickey
NX> 204 Authentication failed.
"

по поводу решения EterSoft - опять засланцы накосячили не знаю только в Mandriva 2010 это выплывает или в других версия, но суть такая что когда мы просим в консоле показать " dir ~nx" - что вполне законно может привести к показу содержимого каталога пользователя nx - мы с версией freenx в виде rx@etersoft получаем ошибку "dir: невозможно получить доступ к /var/lib/nxserver/nxhome: Нет такого файла или каталога" - а этого говорит о том что господа почему-то создали папку "/var/lib/nxserver/home", а не как сами же хотят nxhome
Лечится: можно переименовать(создать папочку), а можно переписать каталог пользователя в /etc/password найти пользователя nx и там переписать .. я рисковать не стал, боиг их знает, что они могли куда прописать.
Я создал папку "nxhome" в /var/lib/nxserver/, а потом в созданной папке создал .ssh
для нормальной авторизации надо сделать ключик он дается командой  ssh-keygen - t dsa лучше делать это на сервере
там вас спросят папку куды сунуть два файла id_dsa и id_dsa.pub - я выбрал папку которую создал ... потом просят ключевую фразу - её делать не надо если вы не умеете пользоваться sshagent ом - не говорю что так безопасно но так проще и тем более соединение пользователем nx - не даёт ничего кроме консоли самого сервера ... а там ещё надо пройти авторизацию уже методами самого сервера
когда файлы созданы надо передать файл id_dsa на клиента и там забить этот ключик в найстройках кнопка "configure" в клиенте ... в открывшемся окне надо нажать кнопушку "KEY" и туда вбить всё без исключения из файла id_dsa
дальше надо на сервере сделать cat id_dsa.pub > authorized_key2 ... или любым удобным для вас методом переименовать файл id_dsa.pub в authorized_key2

Не могу не напомнить что на файлы должны быть разрешения 600 т.е. w(писать) может только автор!!! автором должен быть пользователь nx
для просмотра прав доступа на файлы можно воспользоваться dolphin'ом - правая кнопка мыши, можно посмотреть с помощью mc - файл/права доступа (владелец, расширенные права доступа), можно банально "dir -l" там и владельца видно
для смены прав пользователя через консоль надо использовать chmod и для смены владельца chown

вроде всё :-)
ещё етер софт позволил себе поменять название сервиса с nxserver на freenx-server

для прописать пользователя:
в файле node.conf - убрать комментарий # и поставить 1 вместо 0
ENABLE_PASSDB_AUTHENTICATION="1"
в коммандной строке:
nxserver --adduser ИмяПользователя
nxserver --passwd ИмяПользователя

это уже вводит второй метод авторизаци в freenx
да не забудьте потом сделать

1clinux

  • Administrator
  • Опытный пользователь
  • *****
  • Сообщений: 164
  • Карма: +7/-0
  • Fire come with me ...
    • Просмотр профиля
    • Вопросы и ответы по 1С на базе Linux
    • Email
новая фишка: "Authentication faild for user ИмяПользователя"

Тут по всей видимости проблема в том, что есть уже ключ RSA по которому пользователь уже заходил на сервер и он отличается от того, под которым вы пытаетесь войти на сервер ...
лечение по всей видимости одно и банальное - редактировать файл known_hosts или убивать его ...
в консоли валит вот что:
"[root@zloy log]# ssh testnx@127.0.0.1
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
7f:d8:ff:9e:cb:3a:3e:73:67:d9:69:df:0d:28:ff:3b.
Please contact your system administrator.
Add correct host key in /root/.ssh/known_hosts to get rid of this message.
Offending key in /root/.ssh/known_hosts:1
Password authentication is disabled to avoid man-in-the-middle attacks.
Keyboard-interactive authentication is disabled to avoid man-in-the-middle attacks.
X11 forwarding is disabled to avoid man-in-the-middle attacks.
Last login: Thu Aug 26 10:14:08 2010 from zloy
"

что именно об этом и говорит...

1clinux

  • Administrator
  • Опытный пользователь
  • *****
  • Сообщений: 164
  • Карма: +7/-0
  • Fire come with me ...
    • Просмотр профиля
    • Вопросы и ответы по 1С на базе Linux
    • Email
начала вылезать проблема:"
Info: Display running with pid '3260' and handler '0xa4d0b1a'.

NXPROXY - Version 3.4.0

Copyright (C) 2001, 2010 NoMachine.
See http://www.nomachine.com/ for more information.

Info: Proxy running in client mode with pid '404'.
Session: Starting session at 'Thu Sep  9 19:52:52 2010'.
Info: Connecting to remote host '127.0.0.1:6000'.
Info: Aborting the procedure due to signal '15'.
Error: Couldn't kill the dialog process with pid '1536'.
Session: Session terminated at 'Thu Sep  9 19:53:45 2010'.
"
пока не знаю чё делать, но судя по всему программа запущена и её убить не возможно!

1clinux

  • Administrator
  • Опытный пользователь
  • *****
  • Сообщений: 164
  • Карма: +7/-0
  • Fire come with me ...
    • Просмотр профиля
    • Вопросы и ответы по 1С на базе Linux
    • Email
по поводу запуска приложения в виде rootless (т.е. в окне) етерсофт я решил снести и походу не зря сделал!
проблема была в wine ... обновил родного вот он и дурил ....
перезагрузил сервис.... всё заработало в родном Мандривовском freenx заработало ...

1clinux

  • Administrator
  • Опытный пользователь
  • *****
  • Сообщений: 164
  • Карма: +7/-0
  • Fire come with me ...
    • Просмотр профиля
    • Вопросы и ответы по 1С на базе Linux
    • Email
что же это делается люди добрые получается такая кака:
использую клиента от NoMachin

На закладке "Advanced" ставим галочку "Disable encryption of all traffic"
и при соединении получаем такую какость:
"NX client was not able to establish an unencrypted chanel with the server. This could be due to the remote server being behind a firewall. If this is case, you should be able to run your session by uncheking the option "Disable SSL encryption of all traffic" in the configuration dialog."

Переводиться это примерно так:
"Клиент NX не смог установить не шифрованное соединение с сервером. Это возможно из-за того, что сервер находиться за файерволом. В этом случае, возможно удасться установить соединение если убрать галочку на опции "Disable SSL encryption of all traffic""

вопервых опцию переименовали, а текст нет ... во вторых это две машины на одном хабе и нет файера ваще ...
ну в общем если галочку убрать то действительно канал начинает работать, но я то хотел в локалке съэкономить на трафике и скорость повысить ....