"толстый" клиент терминального сервера win2k3

Проблемы установки, настройки и работы Правильной Операционной Системы

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
ceas
рядовой
Сообщения: 16
Зарегистрирован: 2008-04-08 4:06:59

"толстый" клиент терминального сервера win2k3

Непрочитанное сообщение ceas » 2008-09-17 3:14:41

Хочу выложить небольшое How-to по сабжу на базе FreeBSD 6.2
Скажу сразу что подобного не нашел.... потому и делал сам... я не спец, так что может быть где-то и лишнее, а гдето и совсем не нужное.... поправляйте

Задача:
возникла задача подключения клиентов к терминальному серверу. Клиенты в большинстве своем это текущие рабочий станции с гигами оперативками и гигами свободного места (лицензируемся), поэтому в ресурсах самих станции особо ограничений нет, но зато есть ограничение на неудобства – как сказал коммерческий директор «пользователь недолжен заметить разницы». При использовании thinstation из TSOMATIC возникли трудности:
- «залипание» клавиши Alt
- не работает Print Screen
- периодические разрывы связи (до сих пор ума не приложу)
- при включенном режиме Caps Lock самые правые буквы печатаются один черт в нижнем регистре
- плохая работа автомонтирования флешек, флопиков, сидиромов
Значит будем решать.... выходом было скачивание всего пакета Thinstation и правки файлов на предмет Alt_l Meta_l... кто сталкивался поймет... но это решало лишь проблемы с Alt’ом.... остальные еще искать и искать.... плюнул полез в мануалы по .... фряхе
Короче данный HOW-TO может где-то и корявый, где-то избыточен, но он работает

Решение
1) Ставим систему

Страну брал USA, потому что просто нажал интер... Выбераем тип установки CUSTOM. В меню Options обязательно установите DHCP YES. В меню партишн гребем под систему “entire disk”. Идем в Label и делаем разметку из двух слайсов первый где будет система монтируем в «/», второй swap (размеры на усмотрение)
В меню Distribution выбераем Custom там выделяем:
Base
Kernels
...... All
Src
...... All
Ports
X.org
...... Basic
............ All
...... Server
............ All
...... Fonts
............ All
Выбираем откуда ставица и жмем commit

Почему все это ставил? Да потому что на всякий случай, местом я не особо ограничен, а так у меня будет вполне рабочие системы готовые к новым экспериментам )

После установки предложат внести последние изменения – соглашаемся
Задаем пароль рута
Задаем временную зону
Заходим в networking, подключаем демоны amd, sshd, заходим в интерфейсы и выбираем сетевую карточку, говорим что ipv6 не нужен, а для ipv4 использовать dhcpclient. В появившемся меню указываем имя машины и соглашаемся.
Заходим в секурити выбираем секуре левел disable.
Соглашаемся со всеми изминениями перегружаемся и вытаскиваем болванку

2) Настраиваем систему
2.1. Настраиваем sshd
Основной конфигурационный файл демона sshd - /etc/ssh/sshd_config. Тут есть куча всяких настроек но мне нужна только одна:
В оригинале строка

Код: Выделить всё

#PermitRootLogin no
Меняем ее на

Код: Выделить всё

PermitRootLogin yes
Перезагружаем правила:
/etc/rc.d/sshd reload
Теперь можем подключаться удаленно

2.2. Устанавливаем клиент сервера терминалов:
cd /usr/ports/net/rdesktop/
make && make install && make clean
Создаем в домашней папке файлик с названием .xinitrc:
touch /root/.xinitrc
Дописываем в него строку подключения к серверу терминалов:
echo 'rdesktop -g 1024x768 -f -r disk:USB=/usb -r disk:CDROM=/cdrom -r disk:floppy=/floppy SERVER1' > /root/.xinitrc
После этого ваша система при сработке команды startx будет запускать вышенабранную команду в графической оболочке.
Ну и пробуем:
startx
Если все нормально то идем дальше, если нет, то идем на: http://www.lissyara.su/?id=1444#CLI .

2.3. Начинаем править проблемы альтов
Делается это очень просто
cp /usr/X11R6/lib/X11/xkb/symbols/pc/pc /usr/X11R6/lib/X11/xkb/symbols/pc/pc2
rm /usr/X11R6/lib/X11/xkb/symbols/pc/pc
cp /usr/X11R6/lib/X11/xkb/symbols/pc/ru /usr/X11R6/lib/X11/xkb/symbols/pc/pc
2.4. Настраиваем автомонтирование дисков
Вставляем строку
echo 'amd_flags="-r -c 10 -w 2 -l syslog /mnt1 /etc/amd.map"' >> /etc/rc.conf
где флаги
-r – рестартовать все имеющиеся точки монтирования. Amd пробегается по всей таблице монтирования чтобы определить какие файловые системы уже смонтированы. Если какая либо файловая система уже смонтированна amd унаследует это.
-c 10 – флаг “c” указывает на продолжительность в секундах кэширования записи об устройстве. По умолчанию 5 минут. Данный параметр устанавливает значение в 10 секунд. Другими словами это время нужное системе для корректной обработки отключения старого устройства и перехода в ожидание нового устройства.
-w 2 – флаг “w” указывает на интервал в секундах (в данном случае 2) между попытками размонтирования файловой системы. По дефолту 2 минуты. Данный параметр устанавливает значение в 2 секунды. Другими словами фтолкнули флешку, поработали, вышли из папки и через 2 секунды демон сам произведет безопасное извлечение.
-l syslog – параметр указывает что будет перехватывать выходные данные. Другими словами что будет вети лог
/mnt1 – папка в которой находятся наши будующие папки с устройствами
/etc/amd.map – собственно конфигурационный файл описывающий подключаемые устройства

Редактируем файл /etc/amd.map
echo '/defaults type:=host;fs:=${autodir}/${rhost};rhost:=${key}' >/etc/amd.map
echo '* opts:=rw,grpid,resvport,vers=3,proto=udp,nosuid,nodev' >>/etc/amd.map
echo ' ' >>/etc/amd.map
echo 'localhost type:=auto;fs=${map};pref=${key}/' >>/etc/amd.map
echo ' ' >>/etc/amd.map
echo 'cdrom type:=program;fs:=/mnt/cdrom;\ ' >>/etc/amd.map
echo 'mount:="/sbin/mount mount /mnt/cdrom";\' >>/etc/amd.map
echo 'unmount:="/sbin/umount umount /mnt/cdrom"' >>/etc/amd.map
echo ' ' >>/etc/amd.map
echo 'floppy type:=program;fs:=/mnt/floppy;\ ' >>/etc/amd.map
echo 'mount:="/sbin/mount mount /mnt/floppy";\' >>/etc/amd.map
echo 'unmount:="/sbin/umount umount /mnt/floppy"' >>/etc/amd.map
echo ' ' >>/etc/amd.map
echo 'usb type:=program;fs:=/mnt/usb;\ ' >>/etc/amd.map
echo 'mount:="/sbin/mount mount /mnt/usb";\' >>/etc/amd.map
echo 'unmount:="/sbin/umount umount /mnt/usb"' >>/etc/amd.map
Создаем и редактируем файл /etc/amd.conf
touch /etc/amd.conf
echo ' [ global ] ' > /etc/amd.conf
echo 'restart_mounts = yes' >> /etc/amd.conf
echo 'unmount_on_exit = yes' >> /etc/amd.conf
echo 'mount_type = autofs' >> /etc/amd.conf
Приводим /etc/fstab к виду:

Код: Выделить всё

cat /etc/fstab
# Device                Mountpoint      FStype  Options         Dump    Pass#
/dev/ad0s1b             none            swap    sw              0       0
/dev/ad0s1a             /               ufs     rw              1       1
/dev/acd0               /mnt/cdrom      cd9660  ro,noauto       0       0
/dev/fd0                /mnt/floppy     msdosfs rw,noauto       0       0
/dev/da0s1              /mnt/usb        msdosfs rw,noauto       0       0
Создаем папки /mnt/cdrom, /mnt/floppy, /mnt/usb
mkdir /mnt/cdrom
mkdir /mnt/floppy
mkdir /mnt/usb
Создадим символические ссылки на папки, но перед этим удалите папку /cdrom
rm -r /cdrom
ln -s /mnt1/cdrom /cdrom
ln -s /mnt1/floppy /floppy
ln -s /mnt1/usb /usb
2.5. Далее настраиваенм автоматический вход в систему
В самый конец /etc/gettytab добавляем строки

Код: Выделить всё

#
# autologin - automatically log in as Terminal user
#

rootlogin|tu.9600:\
        :al=root:tc=std.9600:
Далее настраиваем вход
ee /etc/ttys
Ищем строку:

Код: Выделить всё

ttyv0   "/usr/libexec/getty pc"  cons25  on  secure
и меняем ее на

Код: Выделить всё

ttyv0   "/usr/libexec/getty rootlogin"  cons25  on  secure
добавляем вид терминала /bin/term в /etc/shells
echo /bin/term >> /etc/shells

Код: Выделить всё

cat /etc/shells
# $FreeBSD: src/etc/shells,v 1.5 2000/04/27 21:58:46 ache Exp $
#
# List of acceptable shells for chpass(1).
# Ftpd will not allow users to connect who are not using
# one of these shells.

/bin/sh
/bin/csh
/bin/tcsh
/bin/term
Создаем сам терминал
touch /bin/term
chmod 777 /bin/term
Туда пишем

Код: Выделить всё

cat /bin/term
#!/bin/sh

If tty | grep ttyv0
then 
startx
shutdown –p now
else
/bin/csh
fi
/bin/csh
Меняем шел для рута:
chpass -s /bin/term
и в заключение добавляем шатдаун в startx
echo shutdown -p now >> /root/.xinitrc
РЕБУТИМ и тестируем )



Прошу дополнять и расширять возможности )
Вложения
Задача.doc
(58.5 КБ) 20 скачиваний
Последний раз редактировалось ceas 2008-09-17 8:29:37, всего редактировалось 3 раза.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35267
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: "толстый" клиент терминального сервера win2k3

Непрочитанное сообщение Alex Keda » 2008-09-17 8:13:03

Код: Выделить всё

cp /usr/X11R6/lib/X11/xkb/symbols/pc/pc /usr/X11R6/lib/X11/xkb/symbols/pc/pc2
rm /usr/X11R6/lib/X11/xkb/symbols/pc/pc2
cp /usr/X11R6/lib/X11/xkb/symbols/pc/ru /usr/X11R6/lib/X11/xkb/symbols/pc/pc
первые две строки смущают...
файл скопировал, потом копию удалил...
оригинал надо было удалять, видимо...
в таком случае - проще mv сразу сделать.
=========
а вообще - классно. особенно часть про amd
на сайт выложить не хочешь?
Убей их всех! Бог потом рассортирует...

ceas
рядовой
Сообщения: 16
Зарегистрирован: 2008-04-08 4:06:59

Re: "толстый" клиент терминального сервера win2k3

Непрочитанное сообщение ceas » 2008-09-17 8:23:53

ошибся со второй строчкой.... каюсь... у меня просто скрипт написан который все эти действия проходит... в планах правда разобраться как из готовой системы сделать livecd, но пока твой скрипт "setup" из http://www.lissyara.su/?id=1625 плохо в голову лезет
mv не нравится.... мб паранойя ....

на счет выложить.... хочу.... вообще давно хочу чего-нить сюда выложить, а то только беру.... не хорошо
)

еще заметил при правке amd.map первая строка также отправлялась ">>" а не ">" таким образом там оставались изначальные настройки которые нам не нужны и с которыми ничего не тестировалось. Все поменял, вложил новый doc файл.
Последний раз редактировалось ceas 2008-09-17 8:31:41, всего редактировалось 1 раз.

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35267
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: "толстый" клиент терминального сервера win2k3

Непрочитанное сообщение Alex Keda » 2008-09-17 8:31:01

насчёт mv - y него есть плюс - он не удаляет.
т.е. в случае ошибки файл где-то останется.
а то вот как ты сделаешь - скопирвал, удалил копию, и поверх оригинала записл новый...
и всё. файла нет.
=====
там не мой скрипт - Морти.
Мой где-то на форуме валяется....
Убей их всех! Бог потом рассортирует...

ceas
рядовой
Сообщения: 16
Зарегистрирован: 2008-04-08 4:06:59

Re: "толстый" клиент терминального сервера win2k3

Непрочитанное сообщение ceas » 2008-09-23 8:34:08

продолжаю доделывать своих клиентов напильником.... сделал образ, прикрутил диалоги для удобства пользователей, приклеил возможность получать адрес статически и.... понял в rc.conf у меня указываются настройки для сетевой fxp0, а ведь таких клиентов у меня чуть больше 20... есть также 20 клиентов где em0 и еще вагон всякого разносорта, нет не вагон.... ВАГОНИЩЕ, СОСТАВ!!!!! Что делать?

надо делать скрипт который бы изменял имена сетевых интерфейсов в /etc/rc.conf

предварительные потуги привели к следующему
1. Необходимо выяснить сколько у нас интерфейсов и как их зовут
2. Предложить настройщику выбрать понравившийся интерфейс
3. заменить все вхождения fxp0 на наш интерфейс

И вот на первом я споткнулся. Написал примерно следующий скрипт, а дальше мозг не идет....

Код: Выделить всё

#!/bin/sh

    ky=0
    iy=1
    while [ $iy -lt 10 ]
        do
            intr${i}=`dmesg | grep ": Ethernet" | sed ${ky}d | sed 1q | awk '{print($1)}' | sed 's/://g'`
            if `test "$iy -gt 1"`
                then
                    if `test "${intr${ky}} = ${intr${iy}}"`
                        then
                            echo $iy > /var/tmp/intr.tmp
                    fi
            fi
            iy=`echo $iy+1 | /usr/bin/bc`
            ky=`echo $iy-1 | /usr/bin/bc`
    done
    ly=1
    while [ $ly -le $iy ]
        do
           echo ${intr${ly}}
            ly=`echo $ly+1 | /usr/bin/bc`
    done

НО, конструкция как минимум не поддерживает систему
a=1
b$a=2
для получения переменной b1

Если есть какие-нибудь подобные наработки прошу помочь
Заранее примного благодарен

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35267
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: "толстый" клиент терминального сервера win2k3

Непрочитанное сообщение Alex Keda » 2008-09-23 8:41:57

http://www.lissyara.su/?id=1359
посомтри там rc.conf
может полезные мысли появятся =)
Убей их всех! Бог потом рассортирует...

ceas
рядовой
Сообщения: 16
Зарегистрирован: 2008-04-08 4:06:59

Re: "толстый" клиент терминального сервера win2k3

Непрочитанное сообщение ceas » 2008-09-23 10:05:49

можно и массивом.... можно и таким, чтоб определил какие есть, а какие нет, добавив простую проверку на grep
Но как потом их передать в скрипт чтоб настроить определенный из них со статическими параметрами... еслиб был вопрос в DHCP то предложенное решение супер и класс....

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35267
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: "толстый" клиент терминального сервера win2k3

Непрочитанное сообщение Alex Keda » 2008-09-23 10:40:30

а почему dhcp нельзя?
Убей их всех! Бог потом рассортирует...

Аватара пользователя
InventoR
ст. лейтенант
Сообщения: 1344
Зарегистрирован: 2006-12-10 19:43:25
Контактная информация:

Re: "толстый" клиент терминального сервера win2k3

Непрочитанное сообщение InventoR » 2008-09-23 10:47:35

для всех этих целей есть уже готовая сборка от http://www.itadvisor.ru/downloads
ребята давно уже все привели в порядок.
ну вот и сказочке конец, кто слушал, тот молодец.

ceas
рядовой
Сообщения: 16
Зарегистрирован: 2008-04-08 4:06:59

Re: "толстый" клиент терминального сервера win2k3

Непрочитанное сообщение ceas » 2008-09-24 1:04:48

lissyara писал(а):а почему dhcp нельзя?
Почему-то именно FreeBSD машины DHCP не прописывает в DNS. Не стал разбираться решил задавать статику и выделить ряд адресов в сети для этой цели.
NarkomanLove писал(а):для всех этих целей есть уже готовая сборка от http://www.itadvisor.ru/downloads
ребята давно уже все привели в порядок.
ага мы ее брали за основу... к сожалению основа не очень рабочая (см. первый пост), к там перечисленному могу добавить что некоторое оборудование их сборка вообще не видит.....

Аватара пользователя
f0s
ст. лейтенант
Сообщения: 1082
Зарегистрирован: 2007-03-13 18:43:31
Откуда: Санкт-Петербург
Контактная информация:

Re: "толстый" клиент терминального сервера win2k3

Непрочитанное сообщение f0s » 2008-09-24 8:10:47

а thinstation от ITadvisor не смотрел? там много чего есть... itadvisor.ru
проблем с альтом, кепслоком и т.п. нету.флешки монтирует. сканер работает, принтеры тоже...
named, named, what is my TTL value?..

[FidoNet 2:550/2 && 2:5030/4441]

Аватара пользователя
f_andrey
майор
Сообщения: 2651
Зарегистрирован: 2007-12-26 1:22:58
Откуда: СПб
Контактная информация:

Re: "толстый" клиент терминального сервера win2k3

Непрочитанное сообщение f_andrey » 2008-09-24 15:07:45

Я вот не понимаю нахрена все эти изврашения там же экономия получается копеечная, все одно как я понимаю сервак и софт у тебя виндовый остался?
Если ваша тема перенесена, то смотри http://forum.lissyara.su/viewtopic.php?f=1&t=32308

Аватара пользователя
f0s
ст. лейтенант
Сообщения: 1082
Зарегистрирован: 2007-03-13 18:43:31
Откуда: Санкт-Петербург
Контактная информация:

Re: "толстый" клиент терминального сервера win2k3

Непрочитанное сообщение f0s » 2008-09-24 17:27:02

во-первых удобно администрировать через удаленный рабочий стол клиентов + экономия на компах - можно брать хоть самые дешевые без винтов, с возможностью загшрузки по сети.
во-вторых экномия на винлоус ХПпрофессионал (4500 за штуку)
в-третьих опять-таки процессы пользователей контроллировать, ну или если какой софт закатать, только на терминале можно и все.
named, named, what is my TTL value?..

[FidoNet 2:550/2 && 2:5030/4441]

shelk
рядовой
Сообщения: 11
Зарегистрирован: 2008-10-07 20:07:32

Re: "толстый" клиент терминального сервера win2k3

Непрочитанное сообщение shelk » 2008-10-07 20:44:54

ceas писал(а):
cp /usr/X11R6/lib/X11/xkb/symbols/pc/pc /usr/X11R6/lib/X11/xkb/symbols/pc/pc2
rm /usr/X11R6/lib/X11/xkb/symbols/pc/pc
cp /usr/X11R6/lib/X11/xkb/symbols/pc/ru /usr/X11R6/lib/X11/xkb/symbols/pc/pc
скажи у тебя таким способом насколько решилась проблема альтов?
у тебя не пропали заглавные буквы да вообще там много чего не работать могло?

вообщем я делал следующее:
в файле /usr/X11R6/share/xkb/symbols/pc
смотрим на такую строчку: key <ALT> { [NoSymbol, Alt_L ] };
include "altwin(meta_alt)" - вот в этой мета_альт и есть вся проблема. далее идем в файл altwin на который указывает include, там находим meta_alt и правим строчки key <LATL> и key <RALT> работа левого и правого альтов, соответственно, удаляя от туда Meta_L и Meta_R получаем:
key <LALT> { [ Alt_L ] };
key <RALT> { [ Alt_R ] };
можно конечно и свой вариант работы альтов туда добавить не трогая готовые но тогда надо не забыть подправить pc.
и про проблему альтов можно забыть.