Компания РитмИнформ
г.Астрахань

расходные материалы
flash-накопители
диски бумага
канцтовары
автоматизация
учета

1С-Медицина
* * * * * Режим работы Детского Мира изменен! Начало рабочего дня в 10:00. * * * * * Минимальная сумма сделки для получения цены min составляет 10000 (десять тысяч) рублей После превышения курсом отметки 100 рублей за доллар минимальная сумма сделки будет увеличена до 11000 рублей. * * * * *
Наше кредо

Price

Оптом-дешевле

Адреса

Вакансии

Статьи

Немного юмора...


Кубок
РитмИнформ
Шахматы



Язык Санда




price.xls


Top.Mail.Ru

Терминальный сервер под Linux? Это просто.

Занимаясь автоматизацией учетных процессов, я часто (почти постоянно) использую терминальные решения. В начале 2000-х годов мне приходилось организовывать терминальные серверы на базе Citrix MetaFrame. Позже я перестал использовать Citrix и ограничился достаточно качественным сервером Windows 2003. Когда проблема лицензионного программного обеспечения заставила обратить свои взоры на Linux, одним из вопросов, требующих ответа до принятия решения о переходе c системы на систему, стал вопрос о настройке терминального сервера. Покапавшись в недрах интернета я нашел решение, которое мне показалось достаточно простым и удобным. Данное решение пока не до конца проверено, но результаты первых экспериментов меня вполне удовлетворили. Итак:

Настройка терминального сервера под Debian 4.0 или 5.0

(про Debian 6 читайте ниже)

На самом деле установка и настройка непосредственно терминального сервера происходит до безобразия просто. Установим VNC сервер с помощью программы управления пакетами synaptic или с помощью команды:

apt-get install vnc4server

Терминальный VNC сервер установлен и его уже можно запускать командой vncserver. При этом VNC запрсит у Вас пароль для подключения клиентом. Учтите, что при логоне удалённым VNC вьювером, сервер даст вам рабочий стол пользователя, от имени которого был запущен vncserver. Помимо этого есть один неприятный, на первый взгляд, момент - Если к запущенному VNC серверу уже подключен один VNC вьювер, то при подключении второго вьювера на этот же порт - клиенты или начнут делить один и тот же сеанс или одного из клиентов просто "выбросит" из сессии, что нас конечно же не устраивает. Выхода из данной ситуации два:

1) Автоматом открыть N VNC-сессий (N=количеству ноебходимых клиентских подключений). При этом каждое подключение будет происходить на отдельный порт 5900 - 590N. Помимо этого, постоянно будут подгружены "неиспользумые" VNC сервера. Также не решается проблема с одновременным подключением нескольких вьюверов на один порт. Данный Вариант нас в корне не устраивает, т.к. нам надо получить работающую систему, максимально похожую на терминальный виндовый сервер для удобства пользователей.

2) Настроить супердемон inetd, чтобы при коннекте на порт 5900 происходил автоматический запуск VNC сервера. При этом все соединения слушаются на одном порту и количество VNC серверов не превышает количество необходимых в данный момент.

Таким образом, выбираем п.2 - правку inetd. В /etc/inetd.conf добавляем слелующую строку:

5900 stream tcp nowait my_user /usr/bin/Xvnc Xvnc -inetd -query localhost -once -depth 24 securitytypes=none

Параметр my_user заменяете на имя пользователя, от чьего имени будет запущен vncservsr. Параметр -query localhost говорит нашему vncserver-у, что авторизация будет происходить локально, используя gdm или xdm (в зависимости от того, что у Вас установлено). Помимо этого можно "поиграть" с настройками geometry, которые зададут разрешение сервера VNC. Все параметры можно увидеть, набрав в консоли Xvnc -h

Терминальный сервер настроен, осталось настроить gdm/xdm (в зависимости от того, что у Вас стоит) принимать запрсы по xdmcp

Если gdm:

Редактируем /etc/gdm/gdm.conf - добавляем

[xdmcp]
Enable=true

Если xdm:

По умолчанию, в целях безопасности, xdm запрещено слушать xdmcp, поэтому редактируем /etc/X11/xdm/xdm-config Находим строку DisplayManager.requestPort: 0 Перед ней ставим знак "!", т.о. получаем следующе

! SECURITY: do not listen for XDMCP or Chooser requests
! Comment out this line if you want to manage X terminals with xdm
! DisplayManager.requestPort: 0

Таким образом настройка gdm/xdm закончена.

После это рестартуем inetd, gdm/xdm и пробуем подключиться терминальным VNC клиентом. Благодаря тому, что VNC является открытым, существуют различные программные продукты под разные ОСи. Из-под Windows я пользовался VNC Enterprise Edition 4.4 released. Из под Debian – «родной» VNCVIEWER.

Естественно, что везде есть свои "подводные камни". В нашем случае они тоже имеются. Из замеченного - явно бросается в глаза невозможность "восстановиться" в отвалившуюся сессию. Т.е. если человек работал под своим логином, и у него отвалилась сеть, то при повторном логине он не получит окружение рабочего стола, которое было ДО отваливания. Это немного неудобно, но в конечном итоге не смертельно. По крайней мере не будет "мёртвых" сессий.

Как настроить терминальный сервер на Debian 6.0."Squeeze"?

Debian 6.0. отличается от предыдущих версий (Debian 5.0 и Debian 4.0) тем, что при установке Debian 6.0:
1. по умолчанию устанавливается графическая оболочка Gnome 3, а не Gnome (как в Debian 4.0 и 5.0). Соответственно устанавливается пакет gdm3.
2. по умолчанию не устанавливается пакет openbsd-inetd, который в свою очередь содержит конфигурационный файл inetd.conf супер сервера inetd. Поэтому мы не находим его в каталоге etc.

Таким образом, чтобы настроить терминальный сервер на Debian 6.0. нужно:

Сначала, с помощью программы управления пакетами Synaptic (Система —> Администрирование —> программа управления пакетами Synaptic) или с помощью команды от имени суперпользователя

apt-get install vnc4server

установить VNC сервер (пакет vnc4server). После этого его можно будет запускать командой vncserver.

Затем, с помощью программы управления пакетами Synaptic (Система —> Администрирование —> программа управления пакетами Synaptic) или с помощью команды от имени суперпользователя

apt-get install gdm

установим пакет gdm. При установке пакета gdm автоматически удалится, установленный по умолчанию, пакет gdm3.

Теперь, аналогично установке пакетов vnc4server и gdm устанавливаем пакет openbsd-inetd, т.е. с помощью программы управления пакетами Synaptic (Система —> Администрирование —> программа управления пакетами Synaptic) или с помощью команды от имени суперпользователя

apt-get install openbsd-inetd

Чтобы при подключении на порт 5900 происходил автоматический запуск VNC сервера и при этом соединения на одном порту и количество VNC серверов не превышало количество необходимых в данный момент, надо настроить супер сервер inetd.
От имени супер пользователя (root) открыть (вызвать с помощью команды gedit) текстовый редактор. Открываем файл в etc/inetd.conf, добавляем следующую строку:

5900 stream tcp nowait my_user /usr/bin/Xvnc Xvnc -inetd -query localhost -once -depth 24 securitytypes=none

Параметр my_user заменяем на имя пользователя от чьего имени будет запущен vncserver.

Осталось настроить, установленный нами, gdm. Открываем файл в etc/gdm/gdm.conf и редактируем его. Добавляем

[xdmcp]
Enable=true

После всех изменений необходимо перезагрузить систему. Терминальный VNC сервер на Debian 6.0 настроен, теперь можно к нему подключиться терминальным VNC клиентом.




НАПИСАТЬ ПИСЬМО
ritminform@bk.ru
www.ritminform.ru www.ritminform.org www.ritminform.pochta.ru www.ritminform.narod.ru Copyright © 2009 Владимир Соколов