от alabal(9-09-2006)
рейтинг (13)
[ добре ]
[ зле ]
Вариант за отпечатване Статията
има за цел да
опише за какво
и как може да
се инсталира
и използва един
изключително
полезен модул
на rdesktop - seamlessrdp. Rdesktop с този
модул е тестван
от автора в две
дистрибуци
на Линукс –
Gentoo и Debian при взаимодействие
с Windows XP и Windows Server 2003 R2. В
допълнение
е дадено и кратко
обяснение как
да инсталираме
и използваме
виртуална
машина с помощта
на qemu, за тези
които имат
желание да
тестват този
модул.
И тъй!
Среда
и необходимост
Търсейки
бюджетно решение
за инсталирането
и поддръжката
на значителен
брой компютри,
както и на подход
за лесно централизирано
управление
на потребителите,
различен от
обичайния
Windows/Samba Primary Domain Controller, си спомних
за две статии
от сайта описващи
използването
на тънки клиенти.
След
около седмица
експерименти
се оказа, че
ltsp е точно това
което ми трябва
- леко, гъвкъво,
невероятно
евтино и добро
спестяващо
пари, време и
усилия решение.
След
като успях да
инсталирам
и настроя в две
мрежи ltsp - общо
взето подобни,
едната с пет,
другата с осем
тънки клиента
(всъщност пълноценни
конфигурации
с инсталиран
Windows XP, просто за
целите на
демонстрациите
"боотваха"
от мрежата, без
използване
на твърдия
диск) и по един
"сървър" работещи
съответно под
Debian и Gentoo - резултатът
беше впечатляващ.
Идеята беше
одобрена и като
бюджет и като
форма за централизирано
управление
на достъпа на
потребителите.
(Невероятно
приятно е да
видиш колко
учудени остават
хората от тази
всъщност доста
стара и леко
позабравена
идея за използването
на терминали.)
НО!
Имаше
едно голямо
"НО!!!". Общо взето
възраженията
(напълно справедливи,
според мен) се
състояха в
следното: "Харесваме
идеята, искаме
да я използваме,
но ние имаме
лицензи за
програми, които
работят под
Windows и не можем да
отделим нови
средства за
закупуване
на лицензи под
Linux на същите
програми, а
имаме и други,
които ни се
налага да използваме,
а те нямат Linux
аналози."
Следователно
решението
трябва да се
търси в използването
на някакъв
вариант на
емулация или
използването
на възможностите
на rdp протокола.
Изпробвах
wine, но срещнах
сериозни затруднения
дори за емулирането
на относително
добре поддържания
Office XP. Тогава единственото
решение се
оказа rdesktop. При
него проблемът
пък бе, че след
осъществяване
връзката с
машина работеща
под Windows ви се отваря
цял пълноценен
десктоп, което
само би объркало
бъдещите потребители
на системата.
Предположението
ми, че и други
са се сблъсквали
с подобни проблеми
се оказа вярно
и след известно
търсене по
google попаднах на
seamlessrdp
Как
работи
След
като изтеглите
seamlessrdp от адреса
по-горе трябва
да разархивирате
в някоя удобна
директория
на машината
работеща под
Windows, например
C:\seamlessrdp.
Трябва
да разрешите
remote desktop на съответната
машина и да
укажете кои
потребители
могат да управляват
машината отдалечено.
След свързването
с rdesktop seamlessrdpshell.exe осигурява
различен шел
от Explorer и разполагате
с напълно
функциониращо
Windows приложение,
работещо в
собствената
си среда и изобразено
в един-единствен
прозорец в
работното поле
на машината
от която се
свързвате.
Свързването
към машината
отнема минимално
време, а в работата
на приложенията
не се забелязва
почти никакво
забавяне.
Ограничения
и слабости:
Ltsp:
-
основното
ограничение,
според мен,
при решение
за използване
на тънки клиенти
е мрежата –
ако се налага
да използвате
тежки графични
приложения,
трансфер на
видео и аудио
сигнал мрежа
10/100MBit е неподходяща;
-
при по-голям
брой тънки
клиенти (20 и
повече), може
да се наложи
използване
на два сървъра
и някакво
load-balancing решение.
Подобно решение
се налага и
ако трябва да
осигурите
висока степен
на сигурност
и непрекъстнатост
на работа.
Windows:
-
Seamlessrdp може
да работи само
с Windows XP Professional и Windows Server 2003 (R2),
без допълнително
инсталиране
на Terminal Services и Remote Desktop. При
по-стари или
ограничени
версии се налага
инсталирането
на тези услуги.
- Windows
XP Professional позволява
само една-единствена
връзка с един
потребител.
ВАЖНО!!! За да
работи seamlessrdp е
ЗАДЪЛЖИТЕЛНО
да няма потребители,
които да са
“логнати” в
момента на
свързване.
Всеки втори
опит за свързване
е обречен на
неуспех. На
този
адрес
има кратко
описание как
да се инсталират
конкурентни
връзки към
Remote Desktop на Windows XP Professional.
Rdesktop:
-
Seamlessrdp работи
с версия на
rdesktop по-висока
от 1.5.0.
Инсталиране
Gentoo:
# echo 'net-misc/rdesktop ~x86'
>> /etc/portage/package.keyword
# emerge -av rdesktop
Debian:
# apt-get install build-essential
cvs
И като
обикновен
потребител:
cvs
-d:pserver:anonymous@rdesktop.cvs.sourceforge.net:/cvsroot/rdesktop
login
cvs
-z3
-d:pserver:anonymous@rdesktop.cvs.sourceforge.net:/cvsroot/rdesktop
co -P rdesktop
cd rdesktop
./bootstrap
./configure
make
su
make install
ln -s /usr/local/bin/rdesktop /usr/bin/rdesktop
Свързване:
След
като rdesktop е инсталиран
и Remote Desktop е разрешен
за даден потребител
(user) със съответна
парола (password) на
машина отговаряща
на IP адрес 172.20.0.15,
за да стартирате,
примерно, notepad
използвайте
следната команда:
$
rdesktop -A -a 16 -s "c:\seamlessrdp\seamlessrdpshell.exe
notepad" 172.20.0.15 -u user -p password
Ако
имате домейн
контролер
трябва да добавите
и: -d domain
За
да стартирате
кое да е друго
приложение,
трябва да опишете
пътя до неговия
стартиращ файл.
Например за
MS Word 2003 ще трябва
да изпълните
следното:
$
rdesktop
-A -a 16 -s "c:\seamlessrdp\seamlessrdpshell.exe c:\program
files\microsoft office\office11\winword.exe" 172.20.0.15 -u user
-p password
Ако
всичко работи
тези команди
могат да бъдат
записани в
скрипт и със
съответни
линкове разположени
(копирани) в
десктопите
на всеки потребител
да бъде улеснено
свързването.
Примерно скрипт
за MS
Word 2003 за конкретния
потребител
ще изглежда
така:
#!/bin/bash
rdesktop
-A -a 16 -s "c:\seamlessrdp\seamlessrdpshell.exe c:\program
files\microsoft office\office11\winword.exe" 172.20.0.15 -u user
-p password
Тестване
с виртуална
машина:
Aко
вече имате
инсталиран
Windows на виртуална
машина, то се
уверете, че тя
се “вижда” от
хост машината,
чрез:
ping IP_address_na_virtualnata_mashina
след
което опитайте
да се свържете
с нея по гореописания
начин.
Aко
нямате инсталирана
виртуална
машина, можете
да използвате
следното:
Инсталирайте
qemu, за предпочитане
с kqemu модул.
Уверете
се, че имате
компилиран
модула tun за
Universal TUN/TAP (modprobe -l | grep tun), ако го
нямате ще трябва
да го компилирате
– намира се в
раздел Device Drivers->Network
device support -> Universal TUN/TAP device driver support.
Уверете
се, че имате
поддръжка на
iptables в ядрото –
ако не, компилирайте
ново ядро с
необходимите
модули. Ето
едно упътване
как да стане
това: HOWTO IPtables for newbies
След
което:
# su
# modprobe kqemu
# modprobe tun
# qemu-img create disk.img 4G ## Създаване
на дял от 4G
# nano /etc/qemu-ifup
Копирайте
следния скрипт
в този файл:
#!/bin/sh
/sbin/ifconfig $1 172.20.0.1
# chmod +x /etc/qemu-ifup
Стартирайте
quemu така:
# qemu -net user -net nic,model=rtl8139 -net tap -m 512 -localtime -hda disk.img -cdrom /dev/cdrom -boot d
Това
ще стартира
qemu със първо boot
устройство
/dev/cdrom и използване
на 512 MB от RAM (-m
512) ако е много
- намалете я
на 256. Ще бъде
създадено
устройство
tap0 с адрес 172.20.0.1,
ако желаете
друг адрес –
променете
/etc/qemu-ifup. След като
инсталирате
Windows (за предпочитане
Server 2003, вижте по-горе
защо) създайте
потребители,
дайте им права
за Remote Desktop, задайте
следните настройки:
IP:172.20.0.XX
netmask 255.255.0.0
gateway:172.20.0.1
DNS:- този на вашата машина.
За да имате Интернет изпълнете това:
# echo "1" > /proc/sys/net/ipv4/ip_forward
# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Изтеглете seamlessrdp и го инсталирайте.
Тествайте!
Заключение:
Дори
и с варианта
на допълнителна
машина работеща
под Microsoft Server 2003 алтернативата
е все още приемлива
и мисля, че
значително
по-евтина от
другите варианти.
Точните изчисления
за цените на
различните
алтернативи,
подробно howto за
ltsp и някои специфични
настройки ще
бъдат дадени
в една или две
бъдещи статии.
***************************************************
Връзки:
Статия на Никола Антонов - линк
Статия
на Станимир
Иванов - линк
Howto
Quemu – Gentoo - линк
Howto
Seamlessrdp (Ubuntu) - линк
Howto
Ltsp (Gentoo) - линк
Linux
Terminal Server Project - линк
ThinStation - линк
<< SSH без парола :) | Съхранение на поверителна информация в БД >>
|