FreeNX - терминальный сервер на FreeBSD
Имеется задача организовать работу 1С бухгалтерии с компьютеров под управлением Windows, MacOS и Linux. База 1С лежит на серваке с FreeBSD и раздается по сети для виндусовых клиентов посредством SAMBA.
Занавес... уже понятно, что в этом зоопарке без извращений не обойтись.
Спрашивается зачем всё так усложнять... ведь гораздо проще реализовать работу с 1С на единой системе, конкретно под неё заточенной, а именно Windows.
Однако стоимость такого решения не вызывает приятных ощущений у руководства, да и простые варианты, явно не наш выбор, тем более после Mac на Windows как-то не тянет.
Перейдем к практике. Известно, что 1С 7.7 не работает ни на Linux, ни тем более на MacOS, а жаль... Единственный, на мой взгляд, рабочий вариант - организация терминального сервера, на котором будет выполняться 1С, а результат работы отображаться на клиентских машинах.
В 1С v8.2 вроде как есть web-клиент, что позволяет работать из любой системы, но задача не ограничивается работой исключительно в восьмерке и требуется ещё запуск 1С v7.7 и системы ГАРАНТ.
Вариант с Windows Server и Citrix были не проходными по цене. Для пробы, было решено организовать терминальный сервер на FreeBSD, хотя для реализации всего вышеперечисленного лучше это делать на Linux (исключительно по той причине, что компания Aladdin до сих не удосужилась сделать драйвера ключей защиты HASP под FreeBSD).
Можно считать данную статью обзорной, для расширения кругозора. В качестве удалённого терминала будем использовать FreeNX.
Для тех, кто не знает, FreeNX - это бесплатная реализация для удаленного рабочего стола, похожая на TightVNC или Remote Desktop в Windows. Судя по описанию, скорость выполнения программ на FreeNX сравнима со временем их выполнения на локальной машине.
Если X-Windows уже установлена и настроена на вашем FreeBSD, это гуд. Рассказывать здесь про это не буду, слишком долго и далеко уводит от основной темы. У меня иксов на сервере не было (зачем они там спрашивается), потому пришлось мучаться.
Собирать из портов X-сервер совсем не радостное занятие, потому настоятельно рекомендую установить всё через package. Времени сэкономите кучу. В конечном счете установил LXDE.
Далее потребуется настроенный SSH сервер. Тут ничего сложного нет и у вас он наверняка уже работает. Хочу заметить, что в SSH сервере должна быть включена аутентификация по паролю (PAM authentication), т.е. включен параметр UsePAM. На серверах я его обычно отключаю, т.к. захожу исключительно по ключу.
Для начала установим FreeNX:
# cd /usr/ports/net/freenx/ # make install
Теперь необходимо запустить первоначальную настройку:
# /usr/local/NX/bin/nxsetup
В ходе установки будет задано всего два вопроса: прервать ли установку и генерация ключа вручную. Отвечайте нет и двигайтесь дальше.
'Do you want to abort now?' Press 'n' for 'no' 'Do you want to use your own custom KeyPair?' Press 'n' for 'No'
Собственно процесс сборки и установки закончен. Осталось лишь несколько штрихов - создать пользователей, которым будет разрешено соединяться с терминальным сервером и поправить файл конфигурации.
Я уже упоминал, что в качестве оконного менеджера воспользовался LXDE. Сообщаем об этом FreeNX серверу, в файле настроек node.conf укажем новое значение параметру COMMAND_START_CDE для старта оболочки LXDE:
#vi /usr/local/NX/etc/nxserver/node.conf COMMAND_START_CDE=startlxde
Прописываем в систему новых пользователей, как обычно командой adduser и задаем им пароли. На FreeBSD мне понадобилось также добавить созданных пользователей в сам NX server (на CenOS впоследствии этого делать не пришлось):
# /usr/local/NX/bin/nxserver --adduser username
Теперь можно запустить сервер и посмотреть всё ли у нас заработало.
# /usr/local/NX/bin/nxserver --start # /usr/local/NX/bin/nxserver --status NX> 100 NXSERVER - Version 1.5.0-60 OS (GPL) NX> 110 NX Server is running NX> 999 Bye
Клиентская часть - NX Client
http://www.nomachine.com/download-package.php?Prod_Id=3655
Клиентскую часть будем брать непосредственно с сайта NOMACHINE. Есть реализации для Windows, MacOS, Linux и Solaris. В общем всё что нам нужно.
Устанавливаем клиента под нашу систему, в настройках указываем адрес нашего FreeNX сервера, желаемое разрешение либо полноэкранный режим, скорость соединения.
Вот и всё. Остается запустить терминальное соединение, указав имя и пароль пользователя, которого заводили на нашем сервере и наслаждаться:
Я назвал данную статью обзорной, т.к. не вижу особого смысла поднимать NX сервер на FreeBSD. Основную причину указал в начале статьи. Сейчас у менять есть вполне рабочая конфигурация на CentOS (аналог RHEL) с оконным менеджером GNOME. Используется терминальный сервер FreeNX с небольшими доработками компании Etersoft и WINE@Etersoft сетевая версия на 10 подключений.
1C8.2 и 1C7.7 работают замечательно. Пока правда не удалось нормально заставить работать КОНСУЛЬТАНТ, под MacOS 10. Вылетает терминальный клиент при запуске КОНСУЛЬТАНТа, хотя на Linux и Window машинах такого не замечено и всё крутится как надо.
Комментариев: 4
"для виндусовых клиентов"
Откуда взялись клиенты на Windows? Везде должна быть только FreeBSD. Windows дорого стоит и её обычно никто не покупает.
"исключительно по той причине, что компания Aladdin до сих не удосужилась сделать драйвера ключей защиты HASP под FreeBSD"
За это нужно этой компании дать по одному месту.
Спасибо за статью.
Пользуюсь Thinstuff XP/VS Terminal Server , альтернативный вариант описанному в статье способу, но для большого кол-ва пользователей и для стабильной работы сервера/пользователей рекомендую использовать её. Главные плюсы этой программки это стабильность и её недорогая стоимость. В общем советую!!! Вот сайт http://thinstuf.ru/ . Я не в кое случае не навязываю покупку программы, я простро дал совет, буду рад, если он кому-то пригодится.
Делал все так, как у вас описано, но в конце получил сообщение
"Connection error"и две кнопки "Детали" и "Закрыть". Из отчета я понял, что хотя я в sshd_config выставил PasswordAuthentication yes" "UsePam yes", все равно аунтефикация проходит по ключу. Что мне делать?