Месяц: Апрель 2015

Конфигурационный файл терминала WTware. Возможности терминала, параметры и описания.

Полный список доступных параметров.

Отладка, настройка терминала

  • Любая программа содержит ошибки. Если вы считаете, что терминал WTware ведет себя не так, как должен, или если вы нашли явную ошибку — вы можете сформировать отчет для службы поддержки WTware. C вашей помощью мы можем сделать WTware лучше. Для того, чтобы сформировать отчет:
    1. На любой Windows-машине запустите программу «Пуск — Программы — WTware — Просмотр сообщений» (wtcenter.exe из каталога utils zip-дистрибутива WTware).
    2. Укажите в конфигурационном файле терминала (либо в файле wizard.wtc, если ошибка в «Мастере настройки терминала») параметр syslog. Значение параметра должно соответствовать IP-адресу машины, на которой запущена программа wtcenter.exe:

      syslog = 10.100.50.2

    3. Перезагрузите терминал и попытайтесь воспроизвести ошибку. Терминал будет вести протокол работы, а программаwtcenter.exe будет принимать сообщения и отображать на экран. Когда ошибку удастся воспроизвести, нажмите на кнопку «Сохранить в файл».
    4. Вышлите получившийся файл и словесное описание ошибки в службу поддержки WTware.

    Использование параметра syslog несколько замедляет работу терминала, поэтому не следует его указывать при штатной эксплуатации терминалов.

Выбор сервера и настроек сессии

Группа параметров win2kIP определяет терминальный сервер, к которому подключится терминал. Эти же параметры позволяют выбрать настройки сессии. Возможно несколько вариантов указания значения.

  1. Подключение к определенному терминальному серверу. Нужно указать IP-адрес терминального сервера (либо DNS-имя, если в сети работает сервер DNS и его адрес сообщает сервер DHCP):

    win2kIP = 10.100.50.2

  2. Поиск первого действующего сервера. Терминал будет последовательно посылать ping на все перечисленные сервера и подключится к тому, который ответит. Список серверов указывается следующими параметрами:

    win2kIP = 10.100.50.2
    win2kIP2 = 10.100.50.3
    win2kIP3 = 10.100.50.4
    win2kIP4 = 10.100.50.5
    win2kIP5 = 10.100.50.6
    win2kIP6 = 10.100.50.7
    win2kIP7 = 10.100.50.8

  3. Подключение к кластеру терминальных серверов WTware. Подробнее о настройке кластера обязательно прочтите в соответствующей статье:
    1. Автоматический поиск всех серверов, входящих в кластер с именем common:

      win2kIP = name:common

    2. Поключение к кластеру buh путем опроса серверов, перечисленных в файле buh.iplist (текстовый файл buh.iplistдолжен находиться на tftp-сервере в том же каталоге, что и остальные конфигурационные файлы. В этом файле должен находиться список ip-адресов, по одному адресу в строке):

      win2kIP = name:buh, list:buh.iplist

  4. Подключение к серверу ViTerminal указывается ключем vi:

    win2kIP = vi:192.168.1.1

    Если сервер лицензий ViTerminal находится на другой машине, это нужно указать ключевым словом vilic:

    win2kIP = vi:192.168.1.1, vilic:192.168.1.5

  5. Выбор пользователем одного варианта из меню. В качестве адреса для подключения может указываться как отдельный сервер (ip-адрес или DNS-имя), так и кластер. Синтаксис описания адреса такой же, как в пунктах 1-4. После адреса может следовать ключевое слово opt: и затем имя файла конфигурации. Настройки из этого конфигурационного файла будут использоваться в случае выбора пользователем соответствующего пункта меню. Таким образом можно задать разные настройки для терминала при работе с разными серверами. Подробнее о подключении файлов конфигурации смотрите директиву include. В отличие от настроек из файлов, подключенных директивой include, настройки из файлов, подключенных ключевым словом opt: имеют приоритет над настройками, указанными в основном конфигурационном файле. После запятой следует комментарий, который увидит пользователь в меню. Указывать комментарий обязательно.

    win2kIP = name:buh, list:buh.iplist, opt:buh.cfg, Бухгалтерия
    win2kIP2 = name:finance, Финансовый отдел
    win2kIP3 = 10.100.50.4, opt:inet.cfg, Сервер интернет
    win2kIP4 = 10.100.50.7, Сервер АРМ оператора

Настройки сессии

    • По умолчанию после подключения к терминальному серверу пользователю терминала в окне «Вход в Windows» придется указать логин, пароль и домен (если терминальный сервер входит в домен). Можно упростить жизнь пользователя, задав некоторые из этих значений в файле конфигурации. Существует два метода задания этих значений:
      1. Явное указание определенных значений. Те значения, которые вы не укажете, пользователю придется вводить самостоятельно. Используются параметры user, password и domain:

        user = vasyapupkin
        domain = MYDOMAIN
        password = coolpassword

      2. Есть возможность дать пользователю выбрать реквизиты для входа из меню. Реквизиты указываются любым из cледующих способов:

        DOMAIN\user[display_name]:password
        DOMAIN\user:password
        user[display_name]:password
        user:password
        DOMAIN\user[display_name]
        DOMAIN\user
        user

        display_name это имя, которое будет написано на экране в меню. Если не указано, то в меню будет написано имя пользователя. Друг от друга такие блоки отделяются точкой с запятой. Например, такая строка в конфигурационном файле создаст меню из 6 пунктов (пользователи vasja и peter из домена DOMAIN2, у пользователя vasja пароль ‘joke’, у пользователя john пароль ‘1’):

        user = DOMAIN2\vasja[Василий Пупкин]:joke;DOMAIN2\peter;john:1;july;Guest;--new--

        Ключевое слово --new-- указывает терминалу оставить поле с именем пользователя пустым. Пунктов меню может быть столько, сколько помещается на экране. Терминал будет автоматически отображать элементы в несколько колонок.

      Если сервер не воспринимает пароль — зайдите в Панель управления — Администрирование — Настройка служб терминалов — RDP-Tcp — Параметры входа. Галочка «Требовать пароль только для входа» должна быть убрана.

    • Обычно терминальный сервер запускает explorer сразу после того, как пользователь входит на терминальный сервер. Таким образом пользователь получает привычный рабочий стол Windows. Если вам нужно, чтобы вместо рабочего стола запускалась какая-то одна программа, можно воспользоваться параметром shell. Таким образом неплохо эмулируется режим Seamless Windows из Citrix Metaframe. Стоит отметить, что параметр shell не запрещает излишне опытному пользователю нажать Ctrl-Shift-Esc, запустить «Диспетчер задач Windows» и из него запустить любую другую программу. Запрет на запуск ненужных приложений формируется иным способом с использованием политик Windows или стороннего программного обеспечения. Пример использования shell, запуск консоли командной строки:

      shell = c:\windows\system32\cmd.exe

      Еще один пример, запуск Microsoft Word и открытие документа (в конфигурационном файле это должно быть записано одной строкой):

      shell = C:\Program Files\Microsoft Office\Office10\winword.exe "c:\temp\document 1.doc"

 

    • При использовании параметра shell может понадобиться задать рабочий каталог запущенной программы. Для этого существует параметр directory. Например, при запуске консоли с командной строкой через параметр shell такая строка заставит вместо домашней директории пользователя открыть командную строку в директории c:\windows\temp:

      directory = c:\windows\temp

    • Раскладку клавиатуры по умолчанию в окне «Вход в Windows» можно задать параметром keyboard. По умолчанию устанавливается английская раскладка, кроме нее можно задать русскую:

      keyboard = ru

      Немецкую:

      keyboard = de

      Или любую другую из списка: af (Afrikaans), sq (Albanian), ar (Arabic), ar-sa (Arabic (Saudi Arabia)), ar-iq (Arabic (Iraq)), ar-eg(Arabic (Egypt)), ar-ly (Arabic (Libya)), ar-dz (Arabic (Algeria)), ar-ma (Arabic (Morocco)), ar-tn (Arabic (Tunisia)), ar-om (Arabic (Oman)), ar-ye (Arabic (Yemen)), ar-sy (Arabic (Syria)), ar-jo (Arabic (Jordan)), ar-lb (Arabic (Lebanon)), ar-kw (Arabic (Kuwait)),ar-ae (Arabic (U.A.E.)), ar-bh (Arabic (Bahrain)), ar-qa (Arabic (Qatar)), eu (Basque), bg (Bulgarian), be (Belarusian), ca (Catalan),zh (Chinese), zh-tw (Chinese (Taiwan)), zh-cn (Chinese (China)), zh-hk (Chinese (Hong Kong SAR)), zh-sg (Chinese (Singapore)), hr(Croatian), cs (Czech), da (Danish), nl (Dutch (Netherlands)), nl-be (Dutch (Belgium)), en (English), en-us (English (United States)),en-gb (English (United Kingdom)), en-au (English (Australia)), en-ca (English (Canada)), en-nz (English (New Zealand)), en-ie (English (Ireland)), en-za (English (South Africa)), en-jm (English (Jamaica)), en-bz (English (Belize)), en-tt (English (Trinidad)), et (Estonian),fo (Faeroese), fa (Farsi), fi (Finnish), fr (French (France)), fr-be (French (Belgium)), fr-ca (French (Canada)), fr-ch (French (Switzerland)), fr-lu (French (Luxembourg)), gd (Gaelic), de (German (Germany)), de-ch (German (Switzerland)), de-at (German (Austria)), de-lu (German (Luxembourg)), de-li (German (Liechtenstein)), el (Greek), he (Hebrew), hi (Hindi), hu (Hungarian), is(Icelandic), in (Indonesian), it Italian ((Italy)), it-ch (Italian (Switzerland)), ja (Japanese), ko (Korean), lv (Latvian), lt(Lithuanian), mk (FYRO Macedonian), ms (Malay (Malaysia)), mt (Maltese), no (Norwegian (Bokmal)), no (Norwegian (Nynorsk)), pl(Polish), pt-br (Portuguese (Brazil)), pt (Portuguese (Portugal)), rm (Rhaeto-Romanic), ro (Romanian), ro-mo (Romanian (Moldova)),ru (Russian), ru-mo (Russian (Moldova)), sr (Serbian (Cyrillic)), sr (Serbian (Latin)), sk (Slovak), sl (Slovenian), sb (Sorbian), es(Spanish (Traditional Sort)), es-mx (Spanish (Mexico)), es (Spanish (International Sort)), es-gt (Spanish (Guatemala)), es-cr (Spanish (Costa Rica)), es-pa (Spanish (Panama)), es-do (Spanish (Dominican Republic)), es-ve (Spanish (Venezuela)), es-co (Spanish (Colombia)), es-pe (Spanish (Peru)), es-ar (Spanish (Argentina)), es-ec (Spanish (Ecuador)), es-cl (Spanish (Chile)), es-uy (Spanish (Uruguay)), es-py (Spanish (Paraguay)), es-bo (Spanish (Bolivia)), es-sv (Spanish (El Salvador)), es-hn (Spanish (Honduras)), es-ni(Spanish (Nicaragua)), es-pr (Spanish (Puerto Rico)), sx (Sutu), sv (Swedish), sv-fi (Swedish (Finland)), th (Thai), ts (Tsonga), tn(Tswana), tr (Turkish), uk (Ukrainian), ur (Urdu), vi (Vietnamese), xh (Xhosa), ji (Yiddish), zu (Zulu)

Также можно установить клавиатуру US International, которая иначе обрабатывает гравис (grave):

keyboard = en-us-int

keyboard = pt-br-int

    • По умолчанию при каждом соединении с терминальным сервером индикатор режима NumLock включен. Если вы хотите его выключить, укажите в конфигурационном файле такую строку:

      numlock = off

    • Несколько дополнительных графических возможностей терминала по умолчанию запрещены для повышения быстродействия и снижения нагрузки на сеть. Их можно разрешить, используя параметр graphic. Значением параметра является строка из одного или нескольких символов. Допустимые символы означают:

      a — фоновый рисунок рабочего стола
      b — содержимое окна при перетаскивании
      c — визуальные эффекты при отображении меню и окон
      d — темы
      f — сглаживание шрифтов

      Нужно указать в строке символ для каждой опции, которую Вы хотите разрешить. Например, разрешить все:

      graphic = abcd

      Еще пример, разрешить только фоновый рисунок рабочего стола:

      graphic = a

      Для того, чтобы Windows 2003 Server согласился показывать рисунок рабочего стола, надо выполнить следующую настройку: Пуск > Выполнить > gpedit.msc > Конфигурация компьютера > Административные шаблоны > Компоненты Windows > Службы терминалов > Принудительная отмена фонового рисунка. Должно быть значение «отключен».

    • Session Broker в Windows 2008 Server не сообщает пароль, когда указывает терминалу подключаться к другому серверу. Из-за этого пользователю приходится второй раз вводить пароль. Чтобы не заставлять пользователя вводить пароль дважды, надо написать в конфигурационном файле:

      ask_password = on

      После этого пользователь будет вводить пароль в диалоге WTware, и этот пароль будет автоматически использоваться при перенаправлении сеанса Session Broker.

 

Использование устройств терминала

    • Можно получать доступ к дисководу, USB-дискам и CDROM терминала. Для того, чтобы разрешить доступ к определенному носителю, надо указать в конфигурационном файле соответствующему параметру значение on или samba. Значение определяет механизм, использующийся для перенаправления диска.
      • Значение on определяет перенаправление диска посредством протокола RDP. Рекомендуем использовать именно этот механизм. При работе с Windows 2000 Server этот механизм не работает, можно использовать только значение samba.Диск будeт доступeн в сессии текущего пользователя из Проводника Windows по адресу: \\tsclient\{floppy|cdrom|usbN}. Иногда (не всегда, строгих закономерностей не выявлено) диск автоматически появляется в папке «Мой компьютер».USB флэш-диски подключаются автоматически. На дисках НЕ должно быть более одного раздела (лучше всего отформатировать флэшку утилитой от производителя флэшки). Файловая система NTFS не поддерживается. Через некоторое время после подключения USB диска (может пройти до минуты) иконка должна появиться в \\tsclient\. Если этого НЕ происходит — возможно, этот USB диск не поддерживается имеющимися драйверами. Пожалуйста, если у вас есть такой диск — пришлите нам лог, сохраненный после подключения этого диска. Лог включается параметром syslog. Для floppy, CDROM и USB-CDROM иконка всегда присутствует в \\tsclient\. Если вы указали соответствующий параметр в конфигурационном файле, но иконка диска не появилась в указанном месте — пожалуйста, убедитесь, что настройки терминального сервера позволяют подключение дисков клиента. Попробуйте получить доступ к дискам Windows-машины, подключившись с нее к серверу с использованием стандартного клиента служб терминалов от Microsoft (Пуск > Программы > Стандартные > Связь > Подключение к удаленному рабочему столу).

        Одна из настроек терминального сервера: в групповой политике (Пуск -> Выполнить -> gpedit.msc) надо пройти путь Конфигурация компьютера -> Административные шаблоны -> Компоненты Windows -> Службы терминалов -> Перенаправление данных клиент/сервер и установить политику «Не разрешать перенаправление дисков» в «Отключена».

        При работе с floppy, CDROM и USB-CDROM дисками терминала пользователь должен вручную подключать и отключать диски. После того, как пользователь вставил диск, он должен переместить мышь в правый нижний угол экрана. Всплывет окошко с кнопками. Кнопка «подключить» указывает терминалу прочитать содержимое физического диска. Обязательно нужно нажимать кнопку «отключить» ПЕРЕД извлечением диска, в противном случае данные на диске могут оказаться повреждены. Такой механизм является единственным надежным способом подключения дисков терминала.

      • Значение samba указывает терминалу запустить службу поддержки «Сети Microsoft». Любой пользователь с любого компьютера в сети может получить доступ к диску. Для этого в Проводнике Windows необходимо указать: \\IP-адрес-терминала\{floppy|cdrom|usbN}.

      По умолчанию все перенаправления дисков выключены. Не следует разрешать пользователям доступ к дискам терминала без крайней необходимости. Во-первых, это представляет серьезную угрозу для безопасности вашей компьютерной инфраструктуры. Имея возможность считывать и сохранять информацию на диски, пользователь может принести вирус или похитить важную информацию. Во-вторых, это расходует ресурсы терминала, в первую очередь память, которая могла бы использоваться под кэши.

      Для доступа к дисководу терминала укажите в конфигурациионном файле:

      floppy = on

      или

      floppy = samba

      Для доступа к USB-дисководу терминала укажите в конфигурациионном файле:

      floppy = usb

      Для доступа к CDROM терминала укажите в конфигурациионном файле:

      cdrom = on

      или

      cdrom = samba

      Для доступа к USB флэш-дискам терминала укажите в конфигурациионном файле:

      usbdisk = on

      или

      usbdisk = samba

      При использовании механизма samba терминалы будут входить в рабочую группу WTWARE. Если понадобится, их можно поместить в вашу группу, тогда терминалы могут появиться в «Сетевом окружении». Терминалы можно поместить в рабочую группу, но нельза поместить в домен! Имя группы задается параметром workgroup:

      workgroup = mygroup

      Для инвентаризации компьютеров предоставляется доступ к Linux-специфичной файловой системе /proc. В различные файлы этой системы выводится информация об аппаратной конфигурации компьютера. Параметр может принимать только одно значение:

      proc = on

    • Если корректно задать значение параметра printer, то к терминалу можно будет подключить принтер и печатать на него с других машин сети, в том числе с терминального сервера.Варианты значений параметра:

      printer = on

      разрешает односторонний обмен данными с LPT-принтером (данные пересылаются только от сервера к принтеру, но не обратно), драйвер параллельного порта lpt настроен на работу с портом 378, irq 7.

      printer = usb

      разрешает односторонний обмен с USB-принтером.

      printer = com1

      разрешает односторонний обмен данными с принтером, подключенным к последовательному порту com1 на скорости 9600 бит в секунду, разрядность восемь бит, без контроля четности, один стоп-бит (9600-8-N-1, это наиболее типичные настройки com-портового оборудования). Расширенный вариант этого параметра:

      printer = com1(38400)

      указывает скорость 38400 бит в секунду.Терминал, к которому подключен принтер, должен иметь фиксированный IP-адрес. О том, как научить Microsoft DHCP выдавать терминалам фиксированные адреса, читайте в отдельной статье. На сервере необходимо установить драйвера принтера, подключенного к терминалу WTware, эта процедура описана в отдельной статье.

      О том, как печатать на терминале из DOS, читайте здесь

      Терминал WTware эмулирует аппаратный принт-сервер HP JetDirect (аппаратный принт-сервер представляет собой небольшую коробочку с двумя разъемами, одним подключается к компьютерной сети, другим к принтеру). С терминалом WTware:

      • будут работать все принтеры, которые работают через аппаратный принт-сервер HP JetDirect (и любой другой, все аппаратные принт-серверы являются копиями HP JetDirect),
      • будут работать все принтеры, драйверы к которым входят в дистрибутив Windows,
      • будут работать все принтеры, которые могут печатать из чистого DOS без установки дополнительных драйверов,
      • будут работать win-принтеры HP1000, HP1005, HP1018, HP1020, HP P1005, HP P1006 и HP P1505, но для этих принтеров не будет работать печать пробной страницы из WTware,
      • не будут работать так называемые Win-принтеры. Вот лишь некоторые из них: HP 700c, 820c, 1000c, 3300c, 3400c, DJ 820cxi, LJ 3100; Canon LBP-250/810/1110/1120/1210/2410; Epson LP1300,EPL 5800/2050+/6200L, C900; Lexmark X5150;Dell A920/940/960, J740; Minolta 1350W/1250W/2300W,

      .Одновременно с терминалом может работать до четырех принтеров. printer2 использует порт 9101, printer3 использует порт 9102 и printer4 использует порт 9103. Если вы подключаете несколько принтеров на однотипные порты (lpt и lpt, или usb и usb), то физически получающийся порядок именования портов и принтеров проще проверять экспериментально, печатая тестовые страницы. Чтобы напечатать тестовую страницу из WTware, нужно нажать Del в начале загрузки на предложение «Press Del to enter SETUP» и в меню перейти в режим отладки терминала.

      printer = lpt
      printer2 = lpt
      printer3 = usb
      printer4 = com1(38400)

      Если хотя бы для одного принтера после типа интерфейса указано server_only, например, printer = lpt,server_only, то терминал будет игнорировать все остальные параметры и работать как принт-сервер, не загружая графическую оболочку и не пытаясь подключаться к терминальному серверу.

    • Можно перенаправить звук с сервера на звуковую карту терминала, если сервером является Windows 2003 Server или Windows XP. Учтите, что играющий Winamp создает траффик до 500 килобайт в секунду, то есть до половины полосы пропускания 10 Мбитной сети. Задержки в 1-3 секунды при проигрывании звука устранить невозможно.

      При работе с Windows 2000 Server никак нельзя перенаправить звук.

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

      sound = on

      Следующая строка оставит звук на сервере, т.е. звук будет воспроизводиться через звуковую карту сервера:

      sound = remote

      По умолчанию перенаправление звука отключено. Если вы указали соответствующий параметр в конфигурационном файле, но при попытке проиграть звук выдается ошибка либо звук просто не передается — пожалуйста, убедитесь, что настройки терминального сервера позволяют перенаправление звука. Попробуйте перенаправить звук на Windows-машину, подключившись с нее к серверу с использованием стандартного клиента служб терминалов от Microsoft (Пуск > Программы > Стандартные > Связь > Подключение к удаленному рабочему столу).

      Для того, чтобы Windows 2003 Server согласился перенаправить звук, иногда надо выполнить следующую настройку: Пуск > Выполнить > gpedit.msc > Конфигурация компьютера > Административные шаблоны > Компоненты Windows > Службы терминалов > Перенаправление данных клиент/сервер > Разрешить перенаправление звука. Должно быть «Вкл».

      Уровень громкости звука, который будет установлен после запуска терминала, указывается так:

      sound_level = 50

      Диапазон значений — от 0 (звук выключен) до 100 (максимальная громкость).

      Некоторые драйвера на некоторых звуковых картах не могут управлять аппаратным уровнем громкости. В этом случае можно использовать программную регулировку уровня громкости:

      sound_control = sw

      Некоторые драйвера на некоторых звуковых картах некорректно устанавливают скорость воспроизведения. В частности, этим грешат старые AMD Geode GX1 (Cyrix Kahlua). В результате звук воспроизводится намного быстрее, чем должен. Исправить это можно, добавив в конфигурационный файл одну из указанных ниже настроек:

      sound_rate = 32000
      sound_rate = 44100
      sound_rate = 48000

    • Перенаправление последовательных портов не идеально реализовано в Windows 2003 Server. Например, существующая реализация не позволяет выйти в Интернет через модем, подключенный к COM-порту терминала. Однако для некоторых задач существующий функционал вполне подходит.

      При работе с Windows 2000 Server никак нельзя перенаправить последовательные порты.

      Будет лучше, если перед тем, как подключать устройство к COM-порту терминала WTware, вы подключите его к Windows-машине, запустите на ней стандартный клиент службы терминалов Microsoft и проверите работу со своим устройством.

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

      com1 = on

      Для порта COM2:

      com2 = on

      Для порта COM3:

      com3 = on

      И для порта COM4, соответственно:

      com4 = on

      COM-порты на PCI-платах скорее всего будут начинаться с COM5:

      com5 = on

      Чтобы избежать путаницы с физическими портами сервера, рекомендуем на сервере переобозначить физические порты. Это делать не обязательно, но если вы это не проделаете — в терминальной сессии будет два порта с именем COM1, и не всякое приложение сможет выбрать из них правильный. Настройка делается так: клик правой кнопкой мыши на «Мой компьютер» > Управление > Диспетчер устройств > Порты (COM и LPT) > Последовательный порт (COM1) > Свойства > Параметры порта > Дополнительно > Номер COM-порта. Укажите, к примеру, COM11. Затем ту же процедуру надо проделать с портом COM2 и указать, к примеру, COM12. После этого нужно перегрузить сервер.

      Проверить, что все сделано правильно, можно так: подключитесь к терминальному серверу, откройте окно командной строки и выполните команду change port. Должен быть примерно такой результат (перенаправлен порт COM1):

      COM1 = \Device\RdpDrPort\;COM1:1\tsclient\COM1
      COM11 = \Device\Serial0
      COM12 = \Device\Serial1

      Это означает, что в сессии доступны три последовательных порта. Порты COM11 и COM12 являются физическими последовательными портами сервера. Порт COM1 является физическим портом COM1 терминала. Любое приложение, запущенное в этой сессии и обратившееся к устройству COM1, фактически будет работать с портом COM1 терминала.

      Сканеры штрих-кодов с интерфейсом USB, фискальные регистраторы, принтеры чеков, ККМ и остальное оборудование, которое выпускается в вариантах с COM-портом и с USB-портом, также подключаются через параметр com, и на терминальном сервере становится доступным как COM-портовое устройство. Дело в том, что физически в таких устройствах устанавливают преобразователь USB-COM, а терминал проводит обратное преобразование. Аналогичную работу выполняет и Windows-драйвер, он создает витуальный com-порт на компьютере. Для того, чтобы перенаправить такое устройство с интерфейсом USB, укажите в конфигурационном файле:

      com1 = usb-serial

      Частично несовместимые порты замечены на матерях SiS 651 и внешних PCI-контроллерах. Несовместимость проявляется в том, что к порту не удается обратиться из сеанса Windows, а в логе появляются сообщения «Broken port? Try comX=on,broken.». Для простых устройств, например, сканеров штрих-кодов, функциональности такого порта вполне достаточно. Укажите в конфигурационном файле:

      com1 = on, broken

      Для тех, кто понимает. broken означает DTR_OFF, RTS_OFF. Эти флаги указывают значения линий, которые будут сохраняться постоянно. Соответствующие команды Windows в случае указания этих флагов игнорируются. Синтаксис:

      com1 = on, DTR_OFF, RTS_ON
      com1 = on, DTR_ON
      com1 = on, RTS_OFF

    • Планшетные USB-cканеры перенаправляются, используя SANE. Должны работать все модели из этого списка. На терминальном сервере нужно установить и настроить ответную часть SaneTwain. Для того, чтобы перенаправить планшетный сканер, в конфигурационном файле надо указать:

      scanner = on

    • Перенаправление смарт-карт возможно при работе с Windows 2003 Server.

      При работе с Windows 2000 Server никак нельзя перенаправить смарткарты.

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

      smartcard = on

    • Перенаправление шины USB теоретически может использоваться для любого оборудования, подключенного к USB. Практически, в результате устройство оказывается как бы физически подключенным прямо к серверу, прямым USB проводом. Поэтому доступно для всех пользователей сервера и никак не связано с сессией и пользователем, который работает за терминалом. Это удобно для планшетных сканеров, допустимо для принтеров и бесполезно для авторизации по смарт-карте.
      На терминальном сервере нужно установить и настроить windows-драйвер USBIP с этого сайта: http://usbip.sourceforge.net/Работает только для 32-битных Windows 2003 Server и Windows XP.
      Устройство, которое предполагается подключать к терминалу, нужно сначала подключить к серверу. Установить на сервер необходимые драйвера для этого устройства и убедиться, что устройство работает. Только после этого можно подключать устройство к терминалу и выполнять настройку терминала.
      Для того, чтобы терминал предоставлял доступ к тем устройствам, которые терминал сочтет нужными, в конфигурационном файле следует написать:

      shared_usb = on

      При этом на сервере вам придется самостоятельно запускать утилиту командной строки usbip.exe из пакета USBIP на сервере с правами Администратора, чтобы подключить нужное устройство.
      Для того, чтобы терминал предоставил доступ к одному определенному устройству, придется выяснить USB ID этого устройства. Вариантов несколько:

      1. Подключить устройство к компьютеру с Windows. В Диспетчере устройств найти нужное устройство и затем на вкладке Сведения найти свойство «Код экземпляра устройства». Два четырехзначных шестнадцатеричных числа VID и PID вместе представляют собой USB ID.
      2. Написать в конфигурационном файле shared_usb=on, затем на windows-машине из командной строки запустить:
        usbip.exe --list IP_адрес_терминала
        В строке:
        1-1: unknown vendor : unknown product (090c:6200)
        USB ID это 090c:6200. Этот способ может не сработать, так как автоматически терминал перенаправляет не все устройства, а только те, которые сочтет целесообразным.
      3. Включить лог WTware параметром syslog. При подключении USB устройства терминал напишет в лог строку наподобие:
        KERNEL: usb 1-1: New USB device found, idVendor=090c, idProduct=6200
        USB ID в ней 090c:6200.

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

      shared_usb=090c:6200

      В этом случае терминал будет перенаправлять только это устройство и не будет перенаправлять ничего другого. Можно перечислить несколько устройств:

      shared_usb=090c:6200,090c:6201,090c:6209

      Запускать usbip.exe вручную неудобно. Для того, чтобы устройства подключались к серверу автоматически, мы написали службу WTware USBIP Initiator. Эта служба устанавливается во время установки WTware. Для того, чтобы терминал сообщал серверу о наличии нового устройства для подключения, в конфигурационном файле терминала надо написать:

      shared_usb=server:192.168.1.1

      Здесь 192.168.1.1 это IP адрес сервера, на котором запущена служба WTware USBIP Initiator, и к которому в результате окажется подключенным перенаправленное устройство. Можно писать так:

      shared_usb=server:192.168.1.1,090c:6200,090c:6201,090c:6209

      Сообщения службы WTware USBIP Initiator можно увидеть, запустив «Пуск — Программы — WTware — Просмотр сообщений»

      Терминал, с которого перенаправляются устройства через USBIP, следует выключать корректно: через завершение работы (смотри параметр turnoffmenu) или кнопкой Power. Не следует перезагружать этот терминал кнопкой Reset. При нажатии Reset сервер не получит от терминала уведомления об отключении устройства. Когда сервер попытается обратиться к этому устройству, работа всех пользователей на сервере может приостановиться на несколько секунд.

 

Прочее

    • Имя терминала, которое будет отображаться в «Менеджере служб терминалов» и использоваться для нужд лицензирования доступа к службе терминалов Microsoft (подробнее про лицензирование служб терминалов читайте отдельную статью) для терминала WTware задается параметром clienthostname:

      clienthostname = terminal1

      Лучше использовать разные имена для разных терминалов. Также имя терминала может быть получено от DHCP-сервера (в этом случае оно может использоваться для именования конфигурационного файла, подробнее читайте отдельную статью). Однако значение параметра clienthostname имеет приоритет над именем, полученным от DHCP-сервера. По умолчаниюclienthostname формируется автоматически и имеет вид wtwXXXXXXXXXXXX, где XXXXXXXXXXXX — мак-адрес терминала.

    • Директива include позволяет вынести все повторяющиеся параметры в один (два, три…) общих файла:

      include common.wtc

      Терминал, встретив эту директиву, запросит у TFTP-сервера указанный файл (файл должен находиться в каталоге configs, там же, где и все остальные конфигурационные файлы) и включит все указанные в нем параметры. Формат подключаемого файла совпадает с форматом основного конфигурационного файла, любые параметры могут быть вынесены во включаемый файл. В основном конфигурационном файле можно использовать произвольное количество директив include. Нельзя использовать директиву include в подключенных файлах. Параметры, которые указаны в основном конфигурационном файле, всегда имеют приоритет над параметрами из подключаемых файлов.

    • После завершения сеанса связи с сервером терминал немедленно вновь подключится к серверу. Иногда пользователи остаются в недоумении: когда же им в таком случае выключить компьютер, если на экране всегда Windows? Укажите в конфигурационном файле параметр:

      turnoffmenu = on

      Встретив этот параметр, терминал добавит пункт «Выключить компьютер» в меню, указанные параметрами win2kIP или user. Если же меню выбора сервера и пользователя не указаны, выдаст на экран заставку с текстом «Отключите питание компьютера или нажмите Enter для продолжения работы.» после завершения сеанса связи с сервером.

      При указании значения always:

      turnoffmenu = always

      терминал выдаст на экран заставку с текстом «Отключите питание компьютера или нажмите Enter для продолжения работы.» после завершения сеанса связи с сервером И добавит пункт «Выключить компьютер» в меню выбора сервера и пользователя, если они указаны параметрами win2kIP или user.

      При нажатии на клавиши Esc, Sleep, Power во время заставки с текстом «Отключите питание…» терминал выключится.

      Терминал может отключаться сразу после завершения сеанса. Для этого нужно в конфигурационном файле указать параметр:

      turnoffmenu = poweroff

    • Можно указать терминалу выключаться, если в течение какого-то времени терминал не подключен к серверу. На экране терминала в это время может быть меню выбора сервера, выбора пользователя, скринсейвер или информационное окно. Время ожидания задается в минутах:

      autoshutdown = 5

    • Можно выключать и перезагружать терминалы с другого компьютера. Это может пригодиться, например, после внесения изменений в конфигурационные файлы, если эти изменения нужно применить немедленно. Такая строка в конфигурационном файле разрешит упраравлять терминалом с любого компьютера:

      managed = on

      А такая строка разрешит управление только с компьютера с адресом 192.168.10.15:

      managed = 192.168.10.15

      Управляются терминалы командой rsh.exe, входящей в дистрибутив Windows Server. Чтобы немедленно перезагрузить терминал 192.168.10.50, надо запускать так:

      rsh.exe 192.168.10.50 reboot

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

      rsh.exe 192.168.10.50 update

      Чтобы выключить терминал, надо запускать так:

      rsh.exe 192.168.10.50 shutdown

    • Если передвинуть мышь в нижний правый угол экрана — всплывет окошко WTware. В нем будет указана версия WTware, IP терминального сервера, MAC-адрес терминала. Если в конфигурационном файле были указаны параметры floppy, cdrom, usbN, то в этом же окошке будут размещены кнопки подключения/отключения дисков. Если это окошко вам мешает, терминал может показывать его только при нажатии одной из управляющих клавиш. Внесите в конфигурационный файл одну из следующих строк:

      infobox = lctrl
      infobox = rctrl
      infobox = lalt
      infobox = ralt
      infobox = lshift
      infobox = rshift

      lctrl означает «левая клавиша Ctrl», rshift означает «правая клавиша shift».

    • Параметр redraw_delay определяет максимальный интервал между обновлениями экрана. Задается в миллисекундах. Разумные значения — от 50 до 3000, значение по умолчанию — 300.

      redraw_delay = 50

      Когда сервер шлет данные для вывода на экран очень быстро и терминал не справляется с объемом рисования — терминал перестает обновлять экран и рисует картинку только в буфере кадра, в оперативной памяти. Это хорошо заметно в консольных приложениях, например, если из командной строки сервера выполнить команду ‘type длинныйтекстовыйфайл’. За счет того, что не происходит вывода в медленную видеопамять, терминалу удается просчитывать кадр быстрее и тем самым быстрее справиться с объемом отрисовки. C другой стороны, пользователи очень негативно относятся к тому, что терминал перестает обновлять экран. Человек любит всякое движение на экране. Поэтому через некоторые интервалы времени терминал обновляет картинку на экране, даже если в очереди еще стоят невыполненные команды от сервера. Маленькие значения сделают изображение на экране более живым. Большие значения могут привести к задержкам при обновлении экрана и за счет этого позволят терминалу быстрее выполнить большие объемы отрисовки.

    • Параметр rdpcompression включает сжатие RDP пакетов:

      rdpcompression = on

      Это имеет смысл делать только для работы по низкоскоростным линиям. При работе в локальной сети несколько снизит производительность терминалов. По умолчанию отключено.

    • Параметр connect_timeout задает время, в течение которого терминал пытается подключиться к серверу.

      connect_timeout = 15

      Такая строка означает, что терминал будет пятнадцать секунд стучаться к серверу и только после этого выдаст пользователю сообщение о том, что сервер недоступен. Может быть полезно при работе на медленных и ненадежных линиях.

    • Параметр codepage задает кодовую страницу конфигурационного файла. На разных платформах русские буквы удобнее писать в разных кодировках, и codepage позволяет это учесть. Примеры:

      codepage = win
      codepage = dos
      codepage = koi8

      По умолчанию в силу исторических причин установлена dos.

    • Параметр language задает язык, на котором можно будет вводить домен, логин и пароль. Английский присутствует всегда, другой язык нужно добавлять:

      language = ru

      Чтобы указать, что язык должен быть выбран первым вместо английского, надо написать:

      language = ru,default

  • Параметр keyswitch задает комбинацию клавиш, переключающую раскладки клавиатуры. Используется только при вводе домена, логина и пароля в интерфейсе WTware, и только если указан параметр language. По умолчанию раскладки переключаются клавишами Ctrl-Shift. Изменить так:

    keyswitch = alt-shift

Настройки консоли терминала

Мастер настройки терминала позволяет подобрать и проверить значения параметров этой группы. Проще воспользоваться мастером, чем выбирать значения вручную.

      • Если мышь подключена не к порту PS/2, необходимо указать одно из следующих значений параметра mouse:

        mouse = usb
        mouse = com1
        mouse = com2
        mouse = com3
        mouse = com4

На терминалах, на которых установлено 64 и более Мб памяти, USB-мышь будет обнаружена автоматически.

 

    • Если вы используете мышь без колесика, необходимо указать это в конфигурационном файле:

      mouse_wheel = off

    • Скорость перемещения указателя мыши можно скорректировать параметром mouse_accel_mult. По умолчанию этот параметр принимает значение 5, разумные пределы — от 0.01 до 8. Чтобы сделать мышь очень медленной, напишите в конфигурационном файле:

      mouse_accel_mult = 0.05

    • Можно указать задержку перед началом повтора символов и скорость повтора на клавиатуре. Такая строчка установит обычные значения (30 повторов в секунду, 250 милисекунд перед началом повторов):

      kbdrate = 30,250

      А такая сделает клавиатуру неторопливой (2 повтора в секунду, 1000 милисекунд перед началом повторов):

      kbdrate = 2,1000

      Если параметр kbdrate не указан, то будут действать настройки, указанные в BIOS.

    • Драйвер видеокарты указывается параметром video. Никакие другие значения, кроме перечисленных ниже, не допускаются. Настойчиво рекомендуем подбирать драйвер видеокарты только с использованием мастера настройки терминала.
        • Драйвера графической библиотеки svgalib 1.4.3, суффикс (S).
          • чипсет Tseng ET4000:

            video = ET4000(S)

          • чипсет Tseng ET6000:

            video = ET6000(S)

          • чипсеты Cirrus Logic GD542x:

            video = Cirrus(S)

          • чипсеты Cirrus Logic 546x (laguna):

            video = LAGUNA(S)

          • чипсеты Trident TVGA8900/9000:

            video = TVGA(S)

          • чипсеты Oak Technologies 037/067/077:

            video = Oak(S)

          • чипсеты S3 Trio:

            video = S3(S)

          • чипсет S3 savage:

            video = SAVAGE(S)

          • чипсет ARK Logic:

            video = ARK(S)

          • старые чипсеты ATI VGA:

            video = ATI(S)

          • чипсет ATI Mach32:

            video = Mach32(S)

          • чипсет ALI2301:

            video = ALI(S)

          • чипсеты Alliance Technology AT 24 / 25 / 3D:

            video = APM(S)

          • чипсеты nVidia Riva 128 / TNT / GeForce:

            video = NV3(S)

          • чипсет WD90C31:

            video = PARADISE(S)

          • чипсет ATI Rage Pro, mach64:

            video = RAGE(S)

          • чипсет ATI Rage 128:

            video = R128(S)

          • чипсет Banshee/V3:

            video = BANSHEE(S)

          • чипсеты SiS 5597 / 6326 / 620 / 530:

            video = SIS(S)

          • чипсет Intel i740:

            video = I740(S)

          • чипсеты Matrox G200/G400/G450:

            video = G400(S)

          • универсальный драйвер VESA, работает почти на всех картах. НЕ ПОЗВОЛЯЕТ ИЗМЕНЯТЬ ЧАСТОТУ РЕГЕНЕРАЦИИ, поэтому пользуйтесь им только если ваша видеокарта не поддерживается никаким другим драйвером.

            video = VESA(S)

        • Драйвера графической библиотеки svgalib 1.9.20, суффикс (T).
          • чипсет Tseng ET4000:

            video = ET4000(T)

          • чипсет Tseng ET6000:

            video = ET6000(T)

          • чипсеты Cirrus Logic GD542x / 543x / 544x:

            video = Cirrus(T)

          • чипсеты Cirrus Logic 546x (laguna):

            video = LAGUNA(T)

          • чипсеты Trident TVGA8900/9000:

            video = TVGA(T)

          • чипсеты S3:

            video = S3(T)

          • чипсет S3 Savage, Virge, некоторые из серии Trio64:

            video = SAVAGE(T)

          • чипсет ARK Logic:

            video = ARK(T)

          • чипсет ALI2301:

            video = ALI(T)

          • чипсеты Alliance Technology AT 24 / 25 / 3D:

            video = APM(T)

          • чипсеты nVidia Riva 128 / TNT / GeForce:

            video = NV3(T)

          • чипсет WD90C31:

            video = PARADISE(T)

          • чипсет ATI Rage Pro, mach64:

            video = RAGE(T)

          • чипсет ATI Rage 128 и Radeon:

            video = R128(T)

          • чипсет Banshee/V3:

            video = BANSHEE(T)

          • чипсеты SiS 5597 / 6326 / 620 / 530:

            video = SIS(T)

          • чипсет Intel i740:

            video = I740(T)

          • чипсеты Matrox Mystique / G100 / G200 / G400 / G450:

            video = G400(T)

          • чипсеты Matrox Millennium, Millennium II:

            video = MILLENNIUM(T)

          • чипсеты Intel i810 / 815

            video = I810(T)

          • чипсеты Trident PCI / AGP:

            video = TRIDENT(T)

          • чипсеты Chips & Technologies:

            video = C&T(T)

          • чипсеты VIA/S3 Unichrome:

            video = UNICHROME(T)

          • универсальный драйвер VESA, работает почти на всех более-менее новых картах. НЕ ПОЗВОЛЯЕТ ИЗМЕНЯТЬ ЧАСТОТУ РЕГЕНЕРАЦИИ, поэтому пользуйтесь им только если ваша видеокарта не поддерживается никаким другим драйвером:

            video = VESA(T)

        • Драйвера графической библиотеки Linux Kernel Framebuffer, суффикс (F).
          • чипсеты nVidia Riva/Geforce:

            video = rivafb(F)

          • чипсеты Intel i810, i815:

            video = i810fb(F)

          • чипсеты Intel 830M/845G/852GM/855GM/865G:

            video = intelfb(F)

          • чипсеты Cirrus Logic GD542x/543x/544x/5480:

            video = clgenfb(F)

          • чипсеты Matrox Millennium, Millennium II, Mystique, Mystique 220, Productiva G100, Mystique G200, Millennium G200, G400, G450 и G550:

            video = matroxfb_base(F)

          • чипсеты ATI Mach64:

            video = atyfb(F)

          • чипсеты ATI Radeon:

            video = radeonfb(F)

          • чипсеты ATI Rage128:

            video = aty128fb(F)

          • чипсеты SiS 300, 315 и 330:

            video = sisfb(F)

          • чипсеты Trident CyberXXXX/Image/CyberBlade, в том числе материнские платы VIA EPIA на чипсете PLE133:

            video = tridentfb(F)

          • чипсеты VIA/S3 UniChrome (CLE266, KM400, KN400, KM800, KN800, PM800, PN800, CN400), материнские платы VIA EPIA на чипсете CLE266:

            video = viafb(F)

          • чипсеты Cyrix MediaGX, Natsemi Geode (интегрированы в некоторые тонкие клиенты):

            video = nsc(F)

          • чипсеты S3 Savage:

            video = savagefb(F)

          • чипсеты tdfx voodoo 3/4/5:

            video = tdfxfb(F)

      • Драйвера графической библиотеки X.org 6.9.0, суффикс (X).
        • чипсеты Alliance Promotion AT3D, AT25, AT24:

          video = apm(X)

        • чипсеты ARK Logic ARK1000PV, ARK2000PV, ARK2000MT:

          video = ark(X)

        • чипсеты ATI:

          video = ati(X)

        • чипсеты Chips and Technologies 65520, 65525, 65530, 65535, 65540, 65545, 65546, 65548, 65550, 65554, 65555, 68554, 69000, 64200, 64300:

          video = chips(X)

        • чипсеты Cirrus Logic Alpine (5430, 5434, 5436, 5446, 5480, 7548) и Laguna (5462, 5464, 5465):

          video = cirrus(X)

        • чипсеты Cyrix MediaGX, Natsemi Geode (интегрированы в некоторые тонкие клиенты):

          video = cyrix(X)

        • чипсеты Permedia и GLINT:

          video = glint(X)

        • чипсет Intel i740:

          video = i740(X)

        • чипсеты Intel i810, i810-dc100, i810e, i815, i830M, i845G, i852GM, i855GM, i865G, i915, i925:

          video = i810(X)

        • чипсеты Matrox MGA2064W (Millennium I), MGA1064SG (Mystique), MGA2164W (Millennium II) (PCI, AGP), G100, G200, G400, G450, G550:

          video = mga(X)

        • чипсеты NVIDIA Riva 128, 128ZX, TNT, TNT2 (Ultra, Vanta, M64), GeForce (DDR, 256), Quadro, GeForce2 (GTS, Ultra, MX), GeForce3, Quadro2:

          video = nv(X)

        • чипсеты S3 964 (revisions 0 and 1), 968, Trio32, Trio64, Trio64, Trio64V+, Trio64UV+, Aurora64V+, Trio64V2, PLATO/PX:

          video = s3(X)

        • чипсеты S3 ViRGE, ViRGE/VX, ViRGE/DX, ViRGE/GX, ViRGE/GX2, ViRGE/MX, ViRGE/MX+, Trio3D, Trio3D/2X:

          video = s3virge(X)

        • чипсеты S3 Savage3D, Savage3D/MV, Savage4, Savage2000, SuperSavage:

          video = savage(X)

        • чипсеты SiS5597/5598, SiS530/620, SiS6326/AGP/DVD, SiS300/305, SiS540, SiS630/730, SiS315/H/PRO SiS550 SiS650/651/650M/740, SiS330 (Xabre):

          video = sis(X)

        • чипсеты Voodoo Banshee, Voodoo3, Voodoo4, Voodoo5:

          video = tdfx(X)

        • чипсеты Trident TVGA8900B, TVGA8900C, TVGA8900CL, TVGA9000, TVGA9000i, TVGA9100B, TVGA9200CXr, TVGA8900D, TGUI9440AGi, TGUI9660, TGUI9680, ProVidia 9682, ProVidia 9685, 3DImage975, 3DImage985, Blade3D, Cyber9320, Cyber9382, Cyber9385, Cyber9388, Cyber9397, Cyber9397/DVD, Cyber9520, Cyber9525/DVD CyberBlade/Ai1,CyberBlade/i7, CyberBlade/i1, CyberBlade/DSTN/Ai1, CyberBlade/DSTN/i7, CyberBlade/DSTN/i1, CyberBlade/e4, CyberBladeXP, BladeXP, материнские платы VIA EPIA на чипсете PLE133

          video = trident(X)

        • чипсеты Tseng Labs ET4000AX, ET4000/W32, ET4000/W32i, ET4000/W32p, ET6000, ET6100:

          video = tseng(X)

        • чипсеты VIA CLE266 (CLE3122, CLE3022). Используются в новых моделях плат VIA EPIA:

          video = via(X)

        • тестирование терминала под VMWare Workstation:

          video = vmware(X)

        • универсальный драйвер VESA, работает почти на всех более-менее новых картах. ОБЫЧНО НЕ ПОЗВОЛЯЕТ ИЗМЕНЯТЬ ЧАСТОТУ РЕГЕНЕРАЦИИ, поэтому пользуйтесь им только если ваша видеокарта не поддерживается никаким другим драйвером:

          video = vesa(X)

    • Разрешение экрана задается параметром resolution. Ниже приведен список наиболее типичных разрешений. Некоторые из них не будут поддерживаться видеокартой или драйвером. Воспользуйтесь мастером настройки терминала, чтобы определить, какие разрешения вы можете использовать. [Разрешения выше 800×600 поддерживаются только в WTware PRO]

      resolution = 640x480
      resolution = 800x600
      resolution = 1024x768
      resolution = 1280x1024
      resolution = 1152x864
      resolution = 1600x1200
      resolution = 960x720
      resolution = 1920x1440
      resolution = 720x540
      resolution = 848x480
      resolution = 1072x600
      resolution = 1280x720
      resolution = 1360x768
      resolution = 1800x1012
      resolution = 1920x1080
      resolution = 2048x1152
      resolution = 2048x1536

    • Глубина цвета задается параметром bpp. Помните, что Windows 2000 Server поддерживает только 8-битный цвет. Windows 2003 Server поддерживает все возможные глубины цвета, но не каждый драйвер поддерживает все варианты. Воспользуйтесь мастером настройки терминала, чтобы определить, какую глубину цвета вы можете использовать.

      bpp = 8
      bpp = 15
      bpp = 16
      bpp = 24
      bpp = 32

    • Частота регенерации экрана, она же частота вертикальной развертки, задается параметром refresh в герцах. Некоторые LCD-мониторы работают только при частоте регенерации 60 или 75 герц. Воспользуйтесь мастером настройки терминала, чтобы определить, какую частоту регенерации вы можете использовать.

      refresh = 60

    • Только для драйверов video=…(X). Установка этой опции иногда помогает для LCD-мониторов, на которых иначе не удается растянуть картинку на полный экран:

      noddc = on

  • Только для драйверов video=i915(f),nouveau(f),radeon(f). Если у видеокарты два выхода и картинка выводится не на тот выход, на который нужно (например, картинка выводится на VGA D-SUB-15, а нужно получить картинку на DVI), укажите в конфигурационном файле строку:

    connector = 1

Аутентификация в apache используя Active Directory и kerberos, samba

Почти в каждой организации используется домен Microsoft Windows, в котором пользователи проходят проверку подлинности. Так же часто в IT инфраструктуре используются сервисы, предоставляемые различными дистрибутивами linux. При выдаче прав доступа администраторам windows и linux приходится вести различные базы пользователей, что конечно не удобно. Реализовав единую базу данных пользователей и прозрачную аутентификации для пользователей (single sign on) можно избавится от массы рутинной работы и устранить риски безопасности. В данном случае реализуем прозрачный доступ пользователей к некому web ресурсу. Для аутентификации будет использоваться протокол Kerberos и «Key Distribution Center» (KDC) реализованный в контроллере домена Windows. В качестве linux системы рассматривается rhel5, для других дистрибутивов возможны не принципиальные отличия в процессе настройки. Если у вас дистрибутив отличный от указанного, то стоит проверить версию библиотеки Kerberos, она должна быть не младше чем 1.5 (MIT Kerberos), т.к. начиная с этой версии поддерживается механизм согласования метода аутентификации SPNEGO (Simple and Protected Negotiate). Веб сервер должен иметь A запись на вашем днс сервере т.к. имя ресурса является частью Kerberos билета. Процесс аутентификации описан в RFC1510, обязательно прочтите как проходит процесс аутентификации.

Термины и команды:
realm — область использующая единую базу Kerberos. По соглашению реалм записывается строчными буквами, для отличия от днс домена.
principal — имя которому поставлено в соответствие набор учетных данных. Делится на три части: 1)primary — первая чать принципала Kerberos. Если это пользователь, то соответствует его имени. Если сервис — имя сервиса. 2)instance — вторая часть, служит для уточнения первой части. Может не содержатся в имени принципала, если есть — то это описание. В случае хоста — его fqdn. 3)realm — реалм идет последней частью.
ticket — набор временных данных которые подтверждают идентичность клиента или сервиса.
TGT — Ticket-Granting Ticket. Билет дающий право на получение других билетов в реалме, где был он выпущен.
keytab — файл содержащий ключи, хост или сервис использует его точно таким же образом как пользователь использует пароль.
KDC — Key Distribution Center, сервер выдающий билеты.
kinit — программа, используется для начала процесса аутентификации принципала и получения билета TGT.
klist — программа, выводит список принципалов и Kerberos билетов содержащихся в кеше, или список список ключей в keytab файле.
kvno — получает билет для указанного принципала и выдает на терминал версию ключей.
ktutil — позволяет управлять записями в keytab файле.

Начальные условия:
локальная сеть — 192.168.1.0/24
сервер Active Directory — dc01.domain.ru(192.168.1.1)
веб сервер — web.domain.ru (192.168.1.130)

Действия по шагам:
Настраиваем синхронизацию времени. 
Установите и настройте службу ntpd. В качестве сервера точного времени нужно использовать сервер Active Directory. Протокол Kerberos требует что бы время у участников аутентификации было синхронизировано.

[root@server ~]# yum install ntpd

Выполните начальную синхронизацию времени с контроллером домена:

[root@server ~]# ntpdate dc01.domain.ru

Конфигурационный файл даемона ntpd:

[user@server ~]$ egrep -v «^#» /etc/ntp.conf
restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery
restrict 127.0.0.1
restrict -6 ::1
server dc01.domain.ru
server 127.127.1.0 # local clock
fudge 127.127.1.0 stratum 10
driftfile /var/lib/ntp/drift
keys /etc/ntp/keys

Сейчас запустим службу и поставим ее в автозагрузку:[root@server ~]# /etc/init.d/ntpd start
[root@server ~]# chkconfig ntpd on

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

[user@server ~]$ ntpstat
synchronised to NTP server (192.168.1.1) at stratum 5
   time correct to within 300 ms
   polling server every 512 s

Настройка Kerberos на web.domain.ru.
Ниже приведена минимальная конфигурация для использования протокола аутентификации в реалме domain.ru. Реалм в данном случае будет совпадает с доменом Windows. Обратите внимание, для работоспособности Kerberos, реалм должен быть написан прописными буквами!

[user@server ~]$ cat /etc/krb5.conf
[logging]
 default = FILE:/var/log/krb5libs.log
 kdc = FILE:/var/log/krb5kdc.log
 admin_server = FILE:/var/log/kadmind.log

[libdefaults]
 default_realm = DOMAIN.RU
 dns_lookup_realm = false
 dns_lookup_kdc = false
 ticket_lifetime = 24h
 forwardable = yes

[realms]
 DOMAIN.RU = {
  kdc = dc01.domain.ru
  admin_server = dc01.domain.ru
 }

[domain_realm]
 .domain.ru = DOMAIN.RU
 domain.ru = DOMAIN.RU

[appdefaults]
 pam = {
   debug = false
   ticket_lifetime = 36000
   renew_lifetime = 36000
   forwardable = true
   krb4_convert = false
 }

Если у вас в сети несколько контроллеров домена то вы можете их перечислить в секции [realms], что то вроде:

[realms]
 DOMAIN.RU = {
  kdc = dc01.domain.ru
  kdc = dc02.domain.ru
  admin_server = dc01.domain.ru
  admin_server = dc02.domain.ru
 }

Проверить работоспособность Kerberos можно с помощью kinit, и учетной записи в домене Windows. Данная команда позволяет для принципала (в данном случае для пользователя домена) получить TGT билет и поместить его в кеш. Содержимое кеша можно посмотреть командой klist:

[user@server ~]$ kinit domain_user@DOMAIN.RU
[user@server ~]$ klist

Ticket cache: FILE:/tmp/krb5cc_500
Default principal: domain_user@DOMAIN.RU

Valid starting     Expires            Service principal
03/22/11 17:43:35  03/23/11 03:43:38  krbtgt/DOMAIN.RU@DOMAIN.RU
renew until 03/23/11 17:43:35

Далее нам нужно создать аккунт сервера в в Active Directory и связать его с принципалом сервиса  в KDC. Можно сделать это самостоятельно на котроллере домена. Создать сначала аккаунт, а затем связать его с принципалом с помощью команды ktpass. Но мне больше нравится вариант с установкой samba и вводом сервера в домен, в этом случае аккаунт и принципал службы создаются автоматически. Как плюс, samba позволит нам в будущем организовать сетевые ресурсы и получать информацию из AD для разграничения доступа к службам сервера.

Настройка samba, добавление сервера web.domain.ru в домен Windows
Устанавливаем samba:

[root@server ~]# yum install samba

В конфигурации samba необходимо указать используемый реалм, указать что будет используется keytab файл, и указать что самба работает как член домена AD — параметр security=ads. Конфигурация samba достаточная для наших целей приведена ниже:

[root@server ~]# cat /etc/samba/smb.conf
[global]
workgroup = DOMAIN
realm = DOMAIN.RU
server string = Samba Server Version %v
security = ADS
passdb backend = tdbsam
 use kerberos keytab = Yes
local master = No
cups options = raw

Проверить правильность конфигурационного файла можно командой
[root@server ~]# testparm
Если ошибок нет, то самое время добавить наш сервер в домен Windows, естественно что нужно это делать имея полномочия на добавление в домен:
[root@server ~]# net ads join -U win_admin

win_admin’s password:
Using short domain name — DOMAIN
Joined ‘WEB’ to realm ‘DOMAIN.RU’

Если днс зона на контроллере домена не обновилась, то можно или вручную добавить запись A типа и ассоциированную с ней запись PTR или попытатся провести регистрацию имя сервера в днс следующим образом:

[root@server ~]# net ads dns register -I 192.168.1.130 -U win_admin

Проверить корректность добавления сервера в домен можно следующим образом:

[root@server ~]# net ads testjoin
Join is OK

Создание файла keytab, добавление ключа принципала сервиса «HTTP» в keytab.
Создадим keytab файл. Так как в конфигурации samba не оговорено где должен содержатся keytab файл, то будет создан файл по умолчанию /etc/krb5.keytab:

[root@server ~]# net ads keytab create

Теперь создадим и добавим принципал для сервиса — «HTTP», Если вы сейчас посмотрите, на контроллере домена, через консоль MMC и остнастку ADCI Edit параметр «servicePrincipalName», какие принципалы сервисов созданы для нашего сервера — это будут: «HOST/web.domain.ru» и «HOST/web».

[root@server ~]# net ads keytab add HTTP

Если вы теперь посмотрите в список принципалов, то заметите, что там добавлись еще два — «HTTP/web.domain.ru» и «HTTP/web». В принципе это уже значит что добавление прошло успешно. Тем не менее, давайте посмотрим что сейчас находится в keytab:

[root@server ~]# klist -ek /etc/krb5.keytab 
Keytab name: FILE:/etc/krb5.keytab
KVNO Principal
—- —————————————————————————
   2 host/web.domain.ru@DOMAIN.RU (DES cbc mode with CRC-32) 
   2 host/web.domain.ru@DOMAIN.RU (DES cbc mode with RSA-MD5) 
   2 host/web.domain.ru@DOMAIN.RU (ArcFour with HMAC/md5) 
   2 host/web@DOMAIN.RU (DES cbc mode with CRC-32) 
   2 host/web@DOMAIN.RU (DES cbc mode with RSA-MD5) 
   2 host/web@DOMAIN.RU (ArcFour with HMAC/md5) 
   2 WEB$@DOMAIN.RU (DES cbc mode with CRC-32) 
   2 WEB$@DOMAIN.RU (DES cbc mode with RSA-MD5) 
   2 WEB$@DOMAIN.RU (ArcFour with HMAC/md5) 
   2 HTTP/web.domain.ru@DOMAIN.RU (DES cbc mode with CRC-32) 
   2 HTTP/web.domain.ru@DOMAIN.RU (DES cbc mode with RSA-MD5) 
   2 HTTP/web.domain.ru@DOMAIN.RU (ArcFour with HMAC/md5) 
   2 HTTP/web@DOMAIN.RU (DES cbc mode with CRC-32) 
   2 HTTP/web@DOMAIN.RU (DES cbc mode with RSA-MD5) 
   2 HTTP/web@DOMAIN.RU (ArcFour with HMAC/md5) 

Для полной уверенности можно получить Kerberos билет от KDC для только что заведенных принципалов:

[root@server ~]# kvno HTTP/web.domain.ru@DOMAIN.RU HTTP/web@DOMAIN.RU

HTTP/web.domain.ru@DOMAIN.RU: kvno = 2
HTTP/web@DOMAIN.RU: kvno = 2

Посмотрим эти билеты подробнее (в выводе только интересующие нас билеты):

[root@server ~]# klist -e
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: domain_user@DOMAIN.RU

Valid starting     Expires            Service principal
03/25/11 15:37:04  03/26/11 01:35:17  HTTP/web.domain.ru@DOMAIN.RU
renew until 03/26/11 15:35:14, Etype (skey, tkt): ArcFour with HMAC/md5, ArcFour with HMAC/md5 
03/25/11 15:42:26  03/26/11 01:35:17  HTTP/web@DOMAIN.RU
renew until 03/26/11 15:35:14, Etype (skey, tkt): ArcFour with HMAC/md5, ArcFour with HMAC/md5

Обратите внимание что номера ключей билетов (колонка KVNO), имя принципала в билете и алгоритмы шифрования должны совпадать! Рекомендуется создать свой keytab для службы HTTP, где будет содержатся только нобходимые нам ключи. Сделать это можно с помощью ktutil. Расширеных функций редактирования он не поддерживает, поэтому его можно запустить через rlwrap:

[root@server ~]# rlwrap ktutil

Загрузим содержимое keytab

ktutil:  read_kt /etc/krb5.keytab

Посмотрите текущие записи:

ktutil:  list

Нас интересуют записи в которых фигурирует метка «HTTP». Удалите все лишние записи, указав в команде удаления ненужный слот записи:

ktutil:  delent 1

Должно получится так:

ktutil:  list
slot KVNO Principal
—- —- ———————————————————————
   1    2                  HTTP/web.domain.ru@DOMAIN.RU
   2    2                  HTTP/web.domain.ru@DOMAIN.RU
   3    2                  HTTP/web.domain.ru@DOMAIN.RU

Сохраним оставшиеся в другой keytab файл:

ktutil:  write_kt /etc/httpd/httpd.keytab

Сменим права доступа:

[root@server ~]# chown apache:apache /etc/httpd/httpd.keytab
[root@server ~]# chmod 0440 /etc/httpd/httpd.keytab

Переходим к заключительной части.

Установка и настройка mod_auth_kerb.
Установим модуль mod_auth_kerb:

[root@server ~]# yum install mod_auth_kerb

Вы обнаружите файл /etc/httpd/conf.d/auth_kerb.conf содержащий пример настройки mod_auth_kerb. Воспользуемся этим примером как отправной точкой. В примере ниже примере аутентификация требуется только к части сайта web.domain.ru/private. Параметр KrbServiceName должен содержать имя принципала сервиса (и соответственно ключ), которое будет использовать apache для аутентификации. На место расположения файла keytab указывает параметр Krb5KeyTab. Используйте SSL если вы включите параметр KrbMethodK5Passwd. Данный параметр  включает аутентификацию с поддержкой ввода логин/пароль, причем они будут посланы по сети практически чистым текстом ( кодировка Base64 очень слабая )

[root@snort conf.d]# cat /etc/httpd/conf.d/auth_kerb.conf
 
LoadModule auth_kerb_module modules/mod_auth_kerb.
<Location /private>
#  SSLRequireSSL
  AuthType Kerberos
  AuthName «Kerberos Login»
  KrbMethodNegotiate On
  KrbMethodK5Passwd Off
  KrbAuthRealms DOMAIN.RU
  Krb5KeyTab /etc/httpd/httpd.keytab
  KrbServiceName HTTP
#  require user win_user@DOMAIN.RU win2_user@DOMAIN.RU
  require valid-user
</Location>

Такой вариант настройки не очень удобен в плане гибкости. Гораздо удобнее настроить аутентификацию в .htaccess файле. Прежде чем будете пробовать второй пример — приведите к первоначальному виду файл /etc/httpd/conf.d/auth_kerb.conf, т.е. все закоментированно кроме строчки с загрузкой модуля.

[root@snort ~]# cat /var/www/html/.htaccess
#SSLRequireSSL
AuthType Kerberos
AuthName «Kerberos Login»
KrbMethodNegotiate On
KrbMethodK5Passwd Off
KrbAuthRealms DOMAIN.RU
Krb5KeyTab /etc/httpd/httpd.keytab
KrbServiceName HTTP
#require user win_user@DOMAIN.RU win2_user@DOMAIN.RU
require valid-user

В обоих этих примерах доступ получают все пользователи прошедшие аутентификацию. Можно настроить избирательный доступ, указав принципалы пользователей. В обоих примерах эта строка с указанием списка принципалов закомментирована. Не удобно в эксплуатации? Конечно гораздо удобнее, вдобавок к аутентификации, предоставлять доступ на основании членства в группе, которая содержится в Active Directory. Но это в следующий раз. А сейчас действительно последняя часть.

Настройка интернет браузеров.
Начнем с internet explorer 8. Во вкладке «Безопасность» окна «Свойства обозревателя» выделите «Местная интрасеть» и нажмите на «Узлы».

В появившемся окне нажмите «Дополнительно»

Впишите свой домен как на примере:

Закройте окно, и нажмите на кнопку «Другой» в области «Уровень безопасности для этой зоны». Отметьте параметр автоматического входа в систему как показано на рисунке.

Теперь в окне «Свойства обозревателя» перейдите во вкладку «Дополнительно», и включите параметр «Разрешить встроенную проверку подлинности Windows». Для того что бы настройки вступили в силу, браузер необходимо перезапустить.

Перейдем к настройке Mozilla Firefox, здесь все проще и без перезапусков. Наберите в адресной строке «about:config», в строке фильтра — «network.neg». Впишите свой домен в две строки, как показано на рисунке.

 

 

Настройка AD-аутентификации в Apache под Linux и FreeBSD

Работу можно разбить на два этапа — установка и настройка Kerberos (низкоуровневая работа с ключами и авторизация в домене) и настройка модуля веб-сервера.

Настройка Kerberos

Для аутентификации в доменах AD под ОС Linux и FreeBSD используется MIT Kerberos V. Нам понадобятся только клиентские библиотеки и утлиты, серверная часть MIT Kerberos не нужна, т. к. в качестве сервера выступает контроллер домена AD под Windows. Нужно установить соответствующиt пакет, в зависимости от дистрибутива:

Debian, Ubuntu

apt-get install krb5-user

RHEL, Fedora

yum install krb5-client-apps

SLES, OpenSUSE

zypper install krb5-client

После установки пакета, необходимо настроить его для домена. Параметры конфигурации Kerberos находятся в файле /etc/krb5.conf:

[libdefaults]
default_realm = IPI.LOCAL

[realms]
IPI.LOCAL = {
    kdc = w2003.ipi.local
}

[domain_realm]
.ipi.local = IPI.LOCAL
ipi.local = IPI.LOCAL

В данном примере:

w2003.ipi.local

fqdn адрес KDC (AD) сервера.

IPI.LOCAL

домен

секция domain_realm

используется для управления привязками url <=> domain. Т.е. если адрес у вебсервера будет abc.xyz.ru, но домен — IPI.LOCAL, то необходимо прописать привязку abc.xyz.ru = IPI.LOCAL или .xyz.ru = IPI.LOCAL. Если этого не сделать, то по умолчанию для адреса abc.xyz.ru доменом будет XYZ.RU.

Read More «Настройка AD-аутентификации в Apache под Linux и FreeBSD»

Настройка прозрачной аутентификации в домене Active Direcory Ubuntu Apache

Скачиваем модуль mod_ntlm для Apache.

http://modntlm.sourceforge.net/mod_ntlm.tar.gz — Для Apache 1.x
http://modntlm.sourceforge.net/mod_ntlm2.tar.gz — Для Apache 2.x

Распаковываем архив:

tar -zxvf ntlm.tar.gz

Необходимо обновить систему:

sudo apt-get update

Устанавливаем gcc:

sudo apt-get install gcc

Read More «Настройка прозрачной аутентификации в домене Active Direcory Ubuntu Apache»

Integrate Microsoft Active Directory in iRedMail

We assume:

  • Hostname of your AD server is ad.example.com, listen on port 389. And it’s accessible from iRedMail server.
    • We will use this hostname below, you can replace it by IP address of this AD server if you want.
    • If you want to force LDAP connection with LDAPS, use port 636 instead.
  • Base dn in AD is dc=example,dc=com, email addresses of all users end with @example.com (Your mail domain is example.com).
  • All user accounts and mail list accounts are placed under dn cn=Users,dc=example,dc=com. Note: LDAP dn is case-insensitive.
  • For ldap connection, protocol version 3 is recommended.
  • Store all mails on Linux/BSD servers, not on AD server.
    • Storage directory is /var/vmail/vmail1, same as default in iRedMail.
    • Mailbox of user support@example.com will be /var/vmail/vmail1/example.com/support/Maildir/ (Maildir format).

Create user account in AD, used for LDAP query

With iRedMail (OpenLDAP backend), we have a low-privileged account cn=vmail,dc=xxx,dc=xxx with read-only privilege. And we suggest you create a same account vmail in AD, with strong and complex password.

Read More «Integrate Microsoft Active Directory in iRedMail»

Installing Node.js via package manager

Debian and Ubuntu based Linux distributions

NOTE: Temporary info before full update of this wiki page Below is not an up-to-date info. Check the nodesource’s blog post to install node 0.12 on Debian and Ubuntu. NOTE END

Also including: Linux Mint, Linux Mint Debian Edition (LMDE), elementaryOSand others.

Node.js is available from the NodeSource Debian and Ubuntu binary distributions repository (formerly Chris Lea’s Launchpad PPA). Support for this repository, along with its scripts, can be found on GitHub at nodesource/distributions.

Setup with Ubuntu:

curl -sL https://deb.nodesource.com/setup | sudo bash -

Then install with Ubuntu:

sudo apt-get install -y nodejs

Setup with Debian (as root):

Read More «Installing Node.js via package manager»

Централизованный сбор Windows Event Logs с помощью ELK (Elasticsearch — Logstash — Kibana)

Передо мной встала задача организовать сбор Windows Event Logs в некое единое хранилище с удобным поиском/фильтрацией/возможно даже визуализацией. После некоторого поиска в интернете я натолкнулся на чудесный стек технологий от Elasticsearch.org — связка ELK (ElasticsearchLogstashKibana). Все продукты являются freeware и распространяются как в виде архива с программой, так и в виде пакетов deb и rpm.

Что такое ELK?

Elasticsearch

Elasticsearch — это поисковый сервер и хранилище документов основанное на Lucene, использующее RESTful интерфейс и JSON-схему для документов.

Logstash

Logstash – это утилита для управления событиями и логами. Имеет богатый функционал для их получения, парсинга и перенаправления\хранения.

Kibana

Kibana – это веб-приложение для визуализации и поиска логов и прочих данных имеющих отметку времени.

Read More «Централизованный сбор Windows Event Logs с помощью ELK (Elasticsearch — Logstash — Kibana)»

Почему OpenVPN тормозит?

Время от времени, мне встречаются темы на форумах, в которых люди соединяют несколько офисов с использованием OpenVPN и получают низкую скорость, сильно ниже скорости канала. У кого-то это может быть 20 Мбит/с при канале в 100 Мбит/с с обеих сторон, а кто-то еле получает и 400 Кбит/с на 2 Мбит/с ADSL/3G и высоким пингом. Зачастую, таким людям советуют увеличить MTU на VPN-интерфейсе до чрезвычайно больших значений, вроде 48000, или же поиграться с параметром mssfix. Частично это помогает, но скорость внутри VPN все еще очень далека от канальной. Иногда все сваливают на то, что OpenVPN — userspace-решение, и это его нормальная скорость, учитывая всякие шифрования и HMAC’и. Абсурд!
Read More «Почему OpenVPN тормозит?»

Install and Configure OpenLDAP + phpLDAPadmin

Environment

CentOS-6.3-x86_64-minimal [Download]

I used nano as the text editor, but you can just as easily use vi. To install nano, type yum install -y nano.

I used Putty [Download] as the SSH client to connect remotely to my CentOS install.

Typography

Characters in code can sometimes be ambiguous. To make it clear which characters are what, I have listed the characters below for comparison.

1 (one) L (UC el) l (lc el)    0 (zero) O (UC ow) o (lc ow)    8 (eight) B (UC be) b (lc be)    5 (five) S (UC es) s (lc es)

a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9

Prerequisites

Read More «Install and Configure OpenLDAP + phpLDAPadmin»

Прозрачная авторизация openfire + pidgin, spark

OpenFire установлен в папку /opt/openfire

mydomain.local — имя нашего домена
MYDOMAIN.LOCAL — realm нашего домена
dc1.mydomain.local — fqdn контроллер домена
dc2.mydomain.local — fqdn вторичного контроллера домена (если есть)
jabber.mydomain.local — fqdn имя сервера, где установлен openfire
192.168.1.1 — IP контроллера домена.
192.168.1.2 — IP резервного контроллера домена.
192.168.1.3 — IP сервера, где установлен openfire.

Первое что нужно сделать и этот шаг очень важен — это ввести нашу линукс-машину в windows домен.

Очень подробно и хорошо этот процесс ,на мой взгляд, описан в [2]. Чтобы
не переходить со ссылке я опишу основные моменты.
Read More «Прозрачная авторизация openfire + pidgin, spark»